class Hyrb::Tasks::Github::SyncProjectTeam
Public Instance Methods
run(env)
click to toggle source
# File lib/hyrb/tasks/github.rb, line 87 def run(env) team = env.github_team new_devs = env.project.developers(env.developers) current_members = env.github_client.team_members(team.id) members_to_remove = current_members.reject do |member| new_devs.map(&:github_username).include?(member.login) end devs_to_add = new_devs.reject do |dev| current_members.map(&:login).include?(dev.github_username) end members_to_remove.each do |member| if env.github_client.remove_team_member(team.id, member.login) say "Removed #{member.login} from team #{env.project.github_org}/#{team.slug}", :green else say "Couldn't remove #{member.login} from team #{env.project.github_org}/#{team.slug}", :red end end devs_to_add.each do |dev| if env.github_client.add_team_member(team.id, dev.github_username) say "Added #{dev.github_username} to team #{env.project.github_org}/#{team.slug}", :green else say "Couldn't add #{dev.github_username} to team #{env.project.github_org}/#{team.slug}", :red end end end