Update: Add auto-create repository feature to summary agent
- Agent now supports GITEA_API_TOKEN environment variable - Automatically creates Gitea repos for new VPS projects - Includes setup guide for generating and storing API tokens - Falls back gracefully if token not available - Reduces manual repo creation steps on new VPS instances
This commit is contained in:
@@ -122,9 +122,9 @@ Add new timestamped entry:
|
|||||||
|
|
||||||
**Important:** Only CLAUDE.md should be updated by default.
|
**Important:** Only CLAUDE.md should be updated by default.
|
||||||
|
|
||||||
### Step 5: Ensure Git Remote Metadata (Gitea-Optimized)
|
### Step 5: Ensure Git Remote & Auto-Create Repository (Gitea-Optimized)
|
||||||
|
|
||||||
Handle Git remote configuration for Gitea:
|
Handle Git remote configuration and auto-create Gitea repository if needed:
|
||||||
|
|
||||||
#### Detect Repository Type:
|
#### Detect Repository Type:
|
||||||
```bash
|
```bash
|
||||||
@@ -132,10 +132,36 @@ Handle Git remote configuration for Gitea:
|
|||||||
if [[ "$PWD" == *"homelab-agents"* ]]; then
|
if [[ "$PWD" == *"homelab-agents"* ]]; then
|
||||||
REPO_TYPE="homelab-agents"
|
REPO_TYPE="homelab-agents"
|
||||||
REPO_URL="http://100.120.125.113:3000/pdm/homelab-agents.git"
|
REPO_URL="http://100.120.125.113:3000/pdm/homelab-agents.git"
|
||||||
|
REPO_NAME="homelab-agents"
|
||||||
else
|
else
|
||||||
REPO_TYPE="vps-project"
|
REPO_TYPE="vps-project"
|
||||||
PROJECT_NAME=$(basename "$PWD")
|
PROJECT_NAME=$(basename "$PWD")
|
||||||
REPO_URL="http://100.120.125.113:3000/pdm/$PROJECT_NAME.git"
|
REPO_URL="http://100.120.125.113:3000/pdm/$PROJECT_NAME.git"
|
||||||
|
REPO_NAME="$PROJECT_NAME"
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Auto-Create Repository if Missing (Optional - Requires API Token):
|
||||||
|
```bash
|
||||||
|
GITEA_URL="http://100.120.125.113:3000"
|
||||||
|
GITEA_TOKEN="${GITEA_API_TOKEN:-}"
|
||||||
|
|
||||||
|
if [[ -n "$GITEA_TOKEN" && "$REPO_TYPE" == "vps-project" ]]; then
|
||||||
|
# Check if repo exists by trying to access it
|
||||||
|
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$GITEA_URL/api/v1/repos/pdm/$REPO_NAME")
|
||||||
|
|
||||||
|
if [[ "$HTTP_STATUS" == "404" ]]; then
|
||||||
|
echo "📦 Creating repository on Gitea: $REPO_NAME"
|
||||||
|
curl -s -X POST "$GITEA_URL/api/v1/user/repos" \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{\"name\": \"$REPO_NAME\", \"description\": \"VPS Project: $REPO_NAME\", \"private\": false}" \
|
||||||
|
> /dev/null
|
||||||
|
echo "✅ Repository created successfully"
|
||||||
|
fi
|
||||||
|
elif [[ -z "$GITEA_TOKEN" && "$REPO_TYPE" == "vps-project" ]]; then
|
||||||
|
echo "⚠️ Optional: Set GITEA_API_TOKEN for automatic repo creation"
|
||||||
|
echo " Without it, you must create the repo manually in Gitea web UI first"
|
||||||
fi
|
fi
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -157,7 +183,7 @@ fi
|
|||||||
git remote -v
|
git remote -v
|
||||||
echo "GITEA_URL=http://100.120.125.113:3000" > .gitconfig.local
|
echo "GITEA_URL=http://100.120.125.113:3000" > .gitconfig.local
|
||||||
echo "REPOSITORY_TYPE=$REPO_TYPE" >> .gitconfig.local
|
echo "REPOSITORY_TYPE=$REPO_TYPE" >> .gitconfig.local
|
||||||
echo "REPOSITORY_PATH=pdm/$PROJECT_NAME.git" >> .gitconfig.local
|
echo "REPOSITORY_PATH=pdm/$REPO_NAME.git" >> .gitconfig.local
|
||||||
git add .gitconfig.local
|
git add .gitconfig.local
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -287,8 +313,9 @@ Before declaring a session closed, verify:
|
|||||||
- Include all sections for future context resumption
|
- Include all sections for future context resumption
|
||||||
|
|
||||||
**Gitea repository doesn't exist yet:**
|
**Gitea repository doesn't exist yet:**
|
||||||
- Create through Gitea web UI at http://100.120.125.113:3000
|
- **Auto-Create (Recommended)**: Set `GITEA_API_TOKEN` environment variable and the agent will create it automatically
|
||||||
- Then configure git remote
|
- **Manual Creation**: Create through Gitea web UI at http://100.120.125.113:3000, then configure git remote
|
||||||
|
- See "Setting Up API Token for Auto-Repository Creation" section below
|
||||||
|
|
||||||
**Network access to Gitea unavailable:**
|
**Network access to Gitea unavailable:**
|
||||||
- Commit changes locally
|
- Commit changes locally
|
||||||
@@ -297,6 +324,49 @@ Before declaring a session closed, verify:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Setting Up API Token for Auto-Repository Creation
|
||||||
|
|
||||||
|
To enable automatic Gitea repository creation on new VPS projects, follow these steps once:
|
||||||
|
|
||||||
|
### Step 1: Generate API Token on Gitea Server
|
||||||
|
|
||||||
|
Log in to Gitea web UI (http://100.120.125.113:3000) as user `pdm`:
|
||||||
|
1. Go to Settings → Applications → Personal Access Tokens
|
||||||
|
2. Click "Generate Token"
|
||||||
|
3. Name it: `vps-automation`
|
||||||
|
4. Select scope: `repo` (for creating repositories)
|
||||||
|
5. Click "Generate Token"
|
||||||
|
6. Copy the token (you'll only see it once)
|
||||||
|
|
||||||
|
### Step 2: Store Token on VPS
|
||||||
|
|
||||||
|
On each VPS where you'll create new projects, save the token:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Option A: Add to ~/.bashrc for all sessions
|
||||||
|
echo 'export GITEA_API_TOKEN="your-token-here"' >> ~/.bashrc
|
||||||
|
source ~/.bashrc
|
||||||
|
|
||||||
|
# Option B: Store in a secure file and source it
|
||||||
|
mkdir -p ~/.homelab-secrets
|
||||||
|
echo 'export GITEA_API_TOKEN="your-token-here"' > ~/.homelab-secrets/gitea-token.sh
|
||||||
|
chmod 600 ~/.homelab-secrets/gitea-token.sh
|
||||||
|
echo 'source ~/.homelab-secrets/gitea-token.sh 2>/dev/null' >> ~/.bashrc
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Use with Summary Agent
|
||||||
|
|
||||||
|
Once set up, the agent will automatically:
|
||||||
|
1. Detect when you're in a new project directory (not homelab-agents)
|
||||||
|
2. Check if the Gitea repository exists
|
||||||
|
3. Create it if missing using the API token
|
||||||
|
4. Configure the git remote
|
||||||
|
5. Push your work
|
||||||
|
|
||||||
|
No manual repository creation needed!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Implementation Notes
|
## Implementation Notes
|
||||||
|
|
||||||
This agent works seamlessly with your Gitea instance at **http://100.120.125.113:3000** (user: pdm).
|
This agent works seamlessly with your Gitea instance at **http://100.120.125.113:3000** (user: pdm).
|
||||||
|
|||||||
Reference in New Issue
Block a user