GitBucket provides a GitHub v3 compatible API at https://gitbucket.jerxie.com/api/v3. Antigravity AI uses a Personal Access Token to authenticate.
The token must be provided in the Authorization header: Authorization: token <YOUR_TOKEN>
curl -H "Authorization: token <TOKEN>" \
-X POST -d '{"title": "Issue Title", "body": "Issue Description"}' \
https://gitbucket.jerxie.com/api/v3/repos/yangyangxie/cortex-hub/issues
curl -H "Authorization: token <TOKEN>" \
-X POST -d '{"title": "PR Title", "base": "master", "head": "feature-branch", "body": "PR Description"}' \
https://gitbucket.jerxie.com/api/v3/repos/yangyangxie/cortex-hub/pulls
curl -H "Authorization: token <TOKEN>" \
https://gitbucket.jerxie.com/api/v3/repos/yangyangxie/cortex-hub/releases
GitBucket's Snippet feature works primarily via Git or Raw Web Access. The standard GitHub JSON API for gists is currently not active on this instance.
Use curl to fetch raw file content directly:
curl -L https://gitbucket.jerxie.com/gist/yangyangxie/<ID>/raw/master/<FILENAME>
Every Snippet is a standard Git repository. You can clone, edit, and push changes back:
# Clone the snippet git clone https://yangyangxie:<PAT>@gitbucket.jerxie.com/git/gist/yangyangxie/<ID>.git secret-repo # Update secret cd secret-repo echo "new-secret-value" > config.json git add . && git commit -m "update secret" git push origin master
Use a Private Snippet as a simple "Vault" for your project.
# Pull and source secrets
GITBUCKET_TOKEN="YOUR_TOKEN"
SNIPPET_ID="YOUR_SNIPPET_ID"
TMP_DIR=$(mktemp -d)
git clone "https://user:${GITBUCKET_TOKEN}@gitbucket.jerxie.com/git/gist/user/${SNIPPET_ID}.git" "$TMP_DIR"
source "$TMP_DIR/.env"
rm -rf "$TMP_DIR"
Store AI provider keys (Gemini, DeepSeek, OpenAI) in a dedicated private snippet (e.g., .env.ai).
6f583b2e0a6b7297970648c0c323e81dDEEPSEEK_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY, EMBEDDING_API_KEY, OIDC_CLIENT_SECRET.Since some GitBucket API features (like Search and Patch) are limited, use this "Audit Log" pattern for AI-driven development:
Start every complex task by creating an issue. This provides a central ID for all future actions.
# Create the task
curl -H "Authorization: token <TOKEN>" \
-X POST -d '{"title": "Feature: [Name]", "body": "Goal: ...\n\n### Tasks:\n- [ ] Step 1\n- [ ] Step 2"}' \
https://gitbucket.jerxie.com/api/v3/repos/owner/repo/issues
Instead of updating the issue body (unsupported), add a comment for every major milestone or sub-task completion.
# Document progress
curl -H "Authorization: token <TOKEN>" \
-X POST -d '{"body": "STT Backend logic implemented in /app/core/stt.py"}' \
https://gitbucket.jerxie.com/api/v3/repos/owner/repo/issues/<ID>/comments
GET /api/v3/repos/owner/repo/issues to see the current backlog.GET .../issues/<ID>/comments to read the history of an ongoing task.repo and gist scopes (if applicable).