GitHub Secret 設定與驗證步驟

智慧設備順序控制系統共用骨架文件

返回首頁

目的

本文件說明 DOCS_REPO_DISPATCH_TOKEN 的用途、建立方式、設定位置與驗證方式。

目前文件網站的「目前開發狀態」會讀取文件 repo 內的 status.json。因為程式 repo 與文件 repo 分開,且程式 repo 可能不是公開 repo,所以不能讓公開靜態網頁直接讀 GitHub API 取得最新 commit。

程式 repo push
  -> 程式 repo GitHub Actions 使用 DOCS_REPO_DISPATCH_TOKEN
  -> 通知文件 repo 觸發 repository_dispatch
  -> 文件 repo GitHub Actions 更新 status.json
  -> 文件 repo commit 新狀態
  -> Cloudflare Pages 自動重新部署
  -> 首頁顯示最新開發狀態

Secret 名稱

Secret 必須建立在程式 repo:

Hongsen-tw/hs-device-control-template

Secret 名稱固定為:

DOCS_REPO_DISPATCH_TOKEN

Token 建議權限

建議使用 GitHub Fine-grained personal access token,授權目標為:

Hongsen-tw/hs-device-control-template-docs
權限設定用途
MetadataReadGitHub API 基本 repo 讀取需求
ContentsRead and write允許文件 repo workflow 後續寫入 status.json

若 GitHub 畫面有提供 Actions 或 Workflows 相關權限,可保持最小權限原則,只開啟觸發 dispatch 所需的權限。

設定位置

進入程式 repo:

https://github.com/Hongsen-tw/hs-device-control-template
Settings
  -> Secrets and variables
  -> Actions
  -> New repository secret
欄位內容
NameDOCS_REPO_DISPATCH_TOKEN
SecretGitHub personal access token 的實際值

注意:Token 只貼到 GitHub Secret,不要寫入 repo、文件、程式碼或 commit 訊息。

驗證方式

設定完成後,做一次程式 repo push,例如在 poc/nmodbus-tcp 分支更新一個小文件或後續程式 commit。

  1. 程式 repo 的「通知文件 repo 更新開發狀態」workflow 執行成功。
  2. 文件 repo 的「同步程式 repo 開發狀態」workflow 被觸發。
  3. 文件 repo 產生新的 commit,commit 訊息為 同步程式 repo 開發狀態
  4. status.jsonpublic/status.jsonsource 變成 github-actions
  5. Cloudflare Pages 重新部署後,首頁「目前開發狀態」顯示最新 commit。

可檢查公開狀態檔:

https://hs-device-control-template-docs.pages.dev/status.json

常見問題

首頁仍顯示舊 commit

source 仍是 manual-seed

代表目前顯示的是手動建立的初始狀態,尚未完成自動同步。完成 Secret 設定並測試 push 後,成功時 source 應改為 github-actions

Token 過期或被撤銷

重新建立 token,並覆蓋程式 repo 內同名 Secret,不需要修改 workflow 檔案。

維護規則