Agent Identity for Git and GitHub
Date: 2026-03-01 Status: Research — no action taken yet
Problem
Almost all SecurityV0 development is performed by Claude Code with a human in the loop. As autonomous bot development grows (e.g., via Telegram on Mac mini server, --dangerously-skip-permissions), the need to distinguish human vs agent activity increases.
Two dimensions:
- GitHub Issues/PRs — who created the task?
- Git commits — who authored the code?
Current Setup
- Same GitHub account (
Ivan-Fn) for both human and agent work claude-codelabel on agent-created issues (configured in AGENTS.md + UserPromptSubmit hook)- No commit-level distinction —
git logshows all commits as the same author
This works for a small team where the developer knows which sessions are agentic.
Industry Approaches (as of March 2026)
1. Separate Bot Account
Create a dedicated GitHub account (e.g., sv0-bot):
- Git commits use bot identity via env vars (no permanent config change):
GIT_AUTHOR_NAME="sv0-bot"
GIT_AUTHOR_EMAIL="sv0-bot@users.noreply.github.com"
GIT_COMMITTER_NAME="sv0-bot"
GIT_COMMITTER_EMAIL="sv0-bot@users.noreply.github.com" - GitHub Issues/PRs created by the bot account — immediately visible as non-human
- Dedicated SSH key scoped to specific repos
- CODEOWNERS can require human review on bot commits
- Filterable:
git log --author="sv0-bot",gh search issues --author sv0-bot
Pros: Clean attribution, git-level filtering, CODEOWNERS integration, audit-friendly Cons: Extra account to manage, SSH key setup, free GitHub accounts have limited private repo access
Reference: Agent Identity for Git Commits (dev.to)
2. Same Account + Labels/Tags
Keep personal account, use labels and conventions to distinguish:
claude-codelabel on issues- Draft PRs for agent work
- Review gates enforce human sign-off
Pros: Simple, no extra account, works today
Cons: No commit-level distinction, git log can't filter, relies on process discipline
Reference: GitHub Community Discussion
3. GitHub Copilot's Native Approach
GitHub's Copilot coding agent runs as copilot-swe-agent[bot] — a first-class bot identity. All commits, PRs, and issues are visibly from the bot. This is the direction GitHub is heading for their own tooling.
Reference: GitHub Copilot Coding Agent
4. Git AI (Line-Level Attribution)
git-ai is an open-source extension that provides line-by-line attribution of human vs AI code within the same commit. More granular than account separation but adds tooling complexity.
Proposed Tiered Model for SecurityV0
| Mode | Identity | Supervision | Example |
|---|---|---|---|
| Interactive (human in the loop) | Personal account + claude-code label | Human approves each action | Claude Code terminal sessions |
| Autonomous (minimal supervision) | Bot account (sv0-bot) | Pre-approved, runs unattended | Telegram bot, --dangerously-skip-permissions, Mac mini server |
Rationale
- Interactive sessions: the human IS the author — they're directing the work, reviewing output, approving commits. Labels are sufficient to note the tool used.
- Autonomous sessions: the bot IS the author — no human reviewed before commit/push. A separate identity makes this visible in git history and GitHub UI, and allows CODEOWNERS rules to enforce post-hoc review.
Implementation (when ready)
- Create GitHub account
sv0-bot(or similar) - Generate SSH key, add to bot account, grant collaborator access to SecurityV0 repos
- Configure autonomous agent environment:
export GIT_AUTHOR_NAME="sv0-bot"
export GIT_AUTHOR_EMAIL="sv0-bot@users.noreply.github.com"
export GIT_COMMITTER_NAME="sv0-bot"
export GIT_COMMITTER_EMAIL="sv0-bot@users.noreply.github.com"
export GIT_SSH_COMMAND="ssh -i ~/.ssh/sv0_bot_key -o IdentitiesOnly=yes" - Add
CODEOWNERSrule requiring human review on bot PRs - Keep interactive sessions on personal account with
claude-codelabel (no change)
Decision
No action for now. Current label-based approach is sufficient for interactive development. Revisit when autonomous bot development (Telegram/Mac mini) reaches production use.