Skip to content

Git Provider

providers/git emits one devx.change.committed event per commit across configured repository roots, built on github.com/grokify/gogit.

c, err := git.New(git.Options{
    Roots:    []string{"/Users/jane/go/src/github.com/myorg"},
    MaxDepth: 1,    // directory levels below each root (default 3)
    NoMerges: false,
})

Event attributes

Attribute Meaning
commit_hash Full hash (also keys the event ID: same commit in two clones dedups)
author_email Author identity, for downstream identity resolution
insertions / deletions / files_changed --numstat change stats
ai_assisted Any Co-authored-by trailer matches a known AI tool
ai_tools Which tools (present only when assisted)

Context carries the repository (normalized origin URL), workspace path, and current branch. Commit subjects and bodies are never included.

AI attribution

KnownAITools is the canonical registry of AI coding assistants and their co-author trailer emails:

Tool Signature emails
Claude Code noreply@anthropic.com
GitHub Copilot noreply@github.com, copilot@github.com
Gemini CLI *+gemini-cli@users.noreply.github.com and variants
Cursor ai@cursor.sh, cursor@cursor.sh
Aider aider@aider.chat

Matching is case-insensitive with GitHub-noreply suffix support (AIToolByEmail). Trailer-based attribution understates AI involvement — tools that don't sign their work are invisible — which is why events carry history-mode provenance rather than claiming certainty.

Caveats

  • Local clones only: a stale clone understates activity relative to the hosting platform (pair with the GitHub provider in omni-github).
  • The branch on the event is the repo's current branch, an approximation for commits made on other branches.