介绍
# GitFlow — OpenClaw Skill
## 概述 **GitFlow** 是一个 OpenClaw 技能,它可以自动化代码推送,并为 GitHub 和 GitLab 仓库提供实时的 CI/CD 流水线状态监控。它通过减少仓库与流水线仪表板之间的上下文切换,简化了开发者的工作流程。
该技能可以自动推送更改并报告流水线结果,从而实现更快的反馈和更顺畅的部署。
## 功能 GitFlow 可以:
- 自动推送本地提交 - 触发远程 CI/CD 流水线 - 获取流水线状态和结果 - 报告构建成功或失败 - 显示流水线 URL 和日志 - 监控多个仓库
## 典型工作流程 1. 开发者在本地提交更改。 2. GitFlow 自动或在命令下推送更改。 3. 远程运行 CI/CD 流水线。 4. 技能报告流水线状态。 5. 开发者立即收到构建/部署反馈。
## GitHub CLI 命令
使用 `gh` CLI 工具在推送后获取工作流状态:
### 检查工作流运行状态 ```bash gh run list ``` 列出仓库最近的工作流运行记录。
### 查看当前分支的最新运行 ```bash gh run list --branch $(git branch --show-current) --limit 1 ``` 显示当前分支最近的一次工作流运行。
### 查看运行详情 ```bash gh run view <run-id> ``` 显示特定工作流运行的详细信息。
### 实时查看运行 ```bash gh run watch ``` 监视最近的运行直到完成,并流式传输状态更新。
### 查看运行日志 ```bash gh run view <run-id> --log ``` 显示工作流运行的完整日志。
### 查看失败任务的日志 ```bash gh run view <run-id> --log-failed ``` 仅显示失败任务的日志。
### 重新运行失败的任务 ```bash gh run rerun <run-id> --failed ``` 仅重新运行工作流运行中的失败任务。
---
## GitLab CLI 命令
使用 `glab` CLI 工具在推送后获取流水线状态:
### 检查流水线状态 ```bash glab ci status ``` 显示当前分支上最近一次流水线的状态。
### 查看流水线详情 ```bash glab ci view ``` 打开当前流水线的交互式视图,其中包含任务详情。
### 列出最近的流水线 ```bash glab ci list ``` 列出仓库最近的流水线。
### 查看特定流水线 ```bash glab ci view <pipeline-id> ``` 通过 ID 查看特定流水线的详情。
### 实时查看流水线 ```bash glab ci status --live ``` 持续监控流水线状态直到完成。
### 获取流水线任务日志 ```bash glab ci trace <job-id> ``` 流式传输特定任务的日志。
---
## 推送后 Hook 示例
Git 没有原生的推送后 hook,但你可以创建一个 git 别名,以便在推送后自动监控流水线状态。
将以下内容添加到你的 `~/.gitconfig` 中:
```ini [alias] pushflow = "!f() { \ git push \"${1:-origin}\" \"${2:-$(git branch --show-current)}\"; \ url=$(git remote get-url \"${1:-origin}\"); \ if echo \"$url\" | grep -q 'github.com'; then \ sleep 3 && gh run watch; \ elif echo \"$url\" | grep -q 'gitlab'; then \ sleep 3 && glab ci status --live; \ fi; \ }; f" ```
### 使用方法
```bash git pushflow git pushflow origin main ```
---