GitHub AppToken

GitHub AppToken

Certified

Issue a GitHub App installation access token

Signs an RS256 JWT with a GitHub App's RSA private key and exchanges it at the GitHub Apps API for a 1-hour installation token. Use the returned token as the appInstallationToken input on downstream io.kestra.plugin.github.* tasks, or as the Authorization: Bearer ... value on raw HTTP requests.

yaml
type: io.kestra.plugin.github.auth.AppToken

Issue an installation token and reuse it for an issue comment.

yaml
id: github_app_token_flow
namespace: company.team

tasks:
  - id: token
    type: io.kestra.plugin.github.auth.AppToken
    clientId: "{{ secret('GITHUB_APP_CLIENT_ID') }}"
    installationId: "52068731"
    privateKey: "{{ secret('GITHUB_APP_PRIVATE_KEY') }}"

  - id: comment
    type: io.kestra.plugin.github.issues.Comment
    appInstallationToken: "{{ outputs.token.token }}"
    repository: kestra-io/kestra
    issueNumber: 1347
    body: "Triaged automatically. Execution: {{ execution.id }}"
Properties

GitHub App client ID

The fine-grained client identifier (Iv23...) or the numeric App ID. Used as the JWT iss claim when signing.

GitHub App installation ID

Numeric installation identifier under the target user or organization. Find it under Settings → Integrations → Applications → Installed GitHub Apps → Configure (the number at the end of the URL).

GitHub App private key

PEM-encoded RSA private key for the GitHub App. Both PKCS#1 (-----BEGIN RSA PRIVATE KEY-----, the default GitHub emits when you generate a key) and PKCS#8 (-----BEGIN PRIVATE KEY-----) formats are accepted.

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.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset 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.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
Defaulthttps://api.github.com

GitHub API endpoint

GitHub or GitHub Enterprise API base URL such as https://api.github.com or https://ghe.acme.com/api/v3. Defaults to https://api.github.com when unset.

Formatdate-time

Expiration timestamp

Instant at which GitHub will reject the token, parsed from the API response.

Installation access token

Bearer token valid for one hour from issuance. Pass as appInstallationToken to downstream io.kestra.plugin.github.* tasks, or as Authorization: Bearer ... for raw HTTP requests.