我創建了一個簡單的項目,提交併推送了主分支,然後對其進行了保護。之後,我作爲開發人員添加了一個用戶到該項目中,並允許該用戶推送給主人。
所以admin = master,user1 = developer。Gitlab受保護的分支不保護ssh上的分支
當我修改並推送爲user1時,我被允許推送給主。這很奇怪,因爲我有一個不允許這樣的生產實例。
我使用vagrant安裝來設置開發環境。 流浪漢SSH後:
cd /vagrant/gitlabhq && git pull --ff origin master
把我在提交a8b544ed770cf172b09feb6ffee14b1814b66ad4,gitlab殼V1.5.0
cd /vagrant/gitlabhq && bundle exec foreman start -p 3000
gitlab現在啓動和運行。
我登錄的[email protected]
增加了我的「管理員」鍵
創建項目「主保護」
的外殼,我創建了回購,增加了一個文件,並提交和推送。
作爲「user1」,我添加了我的密鑰,並在shell中克隆了「master-protected」,其中user1具有開發人員角色。
當我修改並推送master時,gitlab接受推送,提交在gitlab中顯示正確。它應該否認它。事實上,當你轉到分支部分,並看到主分支被保護時,它最後的提交是隻有開發人員權限的「user1」的提交。
關於我可以進一步探索的地方,瞭解爲什麼會在開發環境中發生這種情況?標籤v5.3.0也是如此,並且我確信它在生產v5.3.0中不會發生。
這很有趣,因爲我試圖複製另一個錯誤,我認爲我發現受保護的分支沒有受到合併請求和開發人員角色的保護,但是我用此命令打了一個塊。
顯然這是一個類似的錯誤:https://github.com/gitlabhq/gitlabhq/issues/3775。該特定的錯誤在分支名稱中提到破折號是一個問題。這不是在這裏的情況,因爲我只是使用nodashes執行相同的測試,我仍然收到相同的結果。 –
我不認爲這是一個類似的bug後,逐步通過代碼。看起來,git_update.rb並不拒絕推送(它甚至沒有被調用),而在生產中它是。 –