Module: Legion::Extensions::Github::Runners::Releases
- Includes:
- Helpers::Client, Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/github/runners/releases.rb
Constant Summary
Helpers::Client::CREDENTIAL_RESOLVERS
Helpers::TokenCache::TOKEN_BUFFER_SECONDS
Instance Method Summary
collapse
-
#create_release(owner:, repo:, tag_name:, name: nil, body: nil, target_commitish: nil, draft: false, prerelease: false, generate_release_notes: false) ⇒ Object
rubocop:disable Metrics/ParameterLists.
-
#delete_release(owner:, repo:, release_id:) ⇒ Object
-
#delete_release_asset(owner:, repo:, asset_id:) ⇒ Object
-
#get_latest_release(owner:, repo:) ⇒ Object
-
#get_release(owner:, repo:, release_id:) ⇒ Object
-
#get_release_by_tag(owner:, repo:, tag:) ⇒ Object
-
#list_release_assets(owner:, repo:, release_id:, per_page: 30, page: 1) ⇒ Object
-
#list_releases(owner:, repo:, per_page: 30, page: 1) ⇒ Object
-
#update_release(owner:, repo:, release_id:, **opts) ⇒ Object
#connection, #gh_cli_token_output, #max_fallback_retries, #on_rate_limit, #on_scope_authorized, #on_scope_denied, #resolve_broker_app, #resolve_credential, #resolve_env, #resolve_gh_cli, #resolve_next_credential, #resolve_settings_app, #resolve_settings_delegated, #resolve_settings_pat, #resolve_vault_app, #resolve_vault_delegated, #resolve_vault_pat
#credential_fingerprint, #invalidate_scope, #mark_rate_limited, #rate_limited?, #register_scope, #scope_status
#fetch_token, #mark_rate_limited, #rate_limited?, #store_token
Instance Method Details
#create_release(owner:, repo:, tag_name:, name: nil, body: nil, target_commitish: nil, draft: false, prerelease: false, generate_release_notes: false) ⇒ Object
rubocop:disable Metrics/ParameterLists
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 40
def create_release(owner:, repo:, tag_name:, name: nil, body: nil, target_commitish: nil, draft: false, prerelease: false,
generate_release_notes: false, **)
payload = { tag_name: tag_name, name: name, body: body,
target_commitish: target_commitish, draft: draft,
prerelease: prerelease,
generate_release_notes: generate_release_notes }.compact
response = connection(owner: owner, repo: repo, **).post(
"/repos/#{owner}/#{repo}/releases", payload
)
{ result: response.body }
end
|
#delete_release(owner:, repo:, release_id:) ⇒ Object
61
62
63
64
65
66
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 61
def delete_release(owner:, repo:, release_id:, **)
response = connection(owner: owner, repo: repo, **).delete(
"/repos/#{owner}/#{repo}/releases/#{release_id}"
)
{ result: response.status == 204 }
end
|
#delete_release_asset(owner:, repo:, asset_id:) ⇒ Object
76
77
78
79
80
81
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 76
def delete_release_asset(owner:, repo:, asset_id:, **)
response = connection(owner: owner, repo: repo, **).delete(
"/repos/#{owner}/#{repo}/releases/assets/#{asset_id}"
)
{ result: response.status == 204 }
end
|
#get_latest_release(owner:, repo:) ⇒ Object
26
27
28
29
30
31
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 26
def get_latest_release(owner:, repo:, **)
response = connection(owner: owner, repo: repo, **).get(
"/repos/#{owner}/#{repo}/releases/latest"
)
{ result: response.body }
end
|
#get_release(owner:, repo:, release_id:) ⇒ Object
19
20
21
22
23
24
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 19
def get_release(owner:, repo:, release_id:, **)
response = connection(owner: owner, repo: repo, **).get(
"/repos/#{owner}/#{repo}/releases/#{release_id}"
)
{ result: response.body }
end
|
#get_release_by_tag(owner:, repo:, tag:) ⇒ Object
33
34
35
36
37
38
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 33
def get_release_by_tag(owner:, repo:, tag:, **)
response = connection(owner: owner, repo: repo, **).get(
"/repos/#{owner}/#{repo}/releases/tags/#{tag}"
)
{ result: response.body }
end
|
#list_release_assets(owner:, repo:, release_id:, per_page: 30, page: 1) ⇒ Object
68
69
70
71
72
73
74
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 68
def list_release_assets(owner:, repo:, release_id:, per_page: 30, page: 1, **)
response = connection(owner: owner, repo: repo, **).get(
"/repos/#{owner}/#{repo}/releases/#{release_id}/assets",
per_page: per_page, page: page
)
{ result: response.body }
end
|
#list_releases(owner:, repo:, per_page: 30, page: 1) ⇒ Object
12
13
14
15
16
17
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 12
def list_releases(owner:, repo:, per_page: 30, page: 1, **)
response = connection(owner: owner, repo: repo, **).get(
"/repos/#{owner}/#{repo}/releases", per_page: per_page, page: page
)
{ result: response.body }
end
|
#update_release(owner:, repo:, release_id:, **opts) ⇒ Object
53
54
55
56
57
58
59
|
# File 'lib/legion/extensions/github/runners/releases.rb', line 53
def update_release(owner:, repo:, release_id:, **opts)
payload = opts.slice(:tag_name, :name, :body, :draft, :prerelease, :target_commitish)
response = connection(owner: owner, repo: repo, **opts).patch(
"/repos/#{owner}/#{repo}/releases/#{release_id}", payload
)
{ result: response.body }
end
|