2012-01-11 78 views
6

已經有一個類似的「用於版本控制的託管解決方案 - 具有預提交掛鉤?」關於SO的問題。但是,詢問該問題的用戶只需要客戶端掛鉤,而我正在尋找一個Git主機,該主機允許您配置服務器端掛鉤。託管Git解決方案與服務器端鉤子?

(我在尋找這個的原因是,我們可以防止開發人員在特定分支上「push -f」。客戶端鉤子是 用於解決此問題的最小程度。

那麼,誰能推薦一個允許其用戶設置服務器端掛鉤的Git主機? (如果加分點說,主機還提供了一個集成的bug跟蹤系統)。

*編輯*

這個問題已經回答了這個賞金獎勵......但如果有任何Git託管在那裏可以更容易地防止「push -f」(通過提供自己的權限級別,或者通過提供發佈pre-recieve鉤子的訪問權限,然後讓我使用已經寫好的/標準的pre-recieve腳本)我很樂意聽到他們的消息。

回答

3

在GitHub上可用掛鉤的名單是在這裏:https://github.com/ {用戶}/{資料庫} /管理/鉤

他們有一個通用的後收到鉤,但沒有一個通用的預收到

你可以在這裏編碼:https://github.com/github/github-services

+0

太棒了,這聽起來很完美......除了在你鏈接的頁面上,在「服務如何工作」下,它特別說「接收後收到的後臺作業......」,所以我不清楚我如何可以使用它來實現預接收鉤子。你能澄清一下嗎? – machineghost 2012-01-25 22:24:50

+0

是的,只有後收到。你可以做一個git回覆任何提交的協議,而不是X分支上的y分支,然後發送給他們一個討厭的分組。 – ERR0 2012-01-27 21:08:29

+0

我明白了,謝謝。還有更多的工作要比我們剛剛託管我們自己的Git(感謝沒有GitHub),但至少有一種方法。 – machineghost 2012-01-28 01:44:29

0

我想GitHub上允許服務器端掛鉤

+0

當我問GitHub的支持(約推-f限制而言,不是一般的服務器端鉤子),他們告訴我:「這是不可能的服務器端目前,但卻是我們想要做的事情。「 ...所以我認爲他們不支持他們。你究竟如何將服務器端連接到GitHub上,因爲你無法使用SSH連接到他們的服務器? – machineghost 2012-01-12 17:45:08

+0

有這樣做的幾個項目。他們正在做什麼來整合GitHub,我不確定,但會看起來。由於-f不允許,你能不能刪除分支並再次推送它? – 2012-01-12 17:51:18

+0

問題是-f *是*允許的;我們試圖阻止它(至少在主人身上)。 – machineghost 2012-01-12 18:01:15

0

只要告訴開發商沒有做到這一點,並添加一個客戶端掛鉤,作爲預防措施,如果你擔心發生意外。如果你擔心開發人員無論如何都會違反政策,肯定你會遇到比這更大的問題。而且這不像推-f會在像Git這樣的分佈式系統中具有破壞性;每個人仍將擁有覆蓋提交的本地副本。

+3

問題在於人們意外地這樣做,而不是故意的(我同意,這將是一個更大的問題!)。但是,不同的開發人員使用不同的客戶端(其中一些使用多個客戶端)。由於整個過程是消除任何強制推送的機會,有一個解決方案的工作...除了可能是一個客戶端上的一個開發人員沒有安裝鉤子...有點失敗的目的。老實說,我認爲服務器端鉤子是Git的一個基本特性;我有點震驚,沒有Git主機讓你擁有它們。 – machineghost 2012-01-25 17:21:04

+2

Git主機不想讓你在他們的機器上運行任意代碼(或者發明沙盒),我想。如果你在你自己的服務器上安裝了Gitosis(或者任何新的熱點,我只是使用Github),你可以安裝任何你想要的鉤子。 – amalloy 2012-01-25 19:32:25

+3

如果開發人員對Git新鮮,而不是內部,並且只知道通過IDE暴露的界面使用它,這可能會比您想象的更大。 _F。 M. L._ – 2012-04-22 21:59:38

4

這是一個很老的帖子,但是我想讓人們意識到Assembla現在爲Subversion和Git存儲庫提供服務器端鉤子。這些不像Github的,你必須站起來運行它們的服務。它們在git的提交鉤子(包括更新鉤子)之前和之後完全成熟。

檢查出來的Assembla