程式的安全,不只靠「檢查漏洞」,還得確保你用的東西不是十年前的舊貨。
在 Day.9 我們用 pip-audit 掃過套件漏洞,知道了「依賴」可能是系統裡最危險的臥底。
但光靠檢查還不夠——因為漏洞幾乎每天都在冒出來,如果只是在發現後人工去更新,很快就會疲於奔命。
這就是 Dependabot 出場的時候。
它就像個不知疲倦的維修工,會每天替你檢查套件,發現有更新就幫你自動開 Pull Request。
你只要 review、跑 CI,決定要不要合併,就能確保依賴一直保持在健康狀態。
漏洞修補速度
漏洞公告和修補通常有時間差,晚一步更新就可能多一天風險。
避免版本落差過大
長期不更新,會讓專案停在落後版本,等到真的要升級時,痛苦程度指數級上升。
和 CI/CD 串連
Dependabot 開的 PR 會自動跑測試,確保更新不會悄悄破壞功能。
只要在 repo 裡建立一個 .github/dependabot.yml:
version: 2
updates:
- package-ecosystem: "pip" # Python 套件
directory: "/" # requirements.txt 的位置
schedule:
interval: "weekly" # 每週檢查一次
open-pull-requests-limit: 5
這樣 Dependabot 就會:
範例 PR 會長這樣:
Bump requests from 2.28.1 to 2.31.0
你可以像普通 PR 一樣 review、測試、合併。
這裡關鍵是:Dependabot 的 PR 不是直接合併,而是要跑過你的 測試 + 安全檢查。
例如:
Q:更新會不會破壞相容性?
A:這就是 CI/CD 的價值。Dependabot 幫你自動更新,測試幫你驗證可用性。只要測試設計完整,就能過濾掉> 危險升級。
到這裡,我們有了兩個不同層級的機制:
pip-audit:找出已知漏洞(靜態檢查)
Dependabot:主動幫你更新(持續維護)
不是單點補洞,而是讓整個流程持續健康。
把「更新依賴」這件麻煩事,自動化成一個持續的流程。
它幫你:
我們的 pipeline 不只會檢查,也開始會「自己動起來」。
就像有了個默默巡邏的機械兵,專門盯著依賴的更新狀態,減少人力負擔。