feat: add git user.name to actor fallback chain (#994)
- Insert git config user.name in fallback chain before final $USER default - Consolidate duplicate actor resolution logic into single function - Add BEADS_ACTOR as env var alias for MCP compatibility - Add tests for actor resolution priority - Update CONFIG.md with Actor Identity Resolution section The new fallback order is: --actor flag > BD_ACTOR > BEADS_ACTOR > git user.name > $USER > "unknown" Co-authored-by: Ohffs <ohffsnotnow@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -43,7 +43,7 @@ Tool-level settings you can configure:
|
||||
| `directory.labels` | - | - | (none) | Map directories to labels for automatic filtering |
|
||||
| `external_projects` | - | - | (none) | Map project names to paths for cross-project deps |
|
||||
| `db` | `--db` | `BD_DB` | (auto-discover) | Database path |
|
||||
| `actor` | `--actor` | `BD_ACTOR` | `$USER` | Actor name for audit trail |
|
||||
| `actor` | `--actor` | `BD_ACTOR` | `git config user.name` | Actor name for audit trail (see below) |
|
||||
| `flush-debounce` | - | `BEADS_FLUSH_DEBOUNCE` | `5s` | Debounce time for auto-flush |
|
||||
| `auto-start-daemon` | - | `BEADS_AUTO_START_DAEMON` | `true` | Auto-start daemon if not running |
|
||||
| `daemon-log-max-size` | - | `BEADS_DAEMON_LOG_MAX_SIZE` | `50` | Max daemon log size in MB before rotation |
|
||||
@@ -51,6 +51,24 @@ Tool-level settings you can configure:
|
||||
| `daemon-log-max-age` | - | `BEADS_DAEMON_LOG_MAX_AGE` | `30` | Max days to keep old log files |
|
||||
| `daemon-log-compress` | - | `BEADS_DAEMON_LOG_COMPRESS` | `true` | Compress rotated log files |
|
||||
|
||||
### Actor Identity Resolution
|
||||
|
||||
The actor name (used for `created_by` in issues and audit trails) is resolved in this order:
|
||||
|
||||
1. `--actor` flag (explicit override)
|
||||
2. `BD_ACTOR` environment variable
|
||||
3. `BEADS_ACTOR` environment variable (alias for MCP/integration compatibility)
|
||||
4. `git config user.name`
|
||||
5. `$USER` environment variable (system username fallback)
|
||||
6. `"unknown"` (final fallback)
|
||||
|
||||
For most developers, no configuration is needed - beads will use your git identity automatically. This ensures your issue authorship matches your commit authorship.
|
||||
|
||||
To override, set `BD_ACTOR` in your shell profile:
|
||||
```bash
|
||||
export BD_ACTOR="my-github-handle"
|
||||
```
|
||||
|
||||
### Example Config File
|
||||
|
||||
`~/.config/bd/config.yaml`:
|
||||
|
||||
Reference in New Issue
Block a user