This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
工作流 REST API
编辑页面
使用 EAS REST API 从您自己的系统触发工作流并检查其状态。
EAS REST API 提供了用于触发工作流和读取运行详情的端点。所有端点都位于 https://api.expo.dev 下。请求和响应均为 JSON。
身份验证
这两个端点都需要 EAS 访问令牌,并作为 bearer token 通过 Authorization 标头发送。
对于生产集成,请在拥有该项目的账户上创建一个 机器人用户,并为其分配一个限定范围的角色。这样,该令牌就代表机器人用户,而不是某个人。你可以撤销它,而不会影响任何用户。一个 个人访问令牌 也可用于一次性脚本。
Authorization: Bearer <EXPO_TOKEN> Content-Type: application/json
触发工作流
POST /v2/workflows/dispatch
在给定的 Git 引用上解析工作流文件,使用工作流中声明的 workflow_dispatch schema 验证 inputs,并将新的运行加入队列。
请求正文
响应
返回 200 OK,并包含新的工作流运行 ID 以及仪表盘中该运行的链接:
{ "data": { "id": "019d9d17-013a-7e05-89aa-4aa83ff68c32", "url": "https://expo.dev/accounts/acme/projects/example/workflows/019d9d17-013a-7e05-89aa-4aa83ff68c32" } }
示例
错误
获取工作流运行
GET /v2/workflows/runs/:workflowRunId
返回工作流运行及其包含的作业。可在触发运行后使用此端点轮询完成状态,或在你自己的 UI 中渲染运行详情。
响应
{ "data": { "id": "019d9d17-013a-7e05-89aa-4aa83ff68c32", "status": "in-progress", "url": "https://expo.dev/accounts/acme/projects/example/workflows/019d9d17-013a-7e05-89aa-4aa83ff68c32", "gitCommitHash": "564b61ebdd403d28b5dc616a12ce160b91585b5b", "gitCommitMessage": "Add home screen", "requestedGitRef": "refs/heads/main", "triggerEventType": "MANUAL", "createdAt": "2026-05-22T15:04:11.000Z", "updatedAt": "2026-05-22T15:05:42.000Z", "jobs": [ { "id": "019d9d17-1a3f-7c10-bdee-5f2811a9d6ad", "key": "build_ios", "name": "Build iOS", "type": "build", "status": "in-progress", "requiredJobKeys": [], "environment": "production", "outputs": {}, "errors": [], "buildId": "f9609423-5072-4ea2-a0a5-c345eedf2c2a", "submissionId": null, "createdAt": "2026-05-22T15:04:11.000Z", "updatedAt": "2026-05-22T15:04:42.000Z" } ] } }
运行的 status 取值之一为:
jobs 中的每一项也包含其自己的 status,取值之一为:
outputs 包含作业在工作流文件中通过 outputs: 设置的任何值。任何被引用的 secret 都会在响应中显示为占位符。type: build 的作业包含 buildId,而 type: submission 的作业包含 submissionId。每个 ID 都链接到对应的 EAS Build 或 EAS Submit 记录。
示例
将以下内容保存为 shell 脚本(或直接粘贴到终端中),即可触发一次运行并轮询直到其达到终态:
RUN_ID=$(curl -s -X POST "https://api.expo.dev/v2/workflows/dispatch" \ -H "Authorization: Bearer $EXPO_TOKEN" \ -H "Content-Type: application/json" \ -d '{"appId":"...","gitRef":"main","fileName":"deploy.yml"}' \ | jq -r '.data.id') while true; do STATUS=$(curl -s "https://api.expo.dev/v2/workflows/runs/$RUN_ID" \ -H "Authorization: Bearer $EXPO_TOKEN" \ | jq -r '.data.status') echo "status: $STATUS" case "$STATUS" in success|failure|canceled) break ;; esac sleep 10 done
错误
下一步
工作流 YAML 文件的参考文档,包括 workflow_dispatch 触发器和输入 schema。