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.
Files changed (84) hide show
  1. jenkee-0.2.1/PKG-INFO +199 -0
  2. jenkee-0.2.1/README.md +172 -0
  3. jenkee-0.2.1/jenkee.egg-info/PKG-INFO +199 -0
  4. jenkee-0.2.1/jenkee.egg-info/SOURCES.txt +82 -0
  5. jenkee-0.2.1/jenkee.egg-info/dependency_links.txt +1 -0
  6. jenkee-0.2.1/jenkee.egg-info/entry_points.txt +3 -0
  7. jenkee-0.2.1/jenkee.egg-info/requires.txt +13 -0
  8. jenkee-0.2.1/jenkee.egg-info/top_level.txt +1 -0
  9. jenkee-0.2.1/jenkins_tools/__init__.py +3 -0
  10. jenkee-0.2.1/jenkins_tools/cli.py +120 -0
  11. jenkee-0.2.1/jenkins_tools/commands/__init__.py +51 -0
  12. jenkee-0.2.1/jenkins_tools/commands/add_job_to_view.py +57 -0
  13. jenkee-0.2.1/jenkins_tools/commands/auth.py +67 -0
  14. jenkee-0.2.1/jenkins_tools/commands/build.py +83 -0
  15. jenkee-0.2.1/jenkins_tools/commands/console.py +53 -0
  16. jenkee-0.2.1/jenkins_tools/commands/copy_job.py +53 -0
  17. jenkee-0.2.1/jenkins_tools/commands/create_job.py +67 -0
  18. jenkee-0.2.1/jenkins_tools/commands/delete_builds.py +65 -0
  19. jenkee-0.2.1/jenkins_tools/commands/delete_job.py +70 -0
  20. jenkee-0.2.1/jenkins_tools/commands/describe_credentials.py +163 -0
  21. jenkee-0.2.1/jenkins_tools/commands/disable_job.py +70 -0
  22. jenkee-0.2.1/jenkins_tools/commands/enable_job.py +70 -0
  23. jenkee-0.2.1/jenkins_tools/commands/get_job.py +49 -0
  24. jenkee-0.2.1/jenkins_tools/commands/groovy.py +68 -0
  25. jenkee-0.2.1/jenkins_tools/commands/help.py +225 -0
  26. jenkee-0.2.1/jenkins_tools/commands/job_diff.py +75 -0
  27. jenkee-0.2.1/jenkins_tools/commands/job_status.py +125 -0
  28. jenkee-0.2.1/jenkins_tools/commands/list_builds.py +71 -0
  29. jenkee-0.2.1/jenkins_tools/commands/list_credentials.py +159 -0
  30. jenkee-0.2.1/jenkins_tools/commands/list_jobs.py +70 -0
  31. jenkee-0.2.1/jenkins_tools/commands/list_views.py +34 -0
  32. jenkee-0.2.1/jenkins_tools/commands/prompt.py +408 -0
  33. jenkee-0.2.1/jenkins_tools/commands/stop_builds.py +65 -0
  34. jenkee-0.2.1/jenkins_tools/commands/update_job.py +65 -0
  35. jenkee-0.2.1/jenkins_tools/core.py +121 -0
  36. jenkee-0.2.1/jenkins_tools/credential_describers/__init__.py +38 -0
  37. jenkee-0.2.1/jenkins_tools/credential_describers/azure_credentials.py +42 -0
  38. jenkee-0.2.1/jenkins_tools/credential_describers/azure_storage_credentials.py +41 -0
  39. jenkee-0.2.1/jenkins_tools/credential_describers/base.py +93 -0
  40. jenkee-0.2.1/jenkins_tools/credential_describers/browserstack_credentials.py +34 -0
  41. jenkee-0.2.1/jenkins_tools/credential_describers/file_credentials.py +76 -0
  42. jenkee-0.2.1/jenkins_tools/credential_describers/gcp_credentials.py +85 -0
  43. jenkee-0.2.1/jenkins_tools/credential_describers/gitlab_token_credentials.py +30 -0
  44. jenkee-0.2.1/jenkins_tools/credential_describers/ssh_key_credentials.py +84 -0
  45. jenkee-0.2.1/jenkins_tools/credential_describers/string_credentials.py +61 -0
  46. jenkee-0.2.1/jenkins_tools/credential_describers/username_password_credentials.py +68 -0
  47. jenkee-0.2.1/jenkins_tools/docs/examples/add-job-to-view.md +166 -0
  48. jenkee-0.2.1/jenkins_tools/docs/examples/auth.md +129 -0
  49. jenkee-0.2.1/jenkins_tools/docs/examples/build.md +272 -0
  50. jenkee-0.2.1/jenkins_tools/docs/examples/console.md +191 -0
  51. jenkee-0.2.1/jenkins_tools/docs/examples/copy-job.md +265 -0
  52. jenkee-0.2.1/jenkins_tools/docs/examples/create-job.md +343 -0
  53. jenkee-0.2.1/jenkins_tools/docs/examples/delete-builds.md +350 -0
  54. jenkee-0.2.1/jenkins_tools/docs/examples/delete-job.md +344 -0
  55. jenkee-0.2.1/jenkins_tools/docs/examples/describe-credentials.md +377 -0
  56. jenkee-0.2.1/jenkins_tools/docs/examples/disable-job.md +230 -0
  57. jenkee-0.2.1/jenkins_tools/docs/examples/enable-job.md +271 -0
  58. jenkee-0.2.1/jenkins_tools/docs/examples/get-job.md +204 -0
  59. jenkee-0.2.1/jenkins_tools/docs/examples/groovy.md +158 -0
  60. jenkee-0.2.1/jenkins_tools/docs/examples/help.md +144 -0
  61. jenkee-0.2.1/jenkins_tools/docs/examples/job-diff.md +300 -0
  62. jenkee-0.2.1/jenkins_tools/docs/examples/job-status.md +236 -0
  63. jenkee-0.2.1/jenkins_tools/docs/examples/list-builds.md +134 -0
  64. jenkee-0.2.1/jenkins_tools/docs/examples/list-credentials.md +463 -0
  65. jenkee-0.2.1/jenkins_tools/docs/examples/list-jobs.md +180 -0
  66. jenkee-0.2.1/jenkins_tools/docs/examples/list-views.md +111 -0
  67. jenkee-0.2.1/jenkins_tools/docs/examples/prompt.md +375 -0
  68. jenkee-0.2.1/jenkins_tools/docs/examples/stop-builds.md +335 -0
  69. jenkee-0.2.1/jenkins_tools/docs/examples/update-job.md +422 -0
  70. jenkee-0.2.1/pyproject.toml +64 -0
  71. jenkee-0.2.1/setup.cfg +4 -0
  72. jenkee-0.2.1/setup.py +9 -0
  73. jenkee-0.2.1/tests/test_advanced_operations.py +533 -0
  74. jenkee-0.2.1/tests/test_auth.py +63 -0
  75. jenkee-0.2.1/tests/test_build_execution.py +611 -0
  76. jenkee-0.2.1/tests/test_cleanup_operations.py +506 -0
  77. jenkee-0.2.1/tests/test_credentials_management.py +528 -0
  78. jenkee-0.2.1/tests/test_example.py +102 -0
  79. jenkee-0.2.1/tests/test_initial_setup.py +531 -0
  80. jenkee-0.2.1/tests/test_jenkins_logs_helper.py +66 -0
  81. jenkee-0.2.1/tests/test_job_configuration.py +654 -0
  82. jenkee-0.2.1/tests/test_job_organization.py +680 -0
  83. jenkee-0.2.1/tests/test_list_jobs.py +109 -0
  84. 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,3 @@
1
+ [console_scripts]
2
+ jenkee = jenkins_tools.cli:main
3
+ jks = jenkins_tools.cli:main
@@ -0,0 +1,13 @@
1
+ python-dotenv>=1.0.0
2
+
3
+ [dev]
4
+ pytest>=7.0
5
+ pytest-cov>=4.0
6
+ testcontainers>=3.7.1
7
+ black>=22.0
8
+ flake8>=5.0
9
+ mypy>=0.990
10
+
11
+ [release]
12
+ build>=1.0.0
13
+ twine>=4.0.0
@@ -0,0 +1 @@
1
+ jenkins_tools
@@ -0,0 +1,3 @@
1
+ """Jenkins Studio - Jenkins CLI Helper Tools"""
2
+
3
+ __version__ = "0.2.1"