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.
Files changed (54) hide show
  1. jcli/__init__.py +1 -1
  2. jcli/cli.py +565 -51
  3. jcli/cli_helpers.py +5 -42
  4. jcli/skills/jcli/SKILL.md +15 -2
  5. jcli/skills/jcli/auth/SKILL.md +86 -0
  6. jcli/skills/jcli/build/SKILL.md +123 -0
  7. jcli/skills/jcli/credential/SKILL.md +14 -5
  8. jcli/skills/jcli/job/SKILL.md +20 -4
  9. jcli/skills/jcli/node/SKILL.md +4 -2
  10. jcli/skills/jcli/pipeline/SKILL.md +3 -3
  11. jcli/skills/jcli/plugin/SKILL.md +3 -0
  12. jcli/skills/jcli/system/SKILL.md +15 -2
  13. jcli/skills/jcli/view/SKILL.md +4 -3
  14. jcli/specs/_auth.yaml +15 -0
  15. jcli/{plugins/skills.py → specs/plugins/jcli_commands.py} +124 -63
  16. jcli/specs/plugins/jenkins_auth.py +75 -0
  17. jcli/specs/plugins/jenkins_methods.py +332 -0
  18. jcli/specs/plugins/jenkins_pipeline_validate.py +51 -0
  19. jcli/specs/plugins/jenkins_plugin.py +77 -0
  20. jcli/specs/plugins/jenkins_system.py +137 -0
  21. jcli/specs/resources/build.yaml +160 -0
  22. jcli/specs/resources/credential.yaml +97 -0
  23. jcli/specs/resources/job.yaml +184 -0
  24. jcli/specs/resources/node.yaml +69 -0
  25. jcli/specs/resources/pipeline.yaml +62 -0
  26. jcli/specs/resources/plugin.yaml +65 -0
  27. jcli/specs/resources/system.yaml +72 -0
  28. jcli/specs/resources/view.yaml +75 -0
  29. {python_jcli-0.1.0.dist-info → python_jcli-1.0.1.dist-info}/METADATA +57 -12
  30. python_jcli-1.0.1.dist-info/RECORD +40 -0
  31. {python_jcli-0.1.0.dist-info → python_jcli-1.0.1.dist-info}/WHEEL +1 -1
  32. jcli/plugins/__init__.py +0 -28
  33. jcli/plugins/build.py +0 -197
  34. jcli/plugins/config.py +0 -268
  35. jcli/plugins/credential.py +0 -210
  36. jcli/plugins/job.py +0 -425
  37. jcli/plugins/node.py +0 -134
  38. jcli/plugins/pipeline.py +0 -108
  39. jcli/plugins/plugin.py +0 -173
  40. jcli/plugins/system.py +0 -173
  41. jcli/plugins/view.py +0 -148
  42. jcli/sdk/build.py +0 -182
  43. jcli/sdk/credential.py +0 -143
  44. jcli/sdk/job.py +0 -191
  45. jcli/sdk/job_templates.py +0 -128
  46. jcli/sdk/node.py +0 -139
  47. jcli/sdk/pipeline.py +0 -121
  48. jcli/sdk/plugin.py +0 -155
  49. jcli/sdk/system.py +0 -202
  50. jcli/sdk/view.py +0 -94
  51. jcli/skills/jcli/config/SKILL.md +0 -81
  52. python_jcli-0.1.0.dist-info/RECORD +0 -44
  53. {python_jcli-0.1.0.dist-info → python_jcli-1.0.1.dist-info}/entry_points.txt +0 -0
  54. {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 for creating JenkinsClient and OutputFormatter.
1
+ """Centralized CLI helpers.
2
2
 
3
- All plugin modules should import ``get_client`` and ``get_formatter`` from here
4
- instead of implementing their own versions. This ensures consistent behaviour
5
- for ``--profile``, ``--server``, and ``--format`` across every subcommand.
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-config](config/SKILL.md) | 配置管理 - Jenkins 连接配置、多实例管理 |
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 get <id> # 查看凭据详情
26
- jcli credential create <id> -f config.xml # 从 XML 创建凭据
27
- jcli credential delete <id> # 删除凭据
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 my-credential-id -f credential-config.xml
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
  ```
@@ -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> -f config.xml # 从 XML 创建 Job
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 -f job-config.xml
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
  ```
@@ -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 -f Jenkinsfile # 验证 Jenkinsfile
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 -f Jenkinsfile
49
+ # 验证 Jenkinsfile 语法(传入文件路径)
50
+ jcli pipeline validate Jenkinsfile
51
51
  ```
52
52
 
53
53
  ### 查看待处理输入
@@ -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
  ## 常见用例
@@ -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 "println('hello')" # 执行 Groovy 脚本
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
+ ```
@@ -23,7 +23,8 @@ allowed-tools:
23
23
  ```bash
24
24
  jcli view list # 列出所有视图
25
25
  jcli view get <name> # 查看视图详情
26
- jcli view create <name> -f config.xml # 从 XML 创建视图
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 my-view -f view-config.xml
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: {}