2013-07-10 100 views
4

我創建了一個簡單的項目,提交併推送了主分支,然後對其進行了保護。之後,我作爲開發人員添加了一個用戶到該項目中,並允許該用戶推送給主人。
所以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中不會發生。

這很有趣,因爲我試圖複製另一個錯誤,我認爲我發現受保護的分支沒有受到合併請求和開發人員角色的保護,但是我用此命令打了一個塊。

+0

顯然這是一個類似的錯誤:https://github.com/gitlabhq/gitlabhq/issues/3775。該特定的錯誤在分支名稱中提到破折號是一個問題。這不是在這裏的情況,因爲我只是使用nodashes執行相同的測試,我仍然收到相同的結果。 –

+0

我不認爲這是一個類似的bug後,逐步通過代碼。看起來,git_update.rb並不拒絕推送(它甚至沒有被調用),而在生產中它是。 –

回答

2

對不起後來碰到這幾個飛蛾,但我有同樣的問題,我設法通過檢查gitlab外殼更新掛鉤解決這個問題。

我有Gitlab版本5.1.0-4,在我的情況下,gitlab殼/鉤/更新文件應該是這樣的:

#!/usr/bin/env /opt/gitlab-5.1.0-4/ruby/bin/ruby 

# This file was placed here by GitLab. It makes sure that your pushed commits 
# will be processed properly. 

refname = ARGV[0] 
key_id = ENV['GL_ID'] 
repo_path = `pwd` 

require_relative '../lib/gitlab_update' 

GitlabUpdate.new(repo_path, key_id, refname).exec 

我希望可以幫助別人。

最好的問候。

佩德羅布魯姆