computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.3 KiB
40 lines
1.3 KiB
name: Label Issue |
|
|
|
on: |
|
issues: |
|
types: [ opened, edited ] |
|
|
|
jobs: |
|
label-topic-change-issue: |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Add Labels To Issue |
|
uses: actions/github-script@v7 |
|
with: |
|
github-token: ${{ secrets.GITHUB_TOKEN }} |
|
script: | |
|
const issue = context.payload.issue; |
|
const roadmapUrl = issue.body.match(/https?:\/\/roadmap.sh\/[^ ]+/); |
|
|
|
// if the issue is labeled as a topic-change, add the roadmap slug as a label |
|
if (issue.labels.some(label => label.name === 'topic-change')) { |
|
if (roadmapUrl) { |
|
const roadmapSlug = new URL(roadmapUrl[0]).pathname.replace(/\//, ''); |
|
github.rest.issues.addLabels({ |
|
owner: context.repo.owner, |
|
repo: context.repo.repo, |
|
issue_number: issue.number, |
|
labels: [roadmapSlug] |
|
}); |
|
} |
|
|
|
// Close the issue if it has no roadmap URL |
|
if (!roadmapUrl) { |
|
github.rest.issues.update({ |
|
owner: context.repo.owner, |
|
repo: context.repo.repo, |
|
issue_number: issue.number, |
|
state: 'closed' |
|
}); |
|
} |
|
} |