Releases: DevExpGbb/gh-devlake
Releases · DevExpGbb/gh-devlake
v0.3.10 — CLI Restructure & Quality
What's new in v0.3.10
CRUD subcommands
configure connection add— connection creation extracted into its own subcommand (#54)configure scope add/list/delete— full CRUD subcommands for scope management (#55)configure project add/list/delete— full CRUD subcommands for project management (#56)
New features
--jsonoutput —status,connection list, andscope listnow support--jsonfor scripted consumption (#99)--forceflag —connection deleteandscope deleteskip confirmation prompts (#98)- Plugin-specific flag docs — help text groups flags by plugin applicability (#58)
Bug fixes
- Hardcoded localhost:8080 in
startLocalContainershealth check now uses discovered URL (#100) - Mixed tab/space indentation in
root.gohelp text (#101) - Temp directory leak in Azure fork deploy — cleanup now runs on all exit paths (#97)
- Docker unavailable —
deploy localaborts immediately instead of failing later (#69) - Cleanup message — success banner references
gh devlake cleanupinstead ofdocker compose down(#72)
Refactors
- Tool-agnostic scope dispatch —
ScopeFuncadded toConnectionDef, eliminating hardcoded plugin switch/case (#57) - Duplicate endpoint health check merged in
status.go(#102) - Discarded
io.ReadAllerrors handled inclient.go(#103) - Terminal output standardized — separator widths and missing emojis fixed (#84)
Testing
v0.3.9 — Deploy modes, shared orchestrator, UX improvements
What's new in v0.3.9
New features
- Interactive deploy target prompt — gh devlake deploy without a subcommand now prompts you to pick local or Azure, matching the init wizard UX
- Fork / custom image source modes — deploy local and deploy azure now offer an interactive source prompt: official (Apache release), fork (clone + build from source), or custom (user supplies own compose/images). New --source and --repo-url flags for scripting.
- internal/gitclone package — shallow-clone helper (--depth 1) used by both local and Azure fork workflows, with DefaultForkURL pointing to DevExpGBB/incubator-devlake
- Multiple connections per plugin — when a connection with the same name already exists, the wizard now asks whether to reuse it or create a new one under a different name, enabling e.g. two GitHub org connections in one session
- --keep-data flag for cleanup — preserves Docker data volumes (database + Grafana dashboards) while still removing containers and compose files
Improvements
- suggestDedicatedDir replaces the old vague homeDirTip: cross-platform mkdir+cd copy-paste commands (PowerShell and Bash/Zsh) are printed, and the user can choose to exit or continue
- Shared configureAllPhases orchestrator — both init (phases 2-4) and configure full now use a single implementation; eliminates ~200 lines of duplicated logic
- deduplicateResults helper + unit tests prevent duplicate connection entries from appearing in scope/project setup
- waitForMigration helper polls the DevLake /ping endpoint until DB migration completes (428 → 200) before continuing
- Cleanup: partial deployment detection — docker-compose.yml present without a state file is now correctly detected as a local deployment, so cleanup after a failed deploy works
- Cleanup removes .devlake.env so no secrets are left behind after teardown
- CLI architecture skill added to .github/skills/cli-architecture/ for future contributors
0.3.8
Full Changelog: v0.3.7...v0.3.8
v0.3.7
What's Changed
- fix: v0.3.7 quick wins (9 issues) by @ewega in #49
- refactor: separate scope/project commands, eliminate shared globals by @ewega in #50
- fix: handle nested scope objects in ListScopes API response by @ewega in #51
- refactor: make init wizard purely interactive, fix orchestrator UX by @ewega in #52
- Release 0.3.7: supported plugins + env cleanup by @ewega in #53
Full Changelog: v0.3.6...v0.3.7
v0.3.6
What's Changed
Per-plugin token resolution (#15, PR #28)
- \ oken.Resolve\ now accepts a \plugin\ parameter and resolves plugin-specific environment variables (\GITLAB_TOKEN, \AZURE_DEVOPS_PAT, etc.)
- Added \pluginEnvFileKeys(), \pluginEnvVarKeys(), \pluginDisplayName()\ helpers for per-plugin resolution
- \EnvVarNames/\EnvFileKeys\ informational fields added to \ConnectionDef\
- 14 new unit tests in
esolve_test.go\ covering flag priority, per-plugin env vars, cross-plugin isolation
Display required PAT scopes proactively (#17, PR #29)
- Prints required PAT scopes before connection creation so users know what's needed upfront
- Shows scope hint on test failure (\Ensure your PAT has these scopes: ...)
- Added \scopeHintSuffix()\ helper and enriched error messages in \�uildAndCreateConnection\
Full Changelog: v0.3.5...v0.3.6
v0.3.5 — Connection Lifecycle
Connection Lifecycle
Complete CRUD for plugin connections:
- *\configure connection delete* (#9 / PR #25) — Delete connections with confirmation prompt, state file cleanup
- *\configure connection test* (#10 / PR #26) — Test saved connections by ID, interactive or flag-based
- *\configure connection update* (#11 / PR #27) — In-place PATCH for token rotation, org/enterprise changes; post-update test; state file sync
All three commands support both interactive and --plugin/--id\ flag modes.
v0.3.4 — CLI Restructure
What's Changed
Command Renames (#5)
configure connections→configure connectionconfigure scopes→configure scopeconfigure projects→configure project- Old plural names kept as hidden aliases for backward compatibility
--plugin Flag (#6)
- New
--pluginflag onconfigure scope,configure project, andconfigure full - Replaces
--skip-copilot/--skip-github(deprecated, hidden) - Flag mode requires
--plugin; interactive mode prompts for selection
Connection List (#7)
- New
configure connection listsubcommand - Lists all connections across plugins with table output
- Optional
--pluginfilter
CLI Versioning (#8)
gh devlake --versionnow works- Version injected at build time via ldflags
- Dev builds show
dev
Full Changelog: v0.3.3...v0.3.4
v0.3.3 — Enterprise Support
What's New
- Enterprise slug support — --enterprise\ flag on \configure scopes\ and \configure projects\
- Copilot scope ID fix — enterprise+org → \�nterprise/org, enterprise-only → \�nterprise, org-only → \org\
- Connection testing — \gh-copilot\ connections now support \Test Connection\ via API
- Rate limit alignment — Copilot connections use 5000 req/hr (GitHub stays at 4500)
- Unit tests — 15 new tests for scope ID computation and connection request building