Devops Pipeline Management

ClawSkills 作者 zhaizhanhui v1.0.0

Expert for DevOps pipeline management, handling the complete lifecycle of pipelines on the quality and efficiency platform. Core capabilities: 1) Workspace management - Query workspace lists with filtering 2) Pipeline management - Create, query, update, and delete pipelines 3) Execution management - Execute and cancel pipelines, query execution records and details 4) Template management - Query pipeline templates and create pipelines from templates Trigger scenarios: - Users need to search for workspaces or pipelines - Users need to execute or run pipelines - Users need to check pipeline execution status or logs - Users need to create, update, or delete pipelines - Users need to query pipeline templates

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install clawskills:zhaizhanhui~devops-pipeline-management
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Azhaizhanhui~devops-pipeline-management/file -o devops-pipeline-management.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/1cdcae253034998a5c00cc72291c0bc8fe1606bb
# DevOps Pipeline Management Skill

## 概述

此 Skill 是 DevOps 质效平台的流水线管理专家,通过 OpenAPI 接口实现流水线的全生命周期管理。

**核心能力**:
- **工作空间管理**:查询工作空间列表,支持按名称、组织、产品线筛选
- **流水线管理**:创建、查询、更新、删除流水线,支持基于模板快速创建
- **执行管理**:执行流水线(支持交互式/非交互式模式)、取消执行、查询执行记录和详情
- **模板管理**:查询流水线模板列表,支持按名称、类型、语言筛选,用于快速创建流水线

**技术栈**:Python 3.8+、Requests、RESTful API

---

# ⚠️ 全局执行约束(强制执行)

> **执行任何子功能时,必须严格参考对应子功能文档。子功能文档即执行规范,禁止跳过、合并或自行发挥。**

## 核心原则

**子功能文档 = 执行规范 = 法律效力**

| 阶段 | 要求 |
|------|------|
| **执行前** | 必须先阅读对应子功能文档 |
| **执行中** | 必须按文档定义的步骤顺序执行 |
| **执行后** | 必须满足文档中的约束条件 |

**严格禁止的行为**:
- ✗ 不读文档直接执行
- ✗ 跳过或调换步骤执行
- ✗ 合并多个步骤为一步
- ✗ 自行实现功能而不调用对应Skill

## 全局约束清单

| 约束类型 | 约束说明 | 违反后果 |
|---------|---------|---------|
| **文档强制参考** | 执行子功能前必须阅读对应子功能文档 | 流程错误、操作失效 |
| **步骤顺序** | 子功能文档中定义的步骤必须按顺序执行,不得跳过、调换或合并 | 数据不完整、执行失败 |
| **配置预览** | 步骤中明确要求"预览"或"确认"的,必须执行该步骤后再继续 | 配置错误、无法追溯 |
| **必填校验** | 必填字段(文档中标记 ✅ 或"必填")不能为空或空数组 | API调用失败 |
| **ID生成** | 新建实体时必须生成新的UUID,禁止复用已有ID | 数据冲突、覆盖问题 |
| **API调用** | 必须使用文档中指定的API接口,禁止自行调用其他接口 | 权限错误、功能异常 |
| **跨Skill调用** | 需要执行其他Skill功能时(如执行流水线),必须调用对应Skill | 流程中断、功能缺失 |

## 子功能文档(强制参考)

> **每个子功能都有专属文档,执行时必须严格参考对应文档**

### 流水线核心操作
| 子功能 | 文档路径 | 核心约束 |
|--------|---------|---------|
| 创建流水线 | [references/pipeline-create.md](references/pipeline-create.md) | **9步骤顺序**、配置预览(C7)必执行、调用pipeline-run skill |
| 更新流水线 | [references/pipeline-update.md](references/pipeline-update.md) | **6步骤顺序**、保留原pipelineId、ID保留 |
| 执行流水线 | [references/pipeline-run.md](references/pipeline-run.md) | taskDataList非空、参数组装、交互式/非交互式模式 |

### 任务节点管理
| 子功能 | 文档路径 | 核心约束 |
|--------|---------|---------|
| 添加任务节点 | [references/pipeline-task-add.md](references/pipeline-task-add.md) | 前置检查、ID生成、统一保存 |
| 更新任务节点 | [references/pipeline-task-update.md](references/pipeline-task-update.md) | 先查询、保留ID、字段合并 |
| 删除任务节点 | [references/pipeline-task-delete.md](references/pipeline-task-delete.md) | 前置确认、双重移除、依赖检查 |

### 查询与监控
| 子功能 | 文档路径 | 核心约束 |
|--------|---------|---------|
| 查询工作空间 | [references/workspace-list.md](references/workspace-list.md) | 分页参数、筛选条件 |
| 查询流水线列表 | [references/pipeline-page.md](references/pipeline-page.md) | 分页参数、排序规则 |
| 查询模板 | [references/pipeline-template.md](references/pipeline-template.md) | 语言筛选、类型筛选 |
| 查询执行记录 | [references/pipeline-list.md](references/pipeline-list.md) | 分页查询、状态筛选 |
| 查询执行详情 | [references/pipeline-run-detail.md](references/pipeline-run-detail.md) | 日志ID校验 |
| 流水线详情查询 | [references/pipeline-detail.md](references/pipeline-detail.md) | pipelineId校验 |

### 其他操作
| 子功能 | 文档路径 | 核心约束 |
|--------|---------|---------|
| 删除流水线 | [references/pipeline-delete.md](references/pipeline-delete.md) | 删除确认、不可恢复 |
| 取消执行 | [references/pipeline-cancel.md](references/pipeline-cancel.md) | 仅限执行中状态 |

## 约束示例

### ✅ 正确做法
- 执行"创建流水线" → **先阅读** [pipeline-create.md](references/pipeline-create.md) → **按9步骤执行**
- 执行"执行流水线" → **先阅读** [pipeline-run.md](references/pipeline-run.md) → **组装taskDataList**
- 步骤要求预览 → **展示预览**后再继续
- 需要执行流水线 → **调用** `pipeline-run` skill

### ❌ 错误做法(禁止)
- 不读文档直接执行
- 跳过配置预览步骤
- 自行实现 pipeline-run 功能而不调用 skill
- 合并多个步骤为一步
- 使用空数组作为 taskDataList
- 跳过必填字段校验

# DevOps Pipeline Management Skill

## 概述

此 Skill 是 DevOps 质效平台的流水线管理专家,通过 OpenAPI 接口实现流水线的全生命周期管理。

**核心能力**:
- **工作空间管理**:查询工作空间列表,支持按名称、组织、产品线筛选
- **流水线管理**:创建、查询、更新、删除流水线,支持基于模板快速创建
- **执行管理**:执行流水线(支持交互式/非交互式模式)、取消执行、查询执行记录和详情
- **模板管理**:查询流水线模板列表,支持按名称、类型、语言筛选,用于快速创建流水线

**技术栈**:Python 3.8+、Requests、RESTful API

## 环境准备

### 1. 系统要求

- Python 3.8+
- 网络可访问 DevOps 平台 API

### 2. 依赖安装

```bash
pip install requests
```

或使用 requirements.txt:

```bash
pip install -r requirements.txt
```

### 3. 获取 API 凭证

联系平台管理员获取以下凭证:

| 凭证 | 说明 |
|------|------|
| Domain Account | 域账号,用于权限校验和审计 |

## 环境变量配置

### 环境变量说明

| 变量名 | 必填 | 说明 |
|-------|-----|------|
| DEVOPS_DOMAIN_ACCOUNT | 是 | 域账号,用于权限校验和审计 |
| DEVOPS_BFF_URL | 是 | BFF 服务地址 |
| INTERACTIVE_MODE | 否 | 交互模式开关(默认:true)。true 时执行流水线会询问是否交互式选择分支/标签/版本 |

### 必填环境变量

```bash
# 域账号(必填)
export DEVOPS_DOMAIN_ACCOUNT="your_domain_account"

# BFF 服务地址(必填)
export DEVOPS_BFF_URL="https://one-dev.iflytek.com/devops"
```

### 可选环境变量

```bash
# 交互模式开关(默认:true)
# true: 执行流水线时询问是否交互式选择分支/标签/版本
# false: 自动使用最近执行记录填充,不询问
export INTERACTIVE_MODE="true"
```

### 持久化配置

将环境变量添加到 shell 配置文件(如 `~/.zshrc` 或 `~/.bashrc`):

```bash
# DevOps Pipeline Skill 配置
export DEVOPS_DOMAIN_ACCOUNT="your_domain_account"
export DEVOPS_BFF_URL="https://one-dev.iflytek.com/devops"
export INTERACTIVE_MODE="true"  # 启用交互式选择功能
```

然后执行:

```bash
source ~/.zshrc  # 或 source ~/.bashrc
```

## 安装

### 方式一:直接使用

```bash
cd devops-skills/pipeline-management
python -m scripts/main --help
```

### 方式二:添加到 PATH(可选)

```bash
# 添加软链接(可选:使用 devops-pipeline 作为命令名)
sudo ln -s $(pwd)/scripts/main.py /usr/local/bin/devops-pipeline

# 使用
devops-pipeline --help      # 需要创建符号链接
```

> **说明**:文档中的命令示例统一使用 `python -m scripts/main` 作为入口命令。如需简化命令,可创建符号链接。

## 快速开始

### 1. 验证配置

```bash
python -m scripts/main
```

### 2. 查询工作空间

```bash
python -m scripts/main workspaces --name devops
```

### 3. 查询流水线列表

```bash
python -m scripts/main pipelines <space_id>
```

### 4. 执行流水线

```bash
python -m scripts/main run <pipeline_id>
```

## 典型工作流程

### 流程一:查找并执行流水线

```
1. workspaces          → 获取工作空间列表,找到目标空间ID
2. pipelines <spaceId> → 获取空间下的流水线列表,找到目标流水线ID
3. run <pipelineId>    → 执行流水线
4. list <pipelineId>   → 查看执行记录
5. run-detail <id>     → 查看执行详情
```

### 流程二:基于模板创建流水线(9步骤规范)

> **执行约束**:创建流水线必须严格按照 [pipeline-create.md](references/pipeline-create.md) 定义的9步骤顺序执行,不得跳过、调换或合并步骤。保存流水线操作通过 `save` 命令实现。

```
1. 解析用户输入 → 从自然语言提取 spaceId、流水线名称、技术栈等信息
2. 补充必填信息 → 交互式补充缺失的 spaceId、流水线名称等
3. 查询模板并选择 → 查询模板列表,交互式选择适合的模板
4. 模板数据转换 → 将模板数据转换为流水线数据,生成新UUID
5. 配置代码源 → 交互式配置代码仓库、分支等源代码信息
6. 配置任务节点 → 交互式配置任务参数、执行路径等
7. 配置预览 → 展示完整配置供用户确认
8. 保存流水线 → 调用 `save` 命令保存流水线配置
9. 执行流水线 → 调用 `run` 命令执行新创建的流水线
```

**关键约束**:
- **步骤顺序**:必须按 1→2→3→4→5→6→7→8→9 顺序执行,不得跳过、调换或合并
- **配置预览**:步骤7(配置预览)**必须执行**,用户确认后才能保存
- **命令调用**:步骤8使用 `save` 命令保存,步骤9使用 `run` 命令执行
- **ID生成**:`pipelineId` 新建时必须生成 UUID;模板转换时所有节点必须生成新 UUID
- **必填项**:`stages` 和 `taskDataList` 不能为空数组,否则保存/执行失败
- **API限定**:只能使用文档中指定的 API 接口

**说明**:
- 创建流水线通过 `save` 命令实现,需遵循上述9步骤流程
- 模板查询支持按名称模糊搜索、按类型筛选、按编程语言筛选
- 支持的模板语言:java, python, nodejs, go, dotnet, frontend, common

### 流程三:监控执行状态

```
1. list <pipelineId>       → 查看执行记录列表
2. run-detail <logId>      → 查看具体执行详情
3. cancel <logId>          → 如需取消正在执行的流水线
```

## 命令参考

所有命令均通过 `python -m scripts/main <command>` 调用。

### 工作空间与模板管理

| 命令 | 说明 | 用法 |
|------|------|------|
| `workspaces` | 查询工作空间列表 | `main.py workspaces [--name NAME] [--division NAME] [--team NAME] [--project-code CODE] [--page N] [--size N]` |
| `templates` | 查询流水线模板列表 | `main.py templates <space_id> [--name NAME] [--type TYPE] [--language LANG] [--account ACCOUNT] [--page N] [--size N]` |
| `pipelines` | 查询流水线列表 | `main.py pipelines <space_id> [--name NAME] [--page N] [--size N]` |

### 流水线配置管理

| 命令 | 说明 | 用法 |
|------|------|------|
| `detail` | 查询流水线详情 | `main.py detail <pipeline_id>` |
| `save` | 保存流水线(创建或更新) | `main.py save [--config JSON] [--file FILE] [--task-data JSON] [--task-data-file FILE]` |
| `delete` | 删除流水线 | `main.py delete <pipeline_id>` |

**`save` 命令参数说明**:
- `--config <json_string>`:流水线配置JSON字符串
- `--file <json_file_path>`:流水线配置JSON文件路径
- `--task-data <json_string>`:任务数据JSON字符串(可选)
- `--task-data-file <json_file_path>`:任务数据JSON文件路径(可选)

> **注意**:`save` 命令既可用于保存新流水线(需生成新pipelineId),也可用于更新现有流水线(保留原pipelineId)。创建流水线时应遵循 [pipeline-create.md](references/pipeline-create.md) 的9步骤规范,更新流水线时应遵循 [pipeline-update.md](references/pipeline-update.md) 的6步骤规范。

### 流水线执行与监控

| 命令 | 说明 | 用法 |
|------|------|------|
| `run` | 执行流水线 | `main.py run <pipeline_id> [--branch BRANCH] [--tasks TASKS] [--sources JSON] [--params JSON] [--auto-fill] [--re-run] [--remark TEXT] [--interactive] [--non-interactive]` |
| `list` | 查询执行记录 | `main.py list <pipeline_id> [--page-num N] [--page-size N]` |
| `run-detail` | 查询执行详情 | `main.py run-detail <pipeline_log_id>` |
| `cancel` | 取消流水线执行 | `main.py cancel <pipel