github-app-auth 0.3.0 → 0.4.0

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
  SHA256:
3
- metadata.gz: 3be0a29d282ba73edc1e0b3c7816cf53b9c335b3c46f10b30b3b7a731ec0b584
4
- data.tar.gz: 0b7440d8f9bdcfb1c59ddcb11526120db6cdcd773c5f8a4d71bb0bde49fe5c20
3
+ metadata.gz: 5dfa01cb297c9e23c8f0342a92500065145151061ccf3d5ccc0c9a88f6882500
4
+ data.tar.gz: 4e320ac747cde80c1734b40d67463be810beadb303d08ed87ce35f461f1c6f0f
5
5
  SHA512:
6
- metadata.gz: a3c04c0f3b7e4c5089cdf9a2ab970ce9ccb74636f32590b0f2465e2b1408575630c3c2e606bfe193e8520c15d35e388ce1ca420a978578670f1f5faa44f92ede
7
- data.tar.gz: 0b34fca8d227fa565563efad2abb2a2c5f8245ddfdb091a5f4eb4089f9c70e5ab6a5f07525ca49a277c9ef0a5922937162fd4ce9f6ce1297446cc3a06b5df347
6
+ metadata.gz: fb5af34f92a868bdfe6276e19784ae2f8366bee7df538e38aa279558f1038510485a295b714a266b9cc11f778968507316214c276565e3fc9c46b51cdee20015
7
+ data.tar.gz: 7c203243829d4d54557616f0d514f0ac4da37aff788846d6bfcc89253e4013a16ef6bad1710bf75441dfa7138e061a9a8a4274a92c3bca1f5cca3f12841e32f3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0
4
+ - remove deprecated app_* methods that were only repository installations
5
+ - change require to 'github_app_auth' when adding linter
6
+
3
7
  ## 0.3.0
4
8
  - deprecates app_* methods that were only repository installations
5
9
  - adds methods to do organization, repository, and user installations
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # GitHub::App::Auth
2
2
 
3
+ ![Tests](https://github.com/hortoncd/github-app-auth/actions/workflows/tests.yml/badge.svg)
4
+ [![Gem Version](https://badge.fury.io/rb/github-app-auth.svg)](https://badge.fury.io/rb/github-app-auth)
5
+
3
6
  A gem to make (at least) some forms of GitHub App authentication easy. It is built as an includable module, with the option of a class to
4
7
  instantiate if preferred.
5
8
 
@@ -22,7 +25,7 @@ Or install it yourself as:
22
25
  ## Usage
23
26
 
24
27
  ```
25
- require "github-app-auth"
28
+ require "github_app_auth"
26
29
  ```
27
30
 
28
31
  Include the module in your class
@@ -99,12 +102,12 @@ client = Octokit::Client.new({ bearer_token: token, ... })
99
102
 
100
103
  Auth as an application installation for a user and return an Octokit::Client.
101
104
  ```
102
- client = user_installation_client("myorg")
105
+ client = user_installation_client("myuser")
103
106
  ```
104
107
 
105
108
  Alternatively you can retrieve the token, and then set up your own GitHub client (Octokit or whatever you prefer) as needed.
106
109
  ```
107
- token = user_installation_token("myorg")
110
+ token = user_installation_token("myuser")
108
111
  client = Octokit::Client.new({ bearer_token: token, ... })
109
112
  ```
110
113
 
@@ -1,12 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "jwt"
2
4
  require "openssl"
3
5
  require_relative "client"
4
6
 
5
7
  module GitHub
6
8
  module App
9
+ # GitHub App Authentication
7
10
  module Auth
8
11
  def app_client(options = {})
9
- client(:bearer_token => app_token(options))
12
+ client(bearer_token: app_token(options))
10
13
  end
11
14
 
12
15
  # options: the following can be passed via the options hash. if missing
@@ -32,19 +35,11 @@ module GitHub
32
35
  end
33
36
 
34
37
  def app_id(options = {})
35
- if options[:github_app_id]
36
- options[:github_app_id]
37
- else
38
- ENV["GITHUB_APP_ID"]
39
- end
38
+ options[:github_app_id] || ENV["GITHUB_APP_ID"]
40
39
  end
41
40
 
42
41
  def app_private_key(options = {})
43
- if options[:github_app_private_key]
44
- options[:github_app_private_key]
45
- else
46
- ENV["GITHUB_APP_PRIVATE_KEY"]
47
- end
42
+ options[:github_app_private_key] || ENV["GITHUB_APP_PRIVATE_KEY"]
48
43
  end
49
44
  end
50
45
  end
@@ -1,17 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitHub
2
4
  module App
5
+ # GitHub App Installation Authentication
3
6
  module Auth
4
- # legacy support because original only supported repo
5
- def app_installation_client(repo, options = {})
6
- puts "DEPRECATED: app_installation_client will be removed in v0.4.0, use repository_installation_client instead"
7
- client(bearer_token: app_installation_token(repo, options))
8
- end
9
-
10
- def app_installation_token(repo, options = {})
11
- puts "DEPRECATED: app_installation_token will be removed in v0.4.0, use repository_installation_token instead"
12
- installation_token(:repository, repo, options)
13
- end
14
-
15
7
  def organization_installation_client(org, options = {})
16
8
  client(bearer_token: organization_installation_token(org, options))
17
9
  end
@@ -38,19 +30,8 @@ module GitHub
38
30
 
39
31
  # Supported types are :organization, :repository, :user
40
32
  def installation_token(type, name, options = {})
41
- application_client = app_client(options)
42
- installation = begin
43
- case type
44
- when :organization
45
- application_client.find_organization_installation(name)
46
- when :repository
47
- application_client.find_repository_installation(name)
48
- when :user
49
- application_client.find_user_installation(name)
50
- else
51
- raise ArgumentError, "Unsupported installation type: #{type}"
52
- end
53
- end
33
+ application_client(options)
34
+ installation = installation_by_type(type, name)
54
35
 
55
36
  if installation.nil? || installation[:id].nil?
56
37
  raise GitHub::App::Auth::InstallationError, "Could not find installation for #{type}: #{name}"
@@ -60,8 +41,26 @@ module GitHub
60
41
  if resp.nil? || resp[:token].nil?
61
42
  raise GitHub::App::Auth::TokenError, "Could generate installation token for #{type}: #{name}"
62
43
  end
44
+
63
45
  resp[:token]
64
46
  end
47
+
48
+ def installation_by_type(type, name)
49
+ case type
50
+ when :organization
51
+ application_client.find_organization_installation(name)
52
+ when :repository
53
+ application_client.find_repository_installation(name)
54
+ when :user
55
+ application_client.find_user_installation(name)
56
+ else
57
+ raise ArgumentError, "Unsupported installation type: #{type}"
58
+ end
59
+ end
60
+
61
+ def application_client(options = {})
62
+ @application_client ||= app_client(options)
63
+ end
65
64
  end
66
65
  end
67
66
  end
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "octokit"
2
4
 
3
5
  module GitHub
4
6
  module App
7
+ # GitHub App client
5
8
  module Auth
6
9
  def client(options = {})
7
10
  Octokit::Client.new(options)
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GitHub
2
4
  module App
3
5
  module Auth
4
- VERSION = "0.3.0"
6
+ VERSION = "0.4.0"
5
7
  end
6
8
  end
7
9
  end
@@ -1,13 +1,16 @@
1
- require "github-app-auth/app"
2
- require "github-app-auth/app_installation"
3
- require "github-app-auth/version"
1
+ # frozen_string_literal: true
2
+
3
+ require "github_app_auth/app"
4
+ require "github_app_auth/app_installation"
5
+ require "github_app_auth/version"
4
6
 
5
7
  module GitHub
6
8
  module App
9
+ # GitHub App Authentication
7
10
  module Auth
8
11
  class Error < StandardError; end
9
12
  class InstallationError < Error; end
10
- class TokenError< Error; end
13
+ class TokenError < Error; end
11
14
 
12
15
  class AuthClass
13
16
  include GitHub::App::Auth
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-app-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Horton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-06 00:00:00.000000000 Z
11
+ date: 2023-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt
@@ -63,11 +63,11 @@ files:
63
63
  - CODE_OF_CONDUCT.md
64
64
  - LICENSE.txt
65
65
  - README.md
66
- - lib/github-app-auth.rb
67
- - lib/github-app-auth/app.rb
68
- - lib/github-app-auth/app_installation.rb
69
- - lib/github-app-auth/client.rb
70
- - lib/github-app-auth/version.rb
66
+ - lib/github_app_auth.rb
67
+ - lib/github_app_auth/app.rb
68
+ - lib/github_app_auth/app_installation.rb
69
+ - lib/github_app_auth/client.rb
70
+ - lib/github_app_auth/version.rb
71
71
  homepage: https://github.com/hortoncd/github-app-auth
72
72
  licenses:
73
73
  - MIT
@@ -83,7 +83,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - ">="
85
85
  - !ruby/object:Gem::Version
86
- version: 2.3.0
86
+ version: 3.0.0
87
87
  required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - ">="