gitlink-cli/skills/gitlink-workflow/examples/full-automation-workflow.md

580 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI Agent 自动化工作流完整示例
本文档展示如何组合使用多个 gitlink-cli 工作流,实现完整的 AI Agent 自动化项目管理。
## 🤖 AI Agent 完整工作流
### 场景:新项目从创建到发布的完整自动化
这个示例展示 AI Agent 如何自动化管理一个软件项目的完整生命周期,从仓库创建到版本发布。
## 工作流组合
### 1. 项目初始化阶段
```python
# AI Agent 项目初始化
def initialize_new_project(project_name, description):
"""完整的项目初始化工作流"""
# 1. 创建仓库
repo = create_repository(project_name, description)
# 2. 初始化项目结构
setup_project_structure(repo)
# 3. 配置 CI/CD
configure_ci_cd(repo)
# 4. 创建初始 Issue
create_initial_issues(repo)
return repo
# 执行
project = initialize_new_project(
"my-awesome-project",
"一个很棒的项目,用于演示自动化工作流"
)
```
### 2. 开发阶段自动化
```python
# AI Agent 开发管理
def manage_development_workflow(repo):
"""开发阶段的自动化管理"""
while development_in_progress:
# 1. 自动分类新 Issue
triage_new_issues(repo)
# 2. 审查新的 PR
review_pull_requests(repo)
# 3. 更新项目进度
update_project_status(repo)
# 4. 检查是否需要发布
if should_release(repo):
generate_release_notes(repo)
create_release(repo)
sleep(cycle_interval)
```
### 3. Sprint 自动化
```python
# AI Agent Sprint 管理
def automate_sprint_management(repo):
"""完整的 Sprint 自动化管理"""
# Sprint 开始
sprint_number = start_new_sprint(repo)
# Sprint 监控
monitor_sprint_progress(repo, sprint_number)
# Sprint 结束
end_sprint(repo, sprint_number)
generate_sprint_report(repo, sprint_number)
# 执行 Sprint 工作流
sprint_result = automate_sprint_management(project)
```
## 完整的端到端示例
### 示例:自动化 Issue 到 Release 流程
```bash
#!/bin/bash
# 完整的自动化工作流脚本
OWNER="ai-agent"
REPO="demo-project"
PROJECT_NAME="AI Agent Demo"
echo "🤖 启动 AI Agent 自动化工作流..."
# 阶段 1: 项目创建
echo "📦 阶段 1: 创建项目"
gitlink-cli repo +create \
--name "$REPO" \
--description "$PROJECT_NAME" \
--private false
# 初始化本地仓库
cd "$REPO"
git init
git remote add gitlink "https://www.gitlink.org.cn/$OWNER/$REPO.git"
# 创建基础文件
echo "# $PROJECT_NAME" > README.md
echo "MIT License" > LICENSE
git add .
git commit -m "Initial commit"
git push -u gitlink master:master
# 设置分支保护
gitlink-cli branch +protect --owner "$OWNER" --repo "$REPO" --name master
# 阶段 2: 创建开发 Issue
echo "🎯 阶段 2: 创建开发 Issue"
FEATURES=(
"用户认证系统"
"数据管理模块"
"API 接口开发"
"前端界面设计"
"测试框架搭建"
)
for feature in "${FEATURES[@]}"; do
gitlink-cli issue +create \
--owner "$OWNER" \
--repo "$REPO" \
--title "开发 $feature" \
--body "## 任务描述
实现 $feature 功能
## 技术要求
- 代码规范
- 单元测试
- 文档完整
## 验收标准
- 功能正常工作
- 测试通过
- 代码审查通过"
done
# 阶段 3: 模拟开发和 PR 创建
echo "🔧 阶段 3: 模拟开发工作"
# 创建功能分支
for feature in "${FEATURES[@]}"; do
# 模拟分支名(将中文转为拼音)
branch_name="feature-$(echo $feature | md5sum | cut -c1-8)"
git checkout -b "$branch_name"
# 模拟开发工作
echo "// $feature 实现" > "${feature}.js"
git add .
git commit -m "Implement $feature"
git push gitlink "$branch_name"
# 创建 PR
gitlink-cli pr +create \
--owner "$OWNER" \
--repo "$REPO" \
--title "Feature: $feature" \
--head "$branch_name" \
--base master \
--body "## 功能说明
实现 $feature 功能
## 变更内容
- 添加核心功能
- 实现相关测试
- 更新文档
## 测试情况
- 单元测试通过
- 集成测试通过
- 手工测试完成"
git checkout master
done
# 阶段 4: 自动 Issue 分类
echo "🏷️ 阶段 4: 自动分类 Issue"
# 获取所有开放 Issue
ISSUES=$(gitlink-cli issue +list --owner "$OWNER" --repo "$REPO" --state open --format json)
# 为 Issue 添加标签
echo "$ISSUES" | jq -r '.data.issues[].id' | while read issue_id; do
echo "处理 Issue #$issue_id"
# 获取 Issue 详情
ISSUE_DETAIL=$(gitlink-cli issue +view --owner "$OWNER" --repo "$REPO" --id "$issue_id" --format json)
TITLE=$(echo "$ISSUE_DETAIL" | jq -r '.data.subject')
# 基于标题分类
if echo "$TITLE" | grep -iq "认证"; then
echo " → 分类为: feature + security"
# 实际执行时取消注释
# gitlink-cli api POST "/$OWNER/$REPO/issues/$issue_id" --body '{"issue_tag_ids":[1,5]}'
else
echo " → 分类为: feature"
# gitlink-cli api POST "/$OWNER/$REPO/issues/$issue_id" --body '{"issue_tag_ids":[1]}'
fi
done
# 阶段 5: PR 审查
echo "🔍 阶段 5: 自动 PR 审查"
# 获取开放 PR
PRS=$(gitlink-cli pr +list --owner "$OWNER" --repo "$REPO" --state open --format json)
echo "$PRS" | jq -r '.data.prs[].id' | while read pr_id; do
echo "审查 PR #$pr_id"
# 获取 PR 详情
PR_DETAIL=$(gitlink-cli pr +view --owner "$OWNER" --repo "$REPO" --id "$pr_id" --format json)
PR_AUTHOR=$(echo "$PR_DETAIL" | jq -r '.data.author.login')
PR_TITLE=$(echo "$PR_DETAIL" | jq -r '.data.title')
# 简单的代码检查(这里只是模拟)
REVIEW_COMMENTS="# 🔍 自动审查结果
## PR 信息
- **标题**: $PR_TITLE
- **作者**: $PR_AUTHOR
- **状态**: 待审查
## ✅ 自动检查
- 代码提交正常
- 变更描述清晰
- 符合项目规范
## 💡 建议
- 添加单元测试
- 更新相关文档
- 确认向后兼容性
## 📋 审查结论
代码质量良好,建议合并。"
echo " → 添加审查评论"
# 实际执行时取消注释
# gitlink-cli api POST "/$OWNER/$REPO/pulls/$pr_id/reviews" --body "{\"body\":\"$REVIEW_COMMENTS\",\"event\":\"APPROVE\"}"
done
# 阶段 6: 生成 Release Notes
echo "📝 阶段 6: 生成 Release Notes"
# 合并所有 PR模拟
echo "合并所有功能 PR..."
MERGED_PRS=$(gitlink-cli pr +list --owner "$OWNER" --repo "$REPO" --state merged --format json)
# 生成 Release Notes
RELEASE_NOTES="# 🎉 v1.0.0 首个版本发布
## 📊 版本概述
这是 $PROJECT_NAME 的首个稳定版本,包含了核心功能的完整实现。
## ✨ 新功能
- 用户认证系统:完整的登录注册功能
- 数据管理模块:高效的数据存储和检索
- API 接口RESTful API 设计
- 前端界面:现代化的用户界面
- 测试框架:完整的自动化测试
## 🐛 Bug 修复
- 修复认证过程中的边界问题
- 解决数据一致性问题
- 优化 API 响应性能
## 🔧 技术改进
- 代码结构优化
- 性能提升 30%
- 安全性增强
## 📚 文档更新
- 用户手册完善
- API 文档更新
- 开发指南补充
## 🙏 贡献者
感谢所有参与开发的贡献者!
## 📥 安装方法
\`\`\`bash
# 使用 npm 安装
npm install $OWNER/$REPO@v1.0.0
# 或使用 yarn
yarn add $OWNER/$REPO@v1.0.0
\`\`\`
## 🔄 升级指南
从之前的版本升级,请参考迁移指南。
## 📚 完整文档
- 用户指南: https://www.gitlink.org.cn/$OWNER/$REPO/wiki
- API 文档: https://www.gitlink.org.cn/$OWNER/$REPO/api-docs
---
**发布日期**: $(date +%Y-%m-%d)
**下一版本**: v1.1.0 (计划于 $(date -d "1 month" +%Y-%m-%d) 发布)"
# 创建 Release
echo "创建 Release v1.0.0..."
gitlink-cli release +create \
--owner "$OWNER" \
--repo "$REPO" \
--tag "v1.0.0" \
--name "v1.0.0" \
--body "$RELEASE_NOTES"
# 阶段 7: Sprint 报告
echo "📊 阶段 7: 生成 Sprint 报告"
SPRINT_START=$(date -d "14 days ago" +%Y-%m-%d)
SPRINT_END=$(date +%Y-%m-%d)
SPRINT_REPORT="# 📊 Sprint 1 完成报告
## 📅 时间信息
- **Sprint 周期**: $SPRINT_START$SPRINT_END
- **团队规模**: AI Agent x 1
- **工作模式**: 自动化开发
## 🎯 目标达成
### 计划完成度
- **计划 Issue**: 5 个
- **实际完成**: 5 个
- **完成率**: 100%
### 质量指标
- **代码质量**: 优秀
- **测试覆盖率**: 95%
- **文档完整度**: 100%
## 💻 工作统计
### 代码提交
- **总提交数**: 42 次
- **日均提交**: 3 次/天
- **代码行数**: +2,450 -180 行
### Issue 处理
- **关闭 Issue**: 5 个
- **新建 Issue**: 0 个
- **平均处理时间**: 2.5 天
### PR 合并
- **合并 PR**: 5 个
- **平均审查时间**: 1 小时
- **平均合并时间**: 2 小时
## 🎉 主要成就
1. ✅ 完成用户认证系统开发
2. ✅ 实现数据管理模块
3. ✅ 构建 RESTful API
4. ✅ 设计现代化前端界面
5. ✅ 建立完整测试体系
## 📈 性能指标
- **开发效率**: 高
- **代码质量**: 优秀
- **自动化程度**: 95%
- **文档完整度**: 100%
## 🔮 下期规划
- 性能优化和改进
- 新功能模块开发
- 国际化支持
- 移动端适配
---
**AI Agent 自动化工作流演示**
**报告生成**: $(date +%Y-%m-%d %H:%M:%S)"
# 保存 Sprint 报告
REPORT_FILE="sprint_reports/sprint_1_$(date +%Y%m%d).md"
mkdir -p sprint_reports
echo "$SPRINT_REPORT" > "$REPORT_FILE"
echo "🎉 AI Agent 自动化工作流完成!"
echo ""
echo "📊 项目统计:"
echo " 仓库: https://www.gitlink.org.cn/$OWNER/$REPO"
echo " Issue: 5 个全部完成"
echo " PR: 5 个全部合并"
echo " Release: v1.0.0 已发布"
echo ""
echo "📄 生成的文档:"
echo " - Release Notes: https://www.gitlink.org.cn/$OWNER/$REPO/releases/v1.0.0"
echo " - Sprint 报告: $REPORT_FILE"
```
## Claude Code 集成示例
### 在 Claude Code 中使用工作流
```markdown
# 用户指令
帮助我创建一个新的项目并完成首个版本的发布。
# Claude Code 执行
我会使用 gitlink-cli 的自动化工作流来完成这个任务:
1. **创建仓库** - 使用 workflow-repo-setup
2. **管理 Issue** - 使用 workflow-issue-triage
3. **审查 PR** - 使用 workflow-pr-review
4. **生成 Release** - 使用 workflow-release-notes
5. **总结报告** - 使用 workflow-sprint-report
让我开始执行...
```
### 技能组合使用
```python
# AI Agent 多技能组合
class GitLinkAgent:
def __init__(self, owner, repo):
self.owner = owner
self.repo = repo
self.cli = "gitlink-cli"
def complete_project_workflow(self):
"""完整的项目工作流"""
# 阶段 1: 初始化
self.setup_repository()
# 阶段 2: 开发管理
self.manage_development()
# 阶段 3: 质量控制
self.automated_review()
# 阶段 4: 发布管理
self.create_release()
# 阶段 5: 报告总结
self.generate_reports()
def setup_repository(self):
"""仓库初始化"""
# 使用 workflow-repo-setup
create_repo_cmd = f"{self.cli} repo +create --name {self.repo}"
subprocess.run(create_repo_cmd.split())
protect_branch_cmd = f"{self.cli} branch +protect --name master"
subprocess.run(protect_branch_cmd.split())
def manage_development(self):
"""开发管理"""
# 监控新 Issue 并自动分类
issues = self.get_new_issues()
for issue in issues:
self.classify_issue(issue)
# 监控新 PR 并审查
prs = self.get_new_prs()
for pr in prs:
self.review_pr(pr)
def automated_review(self):
"""自动化审查"""
# 获取待审查的 PR
pending_prs = self.get_pending_prs()
for pr in pending_prs:
review_result = self.analyze_pr(pr)
self.submit_review(pr, review_result)
```
## 最佳实践
### 1. 工作流选择
- **项目创建**: 使用 workflow-repo-setup
- **日常维护**: 使用 workflow-issue-triage 和 workflow-pr-review
- **版本发布**: 使用 workflow-release-notes
- **团队管理**: 使用 workflow-sprint-report
### 2. 执行顺序
典型的执行顺序:
1. 项目初始化 → 2. Issue 管理 → 3. PR 审查 → 4. Release 发布 → 5. Sprint 报告
### 3. 错误处理
```python
def safe_workflow_execution(workflow_func, *args, **kwargs):
"""安全执行工作流"""
try:
return workflow_func(*args, **kwargs)
except Exception as e:
# 记录错误
log_error(e)
# 尝试恢复
return handle_workflow_error(e, workflow_func, *args, **kwargs)
```
### 4. 进度跟踪
```python
class WorkflowProgress:
def __init__(self):
self.current_step = 0
self.total_steps = 5
self.completed_steps = []
self.failed_steps = []
def update_progress(self, step_name, success=True):
if success:
self.completed_steps.append(step_name)
else:
self.failed_steps.append(step_name)
self.current_step += 1
def get_progress_report(self):
progress = self.current_step / self.total_steps * 100
return {
'progress': f'{progress:.1f}%',
'completed': self.completed_steps,
'failed': self.failed_steps
}
```
## 扩展工作流
### 自定义工作流
```python
# 创建自定义工作流
def custom_workflow(owner, repo, custom_config):
"""自定义工作流模板"""
# 1. 预检查
if not validate_environment():
return False
# 2. 执行自定义步骤
for step in custom_config['steps']:
execute_step(step)
# 3. 后处理
cleanup_environment()
return True
```
## 故障排除
### 常见问题
| 问题 | 解决方案 |
|------|----------|
| 权限不足 | 检查 Token 权限 |
| API 限制 | 添加重试机制 |
| 数据格式错误 | 验证输入数据 |
| 执行超时 | 增加超时时间 |
## References
- [workflow-issue-triage](../references/workflow-issue-triage.md) — Issue 分类
- [workflow-pr-review](../references/workflow-pr-review.md) — PR 审查
- [workflow-release-notes](../references/workflow-release-notes.md) — Release Notes
- [workflow-repo-setup](../references/workflow-repo-setup.md) — 仓库初始化
- [workflow-sprint-report](../references/workflow-sprint-report.md) — Sprint 报告
- [gitlink-workflow](../SKILL.md) — 工作流总览