Module: Legion::Extensions::Github::Runners::Search
- Includes:
- Helpers::Cache, Helpers::Client, Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/github/runners/search.rb
Constant Summary
Constants included from Helpers::Cache
Helpers::Cache::DEFAULT_TTL, Helpers::Cache::DEFAULT_TTLS
Constants included from Helpers::Client
Helpers::Client::CREDENTIAL_RESOLVERS
Constants included from Helpers::TokenCache
Helpers::TokenCache::TOKEN_BUFFER_SECONDS
Instance Method Summary collapse
- #search_code(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
- #search_issues(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
- #search_repositories(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
- #search_users(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
Methods included from Helpers::Cache
#cache_connected?, #cache_invalidate, #cache_write, #cached_get, #github_ttl_for, #local_cache_connected?, #local_cache_delete, #local_cache_get, #local_cache_set
Methods included from Helpers::Client
#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
Methods included from Helpers::ScopeRegistry
#credential_fingerprint, #invalidate_scope, #mark_rate_limited, #rate_limited?, #register_scope, #scope_status
Methods included from Helpers::TokenCache
#fetch_token, #mark_rate_limited, #rate_limited?, #store_token
Instance Method Details
#search_code(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
33 34 35 36 37 |
# File 'lib/legion/extensions/github/runners/search.rb', line 33 def search_code(query:, sort: nil, order: 'desc', per_page: 30, page: 1, **) params = { q: query, sort: sort, order: order, per_page: per_page, page: page }.compact cache_key = "github:search:code:#{Digest::MD5.hexdigest(params.sort.to_s)}" { result: cached_get(cache_key) { connection(**).get('/search/code', params).body } } end |
#search_issues(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
21 22 23 24 25 |
# File 'lib/legion/extensions/github/runners/search.rb', line 21 def search_issues(query:, sort: nil, order: 'desc', per_page: 30, page: 1, **) params = { q: query, sort: sort, order: order, per_page: per_page, page: page }.compact cache_key = "github:search:issues:#{Digest::MD5.hexdigest(params.sort.to_s)}" { result: cached_get(cache_key) { connection(**).get('/search/issues', params).body } } end |
#search_repositories(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
15 16 17 18 19 |
# File 'lib/legion/extensions/github/runners/search.rb', line 15 def search_repositories(query:, sort: nil, order: 'desc', per_page: 30, page: 1, **) params = { q: query, sort: sort, order: order, per_page: per_page, page: page }.compact cache_key = "github:search:repositories:#{Digest::MD5.hexdigest(params.sort.to_s)}" { result: cached_get(cache_key) { connection(**).get('/search/repositories', params).body } } end |
#search_users(query:, sort: nil, order: 'desc', per_page: 30, page: 1) ⇒ Object
27 28 29 30 31 |
# File 'lib/legion/extensions/github/runners/search.rb', line 27 def search_users(query:, sort: nil, order: 'desc', per_page: 30, page: 1, **) params = { q: query, sort: sort, order: order, per_page: per_page, page: page }.compact cache_key = "github:search:users:#{Digest::MD5.hexdigest(params.sort.to_s)}" { result: cached_get(cache_key) { connection(**).get('/search/users', params).body } } end |