Commit e236b896cbe0

Vincent Demeester <vincent@sbr.pm>
2024-12-11 11:11:33
nix/packages: update gh-approve…
- supports both prow and not prow - supports force merging or not - supports adding a comment Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 24a0587
Changed files (1)
nix
packages
my
scripts
nix/packages/my/scripts/bin/gh-approve
@@ -1,8 +1,58 @@
 #!/usr/bin/env bash
 # Approve things
 
+set -eufo pipefail
+
+PROW=0
+MERGE=1
+FORCE=0
+COMMENT=""
+
+while getopts "hfpmc:" o; do
+    case "${o}" in
+	c)
+	    s=${OPTARG}
+	    COMMENT="$s"
+	    ;;
+	p)
+	    PROW=1
+	    ;;
+	m)
+	    MERGE=1
+	    ;;
+	f)
+	    FORCE=1
+	    ;;
+	h)
+	    help
+	    exit 0
+	    ;;
+	*)
+	    echo "Invalid option"; help; exit 1;
+	    help
+	    exit 1
+	    ;;
+    esac
+done
+shift $((OPTIND-1))
+
 TO_APPROVE=$(gh pr list --json "number,title" | jq -r '.[] | ((.number | tostring) + " " + (.title))' | fzf --multi --ansi --preview "gh pr checks {1}" | awk 'OFS="\t" {print $1}')
 
 for pr in $TO_APPROVE; do
-    gh pr review $pr --approve --body "/lgtm"
+    if [[ $PROW -eq 1 ]]; then
+	# if prow, we just review
+	gh pr review $pr --approve --body "/lgtm \
+$COMMENT"
+    else
+	gh pr review $pr --approve --body "$COMMENT"
+    fi
+    if [[ $MERGE -eq 1 ]]; then
+	MERGE_ARGS="--rebase --delete-branch"
+	if [[ $FORCE -eq 1 ]]; then
+	    MERGE_ARGS="$MERGE_ARGS --admin"
+	else
+	    MERGE_ARGS="$MERGE_ARGS -auto"
+	fi
+	gh pr merge $MERGE_ARGS --body "$COMMENT" $pr
+    fi
 done