用途
该技能用于为 Cyrus 配置 GitLab 认证,使 Cyrus 能够创建分支、提交(commit)和合并请求(merge request)。它同时完成两件事:GitLab CLI(glab)的登录认证,以及 git 全局提交身份的配置。
主要能力
- 检查 glab 是否已认证,以及 git 全局 user.name、user.email 是否已设置。
- 若两者均已配置,则提示“GitLab is already configured. Skipping this step.”并跳过后续步骤。
- 在 glab 未认证时,执行
glab auth login打开交互式浏览器流程,由用户完成登录。 - 支持自托管 GitLab 实例,可通过
glab auth login --hostname gitlab.example.com指定主机名。 - 在 git 身份未设置时,询问用户希望出现在提交中的名称与邮箱,并写入全局配置。
- 最后通过
glab auth status与git config --global命令进行验证。
使用方式
技能按步骤执行:
- 检查现有配置:运行
glab auth status 2>&1;若已认证,再运行git config --global user.name与git config --global user.email。若两者均已设置,则跳过。 - 认证 GitLab CLI:若未认证,运行
glab auth login,由用户完成浏览器交互;自托管实例可加--hostname参数。完成后运行glab auth status验证。 - 配置 Git 身份:若未设置,询问用户提交中显示的名称(例如本人姓名或 “Cyrus Bot”)与邮箱(例如本人邮箱或 noreply 地址),然后执行
git config --global user.name "<name>"与git config --global user.email "<email>"。 - 验证:再次运行
glab auth status、git config --global user.name、git config --global user.email。
安全约束
技能明确要求:绝不要对 ~/.cyrus/.env 或 ~/.cyrus/ 内的任何文件使用 Read、Edit 或 Write 工具;只能使用 Bash 命令(如 grep、printf >> 等)与环境文件交互,以确保密钥不会被读入对话上下文。
适用场景
适用于需要让 Cyrus 在 GitLab 上自动创建分支、提交和合并请求之前,完成 GitLab 认证与提交身份配置的场景,包括 GitLab.com 与自托管 GitLab 实例。
限制
资料未提供该技能对 glab 版本、GitLab 权限范围、网络环境或操作系统平台的具体要求;也未提供失败排查、令牌有效期或替代认证方式等信息。