Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
You laugh at me, you bastard, and I'll shoot you where you stand.
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
features
lib Version 0.1.1
test
.document
.gitignore Initial commit to enforcer.
LICENSE
README.rdoc
Rakefile
enforcer.gemspec Bumping the gemspec date since this version was actually released

README.rdoc

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

legal

Copyright © 2009 thoughtbot. See LICENSE for details.

Something went wrong with that request. Please try again.