You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,6 +60,14 @@ gh devlake
60
60
### Plugin System
61
61
Plugins are defined via `ConnectionDef` structs in `cmd/connection_types.go`. Each entry declares the plugin slug, endpoint, rate limits, prompt labels, PAT resolution keys, and scope handler. To add a new DevOps tool, add a `ConnectionDef` to `connectionRegistry` — token resolution, org prompts, and connection creation all derive from these fields automatically. See the `devlake-dev-integration` skill for full details.
-**Scope metadata**: `ScopeIDField` (JSON field name for scope IDs, e.g. `"githubId"`, `"id"`), `HasRepoScopes` (true when scopes carry a FullName tracked as repos), `ScopeFunc`
69
+
-**Dynamic flag validation**: `ConnectionFlags`, `ScopeFlags` — slices of `FlagDef` that declare which plugin-specific flags apply. At runtime, `warnIrrelevantFlags()` warns when a user passes a flag that doesn't apply to the selected plugin, and `printContextualFlagHelp()` shows applicable flags in interactive mode.
70
+
63
71
**One plugin per invocation.** Flag-based commands target a single `--plugin`. Interactive mode walks through plugins sequentially.
When `--username` is provided for a plugin that uses AccessToken auth (like GitHub or Copilot), the CLI prints a warning that the flag is not applicable.
0 commit comments