簡體   English   中英

github是否允許預接收鈎子?

[英]Does github allow pre-receive hooks?

GitHub是否允許預接收或更新掛鈎?

我想做的是防止將主分支推送到(即主分支,修補程序,開發),並要求它們通過GitHub pull請求進行合並。 這是一個私有存儲庫,因此不能選擇GitHub風格的分叉。

關於如何完成此操作的任何建議將大有幫助。

只有您列出了“合作者”的人員才能推送到Github托管存儲庫。 請參閱存儲庫的“管理員”頁面以添加協作者。 其他所有人都需要提交“拉取請求”,以使自己的添加項被存儲庫的管理員接受。 參見Github訪問權限 (沒有每個分支的訪問權限。)因此,為了實現您的目標,不需要掛鈎。 您所需要的已經內置。

兩個注意事項:

  1. 私人Github儲存庫可以有多個貢獻者
  2. 考慮到鈎子包含任意代碼,Github不支持預接收鈎子(或任何其他服務器鈎子)是不尋常的。

盡管GitHub本身不允許預接收掛鈎,但GitHub Enterprise版本2.6確實包含預接收掛鈎支持。 關於它的更多信息可以在這里找到: https : //help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/ 這些是實例范圍內的預接收掛鈎,以防止將任何信息推送到任何存儲庫中。

我想做的是防止將主分支推送到(即主分支,修補程序,開發),並要求它們通過GitHub pull請求進行合並。

但是,到目前為止,您可以使用受保護的分支配置GitHub或GitHub Enterprise存儲庫。 這樣做是為了防止分支被刪除,強行推送,僅某些人員或團隊可以合並,或者在允許合並之前要求通過狀態檢查。 請參閱https://help.github.com/articles/about-protected-branches/了解更多信息!

如果您正在與一個值得信任的團隊合作(我想您是因為它是一個私人倉庫),而您只是想執行此操作以防止人們出於純粹的習慣而意外違反您的標准操作程序,那么最好的辦法就是分發一個自定義的pre-push鈎子腳本,每個人都可以安裝到他們的.git/hooks目錄中。 (最近我堅持要求每個人都運行git config branch.autosetuprebase always類似的事情,這會隱式地將git pull更改為git pull --rebase以消除當存在本地未推送的提交時不必要的合並)

如果由於某種原因不起作用,我發現事實發生后失去提交者權利的威脅通常是使人們保持誠實的有效機制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM