add-to-org 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +24 -0
  3. data/.rubocop.yml +8 -0
  4. data/.rubocop_todo.yml +100 -0
  5. data/Gemfile +3 -1
  6. data/Rakefile +5 -3
  7. data/add-to-org.gemspec +24 -21
  8. data/bower.json +1 -3
  9. data/lib/add-to-org/helpers.rb +6 -5
  10. data/lib/add-to-org/version.rb +3 -1
  11. data/lib/add-to-org/views/layout.erb +1 -12
  12. data/lib/add-to-org.rb +17 -18
  13. data/script/cibuild +1 -0
  14. data/spec/add-to-org-helpers_spec.rb +43 -40
  15. data/spec/add-to-org_spec.rb +72 -68
  16. data/spec/spec_helper.rb +14 -12
  17. metadata +73 -69
  18. data/.ruby-version +0 -1
  19. data/lib/add-to-org/public/vendor/bootstrap/.bower.json +0 -45
  20. data/lib/add-to-org/public/vendor/bootstrap/LICENSE +0 -21
  21. data/lib/add-to-org/public/vendor/bootstrap/bower.json +0 -34
  22. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap-theme.css +0 -587
  23. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap-theme.css.map +0 -1
  24. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap-theme.min.css +0 -6
  25. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap-theme.min.css.map +0 -1
  26. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap.css +0 -6760
  27. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap.css.map +0 -1
  28. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap.min.css +0 -6
  29. data/lib/add-to-org/public/vendor/bootstrap/dist/css/bootstrap.min.css.map +0 -1
  30. data/lib/add-to-org/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  31. data/lib/add-to-org/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +0 -288
  32. data/lib/add-to-org/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  33. data/lib/add-to-org/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  34. data/lib/add-to-org/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  35. data/lib/add-to-org/public/vendor/bootstrap/dist/js/bootstrap.js +0 -2363
  36. data/lib/add-to-org/public/vendor/bootstrap/dist/js/bootstrap.min.js +0 -7
  37. data/lib/add-to-org/public/vendor/bootstrap/dist/js/npm.js +0 -13
  38. data/lib/add-to-org/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  39. data/lib/add-to-org/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg +0 -288
  40. data/lib/add-to-org/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  41. data/lib/add-to-org/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  42. data/lib/add-to-org/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  43. data/lib/add-to-org/public/vendor/bootstrap/package.json +0 -87
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 95d00b99b3102b0f8ff7ac6060e294cd43cf0160
4
- data.tar.gz: 7ca4573c5288b5da29d255a117e02323b0baf4b9
2
+ SHA256:
3
+ metadata.gz: d6e1d519910bd9dae03bcb2c8cea47fcebb6fb188c48d7103dfec6e1a40df664
4
+ data.tar.gz: 5ef8eb34932716326573c30beb922c55b2549bf5cb2d0ce2cd273ddd8ef409b1
5
5
  SHA512:
6
- metadata.gz: 20d4348d9c16cf275cc1e6f81624ad045ec47b70c350bcaa30720e85c0baa0347020fed3abc489da849228f0023df49b971fe7bff952351c8d8c8295076faece
7
- data.tar.gz: 1006dd88963ab9ac61d91b422d2c4c5296bf6d261dad051b5390280cdaeb56888e6b14a7379b9d7b211a34b725c7acd2010843db3bb81c0da879417b72e43279
6
+ metadata.gz: 336633b4e2062a6e8de5411bf38ae7cab6b085a626b7af679f83a880d5781d3713933df4bf5434d2b3f09b532dafe177364f88e02274fd2c8657540acfa7b983
7
+ data.tar.gz: 4b41e21b69c44f9109b47ba0408dc6ff63400d481bbc5738be4a035c35a0597a1e41d0d2045942749dba06fcf769d8e01561a6908a7b0009666f8e0cff6ce5b6
@@ -0,0 +1,24 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v2
16
+
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: 3.0
21
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
22
+
23
+ - name: Run tests
24
+ run: script/cibuild
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require:
4
+ - rubocop-performance
5
+ - rubocop-rspec
6
+
7
+ AllCops:
8
+ NewCops: enable
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,100 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2021-10-07 20:24:39 UTC using RuboCop version 1.22.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Configuration parameters: Include.
11
+ # Include: **/*.gemspec
12
+ Gemspec/RequiredRubyVersion:
13
+ Exclude:
14
+ - 'add-to-org.gemspec'
15
+
16
+ # Offense count: 3
17
+ # Configuration parameters: IgnoredMethods.
18
+ Lint/AmbiguousBlockAssociation:
19
+ Exclude:
20
+ - 'lib/add-to-org.rb'
21
+
22
+ # Offense count: 1
23
+ # Configuration parameters: AllowedMethods.
24
+ # AllowedMethods: enums
25
+ Lint/ConstantDefinitionInBlock:
26
+ Exclude:
27
+ - 'spec/add-to-org-helpers_spec.rb'
28
+
29
+ # Offense count: 4
30
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
31
+ # IgnoredMethods: refine
32
+ Metrics/BlockLength:
33
+ Max: 88
34
+
35
+ # Offense count: 1
36
+ Naming/AccessorMethodName:
37
+ Exclude:
38
+ - 'lib/add-to-org.rb'
39
+
40
+ # Offense count: 3
41
+ # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, Regex, IgnoreExecutableScripts, AllowedAcronyms.
42
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
43
+ Naming/FileName:
44
+ Exclude:
45
+ - 'lib/add-to-org.rb'
46
+ - 'spec/add-to-org-helpers_spec.rb'
47
+ - 'spec/add-to-org_spec.rb'
48
+
49
+ # Offense count: 3
50
+ # Configuration parameters: IgnoredMetadata.
51
+ RSpec/DescribeClass:
52
+ Exclude:
53
+ - '**/spec/features/**/*'
54
+ - '**/spec/requests/**/*'
55
+ - '**/spec/routing/**/*'
56
+ - '**/spec/system/**/*'
57
+ - '**/spec/views/**/*'
58
+ - 'spec/add-to-org_spec.rb'
59
+
60
+ # Offense count: 6
61
+ # Configuration parameters: CountAsOne.
62
+ RSpec/ExampleLength:
63
+ Max: 16
64
+
65
+ # Offense count: 14
66
+ # Configuration parameters: AssignmentOnly.
67
+ RSpec/InstanceVariable:
68
+ Exclude:
69
+ - 'spec/add-to-org-helpers_spec.rb'
70
+ - 'spec/add-to-org_spec.rb'
71
+
72
+ # Offense count: 1
73
+ RSpec/LeakyConstantDeclaration:
74
+ Exclude:
75
+ - 'spec/add-to-org-helpers_spec.rb'
76
+
77
+ # Offense count: 1
78
+ RSpec/MultipleDescribes:
79
+ Exclude:
80
+ - 'spec/add-to-org_spec.rb'
81
+
82
+ # Offense count: 9
83
+ RSpec/MultipleExpectations:
84
+ Max: 6
85
+
86
+ # Offense count: 3
87
+ # Configuration parameters: AllowedConstants.
88
+ Style/Documentation:
89
+ Exclude:
90
+ - 'spec/**/*'
91
+ - 'test/**/*'
92
+ - 'lib/add-to-org.rb'
93
+ - 'lib/add-to-org/helpers.rb'
94
+
95
+ # Offense count: 1
96
+ # Cop supports --auto-correct.
97
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
98
+ # URISchemes: http, https
99
+ Layout/LineLength:
100
+ Max: 124
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/Rakefile CHANGED
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems/package_task'
2
4
  require 'rubygems/specification'
3
5
  require 'bundler'
4
6
 
5
- task :default => [:spec]
7
+ task default: [:spec]
6
8
 
7
9
  require 'rspec/core/rake_task'
8
- desc "Run specs"
10
+ desc 'Run specs'
9
11
  RSpec::Core::RakeTask.new do |t|
10
12
  t.pattern = 'spec/**/*_spec.rb'
11
- t.rspec_opts = ["--order", "rand", "--color"]
13
+ t.rspec_opts = ['--order', 'rand', '--color']
12
14
  end
data/add-to-org.gemspec CHANGED
@@ -1,29 +1,32 @@
1
- require File.expand_path('../lib/add-to-org/version', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('lib/add-to-org/version', __dir__)
2
4
 
3
5
  Gem::Specification.new do |s|
4
- s.name = "add-to-org"
5
- s.summary = "A simple Oauth App to automatically add users to an organization"
6
- s.description = "A simple Oauth App to automatically add users to an organization."
6
+ s.name = 'add-to-org'
7
+ s.summary = 'A simple Oauth App to automatically add users to an organization'
8
+ s.description = 'A simple Oauth App to automatically add users to an organization.'
7
9
  s.version = AddToOrg::VERSION
8
- s.authors = ["Ben Balter"]
9
- s.email = "ben.balter@github.com"
10
- s.homepage = "https://github.com/benbalter/add-to-org"
11
- s.licenses = ["MIT"]
10
+ s.authors = ['Ben Balter']
11
+ s.email = 'ben.balter@github.com'
12
+ s.homepage = 'https://github.com/benbalter/add-to-org'
13
+ s.licenses = ['MIT']
12
14
 
13
15
  s.files = `git ls-files`.split("\n")
14
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
- s.require_paths = ["lib"]
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
+ s.require_paths = ['lib']
17
19
 
18
- s.require_paths = ["lib"]
19
- s.add_dependency "warden-github", "~> 1.1"
20
- s.add_dependency "sinatra_auth_github", "~> 1.1"
21
- s.add_dependency "octokit", "~> 4.0"
22
- s.add_dependency "rack-ssl-enforcer", "~> 0.2"
23
- s.add_dependency "dotenv", "~> 2.0"
24
- s.add_dependency "rake", "~> 10.3"
25
- s.add_development_dependency "rspec", "~> 3.1"
26
- s.add_development_dependency "rack-test", "~> 0.6"
27
- s.add_development_dependency "webmock", "~> 1.2 "
28
- s.add_development_dependency "pry", "~> 0.10"
20
+ s.add_dependency 'dotenv', '~> 2.0'
21
+ s.add_dependency 'octokit', '~> 4.0'
22
+ s.add_dependency 'rack-ssl-enforcer', '~> 0.2'
23
+ s.add_dependency 'rake'
24
+ s.add_dependency 'sinatra_auth_github', '~> 2.0'
25
+ s.add_development_dependency 'pry'
26
+ s.add_development_dependency 'rack-test'
27
+ s.add_development_dependency 'rspec', '~> 3.1'
28
+ s.add_development_dependency 'rubocop'
29
+ s.add_development_dependency 'rubocop-performance'
30
+ s.add_development_dependency 'rubocop-rspec'
31
+ s.add_development_dependency 'webmock'
29
32
  end
data/bower.json CHANGED
@@ -9,7 +9,5 @@
9
9
  "moduleType": [],
10
10
  "license": "MIT",
11
11
  "private": true,
12
- "dependencies": {
13
- "bootstrap": "~3.3.6"
14
- }
12
+ "dependencies": {}
15
13
  }
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AddToOrg
2
4
  module Helpers
3
-
4
5
  # query api for the user's verified emails
5
6
  def verified_emails
6
- emails = client.emails :accept => 'application/vnd.github.v3'
7
- emails.select { |email| email.verified }
7
+ emails = client.emails accept: 'application/vnd.github.v3'
8
+ emails.select(&:verified)
8
9
  end
9
10
 
10
11
  def valid?
@@ -15,12 +16,12 @@ module AddToOrg
15
16
 
16
17
  # user client
17
18
  def client
18
- @client ||= Octokit::Client.new :access_token => github_user.token
19
+ @client ||= Octokit::Client.new access_token: github_user.token
19
20
  end
20
21
 
21
22
  # org admin client
22
23
  def sudo_client
23
- @sudo_client ||= Octokit::Client.new :access_token => ENV['GITHUB_TOKEN']
24
+ @sudo_client ||= Octokit::Client.new access_token: ENV['GITHUB_TOKEN']
24
25
  end
25
26
 
26
27
  # true if user is already a member of the org
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AddToOrg
2
- VERSION = "3.0.1"
4
+ VERSION = '3.0.3'
3
5
  end
@@ -2,22 +2,11 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
- <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
6
  <title>Join <%= ENV['GITHUB_ORG_ID'] %></title>
8
-
9
- <link rel="stylesheet" href="/vendor/bootstrap/dist/css/bootstrap.min.css">
10
- <link rel="stylesheet" href="/vendor/bootstrap/dist/css/bootstrap-theme.min.css">
11
7
  <style>
12
8
  body { text-align: center; padding-top: 100px; }
13
9
  </style>
14
-
15
- <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
16
- <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
17
- <!--[if lt IE 9]>
18
- <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
19
- <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
20
- <![endif]-->
21
10
  </head>
22
11
  <body>
23
12
  <div class="container">
data/lib/add-to-org.rb CHANGED
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'octokit'
2
4
  require 'sinatra_auth_github'
3
5
  require 'dotenv'
4
6
  require_relative 'add-to-org/helpers'
5
7
 
6
8
  module AddToOrg
7
-
8
9
  def self.root
9
- File.expand_path "./add-to-org", File.dirname(__FILE__)
10
+ File.expand_path './add-to-org', File.dirname(__FILE__)
10
11
  end
11
12
 
12
13
  def self.views_dir
13
- @views_dir ||= File.expand_path "views", AddToOrg.root
14
+ @views_dir ||= File.expand_path 'views', AddToOrg.root
14
15
  end
15
16
 
16
17
  def self.views_dir=(dir)
@@ -18,7 +19,7 @@ module AddToOrg
18
19
  end
19
20
 
20
21
  def self.public_dir
21
- @public_dir ||= File.expand_path "public", AddToOrg.root
22
+ @public_dir ||= File.expand_path 'public', AddToOrg.root
22
23
  end
23
24
 
24
25
  def self.public_dir=(dir)
@@ -34,28 +35,27 @@ module AddToOrg
34
35
  end
35
36
 
36
37
  def self.validator
37
- @validator ||= Proc.new { raise "You must define a custom validator to determine eligibility" }
38
+ @validator ||= proc { raise 'You must define a custom validator to determine eligibility' }
38
39
  end
39
40
 
40
41
  class App < Sinatra::Base
41
-
42
42
  include AddToOrg::Helpers
43
43
 
44
44
  set :github_options, {
45
- :scopes => "read:org,user:email"
45
+ scopes: 'read:org,user:email'
46
46
  }
47
47
 
48
48
  use Rack::Session::Cookie, {
49
- :http_only => true,
50
- :secret => ENV['SESSION_SECRET'] || SecureRandom.hex
49
+ http_only: true,
50
+ secret: ENV['SESSION_SECRET'] || SecureRandom.hex
51
51
  }
52
52
 
53
53
  ENV['WARDEN_GITHUB_VERIFIER_SECRET'] ||= SecureRandom.hex
54
54
  register Sinatra::Auth::Github
55
55
 
56
- set :views, Proc.new { AddToOrg.views_dir }
57
- set :root, Proc.new { AddToOrg.root }
58
- set :public_folder, Proc.new { AddToOrg.public_dir }
56
+ set :views, proc { AddToOrg.views_dir }
57
+ set :root, proc { AddToOrg.root }
58
+ set :public_folder, proc { AddToOrg.public_dir }
59
59
 
60
60
  # require ssl
61
61
  configure :production do
@@ -65,12 +65,12 @@ module AddToOrg
65
65
 
66
66
  # dat auth
67
67
  before do
68
- session[:return_to] = request.url #store requested URL for post-auth redirect
68
+ session[:return_to] = request.url # store requested URL for post-auth redirect
69
69
  authenticate!
70
70
  end
71
71
 
72
- def success(locals={})
73
- halt erb :success, :locals => locals
72
+ def success(locals = {})
73
+ halt erb :success, locals: locals
74
74
  end
75
75
 
76
76
  def forbidden
@@ -84,14 +84,13 @@ module AddToOrg
84
84
  end
85
85
 
86
86
  # request a GitHub (authenticated) URL
87
- get "/*" do
88
-
87
+ get '/*' do
89
88
  path = request.path || "/#{team_id}"
90
89
  halt redirect "https://github.com#{path}", 302 if member?
91
90
  forbidden unless valid?
92
91
 
93
92
  if add
94
- success({ :redirect => "https://github.com#{path}", :org_id => org_id })
93
+ success({ redirect: "https://github.com#{path}", org_id: org_id })
95
94
  else
96
95
  error
97
96
  end
data/script/cibuild CHANGED
@@ -4,4 +4,5 @@
4
4
  set -e
5
5
 
6
6
  bundle exec rake spec
7
+ bundle exec rubocop
7
8
  bundle exec gem build add-to-org.gemspec
@@ -1,85 +1,88 @@
1
- require "spec_helper"
1
+ # frozen_string_literal: true
2
2
 
3
- describe "AddToOrgHelpers" do
3
+ require 'spec_helper'
4
4
 
5
+ describe 'AddToOrgHelpers' do
5
6
  class TestHelper
6
7
  include AddToOrg::Helpers
7
8
 
8
9
  def github_user
9
- User.make({"login" => "benbaltertest"}, "asdf1234")
10
+ User.make({ 'login' => 'benbaltertest' }, 'asdf1234')
10
11
  end
11
12
 
12
- def initialize(path=nil)
13
+ def initialize(path = nil)
13
14
  @path = path
14
15
  end
15
16
 
16
17
  def request
17
- Rack::Request.new("PATH_INFO" => @path)
18
+ Rack::Request.new('PATH_INFO' => @path)
18
19
  end
19
20
  end
20
21
 
21
- before(:each) do
22
+ before do
22
23
  @helper = TestHelper.new
23
24
  end
24
25
 
25
- it "initializes the client" do
26
+ it 'initializes the client' do
26
27
  expect(@helper.send(:client).class).to eql(Octokit::Client)
27
- expect(@helper.send(:client).instance_variable_get("@access_token")).to eql("asdf1234")
28
+ expect(@helper.send(:client).instance_variable_get('@access_token')).to eql('asdf1234')
28
29
  end
29
30
 
30
- it "initializes the sudo client" do
31
- with_env "GITHUB_TOKEN", "SUDO_TOKEN" do
31
+ it 'initializes the sudo client' do
32
+ with_env 'GITHUB_TOKEN', 'SUDO_TOKEN' do
32
33
  expect(@helper.send(:sudo_client).class).to eql(Octokit::Client)
33
- expect(@helper.send(:sudo_client).instance_variable_get("@access_token")).to eql("SUDO_TOKEN")
34
+ expect(@helper.send(:sudo_client).instance_variable_get('@access_token')).to eql('SUDO_TOKEN')
34
35
  end
35
36
  end
36
37
 
37
- it "retrieves a users verified emails" do
38
- stub_request(:get, "https://api.github.com/user/emails").
39
- to_return(:status => 200, :body => fixture("emails.json"), :headers => { 'Content-Type'=>'application/json' })
40
- expect(@helper.verified_emails.count).to eql(1)
41
- expect(@helper.verified_emails.first[:email]).to eql("octocat@github.com")
38
+ it 'retrieves a users verified emails' do
39
+ stub_request(:get, 'https://api.github.com/user/emails')
40
+ .to_return(status: 200, body: fixture('emails.json'), headers: { 'Content-Type' => 'application/json' })
41
+ expect(@helper.verified_emails.count).to be(1)
42
+ expect(@helper.verified_emails.first[:email]).to eql('octocat@github.com')
42
43
  end
43
44
 
44
- it "retrieves the org id" do
45
- with_env "GITHUB_ORG_ID", "some_org" do
46
- expect(@helper.send(:org_id)).to eql("some_org")
45
+ it 'retrieves the org id' do
46
+ with_env 'GITHUB_ORG_ID', 'some_org' do
47
+ expect(@helper.send(:org_id)).to eql('some_org')
47
48
  end
48
49
  end
49
50
 
50
- it "retrieves the team id" do
51
- with_env "GITHUB_TEAM_ID", "1234" do
52
- expect(@helper.send(:team_id)).to eql("1234")
51
+ it 'retrieves the team id' do
52
+ with_env 'GITHUB_TEAM_ID', '1234' do
53
+ expect(@helper.send(:team_id)).to eql('1234')
53
54
  end
54
55
  end
55
56
 
56
- it "knows if a user is an org member" do
57
- with_env "GITHUB_ORG_ID", "some_org" do
58
- stub_request(:get, "https://api.github.com/orgs/some_org/members/benbaltertest").
59
- to_return(:status => 204)
60
- expect(@helper.send(:member?)).to eql(true)
57
+ it 'knows if a user is an org member' do
58
+ with_env 'GITHUB_ORG_ID', 'some_org' do
59
+ stub_request(:get, 'https://api.github.com/orgs/some_org/members/benbaltertest')
60
+ .to_return(status: 204)
61
+ expect(@helper.send(:member?)).to be(true)
61
62
 
62
- stub_request(:get, "https://api.github.com/orgs/some_org/members/benbaltertest").
63
- to_return(:status => 404)
64
- expect(@helper.send(:member?)).to eql(false)
63
+ stub_request(:get, 'https://api.github.com/orgs/some_org/members/benbaltertest')
64
+ .to_return(status: 404)
65
+ expect(@helper.send(:member?)).to be(false)
65
66
  end
66
67
  end
67
68
 
68
- it "knows how to add a mebmer to an org" do
69
- with_env "GITHUB_ORG_ID", "some_org" do
70
- stub = stub_request(:put, "https://api.github.com/teams/memberships/benbaltertest").
71
- to_return(:status => 204)
72
- @helper.send(:add)
73
- expect(stub).to have_been_requested
69
+ it 'knows how to add a member to an org' do
70
+ with_env 'GITHUB_ORG_ID', 'some_org' do
71
+ with_env 'GITHUB_TEAM_ID', '1234' do
72
+ stub = stub_request(:put, 'https://api.github.com/teams/1234/memberships/benbaltertest')
73
+ .to_return(status: 204)
74
+ @helper.send(:add)
75
+ expect(stub).to have_been_requested
76
+ end
74
77
  end
75
78
  end
76
79
 
77
- it "throws an error if valid? is not defined" do
78
- stub_request(:get, "https://api.github.com/user/emails").
79
- to_return(:status => 200, :body => fixture("emails.json"), :headers => { 'Content-Type'=>'application/json' })
80
+ it 'throws an error if valid? is not defined' do
81
+ stub_request(:get, 'https://api.github.com/user/emails')
82
+ .to_return(status: 200, body: fixture('emails.json'), headers: { 'Content-Type' => 'application/json' })
80
83
 
81
84
  AddToOrg.validator = nil
82
- error = "You must define a custom validator to determine eligibility"
85
+ error = 'You must define a custom validator to determine eligibility'
83
86
  expect { @helper.valid? }.to raise_error(error)
84
87
  end
85
88
  end