A GitHub Action for creating a new issue from a template file.
TypeScript
305
270 commits
updated Feb 15, 2024
A GitHub Action that creates a new issue using a template file.
This GitHub Action creates a new issue based on an issue template file. Here's an example workflow that creates a new issue any time you push a commit:
# .github/workflows/issue-on-push.yml
on: [push]
name: Create an issue on push
permissions:
contents: read
issues: write
jobs:
stuff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
This reads from the .github/ISSUE_TEMPLATE.md file. This file should have front matter to help construct the new issue:
---
title: Someone just pushed
assignees: JasonEtco, matchai
labels: bug, enhancement
---
Someone just pushed, oh no! Here's who did it: {{ payload.sender.login }}.
You'll notice that the above example has some {{ mustache }} variables. Your issue templates have access to several things about the event that triggered the action. Besides issue and pullRequest, you have access to all the template variables on this list. You can also use environment variables:
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ADJECTIVE: great
Environment variables are pretty {{ env.ADJECTIVE }}, right?
Note that you can only assign people matching given conditions.
Additionally, you can use the date filter and variable to show some information about when this issue was created:
---
title: Weekly Radar {{ date | date('dddd, MMMM Do') }}
---
What's everyone up to this week?
This example will create a new issue with a title like Weekly Radar Saturday, November 10th. You can pass any valid Moment.js formatting string to the filter.
Don't want to use .github/ISSUE_TEMPLATE.md? You can pass an input pointing the action to a different template:
steps:
- uses: actions/checkout@v3
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
filename: .github/some-other-template.md
Want to use Action logic to determine who to assign the issue to, to assign a milestone or to update an existing issue with the same title? You can pass an input containing the following options:
steps:
- uses: actions/checkout@v3
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
assignees: JasonEtco, octocat
milestone: 1
update_existing: true
search_existing: all
assignees and milestone speak for themselves.update_existing param can be passed and set to true when you want to update an open issue with the exact same title when it exists and false if you don't want to create a new issue, but skip updating an existing one.search_existing param lets you specify whether to search open, closed, or all existing issues for duplicates (default is open).If you need the number or URL of the issue that was created for another Action, you can use the number or url outputs, respectively. For example:
steps:
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
id: create-issue
- run: 'echo Created issue number ${{ steps.create-issue.outputs.number }}'
- run: 'echo Created ${{ steps.create-issue.outputs.url }}'
1,614 followers · starred Feb 2020
214 followers · starred Oct 2020
514 followers · starred Jul 2022
A GitHub Action for creating a new issue from a template file.
TypeScript
305
270 commits
updated Feb 15, 2024
A GitHub Action that creates a new issue using a template file.
This GitHub Action creates a new issue based on an issue template file. Here's an example workflow that creates a new issue any time you push a commit:
# .github/workflows/issue-on-push.yml
on: [push]
name: Create an issue on push
permissions:
contents: read
issues: write
jobs:
stuff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
This reads from the .github/ISSUE_TEMPLATE.md file. This file should have front matter to help construct the new issue:
---
title: Someone just pushed
assignees: JasonEtco, matchai
labels: bug, enhancement
---
Someone just pushed, oh no! Here's who did it: {{ payload.sender.login }}.
You'll notice that the above example has some {{ mustache }} variables. Your issue templates have access to several things about the event that triggered the action. Besides issue and pullRequest, you have access to all the template variables on this list. You can also use environment variables:
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ADJECTIVE: great
Environment variables are pretty {{ env.ADJECTIVE }}, right?
Note that you can only assign people matching given conditions.
Additionally, you can use the date filter and variable to show some information about when this issue was created:
---
title: Weekly Radar {{ date | date('dddd, MMMM Do') }}
---
What's everyone up to this week?
This example will create a new issue with a title like Weekly Radar Saturday, November 10th. You can pass any valid Moment.js formatting string to the filter.
Don't want to use .github/ISSUE_TEMPLATE.md? You can pass an input pointing the action to a different template:
steps:
- uses: actions/checkout@v3
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
filename: .github/some-other-template.md
Want to use Action logic to determine who to assign the issue to, to assign a milestone or to update an existing issue with the same title? You can pass an input containing the following options:
steps:
- uses: actions/checkout@v3
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
assignees: JasonEtco, octocat
milestone: 1
update_existing: true
search_existing: all
assignees and milestone speak for themselves.update_existing param can be passed and set to true when you want to update an open issue with the exact same title when it exists and false if you don't want to create a new issue, but skip updating an existing one.search_existing param lets you specify whether to search open, closed, or all existing issues for duplicates (default is open).If you need the number or URL of the issue that was created for another Action, you can use the number or url outputs, respectively. For example:
steps:
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
id: create-issue
- run: 'echo Created issue number ${{ steps.create-issue.outputs.number }}'
- run: 'echo Created ${{ steps.create-issue.outputs.url }}'
1,614 followers · starred Feb 2020
214 followers · starred Oct 2020
514 followers · starred Jul 2022