Repository is archived
No commit activity in last 3 years
No release in over 3 years
A simple way to manage permissions on GitHub
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

DEPRECATED¶ ↑

thoughtbot is no longer supporting this project, it hasn’t been tested or used since GitHub introduced Organizations (github.com/blog/674-introducing-organizations).

enforcer¶ ↑

A simple way to manage permissions on GitHub.

usage¶ ↑

Create an enforcer script and then run it with the “enforcer” executable.

enforcer my_enforcer_script.rb

howto¶ ↑

The DSL should be formed like such:

Enforcer "your github account", "your github api key" do
  project "project", "user1", "user2", "user3"

  postreceive "project", "http://rdoc.info/projects/update",
                         "http://example.com/post"
end

The users passed into the project are then set as the collaborators. Any users not listed are removed. You can also set postreceive URLs as well.

advanced¶ ↑

You could use a GitHub API wrapper like Octopi to load up your projects. Here’s a more complex example:

require 'octopi'
include Octopi
account = "thoughtbot"
token   = "deadbeef"

Enforcer account, token do
  authenticated_with account, token do |github|
    @projects = github.user.repositories.map { |repo| repo.name }.sort
  end

  users = %w[user1 user2 user3]

  @projects.each do |name|
    project name, *users
  end
end

Copyright © 2009 thoughtbot. See LICENSE for details.