-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Update pull_request_template.md (#239)
## Motivation Minor fixes to GH related stuff.
- Loading branch information
1 parent
3c0fad1
commit 8cd967d
Showing
7 changed files
with
138 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
#!/usr/bin/env bash | ||
|
||
set -euo pipefail | ||
|
||
if [ "$#" -ne 1 ]; then | ||
echo "Provide a single argument with a version of the release draft to use." >&2 | ||
echo "Usage: $0 <VERSION>" | ||
exit 1 | ||
fi | ||
|
||
VERSION="$1" | ||
|
||
RELEASE_NOTES=$(gh release view "$VERSION" --json body --jq .body) | ||
|
||
BREAKING_CHANGES_HEADER="Breaking Changes" | ||
RELEASE_NOTES_HEADER="Release Notes" | ||
|
||
commit_message_re="-\s(.*)\s(\(#[0-9]+\)\s@.*)" | ||
rls_header_re="^##.*(Features|$BREAKING_CHANGES_HEADER|Bug Fixes|Fixed Vulnerabilities)" | ||
|
||
extract_header() { | ||
local commit="$1" | ||
local header_name="$2" | ||
awk " | ||
/^\s?$/ {next} | ||
/## $header_name/ {rn=1} | ||
rn && !/^##/ {print}; | ||
/##/ && !/## $header_name/ {rn=0}" <<<"$commit" | ||
} | ||
|
||
indent() { | ||
while IFS= read -r line; do | ||
printf " %s\n" "${line%"${line##*[![:space:]]}"}" | ||
done <<<"$1" | ||
} | ||
|
||
new_notes="" | ||
rls_header="" | ||
while IFS= read -r line; do | ||
new_notes+="$line\n" | ||
if [[ $line == \##* ]]; then | ||
if ! [[ $line =~ $rls_header_re ]]; then | ||
rls_header="" | ||
continue | ||
fi | ||
rls_header="${BASH_REMATCH[1]}" | ||
fi | ||
if [[ $rls_header == "" ]]; then | ||
continue | ||
fi | ||
if [[ $line != -* ]]; then | ||
continue | ||
fi | ||
if ! [[ $line =~ $commit_message_re ]]; then | ||
continue | ||
fi | ||
commit_msg="${BASH_REMATCH[1]}" | ||
commit_body=$(git log --grep "$commit_msg" -n1 --pretty="%b") | ||
|
||
add_notes() { | ||
local notes="$1" | ||
if [[ $notes != "" ]]; then | ||
new_notes+=$(indent "> $notes") | ||
new_notes+="\n" | ||
fi | ||
} | ||
|
||
rn=$(extract_header "$commit_body" "$RELEASE_NOTES_HEADER") | ||
bc=$(extract_header "$commit_body" "$BREAKING_CHANGES_HEADER") | ||
|
||
case $rls_header in | ||
"$BREAKING_CHANGES_HEADER") add_notes "$bc" ;; | ||
*) add_notes "$rn" ;; | ||
esac | ||
|
||
done <<<"$RELEASE_NOTES" | ||
|
||
echo "Uploading release notes for $VERSION" | ||
# shellcheck disable=2059 | ||
printf "$new_notes" | gh release edit "$VERSION" --verify-tag -F - |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
on: | ||
pull_request: | ||
types: [opened, reopened, edited] | ||
merge_group: | ||
name: pr-title | ||
jobs: | ||
pr-title-check: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: Slashgear/[email protected] | ||
with: | ||
regexp: "(feat|fix|sec|infra|test|chore|doc): .{5,}" | ||
helpMessage: "Example: 'feat: new pr title check BE-143' <- prefix, colon, space, PR title of at least 5 chars (with ticket number strongly suggested, but not mandatory)" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
name: Release Drafter | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
# pull_request event is required only for autolabeler | ||
# 'edited' event is required to account for initial invalid PR names | ||
pull_request: | ||
types: [opened, reopened, synchronize, edited] | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
update_release_draft: | ||
permissions: | ||
# write permission is required to create a github release | ||
contents: write | ||
# write permission is required for autolabeler | ||
# otherwise, read permission is required at least | ||
pull-requests: write | ||
runs-on: ubuntu-latest | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.RELEASE_LABELER_TOKEN }} | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: main | ||
fetch-depth: 0 | ||
# Drafts your next Release notes as Pull Requests are merged into "main" | ||
- id: drafter | ||
uses: release-drafter/release-drafter@v5 | ||
- name: Add release notes to the draft | ||
if: github.event_name == 'push' | ||
run: .github/scripts/release-notes.sh ${{ steps.drafter.outputs.tag_name }} |