Class: SecretHub::GitHubClient
- Inherits:
-
Object
- Object
- SecretHub::GitHubClient
- Includes:
- HTTParty, Sodium
- Defined in:
- lib/secret_hub/github_client.rb
Instance Method Summary collapse
-
#delete_secret(repo, name) ⇒ Object
DELETE /repos/:owner/:repo/actions/secrets/:name.
-
#initialize ⇒ GitHubClient
constructor
A new instance of GitHubClient.
-
#public_key(repo) ⇒ Object
GET /repos/:owner/:repo/actions/secrets/public-key.
-
#put_secret(repo, name, value) ⇒ Object
PUT /repos/:owner/:repo/actions/secrets/:name.
-
#secrets(repo) ⇒ Object
GET /repos/:owner/:repo/actions/secrets.
Methods included from Sodium
Constructor Details
#initialize ⇒ GitHubClient
Returns a new instance of GitHubClient.
9 10 11 |
# File 'lib/secret_hub/github_client.rb', line 9 def initialize self.class.base_uri ENV['SECRET_HUB_API_BASE'] || 'https://api.github.com' end |
Instance Method Details
#delete_secret(repo, name) ⇒ Object
DELETE /repos/:owner/:repo/actions/secrets/:name
34 35 36 |
# File 'lib/secret_hub/github_client.rb', line 34 def delete_secret(repo, name) delete "/repos/#{repo}/actions/secrets/#{name}" end |
#public_key(repo) ⇒ Object
GET /repos/:owner/:repo/actions/secrets/public-key
14 15 16 |
# File 'lib/secret_hub/github_client.rb', line 14 def public_key(repo) public_keys[repo] ||= get("/repos/#{repo}/actions/secrets/public-key") end |
#put_secret(repo, name, value) ⇒ Object
PUT /repos/:owner/:repo/actions/secrets/:name
25 26 27 28 29 30 31 |
# File 'lib/secret_hub/github_client.rb', line 25 def put_secret(repo, name, value) secret = encrypt_for_repo repo, value key_id = public_key(repo)['key_id'] put "/repos/#{repo}/actions/secrets/#{name}", encrypted_value: secret, key_id: key_id end |
#secrets(repo) ⇒ Object
GET /repos/:owner/:repo/actions/secrets
19 20 21 22 |
# File 'lib/secret_hub/github_client.rb', line 19 def secrets(repo) response = get "/repos/#{repo}/actions/secrets" response['secrets'].map { |s| s['name'] } end |