mkghrepo 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mkghrepo/cli.rb +20 -13
- data/lib/mkghrepo/repo.rb +8 -2
- data/lib/mkghrepo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2733c4f97e164ebb080cbf7133ad9d0769434949
|
4
|
+
data.tar.gz: 11f8fbc4e9982c072596758caa133f5f72f21a18
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2bc240ed5465854185af36c4ba15c8b8361794a1c8369320d764abb7f1ba993e9cc30b524770709f5d41747fced0c3dc879bc5bf9f8b58c6dd301324099bb393
|
7
|
+
data.tar.gz: ddd476f1691a578497c1d2b574c58245d16aa61c044aa88799cc2cb06e9e6a1f936cac79c2a1b964af389d54929aa3bb0ad0819207c990e88476936ac93c3119
|
data/lib/mkghrepo/cli.rb
CHANGED
@@ -40,8 +40,11 @@ module Mkghrepo
|
|
40
40
|
default: false
|
41
41
|
o.bool '-t',
|
42
42
|
'--create-team',
|
43
|
-
'creates a team called "<
|
43
|
+
'creates a team called "<repo>", default is false',
|
44
44
|
default: false
|
45
|
+
o.string '-ts',
|
46
|
+
'--team-suffix',
|
47
|
+
'adds a suffix to the team name, "<repo>-<team-suffix>"'
|
45
48
|
o.string '--token',
|
46
49
|
'sets github token, defaults from GITHUB_TOKEN',
|
47
50
|
default: ENV['GITHUB_TOKEN']
|
@@ -88,7 +91,7 @@ module Mkghrepo
|
|
88
91
|
File.open(file, 'r') do |f|
|
89
92
|
f.each_line do |a|
|
90
93
|
# Treat each line as a separate repo
|
91
|
-
process_lines(a, client, opts
|
94
|
+
process_lines(a, client, opts)
|
92
95
|
end
|
93
96
|
end
|
94
97
|
end
|
@@ -100,7 +103,7 @@ module Mkghrepo
|
|
100
103
|
begin
|
101
104
|
STDIN.read.split("\n").each do |a|
|
102
105
|
# Treat each line as a separate repo
|
103
|
-
process_lines(a, client, opts
|
106
|
+
process_lines(a, client, opts)
|
104
107
|
end
|
105
108
|
rescue Interrupt
|
106
109
|
# Trap a CTRL+C event and exit gracefully
|
@@ -109,7 +112,7 @@ module Mkghrepo
|
|
109
112
|
end
|
110
113
|
end
|
111
114
|
|
112
|
-
def process_lines(line, client,
|
115
|
+
def process_lines(line, client, opts)
|
113
116
|
# Split the line using space as delimiter, format is:
|
114
117
|
# <org>/<repo> <user1> <user2> ... <userN>
|
115
118
|
# or
|
@@ -117,20 +120,20 @@ module Mkghrepo
|
|
117
120
|
@logger.debug("processing #{line.strip}")
|
118
121
|
matches = line.split(' ')
|
119
122
|
repo = matches[0]
|
120
|
-
create_repo(client, repo,
|
123
|
+
create_repo(client, repo, opts)
|
121
124
|
|
122
125
|
# If no users are specified or create_team was not enabled
|
123
|
-
return if matches.length < 2 || create_team == false
|
126
|
+
return if matches.length < 2 || opts[:create_team] == false
|
124
127
|
# create team and whatever
|
125
128
|
if repo.include? '/'
|
126
|
-
process_team(client, repo, matches[1..matches.count])
|
129
|
+
process_team(client, repo, matches[1..matches.count], opts)
|
127
130
|
else
|
128
131
|
@logger.warn("Not creating Team for #{repo}, only orgs support teams")
|
129
132
|
end
|
130
133
|
end
|
131
134
|
|
132
|
-
def process_team(client, repo, users)
|
133
|
-
team = create_team(client, repo)
|
135
|
+
def process_team(client, repo, users, opts)
|
136
|
+
team = create_team(client, repo, opts)
|
134
137
|
users.each do |user|
|
135
138
|
add_user_to_team(client, user, team.id) if team.respond_to? :id
|
136
139
|
end
|
@@ -152,17 +155,21 @@ module Mkghrepo
|
|
152
155
|
end
|
153
156
|
end
|
154
157
|
|
155
|
-
def create_repo(client, repo,
|
158
|
+
def create_repo(client, repo, opts)
|
156
159
|
@logger.debug("Creating repo named: #{repo}")
|
157
|
-
client.create_repo(repo, private)
|
160
|
+
client.create_repo(repo, opts[:private])
|
158
161
|
rescue Octokit::Error => e
|
159
162
|
parse_error(repo, e)
|
160
163
|
else
|
161
164
|
@logger.info("Succesfully created repository: #{repo}")
|
162
165
|
end
|
163
166
|
|
164
|
-
def create_team(client, repo)
|
165
|
-
|
167
|
+
def create_team(client, repo, opts)
|
168
|
+
if opts[:team_suffix]
|
169
|
+
team_name = repo.rpartition('/').last + '-' + opts[:team_suffix]
|
170
|
+
else
|
171
|
+
team_name = repo.rpartition('/').last
|
172
|
+
end
|
166
173
|
@logger.debug("Creating team named: #{team_name}")
|
167
174
|
team = client.create_team(repo, team_name, 'push')
|
168
175
|
rescue Octokit::Error => e
|
data/lib/mkghrepo/repo.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
require 'octokit'
|
3
3
|
|
4
|
+
PREVIEW_API_HEADER = 'application/vnd.github.ironman-preview+json'
|
5
|
+
|
4
6
|
module Mkghrepo
|
5
7
|
# Repo provides an interface to github repos
|
6
8
|
class Repo
|
@@ -32,11 +34,15 @@ module Mkghrepo
|
|
32
34
|
@client.create_team(organization,
|
33
35
|
name: team_name,
|
34
36
|
repo_names: [repo],
|
35
|
-
permission: permissions
|
37
|
+
permission: permissions,
|
38
|
+
privacy: 'closed',
|
39
|
+
accept: PREVIEW_API_HEADER)
|
36
40
|
end
|
37
41
|
|
38
42
|
def add_user_to_team(user, team_id)
|
39
|
-
@client.
|
43
|
+
@client.add_team_membership(team_id, user,
|
44
|
+
role: 'maintainer',
|
45
|
+
accept: PREVIEW_API_HEADER)
|
40
46
|
end
|
41
47
|
end
|
42
48
|
end
|
data/lib/mkghrepo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mkghrepo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabio Rapposelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octokit
|