allow all git-upload-* commands for deploy keys
This commit is contained in:
parent
79bea31205
commit
5e35f21605
|
@ -26,7 +26,7 @@ module API
|
|||
|
||||
|
||||
if key.is_a? DeployKey
|
||||
key.projects.include?(project) && git_cmd == 'git-upload-pack'
|
||||
key.projects.include?(project) && git_cmd.starts_with?('git-upload-')
|
||||
else
|
||||
user = key.user
|
||||
|
||||
|
|
|
@ -100,6 +100,32 @@ describe API::API do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "deploy key" do
|
||||
let(:key) { create(:deploy_key) }
|
||||
|
||||
context "added to project" do
|
||||
before do
|
||||
key.projects << project
|
||||
end
|
||||
|
||||
it do
|
||||
archive(key, project)
|
||||
|
||||
response.status.should == 200
|
||||
response.body.should == 'true'
|
||||
end
|
||||
end
|
||||
|
||||
context "not added to project" do
|
||||
it do
|
||||
archive(key, project)
|
||||
|
||||
response.status.should == 200
|
||||
response.body.should == 'false'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def pull(key, project)
|
||||
|
@ -121,4 +147,14 @@ describe API::API do
|
|||
action: 'git-receive-pack'
|
||||
)
|
||||
end
|
||||
|
||||
def archive(key, project)
|
||||
get(
|
||||
api("/internal/allowed"),
|
||||
ref: 'master',
|
||||
key_id: key.id,
|
||||
project: project.path_with_namespace,
|
||||
action: 'git-upload-archive'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue