Guest User

Untitled

a guest
Oct 2nd, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. require 'octokit'
  3. require 'csv'
  4.  
  5. user_login = 'username'
  6. user_password = 'password'
  7. organization = 'git-dojo'
  8.  
  9. csv_file = ARGV.first || abort("Usage: #{$0} <csv-file>")
  10.  
  11. github_teams = {}
  12. CSV.foreach(csv_file) do |row|
  13. user = row[0]
  14. team = row[1]
  15. github_teams[team] ||= []
  16. github_teams[team] << user
  17. end
  18.  
  19. client = Octokit::Client.new(:login => user_login, :password => user_password)
  20. org_teams = client.org_teams(organization)
  21. org_repos = client.org_repositories(organization)
  22.  
  23. github_teams.each do |team_name, members|
  24. repo = org_repos.select {|r| r['name'] == team_name }.first ||
  25. client.create_repo(team_name, :organization => organization)
  26. team = org_teams.select {|t| t['name'] == team_name }.first ||
  27. client.create_team(organization, nil,
  28. :name => team_name,
  29. :repo_names => ["#{repo.owner.login}/#{repo.name}"],
  30. :permission => 'push')
  31. new_members = members - client.team_members(team.id).collect {|m| m.login }
  32. new_members.each do |member|
  33. client.add_team_member(team.id, member)
  34. end
  35. end
Add Comment
Please, Sign In to add comment