shipit-engine 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 388efef49dd937f5f910c8d19da1161396422d27
4
- data.tar.gz: 92242ac143b9156d9a165cd70083aef0eb0be55b
3
+ metadata.gz: c98a29b6cd4e544b1891a31328fe343868d656bb
4
+ data.tar.gz: c46cef3fbb2c601c45adbcd5052337ff80996034
5
5
  SHA512:
6
- metadata.gz: ea8c7a0857f155ac526bd5c527f346fd847eabdfa0b7bd6a4f844b82f31172880062c5c912851000e06f17bd5f4c5dd4c597ccd2c7d1448ed8e5db82ecdcc4e4
7
- data.tar.gz: 7e32b5ade1af2005d4d65460ec30408f56e2896e63ec9efff06d5add0eb0f5d07a9986355eaa497339d388b88860fc346c931e3b32a400cda114a17719fd5ce7
6
+ metadata.gz: 318ea3b94e42aa292f5a31dd6a0dbac0e2b5d59bfedefdb600f9d3388a4a70e4038f84803aeab542bdd06f82c133ff7793e87f9464092d0666e2869c27271215
7
+ data.tar.gz: 0b698f6259872d236d42466447fedeac55936d80083cd2c7b78cdb7a69d8fa1a8c2fca228f703cfa6fe5e8f2fd8ec982c2100c748d8c2760c19b8874e6e7d6bf
data/README.md CHANGED
@@ -453,7 +453,11 @@ development:
453
453
 
454
454
  The value for `id` is your application's *Client ID*, and the value for `secret` is your application's *Client Secret* — both of these should appear on your application's GitHub page.
455
455
 
456
- The `teams` key is optional, and required only if you want to specify some teams which have access to the stack in Shipit.
456
+ The `teams` key is optional, and required only if you want to restrict access to a set of GitHub teams.
457
+
458
+ If it's missing the Shipit installation will be public unless you setup another authentication method.
459
+
460
+ After you change the list of time you have to invoke `bin/rake teams:fetch` in production so that a webhook is setup to keep the list of members up to date.
457
461
 
458
462
  For example:
459
463
 
@@ -1,3 +1,3 @@
1
1
  module Shipit
2
- VERSION = '0.8.2'
2
+ VERSION = '0.8.3'
3
3
  end
data/lib/shipit.rb CHANGED
@@ -111,8 +111,11 @@ module Shipit
111
111
  end
112
112
 
113
113
  def github_teams
114
- teams = (Array(github_oauth_credentials['team']) + Array(github_oauth_credentials['teams'])).sort.uniq
115
- @github_teams ||= teams.map { |t| Team.find_or_create_by_handle(t) }
114
+ @github_teams ||= github_teams_handles.map { |t| Team.find_or_create_by_handle(t) }
115
+ end
116
+
117
+ def github_teams_handles
118
+ (Array(github_oauth_credentials['team']) + Array(github_oauth_credentials['teams'])).sort.uniq
116
119
  end
117
120
 
118
121
  def github_oauth_id
@@ -0,0 +1,30 @@
1
+ namespace :teams do
2
+ desc "Import the members of each team configured through the github_oauth.teams config and attempt to set a webhook to keep the list updated"
3
+ task fetch: :environment do
4
+ handles = Shipit.github_teams_handles
5
+ if handles.empty?
6
+ puts "github_oauth.teams is empty"
7
+ else
8
+ handles.each do |handle|
9
+ puts "Fetching @#{handle} members"
10
+ begin
11
+ team = Shipit::Team.find_or_create_by_handle(handle)
12
+ team.refresh_members!
13
+ rescue Octokit::Unauthorized, Octokit::NotFound => error
14
+ puts "Failed to fetch @#{handle} members. Do you have enough permissions?"
15
+ puts "#{error.class}: #{error.message}"
16
+ end
17
+
18
+ if team
19
+ puts "Ensuring webhook presence for #{team.organization}"
20
+ begin
21
+ team.setup_hooks(async: false)
22
+ rescue Octokit::Unauthorized, Octokit::NotFound => error
23
+ puts "Failed to install webhook on #{team.organization}. Do you have enough permissions?"
24
+ puts "#{error.class}: #{error.message}"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shipit-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Boussier
@@ -582,7 +582,7 @@ files:
582
582
  - lib/snippets/push-to-heroku
583
583
  - lib/tasks/cron.rake
584
584
  - lib/tasks/dev.rake
585
- - lib/tasks/team.rake
585
+ - lib/tasks/teams.rake
586
586
  - lib/tasks/webhook.rake
587
587
  - test/controllers/api/base_controller_test.rb
588
588
  - test/controllers/api/deploys_controller_test.rb
data/lib/tasks/team.rake DELETED
@@ -1,10 +0,0 @@
1
- namespace :team do
2
- desc "Import a team and it's members from Github and install a webhook to monitor it"
3
- task fetch: :environment do
4
- handle = ENV['HANDLE']
5
- team = Shipit::Team.find_or_create_by_handle(handle)
6
- fail "Could not find team with handle: #{handle}" unless team
7
- team.setup_hooks(async: false)
8
- team.refresh_members!
9
- end
10
- end