Class: GithubAuthentication::Generator::App

Inherits:
Object
  • Object
show all
Defined in:
lib/github_authentication/generator/app.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pem:, installation_id:, app_id:) ⇒ App

Returns a new instance of App.



14
15
16
17
18
# File 'lib/github_authentication/generator/app.rb', line 14

def initialize(pem:, installation_id:, app_id:)
  @private_key = OpenSSL::PKey::RSA.new(pem)
  @installation_id = installation_id
  @app_id = app_id
end

Instance Attribute Details

#app_idObject (readonly)

Returns the value of attribute app_id.



12
13
14
# File 'lib/github_authentication/generator/app.rb', line 12

def app_id
  @app_id
end

#installation_idObject (readonly)

Returns the value of attribute installation_id.



12
13
14
# File 'lib/github_authentication/generator/app.rb', line 12

def installation_id
  @installation_id
end

Instance Method Details

#generateObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/github_authentication/generator/app.rb', line 20

def generate
  url = "https://api.github.com/app/installations/#{installation_id}/access_tokens"
  response = Http.post(url) do |request|
    request["Authorization"] = "Bearer #{jwt}"
    request["Accept"] = "application/vnd.github.machine-man-preview+json"
    request
  end

  unless response.is_a?(Net::HTTPSuccess)
    raise TokenGeneratorError, "[#{response.code}] #{response.body}"
  end

  Token.from_json(response.body)
end