Skip to content

Commit af16103

Browse files
authored
Merge pull request #2 from akarsh/javascript
Add workflow for creating PR to main
2 parents 8758dfb + 0f46e33 commit af16103

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: create-pr-on-push-to-develop
2+
run-name: Create Pull Request from Source Branch to Main
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
- javascript
8+
- migrated-to-typescript
9+
10+
jobs:
11+
create-pr:
12+
runs-on: ubuntu-latest
13+
env:
14+
GH_TOKEN: ${{ secrets.PAT_JEST_TYPESCRIPT_EXAMPLE }}
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Get branch name
20+
id: get_branch
21+
run: echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
22+
23+
- name: Get latest commit details
24+
id: commit_details
25+
run: |
26+
COMMIT_SHA=$(git rev-parse HEAD)
27+
COMMIT_TITLE=$(git log -1 --pretty=format:'%s' $COMMIT_SHA)
28+
COMMIT_MESSAGE=$(git log -1 --pretty=format:'%b' $COMMIT_SHA)
29+
COMMIT_AUTHOR=$(git log -1 --pretty=format:'%an' $COMMIT_SHA)
30+
echo "commit_sha=${COMMIT_SHA}" >> $GITHUB_ENV
31+
echo "commit_title=${COMMIT_TITLE}" >> $GITHUB_ENV
32+
echo "commit_message=${COMMIT_MESSAGE}" >> $GITHUB_ENV
33+
echo "commit_author=${COMMIT_AUTHOR}" >> $GITHUB_ENV
34+
35+
- name: Map commit author to GitHub username
36+
id: map_author
37+
run: |
38+
declare -A AUTHOR_MAP=( ["Akarsh Seggemu"]="akarsh" )
39+
GITHUB_USERNAME=${AUTHOR_MAP["$commit_author"]}
40+
echo "GITHUB_USERNAME=${GITHUB_USERNAME}" >> $GITHUB_ENV
41+
42+
- name: Determine labels based on commit message
43+
id: determine_labels
44+
run: |
45+
declare -A LABEL_KEYWORDS
46+
LABEL_KEYWORDS["bug"]="bug"
47+
LABEL_KEYWORDS["doc"]="documentation"
48+
LABEL_KEYWORDS["enhancement"]="enhancement"
49+
LABEL_KEYWORDS["first issue"]="good first issue"
50+
LABEL_KEYWORDS["help"]="help wanted"
51+
LABEL_KEYWORDS["invalid"]="invalid"
52+
LABEL_KEYWORDS["question"]="question"
53+
LABEL_KEYWORDS["wontfix"]="wontfix"
54+
55+
COMMIT_TITLE="${{ env.commit_title }}"
56+
COMMIT_MESSAGE="${{ env.commit_message }}"
57+
58+
LABELS=""
59+
60+
for KEYWORD in "${!LABEL_KEYWORDS[@]}"; do
61+
if echo "$COMMIT_TITLE" "$COMMIT_MESSAGE" | grep -qi "$KEYWORD"; then
62+
LABELS="${LABELS},${LABEL_KEYWORDS[$KEYWORD]}"
63+
fi
64+
done
65+
66+
# Remove leading comma
67+
LABELS="${LABELS#,}"
68+
echo "LABELS=${LABELS}" >> $GITHUB_ENV
69+
70+
- name: Create pull request
71+
id: create_pr
72+
run: |
73+
gh pr create --head ${{ env.BRANCH_NAME }} --base main -t "$commit_title" -b "$commit_message" -a "$GITHUB_USERNAME" -l "$LABELS"

0 commit comments

Comments
 (0)