用途
该技能用于管理 Railway 项目,包括列出、切换和配置项目。当用户提出以下需求时使用:查看所有项目、了解自己拥有哪些项目、查看跨工作区的项目、查看自己有哪些工作区、切换到其他项目、重命名项目、启用或禁用 PR 部署、将项目设为公开或私有,以及查看项目设置。
主要能力
列出项目
railway list --json 的输出可能非常大。建议在子代理中运行,只返回必要字段:
- 项目:id、name
- 工作区:id、name
- 服务:name(可选,当用户需要服务上下文时)
提取并返回简化摘要,而不是完整 JSON。
列出工作区
railway whoami --json 返回用户信息,包括用户所属的所有工作区。
切换项目
将其他项目链接到当前目录:
railway link -p <project-id-or-name>
或以交互方式:
railway link
切换后,可使用 status 技能查看项目详情。
更新项目
通过 GraphQL API 修改项目设置。
获取项目 ID:
railway status --json
从响应中提取 project.id。
更新变更:
bash <<'SCRIPT'
scripts/railway-api.sh \
'mutation updateProject($id: String!, $input: ProjectUpdateInput!) {
projectUpdate(id: $id, input: $input) { name prDeploys isPublic botPrEnvironments }
}' \
'{"id": "PROJECT_ID", "input": {"name": "new-name"}}'
SCRIPT
ProjectUpdateInput 字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| name | String | 项目名称 |
| description | String | 项目描述 |
| isPublic | Boolean | 将项目设为公开/私有 |
| prDeploys | Boolean | 启用/禁用 PR 部署 |
| botPrEnvironments | Boolean | 启用 Dependabot/Renovate PR 环境 |
示例:
重命名项目:
scripts/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"name": "new-name"}}'
启用 PR 部署:
scripts/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"prDeploys": true}}'
将项目设为公开:
scripts/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"isPublic": true}}'
多个字段:
scripts/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"name": "new-name", "prDeploys": true}}'
使用方式
该技能通过 Railway CLI 命令与 GraphQL API 脚本配合使用。列出项目使用 railway list --json,列出工作区使用 railway whoami --json,切换项目使用 railway link,获取项目 ID 使用 railway status --json,更新项目设置则调用 scripts/railway-api.sh 执行 projectUpdate 变更。
适用场景
- 用户询问“显示我所有的项目”或“我有哪些项目”
- 用户询问跨工作区的项目
- 用户询问“我有哪些工作区”
- 用户想切换到其他项目
- 用户要求重命名项目
- 用户想启用/禁用 PR 部署
- 用户想将项目设为公开或私有
- 用户询问项目设置
限制与错误处理
- 未认证:提示先运行
railway login。 - 无项目:提示使用
railway init创建项目。 - 权限被拒绝:提示检查 Railway 角色。
- 项目未找到:提示运行
railway list查看可用项目。
组合使用
- 查看项目详情:使用 status 技能
- 创建新项目:使用 new 技能
- 管理环境:使用 environment 技能