
GitHub Search
CertifiedSearch topics
GitHub Search
Search topics
Runs a GitHub topic search and writes matching topic metadata to Kestra internal storage. The task calls the REST API directly so it can honor custom endpoints and token types, and defaults to ascending order.
type: io.kestra.plugin.github.topics.SearchExamples
Search for topics.
id: github_topic_search_flow
namespace: company.team
tasks:
- id: search_topics
type: io.kestra.plugin.github.topics.Search
oauthToken: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
query: "micronaut framework is:not-curated repositories:>100"
Search for topics with conditions.
id: github_topic_search_flow
namespace: company.team
tasks:
- id: search_topics
type: io.kestra.plugin.github.topics.Search
oauthToken: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
query: "micronaut framework"
is: NOT_CURATED
repositories: ">100"
Properties
appInstallationToken string
GitHub App installation token
Installation access token generated by a GitHub App. Use this for repository-scoped app access instead of a user token.
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150created string
Created date filter
Supports >, <, and range (..) date syntax
endpoint string
GitHub API endpoint
GitHub or GitHub Enterprise API base URL such as https://api.github.com or https://ghe.acme.com/api/v3. Set this when targeting GitHub Enterprise or a non-default API endpoint.
fetchType string
STORESTOREFETCHFETCH_ONENONEResult handling mode
Controls how hits are exposed in outputs; default FETCH returns all hits in the response. FETCH_ONE returns only the first hit, STORE writes hits to Kestra storage and returns a URI, and NONE leaves outputs empty.
is string
CURATEDFEATUREDNOT_CURATEDNOT_FEATUREDCuration/feature flags
CURATED matches curated topics
FEATURED matches topics featured on https://github.com/topics/
NOT_CURATED excludes curated topics
NOT_FEATURED excludes featured topics
jwtToken string
GitHub JWT token
GitHub App JWT used for app-level authentication. Use this when the task should authenticate as the app rather than a user.
login string
GitHub login
GitHub login used with oauthToken for authenticated requests. Leave unset when authenticating with jwtToken or appInstallationToken.
oauthToken string
GitHub OAuth token
GitHub personal access token used for authenticated requests. Can be used alone or with login.
query string
Search keywords and qualifiers
GitHub topic search syntax combining keywords with qualifiers. Note: GitHub's topic search API does not support sorting - results are always returned in best match order.
repositories string
Repository count filter
Supports >, <, and range (..) qualifiers
Outputs
row object
First hit
Available only when fetchType=FETCH_ONE; contains the first hit source.
rows array
Fetched hits
Available only when fetchType=FETCH; contains hit sources for the current response page.
size integer
Returned hit count
Number of hits included in outputs for the selected fetch type.
total integer
Total hits reported
Total hits reported by GitHub search, regardless of pagination.
uri string
uriStored hits URI
Available only when fetchType=STORE; Kestra internal storage path to the Ion file.