python-jcli 0.1.0__py3-none-any.whl → 1.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jcli/__init__.py +1 -1
- jcli/cli.py +565 -51
- jcli/cli_helpers.py +5 -42
- jcli/skills/jcli/SKILL.md +15 -2
- jcli/skills/jcli/auth/SKILL.md +86 -0
- jcli/skills/jcli/build/SKILL.md +123 -0
- jcli/skills/jcli/credential/SKILL.md +14 -5
- jcli/skills/jcli/job/SKILL.md +20 -4
- jcli/skills/jcli/node/SKILL.md +4 -2
- jcli/skills/jcli/pipeline/SKILL.md +3 -3
- jcli/skills/jcli/plugin/SKILL.md +3 -0
- jcli/skills/jcli/system/SKILL.md +15 -2
- jcli/skills/jcli/view/SKILL.md +4 -3
- jcli/specs/_auth.yaml +15 -0
- jcli/{plugins/skills.py → specs/plugins/jcli_commands.py} +124 -63
- jcli/specs/plugins/jenkins_auth.py +75 -0
- jcli/specs/plugins/jenkins_methods.py +332 -0
- jcli/specs/plugins/jenkins_pipeline_validate.py +51 -0
- jcli/specs/plugins/jenkins_plugin.py +77 -0
- jcli/specs/plugins/jenkins_system.py +137 -0
- jcli/specs/resources/build.yaml +160 -0
- jcli/specs/resources/credential.yaml +97 -0
- jcli/specs/resources/job.yaml +184 -0
- jcli/specs/resources/node.yaml +69 -0
- jcli/specs/resources/pipeline.yaml +62 -0
- jcli/specs/resources/plugin.yaml +65 -0
- jcli/specs/resources/system.yaml +72 -0
- jcli/specs/resources/view.yaml +75 -0
- {python_jcli-0.1.0.dist-info → python_jcli-1.0.1.dist-info}/METADATA +57 -12
- python_jcli-1.0.1.dist-info/RECORD +40 -0
- {python_jcli-0.1.0.dist-info → python_jcli-1.0.1.dist-info}/WHEEL +1 -1
- jcli/plugins/__init__.py +0 -28
- jcli/plugins/build.py +0 -197
- jcli/plugins/config.py +0 -268
- jcli/plugins/credential.py +0 -210
- jcli/plugins/job.py +0 -425
- jcli/plugins/node.py +0 -134
- jcli/plugins/pipeline.py +0 -108
- jcli/plugins/plugin.py +0 -173
- jcli/plugins/system.py +0 -173
- jcli/plugins/view.py +0 -148
- jcli/sdk/build.py +0 -182
- jcli/sdk/credential.py +0 -143
- jcli/sdk/job.py +0 -191
- jcli/sdk/job_templates.py +0 -128
- jcli/sdk/node.py +0 -139
- jcli/sdk/pipeline.py +0 -121
- jcli/sdk/plugin.py +0 -155
- jcli/sdk/system.py +0 -202
- jcli/sdk/view.py +0 -94
- jcli/skills/jcli/config/SKILL.md +0 -81
- python_jcli-0.1.0.dist-info/RECORD +0 -44
- {python_jcli-0.1.0.dist-info → python_jcli-1.0.1.dist-info}/entry_points.txt +0 -0
- {python_jcli-0.1.0.dist-info → python_jcli-1.0.1.dist-info}/top_level.txt +0 -0
jcli/cli_helpers.py
CHANGED
|
@@ -1,54 +1,17 @@
|
|
|
1
|
-
"""Centralized CLI helpers
|
|
1
|
+
"""Centralized CLI helpers.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
v2 only needs the output-formatter helper (used by the cliyard command
|
|
4
|
+
plugins, e.g. ``jcli/specs/plugins/jcli_commands.py``). The v1 ``get_client``
|
|
5
|
+
helper was removed together with the legacy hand-written command modules
|
|
6
|
+
(``jcli/plugins/``).
|
|
6
7
|
"""
|
|
7
8
|
|
|
8
9
|
from __future__ import annotations
|
|
9
10
|
|
|
10
|
-
import logging
|
|
11
|
-
|
|
12
11
|
import click
|
|
13
12
|
|
|
14
|
-
from jcli.sdk.client import JenkinsClient
|
|
15
|
-
from jcli.sdk.config import Config
|
|
16
13
|
from jcli.sdk.output import OutputFormatter
|
|
17
14
|
|
|
18
|
-
logger = logging.getLogger(__name__)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def get_client(ctx: click.Context) -> JenkinsClient:
|
|
22
|
-
"""Return a cached ``JenkinsClient`` from the Click context.
|
|
23
|
-
|
|
24
|
-
Resolution order:
|
|
25
|
-
1. Re-use ``ctx.obj["client"]`` if already present (tests / caching).
|
|
26
|
-
2. Load the config profile selected by ``--profile`` / ``$JCLI_PROFILE``.
|
|
27
|
-
3. Override the profile URL with ``--server`` when provided.
|
|
28
|
-
"""
|
|
29
|
-
obj = ctx.obj or {}
|
|
30
|
-
|
|
31
|
-
# Allow pre-created client (used by tests and internal callers)
|
|
32
|
-
if "client" in obj:
|
|
33
|
-
return obj["client"]
|
|
34
|
-
|
|
35
|
-
config = Config()
|
|
36
|
-
config.load()
|
|
37
|
-
|
|
38
|
-
profile_name = obj.get("profile") or config.get_active_profile_name()
|
|
39
|
-
profile = config.get_profile(profile_name)
|
|
40
|
-
|
|
41
|
-
url = obj.get("server") or profile["url"]
|
|
42
|
-
username = profile["username"]
|
|
43
|
-
token = profile["api_token"]
|
|
44
|
-
|
|
45
|
-
client = JenkinsClient(base_url=url, username=username, token=token)
|
|
46
|
-
logger.debug("Created JenkinsClient for %s (profile=%s)", url, profile_name)
|
|
47
|
-
|
|
48
|
-
# Cache for subsequent calls within the same invocation
|
|
49
|
-
obj["client"] = client
|
|
50
|
-
return client
|
|
51
|
-
|
|
52
15
|
|
|
53
16
|
def get_formatter(ctx: click.Context) -> OutputFormatter:
|
|
54
17
|
"""Return an ``OutputFormatter`` matching the ``--format`` flag."""
|
jcli/skills/jcli/SKILL.md
CHANGED
|
@@ -30,7 +30,7 @@ jcli -f yaml job list # YAML 输出
|
|
|
30
30
|
|
|
31
31
|
| 技能 | 说明 |
|
|
32
32
|
|------|------|
|
|
33
|
-
| [jcli-
|
|
33
|
+
| [jcli-auth](auth/SKILL.md) | 认证配置管理 - Jenkins 连接 profile 添加、切换、查看、删除 |
|
|
34
34
|
| [jcli-job](job/SKILL.md) | Job 管理 - Job 创建、删除、复制、启用/禁用 |
|
|
35
35
|
| [jcli-build](build/SKILL.md) | 构建管理 - 构建触发、查看、停止、队列 |
|
|
36
36
|
| [jcli-node](node/SKILL.md) | 节点管理 - Jenkins Agent 节点管理 |
|
|
@@ -40,6 +40,19 @@ jcli -f yaml job list # YAML 输出
|
|
|
40
40
|
| [jcli-view](view/SKILL.md) | 视图管理 - 视图创建、删除、查看 |
|
|
41
41
|
| [jcli-system](system/SKILL.md) | 系统管理 - 系统信息、重启、安静模式 |
|
|
42
42
|
|
|
43
|
+
## 认证配置(auth)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
jcli auth add -n <name> -u <user> -p <token> -e <url> # 添加配置(token 即 Jenkins API Token)
|
|
47
|
+
jcli auth status # 查看所有配置(token 掩码)
|
|
48
|
+
jcli auth use <name> # 切换 active profile
|
|
49
|
+
jcli auth set <name> <field> <value> # 修改字段(url/username/api_token/description)
|
|
50
|
+
jcli auth show [name] # 查看单个配置详情
|
|
51
|
+
jcli auth rm <name> # 删除配置
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
详细用法见 [jcli-auth](auth/SKILL.md)。
|
|
55
|
+
|
|
43
56
|
## Skills 命令
|
|
44
57
|
|
|
45
58
|
```bash
|
|
@@ -70,4 +83,4 @@ jcli completion show fish # Fish 补全脚本
|
|
|
70
83
|
|
|
71
84
|
- 源码: `/data/git-project/jcli`
|
|
72
85
|
- 配置: `~/.jcli/config.yaml`
|
|
73
|
-
- 技能文档: `/data/git-project/jcli/skills/jcli/`
|
|
86
|
+
- 技能文档: `/data/git-project/jcli/jcli/skills/jcli/`
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jcli-auth
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: |
|
|
5
|
+
jcli 认证配置管理 - 管理 Jenkins 连接 profile 的添加、切换、查看、删除等操作。
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Bash
|
|
8
|
+
- Read
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# jcli-auth
|
|
12
|
+
|
|
13
|
+
管理 jcli 的认证配置 profile,支持多 Jenkins 实例。
|
|
14
|
+
|
|
15
|
+
## 前提条件
|
|
16
|
+
|
|
17
|
+
- Python >= 3.10
|
|
18
|
+
- Jenkins 2.x 或更高版本
|
|
19
|
+
- 已安装 jcli:`pip install -e /data/git-project/jcli`
|
|
20
|
+
|
|
21
|
+
## 配置文件位置
|
|
22
|
+
|
|
23
|
+
`~/.jcli/config.yaml`
|
|
24
|
+
|
|
25
|
+
## 配置结构
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
active_profile: default
|
|
29
|
+
profiles:
|
|
30
|
+
default:
|
|
31
|
+
url: https://jenkins.example.com
|
|
32
|
+
username: admin
|
|
33
|
+
api_token: your-api-token-here
|
|
34
|
+
description: Default Jenkins instance
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 命令参考
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
jcli auth add -n <name> -u <user> -p <token> -e <url> # 添加(或更新)配置
|
|
41
|
+
jcli auth add -n <name> ... --default # 添加并设为 active profile
|
|
42
|
+
jcli auth status # 列出所有配置(token 掩码)
|
|
43
|
+
jcli auth use <name> # 切换 active profile
|
|
44
|
+
jcli auth set <name> <field> <value> # 修改字段(url/username/api_token/description)
|
|
45
|
+
jcli auth show [name] # 查看单个配置详情(默认 active)
|
|
46
|
+
jcli auth rm <name> # 删除配置
|
|
47
|
+
jcli auth rm --all # 删除所有配置(重置为模板)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 常见用例
|
|
51
|
+
|
|
52
|
+
### 添加新 profile
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
jcli auth add -n dev -u admin -p your-api-token -e https://jenkins-dev.example.com
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 修改配置
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
jcli auth set dev api_token your-token
|
|
62
|
+
jcli auth set dev description "Development Jenkins"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 切换 profile
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
jcli auth use dev
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 查看配置
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
jcli auth status
|
|
75
|
+
jcli auth show
|
|
76
|
+
jcli auth show dev
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 环境变量覆盖
|
|
80
|
+
|
|
81
|
+
| 变量 | 覆盖字段 |
|
|
82
|
+
|------|---------|
|
|
83
|
+
| `JCLI_URL` | url |
|
|
84
|
+
| `JCLI_USERNAME` | username |
|
|
85
|
+
| `JCLI_API_TOKEN` | api_token |
|
|
86
|
+
| `JCLI_PROFILE` | active_profile |
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jcli-build
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: |
|
|
5
|
+
jcli 构建管理 - 管理 Jenkins 构建的触发、查看、停止等操作。
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Bash
|
|
8
|
+
- Read
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# jcli-build
|
|
12
|
+
|
|
13
|
+
管理 Jenkins 构建的触发、查看、停止等操作。
|
|
14
|
+
|
|
15
|
+
## 前提条件
|
|
16
|
+
|
|
17
|
+
- Python >= 3.10
|
|
18
|
+
- Jenkins 2.x 或更高版本
|
|
19
|
+
- 已安装 jcli:`pip install -e /data/git-project/jcli`
|
|
20
|
+
|
|
21
|
+
## 命令参考
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
jcli build list <job> # 列出构建历史
|
|
25
|
+
jcli build list <job> --limit 20 # 列出最近 20 次构建
|
|
26
|
+
jcli build get <job> <number> # 查看构建详情
|
|
27
|
+
jcli build log <job> <number> # 查看完整控制台日志
|
|
28
|
+
jcli build log <job> <number> -n 50 # 只显示末尾 50 行(tail -n)
|
|
29
|
+
jcli build log <job> <number> -f # 实时跟随(tail -f):先打印全部历史,再滚动新增,构建结束自动退出
|
|
30
|
+
jcli build log <job> <number> -f -n 50 # 显示末尾 50 行后实时跟随
|
|
31
|
+
jcli build artifacts <job> <number> # 查看构建产物
|
|
32
|
+
jcli build trigger <job> # 触发构建
|
|
33
|
+
jcli build trigger <job> --params BRANCH=main # 带参数触发构建
|
|
34
|
+
jcli build trigger <job> --params KEY1=VAL1 --params KEY2=VAL2 # 多个参数
|
|
35
|
+
jcli build rebuild <job> <number> # 重建(复用上次构建参数)
|
|
36
|
+
jcli build rebuild <job> <number> --set KEY=VAL # 重建并覆盖参数(可重复)
|
|
37
|
+
jcli build replay <job> <number> <jenkinsfile> # 回放(使用修改后的 Jenkinsfile)
|
|
38
|
+
jcli build stop <job> <number> # 停止构建
|
|
39
|
+
jcli build queue # 查看构建队列
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 常见用例
|
|
43
|
+
|
|
44
|
+
### 查看构建失败原因
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 1. 查看最近构建
|
|
48
|
+
jcli build list my-job
|
|
49
|
+
|
|
50
|
+
# 2. 查看失败构建的日志
|
|
51
|
+
jcli build log my-job 42
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 批量触发构建
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
for job in job1 job2 job3; do
|
|
58
|
+
jcli build trigger $job
|
|
59
|
+
done
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 监控构建状态
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 查看队列
|
|
66
|
+
jcli build queue
|
|
67
|
+
|
|
68
|
+
# 实时查看最新构建状态
|
|
69
|
+
watch -n 5 "jcli build list my-job --limit 1"
|
|
70
|
+
|
|
71
|
+
# 实时跟随构建日志(-f,构建结束自动退出)
|
|
72
|
+
jcli build log my-job 42 -f
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 带参数触发构建
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# 单个参数
|
|
79
|
+
jcli build trigger my-job --params BRANCH=develop
|
|
80
|
+
|
|
81
|
+
# 多个参数
|
|
82
|
+
jcli build trigger my-job --params BRANCH=develop --params DEPLOY=true --params ENV=staging
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 实时查看构建日志(tail 风格)
|
|
86
|
+
|
|
87
|
+
`jcli build log` 沿用 `tail` 命令的参数语义:
|
|
88
|
+
|
|
89
|
+
| 命令 | 效果 |
|
|
90
|
+
|------|------|
|
|
91
|
+
| `jcli build log <job> <n>` | 输出完整日志 |
|
|
92
|
+
| `jcli build log <job> <n> -n 50` | 只显示末尾 50 行 |
|
|
93
|
+
| `jcli build log <job> <n> -f` | 实时跟随:先输出全部历史,再滚动显示新日志 |
|
|
94
|
+
| `jcli build log <job> <n> -f -n 50` | 先看末尾 50 行,再实时跟随 |
|
|
95
|
+
|
|
96
|
+
- `-f` / `--follow`:实时输出,新日志逐行滚动(tail -f)
|
|
97
|
+
- `-n N` / `--lines N`:只显示末尾 N 行,默认全部
|
|
98
|
+
- 跟随模式在**构建结束后自动退出**,也可随时 `Ctrl+C` 中断
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# 构建失败排查:看末尾日志定位错误
|
|
102
|
+
jcli build log my-job 42 -n 100
|
|
103
|
+
|
|
104
|
+
# 实时观察正在构建的日志
|
|
105
|
+
jcli build log my-job 42 -f
|
|
106
|
+
|
|
107
|
+
# 触发构建后直接跟随
|
|
108
|
+
jcli build trigger my-job
|
|
109
|
+
jcli build log my-job 43 -f
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 重建与回放
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# 重建:复用上次构建的参数
|
|
116
|
+
jcli build rebuild my-job 42
|
|
117
|
+
|
|
118
|
+
# 重建并覆盖部分参数(--set 可重复)
|
|
119
|
+
jcli build rebuild my-job 42 --set DEPLOY=false
|
|
120
|
+
|
|
121
|
+
# 回放:使用修改后的 Jenkinsfile 文件重新运行 Pipeline
|
|
122
|
+
jcli build replay my-job 42 Jenkinsfile
|
|
123
|
+
```
|
|
@@ -21,10 +21,12 @@ allowed-tools:
|
|
|
21
21
|
## 命令参考
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
jcli credential list
|
|
25
|
-
jcli credential
|
|
26
|
-
jcli credential
|
|
27
|
-
jcli credential
|
|
24
|
+
jcli credential list [store] [domain] # 列出凭据(默认 store=system, domain=_)
|
|
25
|
+
jcli credential list --depth 2 # 递归列出凭据
|
|
26
|
+
jcli credential get <id> [store] # 查看凭据详情
|
|
27
|
+
jcli credential create <config.xml> [store] [domain] # 从 XML 文件创建凭据
|
|
28
|
+
jcli credential update <config.xml> <id> [store] # 更新凭据
|
|
29
|
+
jcli credential delete <id> [store] [domain] # 删除凭据
|
|
28
30
|
```
|
|
29
31
|
|
|
30
32
|
## 常见用例
|
|
@@ -43,5 +45,12 @@ jcli credential get my-credential-id
|
|
|
43
45
|
|
|
44
46
|
```bash
|
|
45
47
|
# 从 XML 配置文件创建凭据
|
|
46
|
-
jcli credential create
|
|
48
|
+
jcli credential create credential-config.xml
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 更新凭据
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 从 XML 文件更新已有凭据
|
|
55
|
+
jcli credential update credential-config.xml my-credential-id
|
|
47
56
|
```
|
jcli/skills/jcli/job/SKILL.md
CHANGED
|
@@ -23,13 +23,16 @@ allowed-tools:
|
|
|
23
23
|
```bash
|
|
24
24
|
jcli job list # 列出所有 Job
|
|
25
25
|
jcli job get <name> # 查看 Job 详情
|
|
26
|
-
jcli job create <name> -
|
|
27
|
-
jcli job delete <name> # 删除 Job
|
|
28
|
-
jcli job delete <name> --yes # 删除 Job(跳过确认)
|
|
26
|
+
jcli job create <name> --config-file config.xml # 从 XML 创建 Job
|
|
27
|
+
jcli job delete <name> # 删除 Job
|
|
29
28
|
jcli job copy <from> <to> # 复制 Job
|
|
29
|
+
jcli job rename <old> <new> # 重命名 Job
|
|
30
30
|
jcli job enable <name> # 启用 Job
|
|
31
31
|
jcli job disable <name> # 禁用 Job
|
|
32
32
|
jcli job config <name> # 查看 Job XML 配置
|
|
33
|
+
jcli job update <config.xml> <name> # 用 XML 更新 Job 配置
|
|
34
|
+
jcli job create-folder <name> # 创建文件夹
|
|
35
|
+
jcli job delete-folder <name> # 删除文件夹(含内容)
|
|
33
36
|
```
|
|
34
37
|
|
|
35
38
|
## 常见用例
|
|
@@ -51,5 +54,18 @@ done
|
|
|
51
54
|
### 从 XML 创建 Job
|
|
52
55
|
|
|
53
56
|
```bash
|
|
54
|
-
jcli job create my-new-job -
|
|
57
|
+
jcli job create my-new-job --config-file job-config.xml
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 参数化创建 Job
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# 从 git 仓库创建 freestyle 构建
|
|
64
|
+
jcli job create my-freestyle --job-type freestyle --git-url git@github.com:org/repo.git --git-branch main
|
|
65
|
+
|
|
66
|
+
# 创建 Pipeline 构建(使用仓库根目录的 Jenkinsfile)
|
|
67
|
+
jcli job create my-pipeline --job-type pipeline --git-url git@github.com:org/repo.git --script "pipeline { agent any; stages { stage('Build') { steps { echo 'hi' } } } }"
|
|
68
|
+
|
|
69
|
+
# 定时构建
|
|
70
|
+
jcli job create my-scheduled --job-type freestyle --git-url git@github.com:org/repo.git --cron "H/15 * * * *"
|
|
55
71
|
```
|
jcli/skills/jcli/node/SKILL.md
CHANGED
|
@@ -23,8 +23,10 @@ allowed-tools:
|
|
|
23
23
|
```bash
|
|
24
24
|
jcli node list # 列出所有节点
|
|
25
25
|
jcli node get <name> # 查看节点详情
|
|
26
|
+
jcli node create <name> # 创建节点(JNLP 启动器)
|
|
27
|
+
jcli node create <name> --num-executors 2 --remote-fs /data/jenkins --labels linux # 指定参数创建
|
|
26
28
|
jcli node delete <name> # 删除节点
|
|
27
|
-
jcli node toggle <name> --message "维护"
|
|
29
|
+
jcli node toggle <name> --offline-message "维护" # 节点离线(带原因)
|
|
28
30
|
jcli node toggle <name> # 节点上线
|
|
29
31
|
```
|
|
30
32
|
|
|
@@ -34,7 +36,7 @@ jcli node toggle <name> # 节点上线
|
|
|
34
36
|
|
|
35
37
|
```bash
|
|
36
38
|
# 节点离线(带维护原因)
|
|
37
|
-
jcli node toggle agent-01 --message "系统升级维护"
|
|
39
|
+
jcli node toggle agent-01 --offline-message "系统升级维护"
|
|
38
40
|
|
|
39
41
|
# 节点恢复上线
|
|
40
42
|
jcli node toggle agent-01
|
|
@@ -23,7 +23,7 @@ allowed-tools:
|
|
|
23
23
|
```bash
|
|
24
24
|
jcli pipeline stages <job> <build> # 查看阶段信息
|
|
25
25
|
jcli pipeline log <job> <build> <node-id> # 查看步骤日志
|
|
26
|
-
jcli pipeline validate
|
|
26
|
+
jcli pipeline validate <Jenkinsfile> # 验证 Jenkinsfile(位置参数,文件路径)
|
|
27
27
|
jcli pipeline pending <job> <build> # 查看待处理输入
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -46,8 +46,8 @@ jcli pipeline log my-job 42 15
|
|
|
46
46
|
### 验证 Jenkinsfile
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
# 验证 Jenkinsfile
|
|
50
|
-
jcli pipeline validate
|
|
49
|
+
# 验证 Jenkinsfile 语法(传入文件路径)
|
|
50
|
+
jcli pipeline validate Jenkinsfile
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
### 查看待处理输入
|
jcli/skills/jcli/plugin/SKILL.md
CHANGED
|
@@ -25,7 +25,10 @@ jcli plugin list # 列出已安装插件
|
|
|
25
25
|
jcli plugin get <name> # 查看插件详情
|
|
26
26
|
jcli plugin install <name> # 安装插件
|
|
27
27
|
jcli plugin install git@4.15.0 # 安装指定版本
|
|
28
|
+
jcli plugin install <name1> <name2> # 一次安装多个插件
|
|
28
29
|
jcli plugin uninstall <name> # 卸载插件
|
|
30
|
+
jcli plugin restart <name> # 重启插件
|
|
31
|
+
jcli plugin check-updates # 检查插件更新
|
|
29
32
|
```
|
|
30
33
|
|
|
31
34
|
## 常见用例
|
jcli/skills/jcli/system/SKILL.md
CHANGED
|
@@ -27,7 +27,10 @@ jcli system restart # 安全重启 Jenkins
|
|
|
27
27
|
jcli system quiet-down # 进入安静模式
|
|
28
28
|
jcli system quiet-down --reason "维护" # 带原因的安静模式
|
|
29
29
|
jcli system cancel-quiet-down # 取消安静模式
|
|
30
|
-
jcli system script
|
|
30
|
+
jcli system script <script> # 执行 Groovy 脚本(位置参数)
|
|
31
|
+
jcli system users # 列出所有 Jenkins 用户
|
|
32
|
+
jcli system token <username> # 为用户生成 API token
|
|
33
|
+
jcli system token <username> --token-name <name> # 指定 token 名称
|
|
31
34
|
```
|
|
32
35
|
|
|
33
36
|
## 常见用例
|
|
@@ -62,9 +65,19 @@ jcli system restart
|
|
|
62
65
|
### 执行 Groovy 脚本
|
|
63
66
|
|
|
64
67
|
```bash
|
|
65
|
-
# 执行简单的 Groovy
|
|
68
|
+
# 执行简单的 Groovy 脚本(SCRIPT 为位置参数)
|
|
66
69
|
jcli system script "println('Hello from jcli')"
|
|
67
70
|
|
|
68
71
|
# 获取所有节点信息
|
|
69
72
|
jcli system script "Jenkins.instance.computers.each { println it.name }"
|
|
70
73
|
```
|
|
74
|
+
|
|
75
|
+
### 用户与 Token
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# 列出所有用户
|
|
79
|
+
jcli system users
|
|
80
|
+
|
|
81
|
+
# 为指定用户生成 API token
|
|
82
|
+
jcli system token admin
|
|
83
|
+
```
|
jcli/skills/jcli/view/SKILL.md
CHANGED
|
@@ -23,7 +23,8 @@ allowed-tools:
|
|
|
23
23
|
```bash
|
|
24
24
|
jcli view list # 列出所有视图
|
|
25
25
|
jcli view get <name> # 查看视图详情
|
|
26
|
-
jcli view create <
|
|
26
|
+
jcli view create <config.xml> <name> # 从 XML 文件创建视图(XML 在前,名称在后)
|
|
27
|
+
jcli view update <config.xml> <name> # 用 XML 更新视图配置
|
|
27
28
|
jcli view delete <name> # 删除视图
|
|
28
29
|
```
|
|
29
30
|
|
|
@@ -42,6 +43,6 @@ jcli view get my-view
|
|
|
42
43
|
### 创建视图
|
|
43
44
|
|
|
44
45
|
```bash
|
|
45
|
-
# 从 XML
|
|
46
|
-
jcli view create
|
|
46
|
+
# 从 XML 配置文件创建视图(XML 文件路径在前,视图名在后)
|
|
47
|
+
jcli view create view-config.xml my-view
|
|
47
48
|
```
|
jcli/specs/_auth.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: jcli
|
|
2
|
+
version: "1.0.1"
|
|
3
|
+
description: Jenkins CLI tool
|
|
4
|
+
output:
|
|
5
|
+
default: table
|
|
6
|
+
server:
|
|
7
|
+
base_url: http://localhost:8090
|
|
8
|
+
auth:
|
|
9
|
+
steps:
|
|
10
|
+
- name: basic
|
|
11
|
+
type: plugin:jenkins_basic
|
|
12
|
+
config: {}
|
|
13
|
+
- name: crumb
|
|
14
|
+
type: plugin:jenkins_crumb
|
|
15
|
+
config: {}
|