-
Notifications
You must be signed in to change notification settings - Fork 23
TPT-4298: Added PR title checking to PR workflow and clean up release notes workflow #226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| name: Clean Release Notes | ||
|
|
||
| on: | ||
| release: | ||
| types: [published] | ||
|
|
||
| jobs: | ||
| clean-release-notes: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
|
|
||
| steps: | ||
| - name: Remove ticket prefixes from release notes | ||
| uses: actions/github-script@v8 | ||
| with: | ||
| script: | | ||
| const release = context.payload.release; | ||
|
|
||
| let body = release.body; | ||
|
|
||
| if (!body) { | ||
| console.log("Release body empty, nothing to clean."); | ||
| return; | ||
| } | ||
|
|
||
| // Remove ticket prefixes like "TPT-1234: " or "TPT-1234:" | ||
| body = body.replace(/TPT-\d+:\s*/g, ''); | ||
|
|
||
| await github.rest.repos.updateRelease({ | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| release_id: release.id, | ||
| body: body | ||
| }); | ||
|
|
||
| console.log("Release notes cleaned."); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,7 +4,34 @@ jobs: | |
| test: | ||
| name: Run tests | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| pull-requests: read | ||
| steps: | ||
| # Enforce TPT-1234: prefix on PR titles, with the following exemptions: | ||
| # - PRs labeled 'dependencies' (e.g. Dependabot PRs) | ||
| # - PRs labeled 'hotfix' (urgent fixes that may not have a ticket) | ||
| # - PRs labeled 'community-contribution' (external contributors without TPT tickets) | ||
| # - PRs labeled 'ignore-for-release' (release PRs that don't need a ticket prefix) | ||
| - name: Validate PR Title | ||
| if: github.event_name == 'pull_request' | ||
| uses: amannn/action-semantic-pull-request@v6 | ||
| with: | ||
| types: | | ||
| TPT-\d+ | ||
| requireScope: false | ||
|
Comment on lines
+18
to
+22
|
||
| # Override the default header pattern to allow hyphens and digits in the type | ||
| # (e.g. "TPT-4298: Description"). The default pattern only matches word | ||
| # characters (\w) which excludes hyphens. | ||
| headerPattern: '^([\w-]+):\s?(.*)$' | ||
| headerPatternCorrespondence: type, subject | ||
| ignoreLabels: | | ||
| dependencies | ||
| hotfix | ||
| community-contribution | ||
| ignore-for-release | ||
| env: | ||
| GITHUB_TOKEN: ${{ github.token }} | ||
| - uses: actions/checkout@v6 | ||
| - uses: actions/setup-go@v6 | ||
| with: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The cleanup regex
/TPT-\d+:\s*/gwill remove ticket patterns anywhere in the release body, not just as a prefix to a bullet/line. If the intent is specifically to strip leading ticket IDs from generated patch notes, consider anchoring the match to the start of each line (and optionally common bullet prefixes) using multiline mode so you don't accidentally alter references in the middle of sentences or links.