mirror of
https://github.com/github/codeql.git
synced 2026-01-07 11:40:27 +01:00
35 lines
1.6 KiB
YAML
35 lines
1.6 KiB
YAML
name: Check change note
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [labeled, unlabeled, opened, synchronize, reopened, ready_for_review]
|
|
paths:
|
|
- "*/ql/src/**/*.ql"
|
|
- "*/ql/src/**/*.qll"
|
|
- "*/ql/lib/**/*.ql"
|
|
- "*/ql/lib/**/*.qll"
|
|
- "*/ql/lib/**/*.yml"
|
|
- "!**/experimental/**"
|
|
- "!ql/**"
|
|
- ".github/workflows/check-change-note.yml"
|
|
|
|
jobs:
|
|
check-change-note:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Fail if no change note found. To fix, either add one, or add the `no-change-note-required` label.
|
|
if: |
|
|
github.event.pull_request.draft == false &&
|
|
!contains(github.event.pull_request.labels.*.name, 'no-change-note-required')
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
gh api 'repos/${{github.repository}}/pulls/${{github.event.number}}/files' --paginate --jq 'any(.[].filename ; test("/change-notes/.*[.]md$"))' |
|
|
grep true -c
|
|
- name: Fail if the change note filename doesn't match the expected format. The file name must be of the form 'YYYY-MM-DD.md', 'YYYY-MM-DD-{title}.md', where '{title}' is arbitrary text, or released/x.y.z.md for released change-notes
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
gh api 'repos/${{github.repository}}/pulls/${{github.event.number}}/files' --paginate --jq '[.[].filename | select(test("/change-notes/.*[.]md$"))] | all(test("/change-notes/[0-9]{4}-[0-9]{2}-[0-9]{2}.*[.]md$") or test("/change-notes/released/[0-9]*[.][0-9]*[.][0-9]*[.]md$"))' |
|
|
grep true -c
|