Add gitea-pr script skeleton with host/owner/repo detection

This commit is contained in:
2026-07-12 16:29:37 -07:00
parent 4e8c3c6269
commit 97a631b335
Executable
+71
View File
@@ -0,0 +1,71 @@
#!/bin/bash
set -euo pipefail
GITEA_HOST="gitbox.bradina.localdomain"
GITEA_API="https://${GITEA_HOST}/api/v1"
function usage() {
echo "Usage: gitea-pr create [--title TITLE] [--body BODY] [--base BRANCH]"
echo " gitea-pr comments PR_NUMBER"
echo " gitea-pr merge PR_NUMBER"
}
function require_token() {
if [ -z "${GITEA_TOKEN:-}" ]; then
echo "GITEA_TOKEN is not set. Generate a token in the Gitea web UI" \
"(Settings > Applications, scopes write:repository + write:issue)" \
"and add 'export GITEA_TOKEN=...' to ~/.profile.local" >&2
exit 1
fi
}
function gitea_owner_repo() {
local remote_url host owner_repo
remote_url=$(git remote get-url origin 2>/dev/null) || {
echo "No 'origin' remote found in this repository" >&2
exit 1
}
host=$(echo "$remote_url" | sed -E 's#^[^@]+@([^:]+):.*#\1#')
if [ "$host" != "$GITEA_HOST" ]; then
echo "origin remote ($remote_url) is not on $GITEA_HOST; gitea-pr only supports this host" >&2
exit 1
fi
owner_repo=$(echo "$remote_url" | sed -E 's#^[^@]+@[^:]+:##; s#\.git$##')
echo "$owner_repo"
}
if [ "$#" -lt 1 ]; then
usage
exit 1
fi
subcommand="$1"
shift
case "$subcommand" in
create|comments|merge)
require_token
owner_repo=$(gitea_owner_repo)
owner="${owner_repo%%/*}"
repo="${owner_repo##*/}"
;;
*)
usage
exit 1
;;
esac
case "$subcommand" in
create)
echo "create: not yet implemented" >&2
exit 1
;;
comments)
echo "comments: not yet implemented" >&2
exit 1
;;
merge)
echo "merge: not yet implemented" >&2
exit 1
;;
esac