Slack 的 GitHub 整合使您和您的團隊可以在 Slack 頻道中全面了解 GitHub 項目,您可以在其中產生想法、分類問題並與其他團隊合作以推動專案向前發展。此整合是一個開源項目,由 GitHub 建置和維護。
此應用程式正式支援 GitHub.com(其中包括我們的 GitHub Enterprise 雲端託管產品)和 Slack.com。
GHES 與 Slack.com 的整合現已在 GHES 3.8 中正式發布。可在此處找到將 Slack 與 GHES 整合的詳細步驟。
安裝 Slack 的 GitHub 整合。登入 Slack 工作區後,系統將提示您授予應用程式存取權限:
安裝應用程式後,並且使用/invite @github
將 GitHub 整合添加到相關管道後,您將看到 GitHub 問題、拉取請求的連結預覽,以及在工作區中呈現為富文本的程式碼。
安裝應用程式後,您現在可以作為個人應用程式與 GitHub 應用程式互動或從通道存取。在工作區中安裝應用程式後,GitHub 應用程式就會在所有公共管道中啟用。對於私人頻道,您需要明確邀請/invite @github
此時,您的 Slack 和 GitHub 用戶帳戶現已連結。系統將提示您連接到 GitHub。這是存取該應用程式所需的主要步驟。或者,我們也可以透過運行/github signin
進行連線。
連接後,您將看到後續步驟和可用的功能清單。
/github
斜線指令也接受subscribe
參數,您可以使用該參數訂閱組織或儲存庫的活動/github subscribe <organization>/<repository>
。
如果您最初授予應用程式對「所有儲存庫」的存取權限,並且在安裝 Slack 的 GitHub 整合後在 GitHub 上建立了一個新的私人儲存庫,則/github subscribe
命令將自動在您的新儲存庫上運行。如果您在儲存庫的子集上安裝了該應用程序,該應用程式將提示您將其安裝在新儲存庫上。
/github
斜線指令也支援unsubscribe
。若要取消訂閱儲存庫的通知,請使用/github unsubscribe <organization>/<repository>
透過授予應用程式存取權限,您將向您的 GitHub 和 Slack 帳戶提供以下授權:
權限範圍 | 為什麼我們需要它 |
---|---|
存取您和應用程式之間的私人對話 | 向您發送訊息並提供說明。 |
查看訊息中 GitHub.com 的鏈接 | 呈現來自github.com 的豐富鏈接 |
將 GitHub.com 的連結預覽新增至訊息中 | 呈現到github.com 豐富鏈接 |
添加斜杠命令 | 將/github 斜線指令新增至 Slack 工作區 |
查看工作區或組織的名稱、電子郵件網域和圖標 | 儲存您設定的訂閱 |
作為應用程式發布消息 | 通知您在 GitHub、Slack 中發生的活動 |
權限範圍 | 為什麼我們需要它 |
---|---|
讀取程式碼存取權限 | 在 Slack 中呈現程式碼片段 |
對操作、提交狀態、檢查、討論、問題、元資料、拉取請求和儲存庫專案的讀取存取權限 | 呈現 Slack 中共享連結的預覽 |
對操作、問題、部署和拉取請求的寫入權限 | 使用/github 命令並直接從訊息中從 Slack 採取操作 |
在儲存庫上,應用程式會通知您訂閱的儲存庫中有關拉取請求和問題的open
、 close
和re-open
事件。它還會通知任何直接push
送到儲存庫的預設分支的情況。
您可以透過訂閱與您的 Slack 頻道相關的活動以及取消訂閱對您的專案幫助不大的活動來自訂通知。
使用/github
斜線命令配置設定:
/github subscribe owner/repo [feature]
/github unsubscribe owner/repo [feature]
這些預設處於啟用狀態,可以使用/github unsubscribe owner/repo [feature]
命令停用:
issues
- 開啟或關閉的問題pulls
- 新的或合併的拉取請求,以及標記為「準備審查」的草稿拉取請求commits
- 預設分支上的新提交(通常是main
)releases
- 已發布的版本deployments
- 部署狀態更新。這些預設處於停用狀態,可以使用/github subscribe owner/repo [feature]
指令啟用:
workflows
- 操作工作流程運作通知reviews
- 拉取請求評論comments
- 對問題和拉取請求的新評論branches
- 建立或刪除的分支commits:*
- 所有提交推送到任何分支+label:"your label"
- 根據標籤過濾問題、拉取請求和評論。discussions
- 創建或回答的討論您可以一次訂閱或取消訂閱多個設定。例如,要開啟拉取請求審查和評論的活動:
/github subscribe owner/repo reviews comments
並將其重新關閉:
/github unsubscribe owner/repo reviews comments
分支過濾器允許過濾提交通知。預設情況下,當您訂閱提交功能時,您將收到預設分支(即主分支)的通知。但是,您可以選擇對特定分支、分支模式或所有分支進行篩選。
/github subscribe org/repo commits
以獲取來自預設分支的提交通知。/github subscribe org/repo commits:*
用於所有分支的提交通知。/github subscribe org/repo commits:myBranch
來自特定分支的提交通知。/github subscribe org/repo commits:users/*
用於來自分支模式的提交通知。您可以使用「@github unsubscribe org/repo commits」取消訂閱提交功能。
注意:以前,您可能會使用commits:all
來表示所有分支。 “all”不再是保留關鍵字。展望未來,您需要使用“*”來表示所有分支。如果您之前已經配置了“commits:all”,請不要擔心,它將繼續工作,直到您更新提交配置。
標籤過濾器允許根據允許的所需標籤清單過濾傳入事件。
這是受必需標籤過濾器影響的事件類型的概述。
事件 | 已過濾 |
---|---|
拉 | ✅ 是的 |
評論(PR 和問題) | ✅ 是的 |
問題 | ✅ 是的 |
審查 | ✅ 是的 |
提交/推送 | 不 |
分支 | 不 |
使用以下命令建立過濾器:
/github subscribe owner/repo +label:"priority:HIGH"
這將建立一個值為priority:HIGH
的必要標籤過濾器。支援過濾器的傳入事件將被丟棄,除非它們具有該標籤。
要更新現有過濾器,只需輸入新過濾器,舊過濾器將被更新。目前,我們僅支援擁有一個過濾器。將來可能會支援多個過濾器。
/github subscribe owner/repo +label:"teams/designers"
現在現有的濾鏡priority:HIGH
已被teams/designers
取代。
可透過取消unsubscribe
刪除過濾器
/github unsubscribe owner/repo +label:teams/designers
這會刪除teams/designers
過濾器。
若要查看目前活動的過濾器,請使用
/github subscribe list features
標籤中包含某些特殊字元是很常見的。因此,我們為標籤過濾器添加了對最常見特殊字元的支援。這裡有幾個例子:
label:"priority:HIGH"
label:"teams/designers"
label:"DO NOT MERGE"
label:"very important"
label:":construction: WIP"
大多數標籤都可以無縫工作,這包括 slack 和 github 開箱即用提供的所有表情符號。但是,在以下罕見情況下,您可能會遇到困難:
:foo:
多位元組字符,
被保留您可以使用「工作流程」功能從您的頻道或個人應用程式訂閱 GitHub Actions 工作流程執行通知。
獲取有關每個工作流程運行通知的通知可能會很吵。因此,我們為您提供根據您的要求過濾通知的功能。您可以根據名稱、事件、參與者和/或分支過濾操作工作流程通知。您可以如下篩選通知。
/github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"actor name"}
您可以將每個事件的多個條目作為逗號分隔清單傳遞,如下例所示: /github subscribe org/repo workflows:{event:"pull_request","push" branch:"main","dev" actor:"ashokirla"}
預設情況下,當您配置工作流程通知而不傳遞任何篩選器時,它會配置為透過針對預設分支的拉取請求觸發的工作流程。您可以傳遞一項或多項條目。
您只需執行以下命令即可取消訂閱工作流程通知: /github unsubscribe org/repo workflows
若要接收上述通知,您需要授予透過 Slack 中的 GitHub 應用程式接收操作事件的存取權限。當您第一次嘗試為您的組織訂閱workflows
功能時,系統會提示您這樣做。
我們支援為您的部署提供單獨的通知。這些部署可以透過操作進行,也可以使用部署 API 從外部來源進行。
您可以透過執行以下命令來啟用/停用此功能:
/github subscribe/unsubscribe org/repo deployments
注意:如果您使用 GitHub 操作並希望追蹤環境部署,我們建議您使用新的workflows
功能,因為它顯示完整情況並讓您能夠就地批准部署。
當您訂閱 Slack 中的儲存庫時,您現在會在被推薦並需要您關注的通知中看到自己。
當您收到有關問題、PR 和部署的通知時,在以下情況下將會提及您。
最棒的是 - 您現在可以看到 GitHub 通知的摘要,其中您作為 Slack 中「提及和反應」部分的一部分被提及。
只有當您在 Slack 工作區中登入 GitHub 應用程式(使用/github signin
斜線命令)時,提及才會起作用。當您使用 GitHub ID 登入 GitHub 應用程式時,我們會將其與您的 Slack ID 進行映射,並在任何 GitHub 通知中提及您時在 Slack 中對您進行 ping 操作。
注意:如果您有多個使用 GitHub 應用程式的 Slack 工作區,請提及僅在您最近登入 GitHub 應用程式的工作區中有效。
任何問題和 PR 的通知都分組在家長卡下回應。父卡始終顯示問題/PR 的最新狀態以及其他元數據,如標題、描述、受讓人、審查者、標籤和支票。執行緒提供上下文並有助於改善管道中的協作。
這將減少通道中的噪音。我們的提及功能可確保只有參與對話線程的人員才會收到通知。只有父卡會發佈到頻道,其餘通知將作為回應添加到線程中。但是,諸如關閉/重新開啟問題之類的狀態變更活動會作為回應新增至執行緒中,並且也會發佈到頻道中,因為該群組可能對此感興趣。
如果您訂閱了評論和評論通知,並且您還希望頻道成員看到它們,而不僅僅是問題參與者,您可以透過運行來選擇加入
/github subscribe org/repo comments:"channel"
和
/github subscribe org/repo reviews:"channel"
注意:預設情況下,評論和評論只會顯示在線程中。並且您需要明確運行上述命令以確保評論也開始流入頻道。
如果您是評論中提到的問題/問題的參與者或新增為受託人/審查者,我們的提及功能可確保您在 Slack 的線程部分中收到通知。您無需前往需要您關注的問題/PR 的頻道。您可以專注於需要您的地方,我們的線程功能可確保您獲得全面的了解,並可以直接從那裡採取行動。這是一個非常強大的功能,可確保您不會錯過任何需要您注意的問題/問題。
但是,如果您絕對認為不需要在線程中查看問題/PR 更新並認為這是噪音,我們可以建議一個快速解決方法,以便不再對您的線程進行 ping 或條目。我們的 GitHub 應用程式僅在您最近登入 GitHub 的 Slack 工作區中提及您。您可以前往最少使用的 Slack 工作區或個人 Slack 工作區,並從那裡使用我們的 GitHub 應用程式登入 GitHub。然後,您將不會被 ping 到或看到其他主工作區中執行緒的更新。
如果您不需要線程功能或尚未準備好適應新模型,我們希望為您提供靈活性。您可以在頻道中停用/啟用問題和拉取請求通知的執行緒。您可以進入不需要執行緒的通道並執行以下命令。 /github settings
您將看到一個禁用/啟用該通道線程的選項。屬於該頻道的任何成員都可以執行此操作。
Slack 對話通常會帶來決策和可行的結論。現在,可以更輕鬆地從 Slack 開始後續步驟。
您不再需要切換或重新導向到 GitHub 來對問題執行任何操作。您可以真正從您的協作位置(即 Slack)建立和管理問題。
現在,您只需在協作的地方單擊即可建立問題。在任何頻道/個人應用程式/群組或直接聊天中,您現在可以點擊訊息右上角的三個點 (...),然後從清單中選擇「建立問題 GitHub」。這將啟動建立問題對話。
或者,您可以透過其他兩種方式從 Slack 建立問題。
/github open
來啟動建立問題流程。 注意:您需要登入並擁有對儲存庫的必要存取權限才能執行任何操作。
您也可以直接從聊天中管理問題的生命週期。當您訂閱儲存庫並收到問題通知或從 Slack 建立新問題時,您現在將看到一張問題卡,其中包含號召性用語按鈕評論、編輯、關閉/重新開啟。您可以直接從聊天中執行這些操作。
注意:當您從 Slack 對問題卡執行操作時,即使您沒有透過訂閱訂閱該活動,回應也會新增為對執行緒的回應。但是,如果您訂閱,您還將收到 Slack 之外發生的活動的通知。
當使用者發布指向問題和拉取請求、直接連結的評論、帶有行號的程式碼blob以及 Slack 中的組織、儲存庫和使用者的GitHub 連結時,將顯示該連結的預覽。
如果出現以下情況,將不會顯示連結預覽:
github.com
的連結預覽/invite @github
進行修復預定提醒用於確保使用者專注於需要他們注意的最重要的審閱請求。拉取請求的計畫提醒將在 Slack 中向您發送訊息,其中包含需要您在指定時間審核的未決拉取請求。例如,您可以設定計劃提醒,以便每天早上 10 點在 Slack 中向您發送訊息,其中包含需要由您或您的團隊之一審核的拉取請求。
您可以為您、您的團隊和您的組織配置計劃提醒(個人提醒)。
個人計劃提醒配置為 Slack 中 GitHub 個人應用程式的一部分。您可以為您所屬組織中的拉取請求的個人或團隊層級審核請求設定計畫提醒。作為個人提醒的一部分,您還可以為拉取請求配置即時警報。您可以在這裡找到更多詳細資訊。
您可以為待處理的拉取請求配置計劃提醒,作為 Slack 頻道的一部分,以便您的團隊可以掌控您的工作。對於給定的 Slack 頻道,您可以為您的組織或團隊配置計劃提醒。有關配置計劃提醒的更多詳細信息,您應該訪問組織級別提醒和團隊級別提醒。
如果您使用 Slack Enterprise Grid,且組織中有多個需要使用 GitHub 的 Slack 工作區,則可以在 Slack Enterprise Grid 上安裝和管理 GitHub 應用程式。 Slack Enterprise 網格中的組織擁有者和組織管理員可以:
管理來自工作區成員的 GitHub 應用程式安裝請求。
預設情況下,讓 GitHub 應用程式在所有未來工作區中可用。
只有企業網格組織管理員和組織擁有者才能在網格層級安裝和管理 GitHub 應用程式。
您可以透過點擊這裡並選擇要安裝的企業網格組織來在組織層級安裝 GitHub 應用程式。
我們宣布 GHES 3.8 與 Slack 的 GHES 整合正式發布。
透過此集成,您現在可以訂閱 GHES 實例中的儲存庫,並取得有關 Slack 中的問題、PR、提交和部署的即時更新。您還可以直接從 Slack 執行評論、開啟/關閉問題以及批准部署等操作。
從 GHES 3.8 開始,我們將提供與您的 GHES 伺服器捆綁在一起的專用 ChatOps 服務。您可以選擇與 Slack 工作區整合。透過我們的 GHES 集成,您將擁有
完全安全且可擴展的體驗:您的所有訂閱資訊和任何其他元資料都保留在您的 GHES 設定中。因此,您不必擔心資料流向任何外部服務。
GHES 和 Slack 之間的雙向連線:我們的 GHES 整合不僅僅是通知服務。它還將使您能夠直接從聊天中執行操作。因此,這是確保您的 GHES 實例可從 Slack 存取的唯一先決條件。啟用 Socket 模式後,僅需要從 Slack 進行入站存取。
您在應用程式商店中看到的現有 GitHub 應用程式只能用於 GHEC(託管 GitHub)整合。要將 GHES 實例與 Slack 集成,您需要設定私有 GHES 應用程式。以下是與 GHES 整合的步驟。
<instancename>/_slack/
或slack.<instancename>
以在工作區上安裝應用程式。目前不支援代理。
如果您有任何問題或疑慮,請透過在此記錄問題來與我們聯繫。或者請填寫 GitHub 的支援表格,您的請求將發送至 GitHub 的正確團隊。
該存儲庫不接受任何程式碼貢獻。目前為 GitHub 運行的程式碼和 Slack 整合的程式碼與此儲存庫中存在的程式碼有很大差異,因為它包含在 GitHub 基礎設施中運行服務所需的特定程式碼,並且目前無法開源。我們將繼續使用此儲存庫中的問題來獲取客戶的回饋。 |
此專案可根據 MIT 授權條款作為開源專案使用。
使用 GitHub 標誌時,請務必遵循 GitHub 標誌指南。