Skip to content
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

Utilize GitHub Actions to check for SEMVER impact label #2470

Merged
merged 47 commits into from
Mar 29, 2024
Merged
Changes from 37 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
5444909
a
KevinEyo1 Jan 29, 2024
a4a4d72
Revert test changes
KevinEyo1 Jan 29, 2024
ea3aca7
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 4, 2024
c0f79a2
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 9, 2024
45b8846
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 18, 2024
21628f7
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 28, 2024
21fa90c
Merge branch 'master' of https://github.com/KevinEyo1/markbind
KevinEyo1 Mar 15, 2024
52c84e7
Create workflow
KevinEyo1 Mar 15, 2024
e26927a
Add pr-merge workflow
KevinEyo1 Mar 17, 2024
188e4be
Add restriction for master
KevinEyo1 Mar 17, 2024
6493a83
Merge branch 'master' into 2464-check-release-tag
KevinEyo1 Mar 17, 2024
0ebb7cd
Merge branch 'MarkBind:master' into master
KevinEyo1 Mar 18, 2024
96ee925
Test change
KevinEyo1 Mar 18, 2024
64d00cb
Merge branch '2464-check-release-tag' of https://github.com/KevinEyo1…
KevinEyo1 Mar 18, 2024
5d77ded
Simplify logic
KevinEyo1 Mar 19, 2024
409ec36
Fix label name
KevinEyo1 Mar 19, 2024
619c5c3
Fix bug
KevinEyo1 Mar 19, 2024
520b845
Fix change
KevinEyo1 Mar 19, 2024
6f6409b
Test
KevinEyo1 Mar 19, 2024
f468313
Change
KevinEyo1 Mar 19, 2024
cba297f
Test
KevinEyo1 Mar 19, 2024
9a84584
Add ping
KevinEyo1 Mar 19, 2024
2225379
Add marker
KevinEyo1 Mar 19, 2024
462d26d
A
KevinEyo1 Mar 19, 2024
1f901fd
Fix bug
KevinEyo1 Mar 19, 2024
b2e0e92
Fix bug
KevinEyo1 Mar 19, 2024
726cde5
Delete line
KevinEyo1 Mar 19, 2024
5888f5f
Clean code
KevinEyo1 Mar 19, 2024
559a362
Merge branch 'master' into 2464-check-release-tag
KevinEyo1 Mar 19, 2024
f798b1d
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 20, 2024
48399bd
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 20, 2024
b323f32
Clean code
KevinEyo1 Mar 21, 2024
d8136df
Merge branch '2464-check-release-tag' of https://github.com/KevinEyo1…
KevinEyo1 Mar 21, 2024
1c65962
Merge branch 'master' into 2464-check-release-tag
KevinEyo1 Mar 21, 2024
d54702b
Fix nits
KevinEyo1 Mar 21, 2024
567b6d8
Merge branch '2464-check-release-tag' of https://github.com/KevinEyo1…
KevinEyo1 Mar 21, 2024
6433d97
Merge branch 'master' into 2464-check-release-tag
KevinEyo1 Mar 22, 2024
e8287b8
Merge branch 'master' into 2464-check-release-tag
KevinEyo1 Mar 24, 2024
701183b
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 25, 2024
f0ca80b
Change to on approve
KevinEyo1 Mar 25, 2024
bcb7718
Merge branch '2464-check-release-tag' of https://github.com/KevinEyo1…
KevinEyo1 Mar 25, 2024
4d220a3
Merge branch 'master' into 2464-check-release-tag
KevinEyo1 Mar 26, 2024
6ed4472
Add permission to write
KevinEyo1 Mar 26, 2024
e445596
Change permission
KevinEyo1 Mar 26, 2024
988000e
Change back to issue permission
KevinEyo1 Mar 26, 2024
60429c9
Revert to on merged
KevinEyo1 Mar 27, 2024
3fc3621
Merge branch 'master' into 2464-check-release-tag
KevinEyo1 Mar 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
69 changes: 69 additions & 0 deletions .github/workflows/pr-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Pull Request Review Action
on:
pull_request_review:
types:
- submitted

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
check-pr-label:
if: ${{ github.event.review.state == 'approved' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check for PR description label
id: check_pr_description_label
run: |
python scripts/process_message.py "${TEXT_BODY}" > processed_body.txt
processed_body=$(cat processed_body.txt)
proposed_version_impact=$(echo "$processed_body" | awk '/Major \\\(when you make incompatible API changes\\\)/,/Patch \\\(when you make backward compatible bug fixes\\\)/')
is_major=$(echo "$proposed_version_impact" | grep -qi '\[X\] Major'; echo $((1-$?)))
is_minor=$(echo "$proposed_version_impact" | grep -qi '\[X\] Minor'; echo $((1-$?)))
is_patch=$(echo "$proposed_version_impact" | grep -qi '\[X\] Patch'; echo $((1-$?)))
num_labels_chosen=$(($is_major + $is_minor + $is_patch))
echo "num_labels_chosen=$num_labels_chosen" >> $GITHUB_OUTPUT
if [[ "$num_labels_chosen" -eq 0 ]]; then
echo "message=$(echo "@${MERGE_AUTHOR} Each PR must have a SEMVER impact label, please remember to label the PR properly.")" >> $GITHUB_OUTPUT
elif [[ "$num_labels_chosen" -ge 2 ]]; then
echo "message=$(echo "@${MERGE_AUTHOR} Each PR can only have one SEMVER impact label, please remember to label the PR properly.")" >> $GITHUB_OUTPUT
else
echo "message=$(echo "SEMVER impact selected.")" >> $GITHUB_OUTPUT
echo "chosen_label=$(
if [ "$is_major" -eq 1 ]; then
echo "r.Major"
elif [ "$is_minor" -eq 1 ]; then
echo "r.Minor"
elif [ "$is_patch" -eq 1 ]; then
echo "r.Patch"
fi
)" >> $GITHUB_OUTPUT
fi
env:
TEXT_BODY: ${{ github.event.pull_request.body }}
MERGE_AUTHOR: ${{ github.event.sender.login }}
- name: Assign label based on version impact
uses: actions/github-script@v7
with:
script: |
if (process.env.NUM_LABELS_CHOSEN != 1) {
github.rest.issues.createComment({
issue_number: context.payload.pull_request.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: process.env.MESSAGE,
});
} else {
github.rest.issues.addLabels({
issue_number: context.payload.pull_request.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [process.env.CHOSEN_LABEL]
});
}
env:
NUM_LABELS_CHOSEN: ${{ steps.check_pr_description_label.outputs.num_labels_chosen }}
MESSAGE: ${{ steps.check_pr_description_label.outputs.message }}
CHOSEN_LABEL: ${{ steps.check_pr_description_label.outputs.chosen_label }}