Summary
Add ArgoCD as a supported DevOps tool in the CLI. ArgoCD is the leading GitOps/CD tool for Kubernetes, providing deployment frequency and change tracking data for DORA metrics.
Upstream Plugin
argocd in incubator-devlake/backend/plugins/argocd/
| Property |
Value |
| Plugin slug |
argocd |
| Auth |
AccessToken |
| Scope type |
Applications (Name string in namespace) |
| Scope ID field |
name |
| Default endpoint |
User-provided ArgoCD server URL |
| Remote-scope API |
Yes |
| Connection test |
Yes |
Dependencies
Blocked by:
Not blocked by #85 — ArgoCD uses AccessToken, compatible with current auth model.
Changes
- Add
ConnectionDef for argocd in connectionRegistry:
Endpoint: "" (user must provide)
SupportsTest: true
TokenPrompt: "ArgoCD auth token"
EnvVarNames: []string{"ARGOCD_TOKEN", "ARGOCD_AUTH_TOKEN"}
EnvFileKeys: []string{"ARGOCD_TOKEN", "ARGOCD_AUTH_TOKEN"}
ScopeIDField: "name"
ScopeFunc: scopeArgoCDHandler
- Implement
scopeArgoCDHandler:
- Use
client.ListRemoteScopes("argocd", connID, "", "") to list applications
- Let user select applications interactively
- PUT selected applications as scopes
- Set
Available: true
Acceptance Criteria
Summary
Add ArgoCD as a supported DevOps tool in the CLI. ArgoCD is the leading GitOps/CD tool for Kubernetes, providing deployment frequency and change tracking data for DORA metrics.
Upstream Plugin
argocdinincubator-devlake/backend/plugins/argocd/argocdNamestring in namespace)nameDependencies
Blocked by:
ScopeIDField)Not blocked by #85 — ArgoCD uses AccessToken, compatible with current auth model.
Changes
ConnectionDefforargocdinconnectionRegistry:Endpoint: ""(user must provide)SupportsTest: trueTokenPrompt: "ArgoCD auth token"EnvVarNames: []string{"ARGOCD_TOKEN", "ARGOCD_AUTH_TOKEN"}EnvFileKeys: []string{"ARGOCD_TOKEN", "ARGOCD_AUTH_TOKEN"}ScopeIDField: "name"ScopeFunc: scopeArgoCDHandlerscopeArgoCDHandler:client.ListRemoteScopes("argocd", connID, "", "")to list applicationsAvailable: trueAcceptance Criteria
gh devlake configure connection add --plugin argocd --endpoint https://argocd.example.comcreates an ArgoCD connectiongo build ./...,go test ./...,go vet ./...pass