Creates an issue on GitHub.
Input Schema
| Property | Type | Description | Required |
|---|---|---|---|
| body | string | The contents of the issue | |
| title | string | The title of the issue | |
| token | string | The `GITHUB_TOKEN` to use for authorization to GitHub | |
| labels | array | Labels to associate with this issue. NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise. | |
| repoUrl | string | Accepts the format `github.com?repo=reponame&owner=owner` where `reponame` is the repository name and `owner` is an organization or username | |
| assignees | array | Logins for Users to assign to this issue. NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise. | |
| milestone | any | The number of the milestone to associate this issue with. NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise. |
Output Schema
| Property | Type | Description | Required |
|---|---|---|---|
| issueUrl | string | The URL of the created issue | |
| issueNumber | number | The number of the created issue |
Usage Examples
Create a basic tracking issue after repository creation
Creates a minimal issue to track initial setup tasks in the new repo. Use this when you want a single post-scaffold reminder.
steps:
- id: fetch-skeleton
action: fetch:template
input:
url: ./skeleton
targetPath: .
values:
name: ${{ parameters.name }}
- id: create-tracking-issue
action: github:issues:create
input:
repoUrl: github.com?repo=${{ parameters.repoName }}&owner=${{ parameters.owner }}
title: Initial project setupOpen a detailed bug report with labels and assignees
Creates a bug report with a structured body, adds labels, and assigns owners. Use this to capture production incidents or QA findings.
steps:
- id: fetch-base
action: fetch:template
input:
url: ./template
targetPath: .
values:
service: ${{ parameters.service }}
- id: create-bug-issue
action: github:issues:create
input:
repoUrl: github.com?repo=payments-service&owner=acme-inc
title: ${{ parameters.bugTitle }}
body: |-
Steps to reproduce:
1. Open checkout page
2. Submit card ending with 4242
3. Observe 500 error
Expected
- Payment is authorized and order is created
Actual
- 500 Internal Server Error on POST /payments
Environment
- prod
- region us-east-1
labels:
- bug
- high-priority
assignees:
- jsanchez
- mperezCreate a feature request linked to a milestone
Creates an enhancement issue and associates it with a milestone to plan delivery. Use this for roadmap items.
steps:
- id: fetch-skeleton
action: fetch:template
input:
url: ./service-template
targetPath: .
values:
owner: ${{ parameters.owner }}
repo: ${{ parameters.repo }}
- id: create-feature-issue
action: github:issues:create
input:
repoUrl: github.com?repo=${{ parameters.repo }}&owner=${{ parameters.owner }}
title: Implement rate limiting for public APIs
body: |-
Summary
Add token bucket rate limiting for all /v1/public endpoints.
Acceptance Criteria
- 429 returned when client exceeds configured RPS
- Configurable per-tenant limits
- Dashboards and alerts for throttling events
milestone: 12
labels:
- enhancement
- api
assignees:
- samleeCreate an issue using a service token
Uses an explicit GitHub token to create an issue, useful when the scaffolder runs non-interactively. Apply this when a service account should file issues.
steps:
- id: fetch-assets
action: fetch:template
input:
url: ./assets
targetPath: .
values:
repoName: ${{ parameters.repoName }}
- id: create-compliance-issue
action: github:issues:create
input:
repoUrl: github.com?repo=${{ parameters.repoName }}&owner=${{ parameters.owner }}
title: Add CODEOWNERS and security policy
body: |-
Please add:
- CODEOWNERS covering all directories
- SECURITY.md with triage contacts
- Dependabot configuration for GitHub Actions and npm
This is required before first release.
labels:
- compliance
- documentation
token: ${{ secrets.githubToken }}Generate an onboarding checklist with dynamic labels
Creates a checklist issue populated from template parameters and applies labels passed in by the user. Use this to standardize new service onboarding.
steps:
- id: fetch-template
action: fetch:template
input:
url: ./service
targetPath: .
values:
name: ${{ parameters.name }}
owner: ${{ parameters.owner }}
- id: create-onboarding-issue
action: github:issues:create
input:
repoUrl: github.com?repo=${{ parameters.name }}&owner=${{ parameters.owner }}
title: Onboarding checklist for ${{ parameters.name }}
body: |-
Onboarding tasks
- [ ] Create staging environment
- [ ] Configure CI workflow
- [ ] Set up alerts and dashboards
- [ ] Register service in the catalog
- [ ] Define SLOs and error budget
Team
- Tech lead: ${{ parameters.techLead }}
- Slack channel: ${{ parameters.slackChannel }}
labels: ${{ parameters.issueLabels }}
assignees:
- ${{ parameters.techLeadGithub }}