Sha256: f00128953252746796f540a75bcf918dc429e93a3c27b2a2881f49e35b5d5609

Contents?: true

Size: 779 Bytes

Versions: 3

Compression:

Stored size: 779 Bytes

Contents

#!/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: #{$0} <COLLABORATOR_LOGIN>")).to_s

  gh = Octokit::Client.new(access_token: token)
  [
    Team.new(gh, 'cucumber-ruby'),
    Team.new(gh, 'collaborators')
  ].each { |team|
    team.add_member(login)
  }

rescue StandardError => error
  abort error.message
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cucumber-3.0.1 scripts/invite-collaborator
cucumber-3.0.0 scripts/invite-collaborator
cucumber-3.0.0.pre.2 scripts/invite-collaborator