Skip to main content

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:

  1. GitHub Issues/PRs — who created the task?
  2. Git commits — who authored the code?

Current Setup

  • Same GitHub account (Ivan-Fn) for both human and agent work
  • claude-code label on agent-created issues (configured in AGENTS.md + UserPromptSubmit hook)
  • No commit-level distinction — git log shows 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-code label 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

ModeIdentitySupervisionExample
Interactive (human in the loop)Personal account + claude-code labelHuman approves each actionClaude Code terminal sessions
Autonomous (minimal supervision)Bot account (sv0-bot)Pre-approved, runs unattendedTelegram 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)

  1. Create GitHub account sv0-bot (or similar)
  2. Generate SSH key, add to bot account, grant collaborator access to SecurityV0 repos
  3. 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"
  4. Add CODEOWNERS rule requiring human review on bot PRs
  5. Keep interactive sessions on personal account with claude-code label (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.


Sources