問問貓 › AI 工具總表 › GitHub Copilot
GitHub Actions 九月三項更新怎麼用:查 runner 淘汰日、把 token 權限縮到最小、認出誰在呼叫你的 workflow【2026 教學】
文章最後更新:2026-09-07
GitHub 在 2026-09-03 一口氣公告了三項 GitHub Actions 的更新。三項都不大,但都是那種「知道了就能少踩一次坑」的東西。這篇一項一項說明它解決什麼、怎麼用。
更新一:終於可以「查」runner 什麼時候被淘汰
問題是什麼:GitHub Actions 的 runner 會定期淘汰舊版本。以前要知道自己的版本什麼時候不能用,只能追公告、看部落格,或是等某天流水線紅了才發現。
現在有 API 了。新的 REST 端點:
GET /actions/runners/deprecations/{version}
回傳三個欄位(官方原文):runner_version、runtime_deprecates_at、registration_deprecates_at。
白話翻譯:這個版本什麼時候不能再跑、什麼時候不能再註冊新機器。 這兩個日期通常不一樣——先擋新註冊、再擋執行是常見做法,所以兩個都要看。
可用範圍:repository、organization、enterprise 三個層級都能查。
怎麼用它才有價值:不要人工去點。真正的用法是把它排成一個每週跑一次的排程 workflow,抓出自架 runner 的版本,去查淘汰日期,快到期就開 issue 或發通知。這樣升級變成有計畫的維護,而不是某天早上的救火。
特別提醒自架 runner 的人:雲端 runner GitHub 會自動更新,自架的不會。這個 API 對你們最有用。
更新二:GITHUB_TOKEN 多了 vulnerability-alerts 權限
問題是什麼:以前 workflow 想讀 Dependabot 的弱點警示,因為沒有對應的細分權限,只能給一個範圍更大的授權——等於為了讀一件事,順便給了讀一堆事的權力。這在資安審查時很難解釋。
現在:GITHUB_TOKEN 新增 vulnerability-alerts 權限,提供 Dependabot 警示的唯讀存取,支援 read 與 none 兩種值。官方明說這是為了遵循最小權限原則。
怎麼用:在 workflow 或 job 層級這樣寫:
permissions:
contents: read
vulnerability-alerts: read
建議做法:如果你的 repo 有「檢查弱點警示並產出報告」這類 workflow,去把它現在用的那組較大權限換成這一項。順手把其他不需要的權限設成 none——permissions 一旦明寫,沒列到的就不會給,這是最省事的收斂方式。
更新三:可重用 workflow 現在知道「自己是被誰叫的」
問題是什麼:可重用 workflow(reusable workflow)被別的 repo 呼叫時,裡面很難分辨「我現在是被直接執行,還是被當成元件呼叫」,也不容易知道呼叫來源是哪個檔案、哪個版本。這在稽核與除錯時很麻煩。
現在多了四個 job context 屬性:
| 屬性 | 內容 |
|---|---|
job.workflow_ref | 實際執行的 workflow 檔案參照 |
job.workflow_sha | 該 workflow 檔案的 commit SHA |
job.workflow_repository | 所屬的 owner/repo |
job.workflow_file_path | 在該 repo 內的相對路徑 |
可以拿來做什麼:
- 稽核紀錄:把這四個值輸出到 log 或成品檔,之後追「這個 artifact 到底是哪份 workflow、哪個版本產出的」就有據可查。
- 行為分岔:讓 workflow 在「被直接執行」與「被當可重用元件呼叫」時走不同分支,例如只有前者才真的部署。
- 供應鏈驗證:搭配前面提到的 npm trusted publishing,這類「我是誰、我從哪來」的資訊正是驗證發布來源的基礎。
限制:官方註明這些屬性在 GitHub Enterprise Server 上沒有。自架 GHES 的團隊寫了會拿到空值,別把流程綁死在它上面。
三件一起看:GitHub 在推同一件事
這三項看起來零散,但方向一致:讓自動化流程「可預測、可稽核、權限最小」。
- runner 淘汰 API=可預測(不要再被突襲)
- vulnerability-alerts 權限=權限最小(不要為了一件事拿一串鑰匙)
- workflow context 屬性=可稽核(每個產出都能追到來源)
如果你手上有一套跑了兩年沒動過的 CI,這三項剛好可以當成一次體檢的清單:排一個查 runner 淘汰的排程、把 permissions 明寫一次、在關鍵 workflow 裡把來源資訊記到 log。 三件事加起來大概半天,換掉的是未來某個早上的救火。
本文事實依據為 GitHub 官方 Changelog(2026-09-03),查核日 2026-09-07;語法細節請以 GitHub 官方文件為準。開發工具方案整理見我們的 GitHub Copilot 工具頁。相關的供應鏈安全變更見 npm 開放一個套件多組信任發布設定。
阿莫和皮米怎麼看
學生:認證後 Pro 免費,沒理由不用。一般開發者:免費版 2,000 次補全先上手,每天寫就升 Pro US$10/月。但免費和學生方案只能 Auto 選模是事實,介意就付費。

