Open-Source Wikis

/

Argo CD

/

How to contribute

/

Development workflow

argoproj/argo-cd

Development workflow

The day-to-day cycle for changes to argoproj/argo-cd.

1. Find or open an issue

Per AGENTS.md, Argo CD does not accept unsolicited PRs. Find an existing issue (fix:, feat:, chore:, …) or open one and wait for a maintainer to triage it.

2. Fork and branch

Fork on GitHub, then:

git clone git@github.com:<you>/argo-cd.git
cd argo-cd
git remote add upstream https://github.com/argoproj/argo-cd.git
git checkout -b fix/short-descriptive-name

Name branches with the same semantic prefix used in PR titles (fix/..., feat/..., etc.).

3. Implement

Where to put new code, by intent:

You are adding… …it goes in
A new CLI subcommand cmd/argocd/commands/ (and registered in root.go)
A new gRPC API method server/<service>/ (e.g., server/application/, server/cluster/)
A new Application controller behavior controller/ (appcontroller.go, state.go, sync.go)
A new ApplicationSet generator applicationset/generators/ (and registered in generator_spec_processor.go)
A new CRD field pkg/apis/application/v1alpha1/types.go (then make codegen)
A new source renderer (Helm/Kustomize/etc.) reposerver/repository/repository.go and util/<tool>/
A new notification trigger / template notifications_catalog/triggers/ or notifications_catalog/templates/
A shared helper The matching util/<area>/ package, or create one if there is no good match

4. Run local checks

make codegen        # only if you touched API structs/protos
make build
make lint
make lint-ui        # if UI changed
make test

For a faster inner loop, run the relevant package directly:

go test ./controller/...
go test ./server/application/...

For e2e tests, launch the dev stack with goreman start (uses Procfile) and then run the e2e suite via make test-e2e.

5. Update docs

docs/ is the source for the public Read the Docs site. New features need a paragraph in the relevant docs/operator-manual/ or docs/user-guide/ page. Use GitHub-style admonitions (> [!NOTE], > [!WARNING]) per AGENTS.md.

6. Open the PR

  • Use a semantic title: feat: …, fix: … (#1234).
  • Fill in the entire PR template — do not delete sections.
  • Sign off commits if your git config commit.gpgsign requires it; make does not enforce DCO but the project accepts well-signed commits.
  • Link the issue in the PR body (Fixes #NNNN).

7. Review and CI

The CI workflow at .github/workflows/ci-build.yaml runs lint, codegen verification, unit tests, e2e tests, image builds, and CodeQL scans. The PR title check (.github/workflows/pr-title-check.yml) enforces semantic titles.

Reviewers are taken from CODEOWNERS and OWNERS. UI changes route to the UI approvers; CLI changes to the CLI approvers; and so on.

8. After merge

  • Backports to release branches are handled via the cherry-pick workflow (.github/workflows/cherry-pick.yml). Triggered by maintainers with a comment.
  • The bump-major-version.yaml workflow handles major version bumps.

For an authoritative checklist see AGENTS.md § "Required Local Checks (Do This Before Committing)".

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Development workflow – Argo CD wiki | Factory