From d7afcfb99782e1422bc6345900cd4445de6f901b Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Fri, 30 May 2025 09:23:54 -0500 Subject: [PATCH] Update: 2025-05-30 09:23:54 --- gitfield-bitbucket | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/gitfield-bitbucket b/gitfield-bitbucket index ea1d1fa..cedbe0f 100755 --- a/gitfield-bitbucket +++ b/gitfield-bitbucket @@ -14,13 +14,14 @@ FULL_NAME="Mark Randall Havens" APP_PASS_FILE="$HOME/.bitbucket_app_password" API_URL="https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$REPO_NAME" SSH_REMOTE="git@bitbucket.org:$BITBUCKET_WORKSPACE/$REPO_NAME.git" +WEB_LINK="https://bitbucket.org/$BITBUCKET_WORKSPACE/$REPO_NAME" # ╭─────────────────────────────────────╮ # │ LOGGING UTILS │ # ╰─────────────────────────────────────╯ -info() { echo -e "\e[1;34m[INFO]\e[0m $*"; } -warn() { echo -e "\e[1;33m[WARN]\e[0m $*"; } -error() { echo -e "\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; } +info() { echo -e "\n\e[1;34m[INFO]\e[0m $*"; } +warn() { echo -e "\n\e[1;33m[WARN]\e[0m $*"; } +error() { echo -e "\n\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; } # ╭─────────────────────────────────────╮ # │ CHECK + INSTALL TOOLS │ @@ -46,15 +47,12 @@ fi eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa || error "Failed to add SSH key" - -# Add Bitbucket to known_hosts to avoid prompt ssh-keyscan -t rsa bitbucket.org >> ~/.ssh/known_hosts 2>/dev/null || true # ╭─────────────────────────────────────╮ # │ SSH AUTH VERIFICATION │ # ╰─────────────────────────────────────╯ info "Verifying SSH access to Bitbucket..." - if ssh -T git@bitbucket.org 2>&1 | grep -q "authenticated"; then info "✓ SSH access to Bitbucket verified." else @@ -72,7 +70,7 @@ fi # ╰─────────────────────────────────────╯ if [ ! -f "$APP_PASS_FILE" ]; then echo - echo "🔐 Create a Bitbucket App Password (repo read/write + SSH + webhooks)" + echo "🔐 Create a Bitbucket App Password (repo:admin + write + webhook)" echo "→ https://bitbucket.org/account/settings/app-passwords/" read -rsp "Enter Bitbucket App Password (input hidden): " APP_PASS echo "$APP_PASS" > "$APP_PASS_FILE" @@ -92,14 +90,13 @@ if [ ! -d .git ]; then git add . || warn "Nothing to add" git commit -m "Initial commit" || warn "Nothing to commit" else - info "Git repo already initialized." + info "✓ Git repo already initialized." fi # ╭─────────────────────────────────────╮ # │ CREATE REMOTE IF NOT EXISTS │ # ╰─────────────────────────────────────╯ REPO_EXISTS=$(curl -s -u "$BITBUCKET_USER:$APP_PASS" "$API_URL" | jq -r '.name // empty') - if [ -z "$REPO_EXISTS" ]; then info "Creating Bitbucket repository '$REPO_NAME'..." CREATE_RESPONSE=$(curl -s -w "%{http_code}" -o /tmp/create_resp.txt -u "$BITBUCKET_USER:$APP_PASS" -X POST "$API_URL" \ @@ -119,7 +116,6 @@ fi # ╰─────────────────────────────────────╯ EXPECTED_REMOTE="$SSH_REMOTE" CURRENT_REMOTE=$(git remote get-url "$REMOTE_NAME" 2>/dev/null || echo "") - if [[ "$CURRENT_REMOTE" != "$EXPECTED_REMOTE" ]]; then if [ -n "$CURRENT_REMOTE" ]; then warn "Removing incorrect remote: $CURRENT_REMOTE" @@ -135,7 +131,6 @@ fi # │ COMMIT + PUSH LOGIC │ # ╰─────────────────────────────────────╯ BRANCH=$(git rev-parse --abbrev-ref HEAD) - if ! git diff --quiet || ! git diff --cached --quiet; then git add . && git commit -m "Update: $(date '+%Y-%m-%d %H:%M:%S')" || warn "Nothing to commit" else @@ -150,4 +145,8 @@ else git push "$REMOTE_NAME" "$BRANCH" || error "Push failed" fi +# ╭─────────────────────────────────────╮ +# │ FINAL LINK OUTPUT │ +# ╰─────────────────────────────────────╯ info "✅ Bitbucket push complete." +echo -e "\n🔗 View in browser: $WEB_LINK\n"