Skip to main content

jenkee

PyPI version Python Support Tests License: MIT

為什麼需要 jenkee?

我對 Jenkins Web UI 不太在行。每次要看 job 的設定,都得展開一堆選單才能找到資訊。更麻煩的是,很多重要的配置細節藏在 XML 裡,不下載回來根本看不清楚。

最初,我只是想做一個簡單的工具:用命令列出 jobs、抓下 XML、然後自己 diff 比對。那時候我直接呼叫 jenkins-cli.jar,還特地寫了 prompt 來教 AI agent 怎麼用。 但很快就發現問題了。AI agent 常常搞錯 jenkins-cli.jar 的參數格式,明明教過還是會出錯。我開始思考:與其一直教它用複雜的工具,不如直接把工具改簡單一點? 於是我把常用的操作包裝成簡單的 CLI 命令。神奇的事情發生了:AI agent 幾乎不用特別教,看看 help 就能正確使用。原來簡化介面真的能讓 AI 更好發揮。

後來工具慢慢長大了。從最初的 list、get、diff,擴展到完整的 Jenkins 管理功能。現在有 25 個命令和完整的測試覆蓋,但核心理念沒變:讓 AI agent 幫你探索和管理 Jenkins。

一開始我們專注在唯讀操作:列出 jobs、抓配置、看 console。這些操作很安全,不會改變 Jenkins 的任何東西。這也是為什麼專案的 repository 名稱叫 jenkins-inspector,因為那時候真的只有檢視、探索資料的功能。後來才慢慢加入管理功能:建立 job、觸發 build、刪除資源。這些會變更 Jenkins 內容的操作,我們都加上了特別的提醒和確認機制。

特色

  • 🚀 25 個完整的 Jenkins CLI 命令
  • 🧪 完整的測試覆蓋所有功能
  • 🤖 專為 AI Agent 設計的互動模式
  • 🔒 支援多種 Jenkins credentials 類型
  • 🌐 支援多站台 profile,一個 CLI 管理多組 Jenkins
  • 📦 透過 PyPI 輕鬆安裝
  • 💬 清晰的 help 訊息,AI agent 容易理解

快速開始

# 安裝
pip install jenkee

# 設定認證
mkdir -p ~/.jenkins-inspector
cat > ~/.jenkins-inspector/.env << EOF
JENKINS_URL=http://your-jenkins-server:8080/
JENKINS_USER_ID=your_email@example.com
JENKINS_API_TOKEN=your_api_token
EOF

# 驗證連線
jenkee auth

# 列出所有 jobs
jenkee list-jobs --all

# 觸發 build
jenkee build my-job

安裝

從 PyPI 安裝(推薦)

pip install jenkee

或使用 pipx(建議用於 CLI 工具):

pipx install jenkee

開發模式安裝

如果想要參與開發或修改程式碼:

# Clone repository
git clone https://github.com/qrtt1/jenkins-inspector
cd jenkins-inspector

# 啟用虛擬環境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 以 editable 模式安裝
pip install -e ".[dev]"

與 AI Agent 協作

jenkee 從一開始就是設計給 AI agent 用的。命令結構很簡單:jenkee <command> [options],不需要記憶複雜的參數組合。

每個命令都有詳細的 help 說明和範例(jenkee help <command>)。AI agent 看一眼就知道怎麼用。輸出格式也很規律,方便它解析和理解。

如果你想讓 Claude Code 幫你操作 Jenkins,直接安裝下面的 jenkins-helper skill 即可,不需要額外準備 prompt 文字。

Claude Code Skill

如果你使用 Claude Code CLI,可以透過 marketplace 安裝 jenkins-helper plugin,它整合了 jenkee 的完整功能和最佳實踐,並附帶一個攔截危險 jenkee 指令、提醒確認目標站台的 PreToolUse hook。

/plugin marketplace add qrtt1/jenkins-inspector
/plugin install jenkins-helper@jenkins-inspector

plugin 原始碼位於 plugins/jenkins-helper/。

設定認證

# 建立設定檔目錄
mkdir -p ~/.jenkins-inspector

# 編輯 .env 檔案
cat > ~/.jenkins-inspector/.env << EOF
JENKINS_URL=http://your-jenkins-server:8080/
JENKINS_USER_ID=your_email@example.com
JENKINS_API_TOKEN=your_api_token
EOF

# 驗證認證
jenkee auth

可用命令

一般命令

命令 說明 範例
help 顯示命令說明 jenkee help [command]
auth 驗證 Jenkins 認證 jenkee auth
list-views 列出所有 views jenkee list-views
list-jobs 列出 view 中的 jobs jenkee list-jobs AVENGERS
get-job 取得 job XML 配置 jenkee get-job <job-name>
list-builds 列出 job 的 build 歷史 jenkee list-builds <job-name>
console 取得 build console 輸出 jenkee console <job-name> [build]
job-status 查看 job 狀態與觸發關係 jenkee job-status <job-name>
job-diff 比較兩個 job 配置差異 jenkee job-diff <job1> <job2>
list-credentials 列出 Jenkins credentials metadata jenkee list-credentials [domain]
describe-credentials 查看特定 credential 詳細資訊 jenkee describe-credentials <id> [--show-secret]
domain 管理 credentials domains jenkee domain list|create <name>
gcp 管理 GCP service account credentials jenkee gcp credential create <id> <key.json>
add-job-to-view 將 jobs 加入到 view jenkee add-job-to-view <view> <job> [job ...]
copy-job 複製 job 為新 job jenkee copy-job <source> <destination>
update-job 更新 job 配置 jenkee update-job <job> < config.xml
build 觸發 job build jenkee build <job> [-p key=value] [-s] [-f]
stop-builds 停止執行中的 builds jenkee stop-builds <job> [job ...]
create-job 建立新 job jenkee create-job <job> < config.xml
profile 管理多組 Jenkins 連線 profile(多站台) jenkee profile list|use|current

詳細使用說明請參考 docs/examples/ 目錄下的各命令文件。

進階與危險命令請參考 README.advanced.md。

主要功能

1. 探索 Jenkins 架構

  • 列出所有 views 和 jobs
  • 查看 job 配置與狀態
  • 追蹤 job 觸發關係

2. Build 管理

  • 觸發 job builds(支援參數、同步與追蹤模式)
  • 停止執行中的 builds
  • 查看 build 歷史與 console 輸出

3. Job 管理

  • 建立、複製、更新 job 配置
  • 比較 job 配置差異
  • 將 jobs 加入 views

4. Credentials 管理

  • 列出所有 credentials metadata
  • 查看 credentials 類型與相關資訊
  • 驗證 credentials 配置

5. 多站台 Profile 管理

  • 用 named profile 管理多組 Jenkins 連線設定
  • jenkee profile list/use/current 列出、切換、查詢目前站台
  • 也可用 --profile <name> 或 JENKEE_PROFILE 環境變數單次覆蓋,不動持久設定

文件

開發指引

如果你是 AI agent 正在開發此專案,請務必先閱讀 CODING_GUIDE.md。

該文件包含:

  • 專案架構原則與設計模式
  • 新增 command 的完整流程
  • 程式碼格式化規範(Black)
  • AI Agent 開發 checklist

遵循 CODING_GUIDE 可確保:

  • 程式碼風格一致
  • 功能完整實作(包含 help、example 文件)
  • 通過所有整合測試

Metadata

Release files for jenkee 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jenkee 0.7.1
File Size Uploaded
jenkee-0.7.1.tar.gz 122.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jenkee 0.7.1
File Interpreter ABI Platform
jenkee-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 243.0 kB

Release files / jenkee-0.7.1.tar.gz

Download URL jenkee-0.7.1.tar.gz
Size 122.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5d0d90f41076ef2087c76b422dcc51c5790cb0eee8c77357720cbc5447be8135
BLAKE2b-256 checksum
How to use checksums
0db0b190d9c14ec49acbbb8aa968ae08331bbc75e1f7daa08b22cc40f94ffcb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 13, 2026.

Transparency log

Release files / jenkee-0.7.1-py3-none-any.whl

Download URL jenkee-0.7.1-py3-none-any.whl
Size 120.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f9a53f4567389cbb0965b8f10d9cb8e1bc9aa5fe3f7aee6d57a674c490091fde
BLAKE2b-256 checksum
How to use checksums
b87e14f280ab8de1ce9706327f7cb3d2111fa0de139c00cc21c262536d919cea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page