feat(cli): expose team, project, test and review management - #357
Merged
Conversation
Ports the 34 endpoints added by argos-ci/argos#2440 to the CLI, and regenerates `@argos-ci/api-client` from the OpenAPI document that ships them. New command groups: - `argos account` — plan and current-period usage, team defaults, and the three things that decide who is on a team: `member`, `invite`, `domain`. - `argos project` — `get` / `update` settings, `transfer`, `contributor`, `deployments`, and the deployment `domain`. - `argos automation` — list, read, create, replace and deactivate a project's automation rules. Additions to existing groups: - `argos test list` — the project's tests, flakiest first. - `argos change list` — the changes currently ignored in a project. - `argos test subscribe|unsubscribe`, `argos build subscribe|unsubscribe`. - `argos review reviewer list|add|remove`. Every list command follows pagination up to `--limit` (default 100) through a shared `fetchPages` helper. It keeps the page size constant: the API derives its offset from `page * perPage`, so shrinking the last page would skip items. `formatProject` now renders a project's settings; the "Created project …" wording it used to have moved to `formatCreatedProject`, which is what `create-project` wanted all along. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Aug 8, 2026
pull Bot
pushed a commit
to Jimimaku/docs.argos-ci.com
that referenced
this pull request
Aug 8, 2026
The API gained thirty-four endpoints (argos-ci/argos#2440), the CLI the matching commands (argos-ci/argos-javascript#357), and the MCP server the tools that come with them for free. CLI reference: the command table, and sections for configuring a project, automation rules, managing a team, and paginated lists. `test list`, `change list`, `review reviewer`, and the build/test subscriptions join the sections they belong to. The token split is restated, including the two read-only commands that still need a personal access token because they return users. MCP server: what an agent can now do, and the scopes that decide whether it may — the tool list is not the permission model. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follows argos-ci/argos#2440, which adds 34 REST endpoints. This brings them to the CLI.
packages/api-client/src/schema.tsis regenerated from that PR's OpenAPI document — the same outputpnpm run build-schema-typeswill produce once it is deployed. I checked the generator against production first: regenerating from the liveopenapi.yamlreproduces main's committedschema.tsoperation-for-operation, and the PR branch adds exactly the 34 new operations and removes none. The diff is large because the committed file also predates a few description changes already live in production.New command groups
account get/updateaccount member list | set-level | removeaccount invite list | create | cancel | reset-linkaccount domain list | add | removeproject get/update/transferproject contributor list | set | removeproject deploymentsproject domain get | setautomation list | get | create | update | deactivateAdded to existing groups
test list— the project's tests, flakiest first. The first page is the flakiness backlog.change list— the changes currently ignored in a project, to audit what has been silenced.test subscribe/unsubscribe,build subscribe/unsubscribe.review reviewer list \| add \| remove— the review requests standing on a build.Notes
lib/pagination.tswalks a paginated endpoint up to--limit(default 100). It keepsperPageconstant across pages: the API turnspageinto an offset by multiplying it byperPage, so shrinking the last page to "just what is missing" would skip items. The overshoot is trimmed client-side instead. Covered by unit tests.test list,change list,project get,project deployments,project domain get) fall back to the token's own project the waybuild getdoes. Everything else is declareduser, so it asks for--project/--accountexplicitly and gets the personal-access-token hint on a 401/403 — this matters forproject contributor listandlistBuildReviewers, which read but are not open to project tokens.project updateonly sends what you pass. Every setting takes an explicit value (--summary-check auto,--deployments true,--private inherit) rather than a--no-xpair, so a script never has to guess whether an omitted flag means "false" or "leave alone". Nullable strings reset with an empty value.ignoreConfigis the one exception the API takes whole, so touching either half reads the project back first and merges.not/globwrapper — not something to flatten into flags.--definition/--definition-filemirror the existing--body/--body-filepattern, and--helpprints a worked example.204responses go through a newunwrapEmpty, sinceunwraptreats an empty body as an error. The commands return a small{ removed: true, … }object so--jsonstill has something to read.formatProjectnow renders a project's settings. The old "Created project …" wording moved toformatCreatedProject, which is whatcreate-projectactually wanted.argos-cliskill is updated: new commands, the token table, and three flows (onboarding someone onto a team and a project, configuring a project, requesting reviewers).Testing
check-types,lint,check-formatclean on@argos-ci/cliand@argos-ci/api-client.fetchPagesandformatProject.--helprenders at all three levels, and the argument/flag validation paths (missing account, nothing to update, missing rule definition,--limit 0) produce the right errors.🤖 Generated with Claude Code