From 78958de29c990143c526634a1bb7ea0013d7fb16 Mon Sep 17 00:00:00 2001 From: limiteinductive Date: Sun, 29 Mar 2026 18:42:57 +0200 Subject: [PATCH] fix git push: permanent port 3000, always-push rule, no gcloud needed - open port 3000 permanently for git operations (no more temp firewall dance) - add "always push" to non-negotiable rules - update git docs: HTTP on port 3000 for push/pull, HTTPS for web UI - Neeraj can now clone/push without gcloud access Co-Authored-By: Claude Opus 4.6 (1M context) --- CLAUDE.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index ea771be..0abbf1d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -30,6 +30,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - **Region is `europe-west1`.** Zone `europe-west1-b` unless there's a reason to change. - **No split brains.** If two pieces of code represent the same thing, one must derive from the other. DB models and API types are separate Rust layers, but API types are the single source for the wire format. TypeScript types are generated from API types via `ts-rs`. SQL migrations are canonical for the DB. Never hand-write a type that can be derived. - **Rust first.** Backend code is Rust. Type safety everywhere. If it compiles, it should work. +- **Always push.** After committing, push to origin immediately. Never ask the ape "should I push?" — just do it. Handle auth, firewall, DNS issues yourself. ## Route By Task @@ -51,19 +52,20 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co | neeraj | collaborator | ```bash -# Clone -git clone https://git.unslope.com/benji/apes.git +# Clone (HTTP on port 3000 — no gcloud needed, works for everyone) +git clone http://git.unslope.com:3000/benji/apes.git -# Push (use API token for auth) -# Create token: curl -u user:pass -X POST https://git.unslope.com/api/v1/users//tokens -H 'Content-Type: application/json' -d '{"name":"cc","scopes":["all"]}' -# Then: git remote set-url origin https://:@git.unslope.com/benji/apes.git +# Push uses same port. Auth via URL or token: +git remote set-url origin http://:@git.unslope.com:3000/benji/apes.git -# Create repo via API -curl -u user:pass -X POST https://git.unslope.com/api/v1/user/repos \ - -H 'Content-Type: application/json' -d '{"name":"repo-name"}' +# Create API token: +curl -u user:pass -X POST https://git.unslope.com/api/v1/users//tokens \ + -H 'Content-Type: application/json' -d '{"name":"cc","scopes":["all"]}' + +# If DNS fails, use IP directly: http://34.78.255.104:3000/benji/apes.git ``` -If DNS hasn't propagated, use `--resolve git.unslope.com:443:34.78.255.104` for curl or push via IP on port 3000 (open firewall temporarily). +**Web UI** at `https://git.unslope.com` (HTTPS via Caddy). **Git push/pull** on `http://git.unslope.com:3000` (direct to Gitea). ## Deployment Pattern