Thanks for considering a contribution to the Evolution DevServices CLI.
- For anything beyond a small fix, please open an issue first to discuss the change — it saves everyone time if the approach needs adjusting.
- By contributing, you agree that your contribution is submitted under the project's Apache 2.0 license, per section 5 of that license.
- Please follow the Code of Conduct in all project spaces.
git clone git@github.com:cloud-ru/evolution-devservices-cli.git
cd evolution-devservices-cli
make build # ./bin/edsGo 1.27+ is required. Target platforms are Linux + macOS + Windows.
Useful targets:
make lint
make test # go test ./...
make build # current platform into ./bin/
make build-all # full matrix into ./dist/Run make lint and make test before opening a PR — CI runs the same checks.
See CLAUDE.md for the architecture overview and codebase conventions (command structure, config precedence, error message style, product-scoped flag/env naming, etc.). It's kept up to date and is the best starting point for understanding how a change should fit in.
In short:
- One command per file under
cmd/, thin HTTP clients underinternal/. - Every subcommand that returns structured data outputs JSON by default
(or YAML when
--yaml) viactx.Printer.--quietsuppresses all output. - New flags/env vars follow the existing product-scoping convention
(
--repo-*/EDS_REPO_*,--wf-*/EDS_WF_*; only genuinely cross-product settings stay unprefixed). - When the CLI's user-facing command surface changes, update
README.md's Commands section andskills/eds/SKILL.mdin the same change.
- Fork the repo and create a branch off
main. - Make your change, with tests where it makes sense.
- Run
make lintandmake test. - Open a pull request describing what changed and why.
Please do not open a public issue for a security vulnerability. Email opensource@cloud.ru instead.
Never commit API keys, tokens, or credentials. If you accidentally do, rotate the credential immediately in addition to removing it from the branch.