github-merge-pr: move script config to separate file
authorChristian Marangi <ansuelsmth@gmail.com>
Mon, 29 Apr 2024 10:40:17 +0000 (12:40 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Mon, 29 Apr 2024 10:46:26 +0000 (12:46 +0200)
Move script config to separate file, .config, to make it easier to
update the script and pull changes without having to rebase or re-set
values.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
.gitignore [new file with mode: 0644]
github-merge-pr.sh

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..2ec2572
--- /dev/null
@@ -0,0 +1 @@
+.config
\ No newline at end of file
index 4a61a3f04381c7e3a35006633b3e587b9dd39ac8..64cd6bff1046c236d4f4c0e0ba0fa0b240653490 100755 (executable)
 # REPO_NAME is optional and defaults to openwrt. It does
 # describe the repository name to use to pull PR info from.
 
+# Script .config variables
 # Github repository owner or organization name.
+# By default set to openwrt, set this line in .config to overwrite
+# the default value.
 GITHUB_REPO_OWNER="openwrt"
 
 # Your repository token, generate this token at your profile page:
@@ -20,10 +23,14 @@ GITHUB_REPO_OWNER="openwrt"
 # - Click on "Generate new token"
 # - Enter a description, e.g. "pr.sh" and pick the "repo" scope
 # - Hit "Generate token"
-#TOKEN="d41d8cd98f00b204e9800998ecf8427e"
+# Set this line in .config to provide a GITHUB_TOKEN and add comments
+#GITHUB_TOKEN="d41d8cd98f00b204e9800998ecf8427e"
 #
-# Uncomment this line to use SSH key to rebase PR branch
-# USE_SSH=1
+# Set this line in .config to use SSH key to rebase PR branch
+# GITHUB_USE_SSH=1
+
+# Everything in .config will overwrite the default values set up
+[ -f  .config ] && source .config
 
 PRID="$1"
 BRANCH="${2:-main}"
@@ -93,7 +100,7 @@ fi
 PR_USER="$(echo "$PR_INFO" | jq -r ".head.user.login")"
 PR_BRANCH="$(echo "$PR_INFO" | jq -r ".head.ref")"
 LOCAL_PR_BRANCH="$PR_BRANCH"-"$PR_USER"
-if [ "$USE_SSH" = "1" ]; then
+if [ "$GITHUB_USE_SSH" = "1" ]; then
        PR_REPO="$(echo "$PR_INFO" | jq -r ".head.repo.ssh_url")"
 else
        PR_REPO="$(echo "$PR_INFO" | jq -r ".head.repo.html_url")"
@@ -171,7 +178,7 @@ else
                # Default close comment
                COMMENT="Thanks! Rebased on top of $BRANCH and merged!"
 
-               if [ -n "$TOKEN" ] && [ -z "$DRY_RUN" ]; then
+               if [ -n "$GITHUB_TOKEN" ] && [ -z "$DRY_RUN" ]; then
                        echo ""
                        echo "Enter a comment and hit <enter> to close the PR at Github automatically now."
                        echo "Hit <ctrl>-<c> to exit."
@@ -189,8 +196,8 @@ else
                        comment="${comment//\"/\\\"}"
                        comment="$(printf '{"body":"%s"}' "$comment")"
 
-                       if ! curl -s -o /dev/null -w "%{http_code} %{url_effective}\\n" --user "$TOKEN:x-oauth-basic" --request POST --data "$comment" "https://api.github.com/repos/$REPO/issues/$PRID/comments" || \
-                       ! curl -s -o /dev/null -w "%{http_code} %{url_effective}\\n" --user "$TOKEN:x-oauth-basic" --request PATCH --data '{"state":"closed"}' "https://api.github.com/repos/$REPO/pulls/$PRID"
+                       if ! curl -s -o /dev/null -w "%{http_code} %{url_effective}\\n" --user "$GITHUB_TOKEN:x-oauth-basic" --request POST --data "$comment" "https://api.github.com/repos/$REPO/issues/$PRID/comments" || \
+                       ! curl -s -o /dev/null -w "%{http_code} %{url_effective}\\n" --user "$GITHUB_TOKEN:x-oauth-basic" --request PATCH --data '{"state":"closed"}' "https://api.github.com/repos/$REPO/pulls/$PRID"
                        then
                                echo ""                                                     >&2
                                echo "Something failed while sending comment to the PR via ">&2