|
- #!/usr/bin/env ruby
- require 'octokit'
-
- class Team
- attr_reader :gh, :name
-
- def initialize(gh, name)
- @gh = gh
- @name = name
- end
-
- def add_member(login)
- gh.add_team_membership(id, login)
- end
-
- def id
- team['id']
- end
-
- def team
- @team ||=
- gh.organization_teams('cucumber')
- .find { |team| team['name'] == name } || raise("Unable to find a team named #{name}")
- end
- end
-
- begin
- token = ENV['GITHUB_TOKEN'] || raise('You need to set GITHUB_TOKEN')
- login = (ARGV[0] || raise("syntax: #{$PROGRAM_NAME} <COLLABORATOR_LOGIN>")).to_s
-
- gh = Octokit::Client.new(access_token: token)
- [
- Team.new(gh, 'cucumber-ruby'),
- Team.new(gh, 'collaborators')
- ].each do |team|
- team.add_member(login)
- end
- rescue StandardError => e
- abort e.message
- end
|