
GitHub Issues Create
CertifiedCreate an issue
GitHub Issues Create
Create an issue
Creates a new GitHub issue in the target repository. The authenticated token must be allowed to open issues, and property values are rendered before the issue is created.
type: io.kestra.plugin.github.issues.CreateExamples
Create an issue in a repository using JWT token.
id: github_issue_create_flow
namespace: company.team
tasks:
- id: create_issue
type: io.kestra.plugin.github.issues.Create
jwtToken: "{{ secret('GITHUB_JWT_TOKEN') }}"
repository: kestra-io/kestra
title: Workflow failed
body: "{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details"
labels:
- bug
- workflow
Create an issue in a repository using OAuth token.
id: github_issue_create_flow
namespace: company.team
tasks:
- id: create_issue
type: io.kestra.plugin.github.issues.Create
login: your_github_login
oauthToken: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
repository: kestra-io/kestra
title: Workflow failed
body: "{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details"
labels:
- bug
- workflow
Create an issue in a repository with assignees.
id: github_issue_create_flow
namespace: company.team
tasks:
- id: create_issue
type: io.kestra.plugin.github.issues.Create
oauthToken: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
repository: kestra-io/kestra
title: Workflow failed
body: "{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details"
labels:
- bug
- workflow
assignees:
- MyDeveloperUserName
- MyDesignerUserName
Create an issue and set custom Issue Field values using human-readable field names.
id: github_issue_create_with_fields_flow
namespace: company.team
tasks:
- id: create_issue
type: io.kestra.plugin.github.issues.Create
oauthToken: "{{ secret('GITHUB_ACCESS_TOKEN') }}"
repository: kestra-io/kestra
title: Automated issue with custom fields
body: "Created by Kestra workflow {{ execution.id }}"
labels:
- automation
fields:
Customer: "Kestra"
Stage: "In review"
Installation
Our standard Docker images already include this plugin. If you use a -slim image or another setup, install it with the following command:
kestractl plugins get io.kestra.plugin:plugin-github --compatible-for $KESTRA_VERSION For kestractl, use your Kestra version with --compatible-for, or specify an exact plugin version.
For Kestra CLI, replace LATEST with a specific version or version range to pin the plugin version.
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
{}1150assignees array
Issue assignees
GitHub logins to assign when the issue is created
body string
Issue body
Markdown body for the issue. This value is rendered before the request is sent
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.
fields object
Issue field values
Custom field values to set on the issue after creation, using the GitHub Issues field-values API (API version 2026-03-10). Only available for organization repositories — personal repositories always return HTTP 404. Keys can be either human-readable field names (e.g. "Customer", "Stage") or field node IDs (e.g. PVTF_…). Human-readable names are resolved automatically to node IDs via the GitHub API (GET /orgs/{org}/issues/field-definitions). Values are the field values to set. Unsupported value types are passed through as-is; GitHub will return a 422 if the type is invalid. Requires a token with the project scope in addition to issues: write. When null or empty the REST call is skipped entirely and existing behavior is preserved.
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.
labels array
Issue labels
Labels to apply to the issue when it is created
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.
repository string
Target repository
Repository in owner/repo format where the issue will be created
title string
Issue title
Short summary shown in GitHub.
Outputs
issueNumber integer
Issue number
Numeric issue number assigned by GitHub
issueUrl
Issue URL
GitHub URL for the created issue