fix: bug: local-model agents reuse FORGE_TOKEN of main agent — wrong Forgejo identity (#563)
This fixes the issue where agents-llama containers were using the main FORGE_TOKEN (dev-bot) instead of dedicated credentials for the llama bot user. Changes: - forge-setup.sh: Added generation of FORGE_TOKEN_LLAMA and FORGE_PASS_LLAMA for local-model bot users (dev-qwen, dev-qwen-nightly). These are created as Forgejo users with their own API tokens and passwords for git push. - generators.sh: Updated agents-llama service to use FORGE_TOKEN_LLAMA and FORGE_PASS_LLAMA instead of falling back to dev-bot's credentials. Fixed escaping to defer variable resolution to docker-compose runtime. - docker-compose.yml: Updated to use FORGE_TOKEN_LLAMA and FORGE_PASS_LLAMA (renamed from FORGE_TOKEN_DEVQWEN for consistency). - .env.example: Added documentation for all per-bot tokens and passwords. - projects/disinto.toml.example: Documented the auto-credential generation. When a project TOML configures [agents.llama] with forge_user = dev-qwen: 1. disinto init creates the dev-qwen Forgejo user 2. Generates FORGE_TOKEN_LLAMA and FORGE_PASS_LLAMA 3. Adds dev-qwen as write collaborator on the project repo 4. The agents-llama container uses these credentials for all Forgejo API calls This ensures issues and PRs created by the llama agent are correctly attributed to dev-qwen instead of dev-bot.
This commit is contained in:
parent
42d4367fe1
commit
f700c33a1b
5 changed files with 165 additions and 3 deletions
23
.env.example
23
.env.example
|
|
@ -19,15 +19,32 @@ FORGE_URL=http://localhost:3000 # [CONFIG] local Forgejo instance
|
|||
# ── Auth tokens ───────────────────────────────────────────────────────────
|
||||
# Each agent has its own Forgejo account and API token (#747).
|
||||
# Per-agent tokens fall back to FORGE_TOKEN if not set.
|
||||
#
|
||||
# Tokens and passwords are auto-generated by `disinto init` and stored in .env.
|
||||
# Each bot user gets:
|
||||
# - FORGE_TOKEN_<BOT> = API token for REST calls (user identity via /api/v1/user)
|
||||
# - FORGE_PASS_<BOT> = password for git HTTP push (#361, Forgejo 11.x limitation)
|
||||
#
|
||||
# Local-model agents (agents-llama) use FORGE_TOKEN_LLAMA / FORGE_PASS_LLAMA
|
||||
# with FORGE_BOT_USER_LLAMA=dev-qwen to ensure correct attribution (#563).
|
||||
FORGE_TOKEN= # [SECRET] dev-bot API token (default for all agents)
|
||||
FORGE_TOKEN_DEVQWEN= # [SECRET] dev-qwen API token (for agents-llama)
|
||||
FORGE_PASS= # [SECRET] dev-bot password for git HTTP push (#361)
|
||||
FORGE_TOKEN_LLAMA= # [SECRET] dev-qwen API token (for agents-llama)
|
||||
FORGE_PASS_LLAMA= # [SECRET] dev-qwen password for git HTTP push
|
||||
FORGE_REVIEW_TOKEN= # [SECRET] review-bot API token
|
||||
FORGE_REVIEW_PASS= # [SECRET] review-bot password for git HTTP push
|
||||
FORGE_PLANNER_TOKEN= # [SECRET] planner-bot API token
|
||||
FORGE_PLANNER_PASS= # [SECRET] planner-bot password for git HTTP push
|
||||
FORGE_GARDENER_TOKEN= # [SECRET] gardener-bot API token
|
||||
FORGE_GARDENER_PASS= # [SECRET] gardener-bot password for git HTTP push
|
||||
FORGE_VAULT_TOKEN= # [SECRET] vault-bot API token
|
||||
FORGE_VAULT_PASS= # [SECRET] vault-bot password for git HTTP push
|
||||
FORGE_SUPERVISOR_TOKEN= # [SECRET] supervisor-bot API token
|
||||
FORGE_SUPERVISOR_PASS= # [SECRET] supervisor-bot password for git HTTP push
|
||||
FORGE_PREDICTOR_TOKEN= # [SECRET] predictor-bot API token
|
||||
FORGE_PREDICTOR_PASS= # [SECRET] predictor-bot password for git HTTP push
|
||||
FORGE_ARCHITECT_TOKEN= # [SECRET] architect-bot API token
|
||||
FORGE_ARCHITECT_PASS= # [SECRET] architect-bot password for git HTTP push
|
||||
FORGE_BOT_USERNAMES=dev-bot,review-bot,planner-bot,gardener-bot,vault-bot,supervisor-bot,predictor-bot,architect-bot
|
||||
|
||||
# ── Backwards compatibility ───────────────────────────────────────────────
|
||||
|
|
@ -35,6 +52,10 @@ FORGE_BOT_USERNAMES=dev-bot,review-bot,planner-bot,gardener-bot,vault-bot,superv
|
|||
# CODEBERG_TOKEN automatically (same for REVIEW_BOT_TOKEN, CODEBERG_REPO,
|
||||
# CODEBERG_BOT_USERNAMES). No action needed for existing deployments.
|
||||
# Per-agent tokens default to FORGE_TOKEN when unset (single-token setups).
|
||||
#
|
||||
# Note: `disinto init` auto-generates all bot tokens/passwords when you
|
||||
# configure [agents.llama] in a project TOML. The credentials are stored
|
||||
# in .env.enc (encrypted) or .env (plaintext fallback).
|
||||
|
||||
# ── Woodpecker CI ─────────────────────────────────────────────────────────
|
||||
WOODPECKER_TOKEN= # [SECRET] Woodpecker API token
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue