1
1
mirror of https://github.com/primer/css.git synced 2024-12-27 16:11:46 +03:00

Merge pull request #1299 from primer/label_workflow

Creating a label workflow
This commit is contained in:
Jon Rohan 2021-04-02 10:35:17 -07:00 committed by GitHub
commit 6622e85add
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

54
.github/workflows/labeler.yml vendored Normal file
View File

@ -0,0 +1,54 @@
name: Label
on:
pull_request:
types: [opened, synchronize, edited]
jobs:
label-release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v3
id: version-result
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
result-encoding: string
script: |
const diff_url = context.payload.pull_request.diff_url
const result = await github.request(diff_url)
const match = [...result.data.matchAll(/^\+['"]@primer\/css['"]:\s(patch|minor|major)/m)]
if (match && match[0]) {
return match[0][1]
}
- uses: actions/github-script@v3
env:
RELEASE: ${{ steps.version-result.outputs.result }}
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
if (process.env.RELEASE == 'undefined') { return }
const issue = await github.issues.get({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number
})
const currentLabels = issue.data.labels.map( l => l.name)
const newLabel = `${process.env.RELEASE} release`
if (!currentLabels.includes(newLabel)) {
const otherReleaseLabels = currentLabels.filter( l => l.endsWith(' release'))
if (otherReleaseLabels.length) {
github.issues.removeLabel({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: [otherReleaseLabels]
})
}
github.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [newLabel]
})
}