Skip to content

Add issues to project #21992

Add issues to project

Add issues to project #21992

name: Add issues to project
on:
schedule:
- cron: "0 * * * *"
workflow_dispatch:
permissions: {}
concurrency:
group: shared
env:
COMMON_FILTER: is:open archived:false sort:created-asc
CONTENT_REPO_FILTER: (repo:mdn/mdn OR repo:mdn/django-diy-blog OR repo:mdn/django-locallibrary-tutorial OR repo:mdn/express-locallibrary-tutorial OR repo:mdn/todo-react OR repo:mdn/todo-vue OR repo:mdn/css-examples OR repo:mdn/dom-examples OR repo:mdn/houdini-examples OR repo:mdn/html-examples OR repo:mdn/imsc-examples OR repo:mdn/js-examples OR repo:mdn/learning-area OR repo:mdn/perf-examples OR repo:mdn/pwa-examples OR repo:mdn/web-components-examples OR repo:mdn/webassembly-examples OR repo:mdn/webaudio-examples OR repo:mdn/webvr-tests OR repo:mdn/beginner-html-site OR repo:mdn/beginner-html-site-scripted OR repo:mdn/beginner-html-site-styled OR repo:mdn/shared-assets OR repo:mdn/data)
ENGINEERING_REPO_FILTER: (repo:mdn/bob OR repo:mdn/bcd-utils OR repo:mdn/dex OR repo:mdn/differy OR repo:mdn/fred OR repo:mdn/mcp OR repo:mdn/mdn-http-observatory OR repo:mdn/mdn.dev OR repo:mdn/rari OR repo:mdn/rumba OR repo:mdn/yari OR repo:mdn/workflows)
EXCLUDE_LABELS: -label:"Content:WebExt"
EXCLUDE_REPOS: -repo:mdn/ai-feedback -repo:mdn/private-ai-feedback -repo:mdn/browser-compat-data -repo:mdn/curriculum -repo:mdn/translated-content -repo:mdn/translated-content-de -repo:mdn/translated-content-it -repo:mdn/webextensions-examples
jobs:
add-issues-to-project:
runs-on: ubuntu-latest
timeout-minutes: 30
env:
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: ".nvmrc"
package-manager-cache: false
- run: npm ci
- name: Add "needs triage" label to unlabeled issues
id: add-labels
continue-on-error: true
timeout-minutes: 5
run: npm run add-labels
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_LABEL: "needs triage"
ISSUE_QUERY: org:mdn is:issue no:label ${{ env.COMMON_FILTER }} ${{ env.EXCLUDE_REPOS }}
- name: Issue triage
id: issue-triage
continue-on-error: true
timeout-minutes: 5
run: |
npm run add-to-project
npm run manage-project-items
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_PROJECT_OWNER: mdn
ISSUE_PROJECT_NUMBER: 33
ISSUE_PROJECT_QUERY: org:mdn is:issue label:"needs triage" ${{ env.COMMON_FILTER }} ${{ env.EXCLUDE_LABELS }} ${{ env.EXCLUDE_REPOS }}
- name: AI Help feedback
id: ai-help
continue-on-error: true
timeout-minutes: 5
run: |
npm run add-to-project
npm run manage-project-items
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_PROJECT_OWNER: mdn
ISSUE_PROJECT_NUMBER: 42
ISSUE_PROJECT_QUERY: (repo:mdn/ai-feedback OR repo:mdn/private-ai-feedback) is:issue
- name: BCD issues
id: bcd-issues
continue-on-error: true
timeout-minutes: 5
run: |
npm run manage-project-items
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_PROJECT_OWNER: mdn
ISSUE_PROJECT_NUMBER: 47
- name: BCD meeting agenda
id: bcd-meeting
continue-on-error: true
timeout-minutes: 5
run: |
npm run manage-project-items
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_PROJECT_OWNER: mdn
ISSUE_PROJECT_NUMBER: 52
- name: Content issues
id: content
continue-on-error: true
timeout-minutes: 5
run: |
npm run add-to-project
npm run manage-project-items
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_PROJECT_OWNER: mdn
ISSUE_PROJECT_NUMBER: 37
ISSUE_PROJECT_QUERY: |
org:mdn is:issue label:"needs content decision" ${{ env.COMMON_FILTER }}
is:issue ${{ env.COMMON_FILTER }} ${{ env.CONTENT_REPO_FILTER }}
- name: Engineering issues
id: engineering
continue-on-error: true
timeout-minutes: 5
run: |
npm run add-to-project
npm run manage-project-items
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_PROJECT_OWNER: mdn
ISSUE_PROJECT_NUMBER: 36
ISSUE_PROJECT_QUERY: |
org:mdn is:issue label:"involves: Engineering" ${{ env.COMMON_FILTER }} ${{ env.EXCLUDE_REPOS }}
is:issue ${{ env.COMMON_FILTER }} ${{ env.EXCLUDE_LABELS }} ${{ env.ENGINEERING_REPO_FILTER }}
- name: Contributor issues
id: contributor
continue-on-error: true
timeout-minutes: 5
run: |
npm run add-to-project
npm run manage-project-items
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
ISSUE_PROJECT_OWNER: mdn
ISSUE_PROJECT_NUMBER: 25
ISSUE_PROJECT_QUERY: org:mdn is:issue (label:"help wanted" OR label:"good first issue" OR label:"accepting pr" OR label:"accepting prs" OR label:"PR welcome") ${{ env.COMMON_FILTER }} ${{ env.EXCLUDE_REPOS }}
- name: Ping
env:
ping_url: ${{ secrets.PING_URL_ISSUES }}
if: env.ping_url != '' && !contains(steps.*.outcome, 'failure') && !contains(steps.*.outcome, 'cancelled')
run: curl ${{ env.ping_url }}
- name: Print rate limit
run: gh api /rate_limit
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}