Skip to content

Create new release issue #9

Create new release issue

Create new release issue #9

name: Create new release issue
on:
workflow_dispatch:
release:
types: [published]
jobs:
create-issue:
runs-on: ubuntu-latest
steps:
- name: Get latest release
id: get_latest_release
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const releases = await github.rest.repos.listReleases({
owner: 'primer',
repo: 'brand'
});
const latestRelease = releases.data.find(release => release.name.includes('@primer/react-brand'));
if (!latestRelease) {
core.setFailed('No @primer/react-brand release found.');
} else {
console.log('Latest release:', latestRelease);
core.setOutput('release_name', latestRelease.name);
core.setOutput('release_url', latestRelease.html_url);
core.setOutput('release_body', latestRelease.body);
}
- name: Check for existing issue
id: check_existing_issue
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { data: issues } = await github.rest.issues.listForRepo({
owner: 'primer',
repo: 'brand-releases',
labels: 'release'
});
const issueExists = issues.some(issue => issue.title.includes('${{ steps.get_latest_release.outputs.release_name }}'));
if (issueExists) {
core.setFailed('An issue for this release already exists.');
} else {
console.log('No existing issue found.');
}
- name: Create new release issue
if: success()
uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
content: |
release_name: ${{ steps.get_latest_release.outputs.release_name }}
release_url: ${{ steps.get_latest_release.outputs.release_url }}
release_body: ${{ steps.get_latest_release.outputs.release_body }}