jenkee 0.2.1__tar.gz
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.
- jenkee-0.2.1/PKG-INFO +199 -0
- jenkee-0.2.1/README.md +172 -0
- jenkee-0.2.1/jenkee.egg-info/PKG-INFO +199 -0
- jenkee-0.2.1/jenkee.egg-info/SOURCES.txt +82 -0
- jenkee-0.2.1/jenkee.egg-info/dependency_links.txt +1 -0
- jenkee-0.2.1/jenkee.egg-info/entry_points.txt +3 -0
- jenkee-0.2.1/jenkee.egg-info/requires.txt +13 -0
- jenkee-0.2.1/jenkee.egg-info/top_level.txt +1 -0
- jenkee-0.2.1/jenkins_tools/__init__.py +3 -0
- jenkee-0.2.1/jenkins_tools/cli.py +120 -0
- jenkee-0.2.1/jenkins_tools/commands/__init__.py +51 -0
- jenkee-0.2.1/jenkins_tools/commands/add_job_to_view.py +57 -0
- jenkee-0.2.1/jenkins_tools/commands/auth.py +67 -0
- jenkee-0.2.1/jenkins_tools/commands/build.py +83 -0
- jenkee-0.2.1/jenkins_tools/commands/console.py +53 -0
- jenkee-0.2.1/jenkins_tools/commands/copy_job.py +53 -0
- jenkee-0.2.1/jenkins_tools/commands/create_job.py +67 -0
- jenkee-0.2.1/jenkins_tools/commands/delete_builds.py +65 -0
- jenkee-0.2.1/jenkins_tools/commands/delete_job.py +70 -0
- jenkee-0.2.1/jenkins_tools/commands/describe_credentials.py +163 -0
- jenkee-0.2.1/jenkins_tools/commands/disable_job.py +70 -0
- jenkee-0.2.1/jenkins_tools/commands/enable_job.py +70 -0
- jenkee-0.2.1/jenkins_tools/commands/get_job.py +49 -0
- jenkee-0.2.1/jenkins_tools/commands/groovy.py +68 -0
- jenkee-0.2.1/jenkins_tools/commands/help.py +225 -0
- jenkee-0.2.1/jenkins_tools/commands/job_diff.py +75 -0
- jenkee-0.2.1/jenkins_tools/commands/job_status.py +125 -0
- jenkee-0.2.1/jenkins_tools/commands/list_builds.py +71 -0
- jenkee-0.2.1/jenkins_tools/commands/list_credentials.py +159 -0
- jenkee-0.2.1/jenkins_tools/commands/list_jobs.py +70 -0
- jenkee-0.2.1/jenkins_tools/commands/list_views.py +34 -0
- jenkee-0.2.1/jenkins_tools/commands/prompt.py +408 -0
- jenkee-0.2.1/jenkins_tools/commands/stop_builds.py +65 -0
- jenkee-0.2.1/jenkins_tools/commands/update_job.py +65 -0
- jenkee-0.2.1/jenkins_tools/core.py +121 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/__init__.py +38 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/azure_credentials.py +42 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/azure_storage_credentials.py +41 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/base.py +93 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/browserstack_credentials.py +34 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/file_credentials.py +76 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/gcp_credentials.py +85 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/gitlab_token_credentials.py +30 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/ssh_key_credentials.py +84 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/string_credentials.py +61 -0
- jenkee-0.2.1/jenkins_tools/credential_describers/username_password_credentials.py +68 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/add-job-to-view.md +166 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/auth.md +129 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/build.md +272 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/console.md +191 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/copy-job.md +265 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/create-job.md +343 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/delete-builds.md +350 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/delete-job.md +344 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/describe-credentials.md +377 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/disable-job.md +230 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/enable-job.md +271 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/get-job.md +204 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/groovy.md +158 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/help.md +144 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/job-diff.md +300 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/job-status.md +236 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/list-builds.md +134 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/list-credentials.md +463 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/list-jobs.md +180 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/list-views.md +111 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/prompt.md +375 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/stop-builds.md +335 -0
- jenkee-0.2.1/jenkins_tools/docs/examples/update-job.md +422 -0
- jenkee-0.2.1/pyproject.toml +64 -0
- jenkee-0.2.1/setup.cfg +4 -0
- jenkee-0.2.1/setup.py +9 -0
- jenkee-0.2.1/tests/test_advanced_operations.py +533 -0
- jenkee-0.2.1/tests/test_auth.py +63 -0
- jenkee-0.2.1/tests/test_build_execution.py +611 -0
- jenkee-0.2.1/tests/test_cleanup_operations.py +506 -0
- jenkee-0.2.1/tests/test_credentials_management.py +528 -0
- jenkee-0.2.1/tests/test_example.py +102 -0
- jenkee-0.2.1/tests/test_initial_setup.py +531 -0
- jenkee-0.2.1/tests/test_jenkins_logs_helper.py +66 -0
- jenkee-0.2.1/tests/test_job_configuration.py +654 -0
- jenkee-0.2.1/tests/test_job_organization.py +680 -0
- jenkee-0.2.1/tests/test_list_jobs.py +109 -0
- jenkee-0.2.1/tests/test_prompt.py +194 -0
jenkee-0.2.1/PKG-INFO
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: jenkee
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Jenkins CLI Helper Tools
|
|
5
|
+
Author: Jenkins Studio Team
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
17
|
+
Provides-Extra: dev
|
|
18
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
19
|
+
Requires-Dist: pytest-cov>=4.0; extra == "dev"
|
|
20
|
+
Requires-Dist: testcontainers>=3.7.1; extra == "dev"
|
|
21
|
+
Requires-Dist: black>=22.0; extra == "dev"
|
|
22
|
+
Requires-Dist: flake8>=5.0; extra == "dev"
|
|
23
|
+
Requires-Dist: mypy>=0.990; extra == "dev"
|
|
24
|
+
Provides-Extra: release
|
|
25
|
+
Requires-Dist: build>=1.0.0; extra == "release"
|
|
26
|
+
Requires-Dist: twine>=4.0.0; extra == "release"
|
|
27
|
+
|
|
28
|
+
# Jenkins Inspector
|
|
29
|
+
|
|
30
|
+
Jenkins CLI 工具,提供命令列介面來管理和探索 Jenkins jobs、builds、credentials 等資源。
|
|
31
|
+
|
|
32
|
+
主要 CLI 命令為 `jenkee`(保留 `jks` 作為相容 alias)。
|
|
33
|
+
|
|
34
|
+
## 安裝
|
|
35
|
+
|
|
36
|
+
### 使用 pipx 安裝(推薦)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pipx install git+https://github.com/qrtt1/jenkins-inspector
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 開發模式安裝
|
|
43
|
+
|
|
44
|
+
如果想要參與開發或修改程式碼:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Clone repository
|
|
48
|
+
git clone https://github.com/qrtt1/jenkins-inspector
|
|
49
|
+
cd jenkins-inspector
|
|
50
|
+
|
|
51
|
+
# 啟用虛擬環境
|
|
52
|
+
source venv/bin/activate
|
|
53
|
+
|
|
54
|
+
# 以 editable 模式安裝
|
|
55
|
+
pip install -e .
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 與 AI Agent 的互動
|
|
59
|
+
|
|
60
|
+
如果你不熟悉 Jenkins Inspector 的使用方式,或想讓 AI agent 協助你完成 Jenkins 相關任務,可以使用 `prompt` 命令:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
jenkee prompt
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
這個命令會輸出專為 AI agent 設計的使用指引,包含:
|
|
67
|
+
- Jenkins Inspector 的功能說明
|
|
68
|
+
- 各命令的使用方式與情境
|
|
69
|
+
- AI agent 操作建議與最佳實踐
|
|
70
|
+
|
|
71
|
+
你可以將輸出的內容複製給你的 AI assistant(如 ChatGPT、Claude),讓它更了解如何協助你使用 Jenkins Inspector。
|
|
72
|
+
|
|
73
|
+
### 自訂 AI Agent Prompt
|
|
74
|
+
|
|
75
|
+
如果需要自訂 prompt 內容(例如:加入團隊特定的工作流程、命名規範等),可以透過以下方式:
|
|
76
|
+
|
|
77
|
+
**方式 1:使用預設位置**
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 建立自訂 prompt
|
|
81
|
+
cat > ~/.jenkins-inspector/prompt.md << 'EOF'
|
|
82
|
+
# 我的使用指引
|
|
83
|
+
|
|
84
|
+
自訂的 prompt 內容...
|
|
85
|
+
EOF
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**方式 2:使用環境變數指定檔案位置**
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# 設定環境變數
|
|
92
|
+
export JENKINS_INSPECTOR_PROMPT_FILE=/path/to/my-prompt.md
|
|
93
|
+
|
|
94
|
+
# 執行 prompt 命令
|
|
95
|
+
jenkee prompt
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
環境變數 `JENKINS_INSPECTOR_PROMPT_FILE` 的優先級高於預設位置。
|
|
99
|
+
|
|
100
|
+
**暫時忽略自訂 prompt**
|
|
101
|
+
|
|
102
|
+
如果需要暫時使用預設 prompt 而不刪除自訂檔案:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# 使用 --ignore-override flag
|
|
106
|
+
jenkee prompt --ignore-override
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
詳細說明請參考 [docs/examples/prompt.md](docs/examples/prompt.md)。
|
|
110
|
+
|
|
111
|
+
## 設定認證
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# 建立設定檔目錄
|
|
115
|
+
mkdir -p ~/.jenkins-inspector
|
|
116
|
+
|
|
117
|
+
# 編輯 .env 檔案
|
|
118
|
+
cat > ~/.jenkins-inspector/.env << EOF
|
|
119
|
+
JENKINS_URL=http://your-jenkins-server:8080/
|
|
120
|
+
JENKINS_USER_ID=your_email@example.com
|
|
121
|
+
JENKINS_API_TOKEN=your_api_token
|
|
122
|
+
EOF
|
|
123
|
+
|
|
124
|
+
# 驗證認證
|
|
125
|
+
jenkee auth
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 可用命令
|
|
129
|
+
|
|
130
|
+
### 一般命令
|
|
131
|
+
|
|
132
|
+
| 命令 | 說明 | 範例 |
|
|
133
|
+
|------|------|------|
|
|
134
|
+
| `help` | 顯示命令說明 | `jenkee help [command]` |
|
|
135
|
+
| `prompt` | 顯示 AI agent 使用指引 | `jenkee prompt` |
|
|
136
|
+
| `auth` | 驗證 Jenkins 認證 | `jenkee auth` |
|
|
137
|
+
| `list-views` | 列出所有 views | `jenkee list-views` |
|
|
138
|
+
| `list-jobs` | 列出 view 中的 jobs | `jenkee list-jobs AVENGERS` |
|
|
139
|
+
| `get-job` | 取得 job XML 配置 | `jenkee get-job <job-name>` |
|
|
140
|
+
| `list-builds` | 列出 job 的 build 歷史 | `jenkee list-builds <job-name>` |
|
|
141
|
+
| `console` | 取得 build console 輸出 | `jenkee console <job-name> [build]` |
|
|
142
|
+
| `job-status` | 查看 job 狀態與觸發關係 | `jenkee job-status <job-name>` |
|
|
143
|
+
| `job-diff` | 比較兩個 job 配置差異 | `jenkee job-diff <job1> <job2>` |
|
|
144
|
+
| `list-credentials` | 列出 Jenkins credentials metadata | `jenkee list-credentials [domain]` |
|
|
145
|
+
| `describe-credentials` | 查看特定 credential 詳細資訊 | `jenkee describe-credentials <id> [--show-secret]` |
|
|
146
|
+
| `add-job-to-view` | 將 jobs 加入到 view | `jenkee add-job-to-view <view> <job> [job ...]` |
|
|
147
|
+
| `copy-job` | 複製 job 為新 job | `jenkee copy-job <source> <destination>` |
|
|
148
|
+
| `update-job` | 更新 job 配置 | `jenkee update-job <job> < config.xml` |
|
|
149
|
+
| `build` | 觸發 job build | `jenkee build <job> [-p key=value] [-s] [-f]` |
|
|
150
|
+
| `stop-builds` | 停止執行中的 builds | `jenkee stop-builds <job> [job ...]` |
|
|
151
|
+
| `create-job` | 建立新 job | `jenkee create-job <job> < config.xml` |
|
|
152
|
+
|
|
153
|
+
詳細使用說明請參考 [docs/examples/](docs/examples/) 目錄下的各命令文件。
|
|
154
|
+
|
|
155
|
+
進階與危險命令請參考 [README.advanced.md](README.advanced.md)。
|
|
156
|
+
|
|
157
|
+
## 主要功能
|
|
158
|
+
|
|
159
|
+
### 1. 探索 Jenkins 架構
|
|
160
|
+
- 列出所有 views 和 jobs
|
|
161
|
+
- 查看 job 配置與狀態
|
|
162
|
+
- 追蹤 job 觸發關係
|
|
163
|
+
|
|
164
|
+
### 2. Build 管理
|
|
165
|
+
- 觸發 job builds(支援參數、同步與追蹤模式)
|
|
166
|
+
- 停止執行中的 builds
|
|
167
|
+
- 查看 build 歷史與 console 輸出
|
|
168
|
+
|
|
169
|
+
### 3. Job 管理
|
|
170
|
+
- 建立、複製、更新 job 配置
|
|
171
|
+
- 比較 job 配置差異
|
|
172
|
+
- 將 jobs 加入 views
|
|
173
|
+
|
|
174
|
+
### 4. Credentials 管理
|
|
175
|
+
- 列出所有 credentials metadata
|
|
176
|
+
- 查看 credentials 類型與相關資訊
|
|
177
|
+
- 驗證 credentials 配置
|
|
178
|
+
|
|
179
|
+
## 文件
|
|
180
|
+
|
|
181
|
+
- [README.advanced.md](README.advanced.md) - 進階與危險命令
|
|
182
|
+
- [CODING_GUIDE.md](CODING_GUIDE.md) - 專案開發指南
|
|
183
|
+
- [docs/examples/](docs/examples/) - 各命令使用範例
|
|
184
|
+
|
|
185
|
+
## 開發指引
|
|
186
|
+
|
|
187
|
+
如果你是 AI agent 正在開發此專案,請**務必先閱讀 [CODING_GUIDE.md](CODING_GUIDE.md)**。
|
|
188
|
+
|
|
189
|
+
該文件包含:
|
|
190
|
+
- 專案架構原則與設計模式
|
|
191
|
+
- 新增 command 的完整流程
|
|
192
|
+
- 程式碼格式化規範(Black)
|
|
193
|
+
- AI Agent 開發 checklist
|
|
194
|
+
|
|
195
|
+
遵循 CODING_GUIDE 可確保:
|
|
196
|
+
- 程式碼風格一致
|
|
197
|
+
- 功能完整實作(包含 help、prompt、example 文件)
|
|
198
|
+
- 通過所有整合測試
|
|
199
|
+
|
jenkee-0.2.1/README.md
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Jenkins Inspector
|
|
2
|
+
|
|
3
|
+
Jenkins CLI 工具,提供命令列介面來管理和探索 Jenkins jobs、builds、credentials 等資源。
|
|
4
|
+
|
|
5
|
+
主要 CLI 命令為 `jenkee`(保留 `jks` 作為相容 alias)。
|
|
6
|
+
|
|
7
|
+
## 安裝
|
|
8
|
+
|
|
9
|
+
### 使用 pipx 安裝(推薦)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pipx install git+https://github.com/qrtt1/jenkins-inspector
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### 開發模式安裝
|
|
16
|
+
|
|
17
|
+
如果想要參與開發或修改程式碼:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Clone repository
|
|
21
|
+
git clone https://github.com/qrtt1/jenkins-inspector
|
|
22
|
+
cd jenkins-inspector
|
|
23
|
+
|
|
24
|
+
# 啟用虛擬環境
|
|
25
|
+
source venv/bin/activate
|
|
26
|
+
|
|
27
|
+
# 以 editable 模式安裝
|
|
28
|
+
pip install -e .
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 與 AI Agent 的互動
|
|
32
|
+
|
|
33
|
+
如果你不熟悉 Jenkins Inspector 的使用方式,或想讓 AI agent 協助你完成 Jenkins 相關任務,可以使用 `prompt` 命令:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
jenkee prompt
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
這個命令會輸出專為 AI agent 設計的使用指引,包含:
|
|
40
|
+
- Jenkins Inspector 的功能說明
|
|
41
|
+
- 各命令的使用方式與情境
|
|
42
|
+
- AI agent 操作建議與最佳實踐
|
|
43
|
+
|
|
44
|
+
你可以將輸出的內容複製給你的 AI assistant(如 ChatGPT、Claude),讓它更了解如何協助你使用 Jenkins Inspector。
|
|
45
|
+
|
|
46
|
+
### 自訂 AI Agent Prompt
|
|
47
|
+
|
|
48
|
+
如果需要自訂 prompt 內容(例如:加入團隊特定的工作流程、命名規範等),可以透過以下方式:
|
|
49
|
+
|
|
50
|
+
**方式 1:使用預設位置**
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 建立自訂 prompt
|
|
54
|
+
cat > ~/.jenkins-inspector/prompt.md << 'EOF'
|
|
55
|
+
# 我的使用指引
|
|
56
|
+
|
|
57
|
+
自訂的 prompt 內容...
|
|
58
|
+
EOF
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**方式 2:使用環境變數指定檔案位置**
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# 設定環境變數
|
|
65
|
+
export JENKINS_INSPECTOR_PROMPT_FILE=/path/to/my-prompt.md
|
|
66
|
+
|
|
67
|
+
# 執行 prompt 命令
|
|
68
|
+
jenkee prompt
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
環境變數 `JENKINS_INSPECTOR_PROMPT_FILE` 的優先級高於預設位置。
|
|
72
|
+
|
|
73
|
+
**暫時忽略自訂 prompt**
|
|
74
|
+
|
|
75
|
+
如果需要暫時使用預設 prompt 而不刪除自訂檔案:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# 使用 --ignore-override flag
|
|
79
|
+
jenkee prompt --ignore-override
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
詳細說明請參考 [docs/examples/prompt.md](docs/examples/prompt.md)。
|
|
83
|
+
|
|
84
|
+
## 設定認證
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# 建立設定檔目錄
|
|
88
|
+
mkdir -p ~/.jenkins-inspector
|
|
89
|
+
|
|
90
|
+
# 編輯 .env 檔案
|
|
91
|
+
cat > ~/.jenkins-inspector/.env << EOF
|
|
92
|
+
JENKINS_URL=http://your-jenkins-server:8080/
|
|
93
|
+
JENKINS_USER_ID=your_email@example.com
|
|
94
|
+
JENKINS_API_TOKEN=your_api_token
|
|
95
|
+
EOF
|
|
96
|
+
|
|
97
|
+
# 驗證認證
|
|
98
|
+
jenkee auth
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 可用命令
|
|
102
|
+
|
|
103
|
+
### 一般命令
|
|
104
|
+
|
|
105
|
+
| 命令 | 說明 | 範例 |
|
|
106
|
+
|------|------|------|
|
|
107
|
+
| `help` | 顯示命令說明 | `jenkee help [command]` |
|
|
108
|
+
| `prompt` | 顯示 AI agent 使用指引 | `jenkee prompt` |
|
|
109
|
+
| `auth` | 驗證 Jenkins 認證 | `jenkee auth` |
|
|
110
|
+
| `list-views` | 列出所有 views | `jenkee list-views` |
|
|
111
|
+
| `list-jobs` | 列出 view 中的 jobs | `jenkee list-jobs AVENGERS` |
|
|
112
|
+
| `get-job` | 取得 job XML 配置 | `jenkee get-job <job-name>` |
|
|
113
|
+
| `list-builds` | 列出 job 的 build 歷史 | `jenkee list-builds <job-name>` |
|
|
114
|
+
| `console` | 取得 build console 輸出 | `jenkee console <job-name> [build]` |
|
|
115
|
+
| `job-status` | 查看 job 狀態與觸發關係 | `jenkee job-status <job-name>` |
|
|
116
|
+
| `job-diff` | 比較兩個 job 配置差異 | `jenkee job-diff <job1> <job2>` |
|
|
117
|
+
| `list-credentials` | 列出 Jenkins credentials metadata | `jenkee list-credentials [domain]` |
|
|
118
|
+
| `describe-credentials` | 查看特定 credential 詳細資訊 | `jenkee describe-credentials <id> [--show-secret]` |
|
|
119
|
+
| `add-job-to-view` | 將 jobs 加入到 view | `jenkee add-job-to-view <view> <job> [job ...]` |
|
|
120
|
+
| `copy-job` | 複製 job 為新 job | `jenkee copy-job <source> <destination>` |
|
|
121
|
+
| `update-job` | 更新 job 配置 | `jenkee update-job <job> < config.xml` |
|
|
122
|
+
| `build` | 觸發 job build | `jenkee build <job> [-p key=value] [-s] [-f]` |
|
|
123
|
+
| `stop-builds` | 停止執行中的 builds | `jenkee stop-builds <job> [job ...]` |
|
|
124
|
+
| `create-job` | 建立新 job | `jenkee create-job <job> < config.xml` |
|
|
125
|
+
|
|
126
|
+
詳細使用說明請參考 [docs/examples/](docs/examples/) 目錄下的各命令文件。
|
|
127
|
+
|
|
128
|
+
進階與危險命令請參考 [README.advanced.md](README.advanced.md)。
|
|
129
|
+
|
|
130
|
+
## 主要功能
|
|
131
|
+
|
|
132
|
+
### 1. 探索 Jenkins 架構
|
|
133
|
+
- 列出所有 views 和 jobs
|
|
134
|
+
- 查看 job 配置與狀態
|
|
135
|
+
- 追蹤 job 觸發關係
|
|
136
|
+
|
|
137
|
+
### 2. Build 管理
|
|
138
|
+
- 觸發 job builds(支援參數、同步與追蹤模式)
|
|
139
|
+
- 停止執行中的 builds
|
|
140
|
+
- 查看 build 歷史與 console 輸出
|
|
141
|
+
|
|
142
|
+
### 3. Job 管理
|
|
143
|
+
- 建立、複製、更新 job 配置
|
|
144
|
+
- 比較 job 配置差異
|
|
145
|
+
- 將 jobs 加入 views
|
|
146
|
+
|
|
147
|
+
### 4. Credentials 管理
|
|
148
|
+
- 列出所有 credentials metadata
|
|
149
|
+
- 查看 credentials 類型與相關資訊
|
|
150
|
+
- 驗證 credentials 配置
|
|
151
|
+
|
|
152
|
+
## 文件
|
|
153
|
+
|
|
154
|
+
- [README.advanced.md](README.advanced.md) - 進階與危險命令
|
|
155
|
+
- [CODING_GUIDE.md](CODING_GUIDE.md) - 專案開發指南
|
|
156
|
+
- [docs/examples/](docs/examples/) - 各命令使用範例
|
|
157
|
+
|
|
158
|
+
## 開發指引
|
|
159
|
+
|
|
160
|
+
如果你是 AI agent 正在開發此專案,請**務必先閱讀 [CODING_GUIDE.md](CODING_GUIDE.md)**。
|
|
161
|
+
|
|
162
|
+
該文件包含:
|
|
163
|
+
- 專案架構原則與設計模式
|
|
164
|
+
- 新增 command 的完整流程
|
|
165
|
+
- 程式碼格式化規範(Black)
|
|
166
|
+
- AI Agent 開發 checklist
|
|
167
|
+
|
|
168
|
+
遵循 CODING_GUIDE 可確保:
|
|
169
|
+
- 程式碼風格一致
|
|
170
|
+
- 功能完整實作(包含 help、prompt、example 文件)
|
|
171
|
+
- 通過所有整合測試
|
|
172
|
+
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: jenkee
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Jenkins CLI Helper Tools
|
|
5
|
+
Author: Jenkins Studio Team
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
17
|
+
Provides-Extra: dev
|
|
18
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
19
|
+
Requires-Dist: pytest-cov>=4.0; extra == "dev"
|
|
20
|
+
Requires-Dist: testcontainers>=3.7.1; extra == "dev"
|
|
21
|
+
Requires-Dist: black>=22.0; extra == "dev"
|
|
22
|
+
Requires-Dist: flake8>=5.0; extra == "dev"
|
|
23
|
+
Requires-Dist: mypy>=0.990; extra == "dev"
|
|
24
|
+
Provides-Extra: release
|
|
25
|
+
Requires-Dist: build>=1.0.0; extra == "release"
|
|
26
|
+
Requires-Dist: twine>=4.0.0; extra == "release"
|
|
27
|
+
|
|
28
|
+
# Jenkins Inspector
|
|
29
|
+
|
|
30
|
+
Jenkins CLI 工具,提供命令列介面來管理和探索 Jenkins jobs、builds、credentials 等資源。
|
|
31
|
+
|
|
32
|
+
主要 CLI 命令為 `jenkee`(保留 `jks` 作為相容 alias)。
|
|
33
|
+
|
|
34
|
+
## 安裝
|
|
35
|
+
|
|
36
|
+
### 使用 pipx 安裝(推薦)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pipx install git+https://github.com/qrtt1/jenkins-inspector
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 開發模式安裝
|
|
43
|
+
|
|
44
|
+
如果想要參與開發或修改程式碼:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Clone repository
|
|
48
|
+
git clone https://github.com/qrtt1/jenkins-inspector
|
|
49
|
+
cd jenkins-inspector
|
|
50
|
+
|
|
51
|
+
# 啟用虛擬環境
|
|
52
|
+
source venv/bin/activate
|
|
53
|
+
|
|
54
|
+
# 以 editable 模式安裝
|
|
55
|
+
pip install -e .
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 與 AI Agent 的互動
|
|
59
|
+
|
|
60
|
+
如果你不熟悉 Jenkins Inspector 的使用方式,或想讓 AI agent 協助你完成 Jenkins 相關任務,可以使用 `prompt` 命令:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
jenkee prompt
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
這個命令會輸出專為 AI agent 設計的使用指引,包含:
|
|
67
|
+
- Jenkins Inspector 的功能說明
|
|
68
|
+
- 各命令的使用方式與情境
|
|
69
|
+
- AI agent 操作建議與最佳實踐
|
|
70
|
+
|
|
71
|
+
你可以將輸出的內容複製給你的 AI assistant(如 ChatGPT、Claude),讓它更了解如何協助你使用 Jenkins Inspector。
|
|
72
|
+
|
|
73
|
+
### 自訂 AI Agent Prompt
|
|
74
|
+
|
|
75
|
+
如果需要自訂 prompt 內容(例如:加入團隊特定的工作流程、命名規範等),可以透過以下方式:
|
|
76
|
+
|
|
77
|
+
**方式 1:使用預設位置**
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 建立自訂 prompt
|
|
81
|
+
cat > ~/.jenkins-inspector/prompt.md << 'EOF'
|
|
82
|
+
# 我的使用指引
|
|
83
|
+
|
|
84
|
+
自訂的 prompt 內容...
|
|
85
|
+
EOF
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**方式 2:使用環境變數指定檔案位置**
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# 設定環境變數
|
|
92
|
+
export JENKINS_INSPECTOR_PROMPT_FILE=/path/to/my-prompt.md
|
|
93
|
+
|
|
94
|
+
# 執行 prompt 命令
|
|
95
|
+
jenkee prompt
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
環境變數 `JENKINS_INSPECTOR_PROMPT_FILE` 的優先級高於預設位置。
|
|
99
|
+
|
|
100
|
+
**暫時忽略自訂 prompt**
|
|
101
|
+
|
|
102
|
+
如果需要暫時使用預設 prompt 而不刪除自訂檔案:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# 使用 --ignore-override flag
|
|
106
|
+
jenkee prompt --ignore-override
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
詳細說明請參考 [docs/examples/prompt.md](docs/examples/prompt.md)。
|
|
110
|
+
|
|
111
|
+
## 設定認證
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# 建立設定檔目錄
|
|
115
|
+
mkdir -p ~/.jenkins-inspector
|
|
116
|
+
|
|
117
|
+
# 編輯 .env 檔案
|
|
118
|
+
cat > ~/.jenkins-inspector/.env << EOF
|
|
119
|
+
JENKINS_URL=http://your-jenkins-server:8080/
|
|
120
|
+
JENKINS_USER_ID=your_email@example.com
|
|
121
|
+
JENKINS_API_TOKEN=your_api_token
|
|
122
|
+
EOF
|
|
123
|
+
|
|
124
|
+
# 驗證認證
|
|
125
|
+
jenkee auth
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 可用命令
|
|
129
|
+
|
|
130
|
+
### 一般命令
|
|
131
|
+
|
|
132
|
+
| 命令 | 說明 | 範例 |
|
|
133
|
+
|------|------|------|
|
|
134
|
+
| `help` | 顯示命令說明 | `jenkee help [command]` |
|
|
135
|
+
| `prompt` | 顯示 AI agent 使用指引 | `jenkee prompt` |
|
|
136
|
+
| `auth` | 驗證 Jenkins 認證 | `jenkee auth` |
|
|
137
|
+
| `list-views` | 列出所有 views | `jenkee list-views` |
|
|
138
|
+
| `list-jobs` | 列出 view 中的 jobs | `jenkee list-jobs AVENGERS` |
|
|
139
|
+
| `get-job` | 取得 job XML 配置 | `jenkee get-job <job-name>` |
|
|
140
|
+
| `list-builds` | 列出 job 的 build 歷史 | `jenkee list-builds <job-name>` |
|
|
141
|
+
| `console` | 取得 build console 輸出 | `jenkee console <job-name> [build]` |
|
|
142
|
+
| `job-status` | 查看 job 狀態與觸發關係 | `jenkee job-status <job-name>` |
|
|
143
|
+
| `job-diff` | 比較兩個 job 配置差異 | `jenkee job-diff <job1> <job2>` |
|
|
144
|
+
| `list-credentials` | 列出 Jenkins credentials metadata | `jenkee list-credentials [domain]` |
|
|
145
|
+
| `describe-credentials` | 查看特定 credential 詳細資訊 | `jenkee describe-credentials <id> [--show-secret]` |
|
|
146
|
+
| `add-job-to-view` | 將 jobs 加入到 view | `jenkee add-job-to-view <view> <job> [job ...]` |
|
|
147
|
+
| `copy-job` | 複製 job 為新 job | `jenkee copy-job <source> <destination>` |
|
|
148
|
+
| `update-job` | 更新 job 配置 | `jenkee update-job <job> < config.xml` |
|
|
149
|
+
| `build` | 觸發 job build | `jenkee build <job> [-p key=value] [-s] [-f]` |
|
|
150
|
+
| `stop-builds` | 停止執行中的 builds | `jenkee stop-builds <job> [job ...]` |
|
|
151
|
+
| `create-job` | 建立新 job | `jenkee create-job <job> < config.xml` |
|
|
152
|
+
|
|
153
|
+
詳細使用說明請參考 [docs/examples/](docs/examples/) 目錄下的各命令文件。
|
|
154
|
+
|
|
155
|
+
進階與危險命令請參考 [README.advanced.md](README.advanced.md)。
|
|
156
|
+
|
|
157
|
+
## 主要功能
|
|
158
|
+
|
|
159
|
+
### 1. 探索 Jenkins 架構
|
|
160
|
+
- 列出所有 views 和 jobs
|
|
161
|
+
- 查看 job 配置與狀態
|
|
162
|
+
- 追蹤 job 觸發關係
|
|
163
|
+
|
|
164
|
+
### 2. Build 管理
|
|
165
|
+
- 觸發 job builds(支援參數、同步與追蹤模式)
|
|
166
|
+
- 停止執行中的 builds
|
|
167
|
+
- 查看 build 歷史與 console 輸出
|
|
168
|
+
|
|
169
|
+
### 3. Job 管理
|
|
170
|
+
- 建立、複製、更新 job 配置
|
|
171
|
+
- 比較 job 配置差異
|
|
172
|
+
- 將 jobs 加入 views
|
|
173
|
+
|
|
174
|
+
### 4. Credentials 管理
|
|
175
|
+
- 列出所有 credentials metadata
|
|
176
|
+
- 查看 credentials 類型與相關資訊
|
|
177
|
+
- 驗證 credentials 配置
|
|
178
|
+
|
|
179
|
+
## 文件
|
|
180
|
+
|
|
181
|
+
- [README.advanced.md](README.advanced.md) - 進階與危險命令
|
|
182
|
+
- [CODING_GUIDE.md](CODING_GUIDE.md) - 專案開發指南
|
|
183
|
+
- [docs/examples/](docs/examples/) - 各命令使用範例
|
|
184
|
+
|
|
185
|
+
## 開發指引
|
|
186
|
+
|
|
187
|
+
如果你是 AI agent 正在開發此專案,請**務必先閱讀 [CODING_GUIDE.md](CODING_GUIDE.md)**。
|
|
188
|
+
|
|
189
|
+
該文件包含:
|
|
190
|
+
- 專案架構原則與設計模式
|
|
191
|
+
- 新增 command 的完整流程
|
|
192
|
+
- 程式碼格式化規範(Black)
|
|
193
|
+
- AI Agent 開發 checklist
|
|
194
|
+
|
|
195
|
+
遵循 CODING_GUIDE 可確保:
|
|
196
|
+
- 程式碼風格一致
|
|
197
|
+
- 功能完整實作(包含 help、prompt、example 文件)
|
|
198
|
+
- 通過所有整合測試
|
|
199
|
+
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
setup.py
|
|
4
|
+
jenkee.egg-info/PKG-INFO
|
|
5
|
+
jenkee.egg-info/SOURCES.txt
|
|
6
|
+
jenkee.egg-info/dependency_links.txt
|
|
7
|
+
jenkee.egg-info/entry_points.txt
|
|
8
|
+
jenkee.egg-info/requires.txt
|
|
9
|
+
jenkee.egg-info/top_level.txt
|
|
10
|
+
jenkins_tools/__init__.py
|
|
11
|
+
jenkins_tools/cli.py
|
|
12
|
+
jenkins_tools/core.py
|
|
13
|
+
jenkins_tools/commands/__init__.py
|
|
14
|
+
jenkins_tools/commands/add_job_to_view.py
|
|
15
|
+
jenkins_tools/commands/auth.py
|
|
16
|
+
jenkins_tools/commands/build.py
|
|
17
|
+
jenkins_tools/commands/console.py
|
|
18
|
+
jenkins_tools/commands/copy_job.py
|
|
19
|
+
jenkins_tools/commands/create_job.py
|
|
20
|
+
jenkins_tools/commands/delete_builds.py
|
|
21
|
+
jenkins_tools/commands/delete_job.py
|
|
22
|
+
jenkins_tools/commands/describe_credentials.py
|
|
23
|
+
jenkins_tools/commands/disable_job.py
|
|
24
|
+
jenkins_tools/commands/enable_job.py
|
|
25
|
+
jenkins_tools/commands/get_job.py
|
|
26
|
+
jenkins_tools/commands/groovy.py
|
|
27
|
+
jenkins_tools/commands/help.py
|
|
28
|
+
jenkins_tools/commands/job_diff.py
|
|
29
|
+
jenkins_tools/commands/job_status.py
|
|
30
|
+
jenkins_tools/commands/list_builds.py
|
|
31
|
+
jenkins_tools/commands/list_credentials.py
|
|
32
|
+
jenkins_tools/commands/list_jobs.py
|
|
33
|
+
jenkins_tools/commands/list_views.py
|
|
34
|
+
jenkins_tools/commands/prompt.py
|
|
35
|
+
jenkins_tools/commands/stop_builds.py
|
|
36
|
+
jenkins_tools/commands/update_job.py
|
|
37
|
+
jenkins_tools/credential_describers/__init__.py
|
|
38
|
+
jenkins_tools/credential_describers/azure_credentials.py
|
|
39
|
+
jenkins_tools/credential_describers/azure_storage_credentials.py
|
|
40
|
+
jenkins_tools/credential_describers/base.py
|
|
41
|
+
jenkins_tools/credential_describers/browserstack_credentials.py
|
|
42
|
+
jenkins_tools/credential_describers/file_credentials.py
|
|
43
|
+
jenkins_tools/credential_describers/gcp_credentials.py
|
|
44
|
+
jenkins_tools/credential_describers/gitlab_token_credentials.py
|
|
45
|
+
jenkins_tools/credential_describers/ssh_key_credentials.py
|
|
46
|
+
jenkins_tools/credential_describers/string_credentials.py
|
|
47
|
+
jenkins_tools/credential_describers/username_password_credentials.py
|
|
48
|
+
jenkins_tools/docs/examples/add-job-to-view.md
|
|
49
|
+
jenkins_tools/docs/examples/auth.md
|
|
50
|
+
jenkins_tools/docs/examples/build.md
|
|
51
|
+
jenkins_tools/docs/examples/console.md
|
|
52
|
+
jenkins_tools/docs/examples/copy-job.md
|
|
53
|
+
jenkins_tools/docs/examples/create-job.md
|
|
54
|
+
jenkins_tools/docs/examples/delete-builds.md
|
|
55
|
+
jenkins_tools/docs/examples/delete-job.md
|
|
56
|
+
jenkins_tools/docs/examples/describe-credentials.md
|
|
57
|
+
jenkins_tools/docs/examples/disable-job.md
|
|
58
|
+
jenkins_tools/docs/examples/enable-job.md
|
|
59
|
+
jenkins_tools/docs/examples/get-job.md
|
|
60
|
+
jenkins_tools/docs/examples/groovy.md
|
|
61
|
+
jenkins_tools/docs/examples/help.md
|
|
62
|
+
jenkins_tools/docs/examples/job-diff.md
|
|
63
|
+
jenkins_tools/docs/examples/job-status.md
|
|
64
|
+
jenkins_tools/docs/examples/list-builds.md
|
|
65
|
+
jenkins_tools/docs/examples/list-credentials.md
|
|
66
|
+
jenkins_tools/docs/examples/list-jobs.md
|
|
67
|
+
jenkins_tools/docs/examples/list-views.md
|
|
68
|
+
jenkins_tools/docs/examples/prompt.md
|
|
69
|
+
jenkins_tools/docs/examples/stop-builds.md
|
|
70
|
+
jenkins_tools/docs/examples/update-job.md
|
|
71
|
+
tests/test_advanced_operations.py
|
|
72
|
+
tests/test_auth.py
|
|
73
|
+
tests/test_build_execution.py
|
|
74
|
+
tests/test_cleanup_operations.py
|
|
75
|
+
tests/test_credentials_management.py
|
|
76
|
+
tests/test_example.py
|
|
77
|
+
tests/test_initial_setup.py
|
|
78
|
+
tests/test_jenkins_logs_helper.py
|
|
79
|
+
tests/test_job_configuration.py
|
|
80
|
+
tests/test_job_organization.py
|
|
81
|
+
tests/test_list_jobs.py
|
|
82
|
+
tests/test_prompt.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
jenkins_tools
|