diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-19 09:06:27 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-19 09:06:27 +0000 |
commit | b3e0658cb1fbc7c8e7dd381467c656f2e675ee46 (patch) | |
tree | 56f0231bca8a7f45bcd88da2b716e6b672e6f602 /qa/qa/resource/repository | |
parent | 82a534c245f830d7692d03c557075f211bec6e75 (diff) | |
download | gitlab-ce-b3e0658cb1fbc7c8e7dd381467c656f2e675ee46.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa/qa/resource/repository')
-rw-r--r-- | qa/qa/resource/repository/push.rb | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/qa/qa/resource/repository/push.rb b/qa/qa/resource/repository/push.rb index a5827fb6e73..68674248be2 100644 --- a/qa/qa/resource/repository/push.rb +++ b/qa/qa/resource/repository/push.rb @@ -8,9 +8,9 @@ module QA class Push < Base attr_accessor :file_name, :file_content, :commit_message, :branch_name, :new_branch, :output, :repository_http_uri, - :repository_ssh_uri, :ssh_key, :user, :use_lfs + :repository_ssh_uri, :ssh_key, :user, :use_lfs, :tag_name - attr_writer :remote_branch + attr_writer :remote_branch, :gpg_key_id def initialize @file_name = 'file.txt' @@ -21,6 +21,8 @@ module QA @repository_http_uri = "" @ssh_key = nil @use_lfs = false + @tag_name = nil + @gpg_key_id = nil end def remote_branch @@ -67,29 +69,43 @@ module QA email = user.email end + unless @gpg_key_id.nil? + repository.gpg_key_id = @gpg_key_id + end + @output += repository.clone repository.configure_identity(username, email) @output += repository.checkout(branch_name, new_branch: new_branch) - if @directory - @directory.each_child do |f| - @output += repository.add_file(f.basename, f.read) if f.file? - end - elsif @files - @files.each do |f| - repository.add_file(f[:name], f[:content]) - end + if @tag_name + @output += repository.delete_tag(@tag_name) else - @output += repository.add_file(file_name, file_content) - end + if @directory + @directory.each_child do |f| + @output += repository.add_file(f.basename, f.read) if f.file? + end + elsif @files + @files.each do |f| + repository.add_file(f[:name], f[:content]) + end + else + @output += repository.add_file(file_name, file_content) + end - @output += repository.commit(commit_message) - @output += repository.push_changes("#{branch_name}:#{remote_branch}") + @output += commit_to repository + @output += repository.push_changes("#{branch_name}:#{remote_branch}") + end repository.delete_ssh_key end end + + private + + def commit_to(repository) + @gpg_key_id.nil? ? repository.commit(@commit_message) : repository.commit_with_gpg(@commit_message) + end end end end |