mirror of
https://gitea.com/gitea/docs.git
synced 2026-11-08 11:00:34 +00:00
docs(projects): document workflow permissions and sync with the implementation
The "Issues/PRs opened" event was folded into "Added to project", pull requests can only be closed by workflows, closed projects don't run workflows, and actions run in a fixed order. The new Permissions section defines who can manage workflows and that they then act without further permission checks. Also fix the editor steps, a typo and the zh-tw page's nonexistent "New Workflow" button. Assisted-by: Claude Code:claude-opus-5-5
This commit is contained in:
3 files changed
+62
-32
No files matched your search
+21
-11
@@ -9,20 +9,20 @@ description: "以事件、篩選條件與動作組合,替儲存庫專案自動
|
||||
|
||||
專案工作流程會在儲存庫專案看板上依據議題或拉取請求觸發的事件自動執行操作。此功能完全在 Gitea 內部運行,不需要外部 Runner 或 Webhook。
|
||||
|
||||
擁有專案編輯權限的成員(儲存庫擁有者、維護者與專案管理員)可在專案介面中建立、編輯、複製、啟用或停用工作流程。
|
||||
有權管理專案工作流程的使用者可以建立、編輯、複製、啟用或停用工作流程,詳見[權限](#權限)。
|
||||
|
||||
## 開啟工作流程編輯器
|
||||
|
||||
1. 進入儲存庫並開啟想要自動化的 **Projects** 看板。
|
||||
2. 在欄位列表旁選擇 **Workflows** 分頁。
|
||||
3. 點擊 **New Workflow** 建立事件定義,或選取既有工作流程進行編輯。
|
||||
2. 在看板頂端的選單中選擇 **Workflows**。
|
||||
3. 點擊左側欄中的事件以編輯其工作流程。
|
||||
4. 選擇事件、加入篩選條件、依序配置需要的動作後儲存。
|
||||
|
||||
每個工作流程只屬於當前專案。如需在另一個專案套用相同邏輯,請在該專案重新建立或複製工作流程。
|
||||
|
||||
## 基本概念
|
||||
|
||||
- **事件(Event)**:定義何時評估工作流程,例如建立議題或卡片在欄位間移動。
|
||||
- **事件(Event)**:定義何時評估工作流程,例如議題加入專案或卡片在欄位間移動。
|
||||
- **篩選條件(Filter)**:可選條件,需符合後才會執行動作,例如標籤或欄位變化。
|
||||
- **動作(Action)**:當事件與篩選條件成立時 Gitea 要執行的操作,例如新增標籤或移動卡片。
|
||||
|
||||
@@ -30,10 +30,9 @@ description: "以事件、篩選條件與動作組合,替儲存庫專案自動
|
||||
|
||||
| 事件 | 觸發時機 |
|
||||
| --- | --- |
|
||||
| 新增議題/拉取請求 | 建立新的議題或拉取請求。 |
|
||||
| 關閉議題/拉取請求 | 該議題或拉取請求被關閉。 |
|
||||
| 重新開啟議題/拉取請求 | 已關閉的項目被重新開啟。 |
|
||||
| 加入專案 | 議題或拉取請求被加入此專案。 |
|
||||
| 加入專案 | 議題或拉取請求被加入此專案,包括在此專案中建立時。 |
|
||||
| 從專案移除 | 項目被自專案中移除。 |
|
||||
| 欄位變更 | 卡片從某欄移到另一欄。 |
|
||||
| 被要求修改 | 與專案關聯的拉取請求收到修改要求。 |
|
||||
@@ -55,12 +54,12 @@ description: "以事件、篩選條件與動作組合,替儲存庫專案自動
|
||||
|
||||
## 動作
|
||||
|
||||
動作會依新增順序逐一執行,可用的動作包含:
|
||||
工作流程會先移動卡片,再變更標籤,最後變更議題狀態。可用的動作包含:
|
||||
|
||||
- **新增標籤(Add labels)**:為議題或拉取請求加上多個標籤。
|
||||
- **移除標籤(Remove labels)**:刪除不再需要的標籤。
|
||||
- **移動到欄位(Move to column)**:把卡片移到同一專案看板中的其他欄位。
|
||||
- **議題狀態(Issue state)**:關閉或重新開啟相關議題或拉取請求。
|
||||
- **議題狀態(Issue state)**:關閉或重新開啟相關議題。拉取請求只能被關閉。
|
||||
|
||||
透過組合多個動作,可以在單一工作流程裡同時完成移動卡片與更新標籤等步驟。
|
||||
|
||||
@@ -68,23 +67,34 @@ description: "以事件、篩選條件與動作組合,替儲存庫專案自動
|
||||
|
||||
### 啟用或停用
|
||||
|
||||
每個工作流程都有獨立開關。停用後即使事件被觸發也會被忽略,適合暫停自動化又不想刪除設定時使用。
|
||||
每個工作流程都有獨立開關。停用後即使事件被觸發也會被忽略,適合暫停自動化又不想刪除設定時使用。已關閉專案的工作流程也不會執行。
|
||||
|
||||
### 複製事件工作流程
|
||||
|
||||
按下 **Clone** 可以複製目前的工作流程(事件、篩選條件與動作都會被保留)。當你需要針對相同事件建立不同變體時,複製後調整即可快速建立新流程。
|
||||
|
||||
## 權限
|
||||
|
||||
權限在管理工作流程時檢查,而非在工作流程執行時檢查。
|
||||
|
||||
- **檢視**專案的工作流程需要該專案的讀取權限。
|
||||
- **建立、編輯、啟用、停用與刪除**工作流程需要該專案的寫入權限,以及對該專案可容納之所有項目的權限:儲存庫專案需要對該儲存庫的議題與拉取請求都擁有寫入權限,組織專案需要是組織擁有者或網站管理員,使用者專案需要是該使用者本人。僅限公開儲存庫的權杖無法管理組織或使用者專案的工作流程。
|
||||
- **工作流程會在**開放專案中的項目發生對應事件時執行,前提是項目所在儲存庫未封存且屬於該專案的儲存庫或擁有者,與誰觸發了事件無關。
|
||||
- **其動作直接套用,不再進行權限檢查**,包括為拉取請求新增標籤與關閉拉取請求。工作流程不會重新開啟拉取請求。
|
||||
- 工作流程所做的變更在時間軸中顯示為由「專案工作流程」完成,並歸屬於觸發該事件的使用者,與 CODEOWNERS 發起的審查請求相同。這些變更不會觸發其他工作流程。
|
||||
- 只有能讀取項目的使用者才能將其加入專案或移動其卡片,因此工作流程不會替使用者操作其無法查看的項目。
|
||||
|
||||
## 範例:自動分流新的錯誤回報
|
||||
|
||||
以下設定能讓錯誤議題自動落在待處理區:
|
||||
|
||||
1. **事件:** Issues/PRs opened。
|
||||
1. **事件:** 加入專案(Added to project)。
|
||||
2. **篩選條件:** 僅適用 `issues only`;標籤包含 `bug`。
|
||||
3. **動作:**
|
||||
- 新增標籤 → `needs-triage`。
|
||||
- 移動到欄位 → “Needs Triage”。
|
||||
- 議題狀態 → 保持開啟(如有需要也能強制重新開啟以確保可見)。
|
||||
|
||||
設定完成後,每當有新的錯誤議題建立,就會立即獲得正確標籤並顯示在指定欄位,維護者能第一時間掌握待分流的項目。
|
||||
設定完成後,每當有新的錯誤議題加入此專案,就會立即獲得正確標籤並顯示在指定欄位,維護者能第一時間掌握待分流的項目。
|
||||
|
||||
從簡單規則著手,在單一專案驗證成效,再依團隊的重複性工作逐步擴大自動化邏輯。
|
||||
Reference in new issue
Block a user