mcpField
A
argos-cli

argos-cli

github.com/argos-ci测试与质量19761 次安装1 周前更新
代码仓库

关于 argos-cli

供使用 Argos CLI 的 Agent 查询视觉测试构建、管理审查与评论,以及处理项目工作流。内容说明令牌要求和 JSON 输出约定,并提供构建审查、处理不稳定测试及 CI 上传的命令流程。

主要功能

  1. 01查询构建与快照
  2. 02审查、评论和回应
  3. 03管理不稳定测试与变更
  4. 04项目、账户和自动化命令
  5. 05媒体与 CI 上传流程
  6. 06令牌及 JSON 输出指南

适用场景

  1. 01审查构建快照并批准或拒绝
  2. 02排查不稳定测试和变更
  3. 03从 CI 上传截图
  4. 04管理项目访问权限与设置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/argos-ci/argos-javascript --skill argos-cli

安装后在 Claude Code 中输入/argos-cli确认已加载。

附带文件agents/openai.yaml

详细介绍

Argos CLI

运行 argos <command> --help 查看任意命令的准确标志。本技能仅涵盖 --help 无法说明的内容:令牌模型、输出约定和命令索引。

输出约定(Agent)

  • 解析标准输出时,始终传入 --json;否则命令会输出便于阅读的文本。
  • 错误通过标准错误以 Error: <message> 的形式输出。退出码 0 = 成功,1 = 失败。
  • 切勿输出令牌值。

身份验证

<buildReference> 是构建编号(例如 72652)或完整的构建 URL。使用编号时,请添加 --project owner/project;URL 中已包含项目信息。<changeId> 不是构建引用:它来自 diff 的 change.id,且不包含账号信息,因此每个 change 命令都需要 --project owner/project(或 ARGOS_PROJECT)。<testId> 来自 diff 的 test.id,包含项目名称但不包含账号信息,因此 test 命令需要相同的 --project/ARGOS_PROJECT 参数;使用项目令牌时除外,因为项目令牌已标识其所属项目。project 和 automation 命令使用相同的 --project owner/project;account 命令使用 --account <slug>(或 ARGOS_ACCOUNT)。

两种令牌类型——按命令选择:

命令令牌解析顺序
build get、build snapshots、test list、test get、test changes、change list、project get、project deployments、project domain get、media get、media list、media versions、media update、media delete项目令牌--token › ARGOS_TOKEN
review *、comment *、test comment *、media comment *、test subscribe / unsubscribe、build subscribe / unsubscribe、change ignore / unignore、account *、project update、project transfer、project contributor *、project domain set、automation *、analytics、create-project个人访问令牌(PAT)--token › ARGOS_TOKEN › argos login
upload、finalize、skip、deploy、media uploadCI / 项目令牌--token › ARGOS_TOKEN(或无令牌 CI)

项目令牌可以读取构建数据,但不能审核、评论、忽略变更,也不能管理项目或团队——这些操作需要 PAT。如果没有可用的合适令牌,请询问用户。对于这些操作,如果不存在 PAT,请报告结论和证据,而不要执行操作。argos login 面向需要交互操作的人员,不适用于 CI。

命令

  • 检查 — build get <ref> · build snapshots <ref> [--needs-review] [--metrics-period 24h|3d|7d|30d|90d] · build subscribe|unsubscribe <ref>
  • 评审 — review list <ref> · review create <ref> --event <approve|reject|comment> [--body <md>] · review dismiss <ref> <reviewId> · review reviewer list <ref> · review reviewer add|remove <ref> <userId...>
  • 评论 — comment list <ref> · comment create <ref> --body <md> [--reply-to <id>] [--diff <id>] [--draft] · comment get|edit|delete|resolve|unresolve|subscribe|unsubscribe <ref> <id> · comment react|unreact <ref> <id> <emoji>
  • 不稳定性 — test list [--build-name <name>] [--search <q>] · test get <testId> · test changes <testId> [--ignored true|false] [--metrics-period …] · test subscribe|unsubscribe <testId> · change list · change ignore|unignore <changeId> --project owner/project
  • 测试评论 — test comment list|create <testId> · test comment get|edit|delete|resolve|unresolve|subscribe|unsubscribe <testId> <id> · test comment react|unreact <testId> <id> <emoji>
  • 项目 — project get · project update [--name …] [--summary-check …] [--default-user-level …] [--ignore-changes true|false] [--deployments true|false] … · project transfer --to <slug> · project contributor list|set|remove · project deployments [--environment preview|production] · project domain get|set <domain>
  • 自动化 — automation list [--active true|false] · automation get <ruleId> · automation create|update [<ruleId>] --definition-file <path> · automation deactivate <ruleId>
  • 团队 — account get · account update --default-user-level <member|contributor> · account member list|set-level|remove · account invite list|create|cancel|reset-link · account domain list|add|remove
  • 账户 — analytics --account <slug> · create-project <name> --account <slug> · whoami
  • 媒体 — media upload <files...> [--branch <b> | --pr <n>] [--state before|after] [--description <text>] [--visibility team|public] [--no-compress] · media list [--branch <b>] [--pr <n>] [--stage staged|published] [--search <q>] [--type image|video] · media get|delete|versions <mediaId> · media update <mediaId> [--name <n>] [--description <text>] [--branch <b>]
  • 媒体评论 — media comment list <mediaId> [--all](默认显示未关闭的讨论串) · media comment create <mediaId> · media comment get|edit|delete|resolve|unresolve|subscribe|unsubscribe <mediaId> <id> · media comment react|unreact <mediaId> <id> <emoji>
  • CI — upload <dir> · finalize · skip · deploy <dir>
  • 身份验证 — login · logout

列表命令(test list、change list、account member list、project contributor list、project deployments、automation list、account invite list)会按分页获取结果,直至达到 --limit(默认值为 100)。

build snapshots --json 会为每个差异补充 test.metrics(不稳定性: stability、consistency、flakiness,取值均为 0–1);若存在变更,还会补充 change (id、ignored、occurrences)。较高的 occurrences 或 flakiness 表明该变更值得忽略;将其 change.id 传给 change ignore。

常见流程

审查一次构建(使用项目令牌检查,使用 PAT 做出决定):

ARGOS_TOKEN=<project-token> argos build snapshots <ref> --needs-review --json
argos review create <ref> --token <pat> --event approve --json
# regression: argos review create <ref> --token <pat> --event reject --body "..."

忽略不稳定的更改(使用项目令牌检查,使用 PAT 忽略)。 被忽略的更改不再需要审查,并会在后续构建中自动获批:

ARGOS_TOKEN=<project-token> argos build snapshots <ref> --json   # read each diff's change.id + occurrences
argos change ignore <changeId> --token <pat> --project owner/project
# revert: argos change unignore <changeId> --token <pat> --project owner/project

处理项目中的不稳定性积压。test list 会返回项目中仍在运行的测试,并按不稳定程度从高到低排序,因此第一页就是需要稳定下来的测试;change list 用于审查已忽略的更改:

ARGOS_TOKEN=<project-token> argos test list --project owner/project --json --limit 20
ARGOS_TOKEN=<project-token> argos change list --project owner/project --json   # already ignored

在决定修复还是忽略不稳定测试之前,先对其进行诊断。test get 会报告测试的不稳定程度;test changes 会按出现频率从高到低列出不同的更改,每项都包含可供查看的差异、基线和最新版本图像 URL:

ARGOS_TOKEN=<project-token> argos test get <testId> --json          # flakiness, stability, consistency, series
ARGOS_TOKEN=<project-token> argos test changes <testId> --json      # occurrences + diff/base/head URLs per change
# a change with occurrences > 1 that nothing in the UI explains is flaky:
argos change ignore <changeId> --token <pat> --project owner/project

在 CI 中上传屏幕截图:

argos upload ./screenshots --token $ARGOS_TOKEN

并行构建:

argos upload ./screenshots --parallel-nonce $ID --parallel-index $i --parallel-total $n
argos finalize --parallel-nonce $ID

将某人添加到团队和项目中。团队角色来自 account,每个项目的访问权限则来自 project contributor——所有者和成员本来就能访问每个项目,因此只有贡献者需要授权:

argos account invite create [email protected] --account acme --level contributor --json
argos account member list --account acme --search dev --json          # read back user.id once they accept
argos project contributor set <userId> --level reviewer --project acme/web --json

配置项目。project update 只会更改传入的设置,并会打印更新后的项目信息,供你检查最终配置:

argos project get --project acme/web --json
argos project update --project acme/web --summary-check auto --ignore-changes true --auto-ignore-after 3 --json

在构建上请求审查,然后查看还有谁需要处理:

argos review reviewer add <ref> <userId> --token <pat> --project acme/web
argos review reviewer list <ref> --token <pat> --project acme/web --json

评论

支持 Markdown