Migrate force push check to Gitaly
This commit is contained in:
parent
8d2099cd8a
commit
daa0137b41
7 changed files with 24 additions and 13 deletions
|
@ -1 +1 @@
|
|||
0.29.0
|
||||
0.30.0
|
||||
|
|
2
Gemfile
2
Gemfile
|
@ -402,7 +402,7 @@ group :ed25519 do
|
|||
end
|
||||
|
||||
# Gitaly GRPC client
|
||||
gem 'gitaly', '~> 0.26.0'
|
||||
gem 'gitaly', '~> 0.27.0'
|
||||
|
||||
gem 'toml-rb', '~> 0.3.15', require: false
|
||||
|
||||
|
|
|
@ -270,7 +270,7 @@ GEM
|
|||
po_to_json (>= 1.0.0)
|
||||
rails (>= 3.2.0)
|
||||
gherkin-ruby (0.3.2)
|
||||
gitaly (0.26.0)
|
||||
gitaly (0.27.0)
|
||||
google-protobuf (~> 3.1)
|
||||
grpc (~> 1.0)
|
||||
github-linguist (4.7.6)
|
||||
|
@ -983,7 +983,7 @@ DEPENDENCIES
|
|||
gettext (~> 3.2.2)
|
||||
gettext_i18n_rails (~> 1.8.0)
|
||||
gettext_i18n_rails_js (~> 1.2.0)
|
||||
gitaly (~> 0.26.0)
|
||||
gitaly (~> 0.27.0)
|
||||
github-linguist (~> 4.7.0)
|
||||
gitlab-flowdock-git-hook (~> 1.0.1)
|
||||
gitlab-markup (~> 1.5.1)
|
||||
|
|
|
@ -5,12 +5,19 @@ module Gitlab
|
|||
return false if project.empty_repo?
|
||||
|
||||
# Created or deleted branch
|
||||
if Gitlab::Git.blank_ref?(oldrev) || Gitlab::Git.blank_ref?(newrev)
|
||||
false
|
||||
else
|
||||
Gitlab::Git::RevList.new(
|
||||
path_to_repo: project.repository.path_to_repo,
|
||||
oldrev: oldrev, newrev: newrev).missed_ref.present?
|
||||
return false if Gitlab::Git.blank_ref?(oldrev) || Gitlab::Git.blank_ref?(newrev)
|
||||
|
||||
GitalyClient.migrate(:force_push) do |is_enabled|
|
||||
if is_enabled
|
||||
!project
|
||||
.repository
|
||||
.gitaly_commit_client
|
||||
.is_ancestor(oldrev, newrev)
|
||||
else
|
||||
Gitlab::Git::RevList.new(
|
||||
path_to_repo: project.repository.path_to_repo,
|
||||
oldrev: oldrev, newrev: newrev).missed_ref.present?
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,9 @@ module Gitlab
|
|||
def repository(repository_storage, relative_path)
|
||||
Gitaly::Repository.new(
|
||||
storage_name: repository_storage,
|
||||
relative_path: relative_path
|
||||
relative_path: relative_path,
|
||||
git_object_directory: Gitlab::Git::Env['GIT_OBJECT_DIRECTORY'].to_s,
|
||||
git_alternate_object_directories: Array.wrap(Gitlab::Git::Env['GIT_ALTERNATE_OBJECT_DIRECTORIES'])
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
describe Gitlab::Checks::ForcePush do
|
||||
let(:project) { create(:project, :repository) }
|
||||
|
||||
context "exit code checking" do
|
||||
context "exit code checking", skip_gitaly_mock: true do
|
||||
it "does not raise a runtime error if the `popen` call to git returns a zero exit code" do
|
||||
allow(Gitlab::Popen).to receive(:popen).and_return(['normal output', 0])
|
||||
|
||||
|
|
|
@ -217,7 +217,9 @@ describe Gitlab::Workhorse do
|
|||
it 'includes a Repository param' do
|
||||
repo_param = { Repository: {
|
||||
storage_name: 'default',
|
||||
relative_path: project.full_path + '.git'
|
||||
relative_path: project.full_path + '.git',
|
||||
git_object_directory: '',
|
||||
git_alternate_object_directories: []
|
||||
} }
|
||||
|
||||
expect(subject).to include(repo_param)
|
||||
|
|
Loading…
Reference in a new issue