diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 12:12:47 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-20 12:12:47 +0000 |
commit | c984b0faf409dbe91a7998260fe4b8299cf21ad4 (patch) | |
tree | b1e434732c9d94ecaab0727f56a811b80a61a371 /scripts | |
parent | bd28d0fa02dc73794e013159512900f8d10fa10b (diff) | |
download | gitlab-ce-c984b0faf409dbe91a7998260fe4b8299cf21ad4.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/api/base.rb | 28 | ||||
-rwxr-xr-x | scripts/api/cancel_pipeline.rb | 14 | ||||
-rw-r--r-- | scripts/api/commit_merge_requests.rb | 19 | ||||
-rw-r--r-- | scripts/api/create_issue.rb | 24 | ||||
-rw-r--r-- | scripts/api/create_issue_discussion.rb | 24 | ||||
-rw-r--r-- | scripts/api/find_issues.rb | 24 | ||||
-rwxr-xr-x | scripts/api/get_job_id.rb | 19 | ||||
-rw-r--r-- | scripts/api/pipeline_failed_jobs.rb | 21 |
8 files changed, 50 insertions, 123 deletions
diff --git a/scripts/api/base.rb b/scripts/api/base.rb new file mode 100644 index 00000000000..4872ede253d --- /dev/null +++ b/scripts/api/base.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +require 'gitlab' +require_relative 'default_options' + +class Base + def initialize(options) + @project = options.fetch(:project) + + # If api_token is nil, it's set to '' to allow unauthenticated requests (for forks). + api_token = options.fetch(:api_token, '') + + warn "No API token given." if api_token.empty? + + @client = Gitlab.client( + endpoint: options.fetch(:endpoint, API::DEFAULT_OPTIONS[:endpoint]), + private_token: api_token + ) + end + + def execute + raise NotImplementedError + end + + private + + attr_reader :project, :client +end diff --git a/scripts/api/cancel_pipeline.rb b/scripts/api/cancel_pipeline.rb index 2667cfb9733..5069527368b 100755 --- a/scripts/api/cancel_pipeline.rb +++ b/scripts/api/cancel_pipeline.rb @@ -1,19 +1,13 @@ #!/usr/bin/env ruby # frozen_string_literal: true -require 'gitlab' require 'optparse' -require_relative 'default_options' +require_relative 'base' -class CancelPipeline +class CancelPipeline < Base def initialize(options) - @project = options.delete(:project) + super @pipeline_id = options.delete(:pipeline_id) - - @client = Gitlab.client( - endpoint: options.delete(:endpoint) || API::DEFAULT_OPTIONS[:endpoint], - private_token: options.delete(:api_token) - ) end def execute @@ -22,7 +16,7 @@ class CancelPipeline private - attr_reader :project, :pipeline_id, :client + attr_reader :pipeline_id end if $PROGRAM_NAME == __FILE__ diff --git a/scripts/api/commit_merge_requests.rb b/scripts/api/commit_merge_requests.rb index 3cf8dc87497..523d2e769f0 100644 --- a/scripts/api/commit_merge_requests.rb +++ b/scripts/api/commit_merge_requests.rb @@ -1,22 +1,11 @@ # frozen_string_literal: true -require 'gitlab' -require_relative 'default_options' +require_relative 'base' -class CommitMergeRequests +class CommitMergeRequests < Base def initialize(options) - @project = options.fetch(:project) + super @sha = options.fetch(:sha) - - # If api_token is nil, it's set to '' to allow unauthenticated requests (for forks). - api_token = options.fetch(:api_token, '') - - warn "No API token given." if api_token.empty? - - @client = Gitlab.client( - endpoint: options.fetch(:endpoint, API::DEFAULT_OPTIONS[:endpoint]), - private_token: api_token - ) end def execute @@ -25,5 +14,5 @@ class CommitMergeRequests private - attr_reader :project, :sha, :client + attr_reader :sha end diff --git a/scripts/api/create_issue.rb b/scripts/api/create_issue.rb index 2117c285771..1c385ce41f2 100644 --- a/scripts/api/create_issue.rb +++ b/scripts/api/create_issue.rb @@ -1,29 +1,9 @@ # frozen_string_literal: true -require 'gitlab' -require_relative 'default_options' - -class CreateIssue - def initialize(options) - @project = options.fetch(:project) - - # Force the token to be a string so that if api_token is nil, it's set to '', - # allowing unauthenticated requests (for forks). - api_token = options.delete(:api_token).to_s - - warn "No API token given." if api_token.empty? - - @client = Gitlab.client( - endpoint: options.delete(:endpoint) || API::DEFAULT_OPTIONS[:endpoint], - private_token: api_token - ) - end +require_relative 'base' +class CreateIssue < Base def execute(issue_data) client.create_issue(project, issue_data.delete(:title), issue_data) end - - private - - attr_reader :project, :client end diff --git a/scripts/api/create_issue_discussion.rb b/scripts/api/create_issue_discussion.rb index 74a9f3ae378..6471a5c2579 100644 --- a/scripts/api/create_issue_discussion.rb +++ b/scripts/api/create_issue_discussion.rb @@ -1,32 +1,12 @@ # frozen_string_literal: true -require 'gitlab' -require_relative 'default_options' - -class CreateIssueDiscussion - def initialize(options) - @project = options.fetch(:project) - - # Force the token to be a string so that if api_token is nil, it's set to '', - # allowing unauthenticated requests (for forks). - api_token = options.delete(:api_token).to_s - - warn "No API token given." if api_token.empty? - - @client = Gitlab.client( - endpoint: options.delete(:endpoint) || API::DEFAULT_OPTIONS[:endpoint], - private_token: api_token - ) - end +require_relative 'base' +class CreateIssueDiscussion < Base def execute(discussion_data) client.post( "/projects/#{client.url_encode project}/issues/#{discussion_data.delete(:issue_iid)}/discussions", body: discussion_data ) end - - private - - attr_reader :project, :client end diff --git a/scripts/api/find_issues.rb b/scripts/api/find_issues.rb index a1c37030319..f74f815fba9 100644 --- a/scripts/api/find_issues.rb +++ b/scripts/api/find_issues.rb @@ -1,29 +1,9 @@ # frozen_string_literal: true -require 'gitlab' -require_relative 'default_options' - -class FindIssues - def initialize(options) - @project = options.fetch(:project) - - # Force the token to be a string so that if api_token is nil, it's set to '', - # allowing unauthenticated requests (for forks). - api_token = options.delete(:api_token).to_s - - warn "No API token given." if api_token.empty? - - @client = Gitlab.client( - endpoint: options.delete(:endpoint) || API::DEFAULT_OPTIONS[:endpoint], - private_token: api_token - ) - end +require_relative 'base' +class FindIssues < Base def execute(search_data) client.issues(project, search_data) end - - private - - attr_reader :project, :client end diff --git a/scripts/api/get_job_id.rb b/scripts/api/get_job_id.rb index 12535106a4c..babe8f5dee0 100755 --- a/scripts/api/get_job_id.rb +++ b/scripts/api/get_job_id.rb @@ -1,11 +1,10 @@ #!/usr/bin/env ruby # frozen_string_literal: true -require 'gitlab' require 'optparse' -require_relative 'default_options' +require_relative 'base' -class JobFinder +class JobFinder < Base DEFAULT_OPTIONS = API::DEFAULT_OPTIONS.merge( pipeline_query: {}.freeze, job_query: {}.freeze @@ -13,22 +12,12 @@ class JobFinder MAX_PIPELINES_TO_ITERATE = 20 def initialize(options) - @project = options.delete(:project) + super @pipeline_query = options.delete(:pipeline_query) || DEFAULT_OPTIONS[:pipeline_query] @job_query = options.delete(:job_query) || DEFAULT_OPTIONS[:job_query] @pipeline_id = options.delete(:pipeline_id) @job_name = options.delete(:job_name) @artifact_path = options.delete(:artifact_path) - - # Force the token to be a string so that if api_token is nil, it's set to '', allowing unauthenticated requests (for forks). - api_token = options.delete(:api_token).to_s - - warn "No API token given." if api_token.empty? - - @client = Gitlab.client( - endpoint: options.delete(:endpoint) || DEFAULT_OPTIONS[:endpoint], - private_token: api_token - ) end def execute @@ -37,7 +26,7 @@ class JobFinder private - attr_reader :project, :pipeline_query, :job_query, :pipeline_id, :job_name, :artifact_path, :client + attr_reader :pipeline_query, :job_query, :pipeline_id, :job_name, :artifact_path def find_job_with_artifact return if artifact_path.nil? diff --git a/scripts/api/pipeline_failed_jobs.rb b/scripts/api/pipeline_failed_jobs.rb index df9a7e76dcd..9012d48994f 100644 --- a/scripts/api/pipeline_failed_jobs.rb +++ b/scripts/api/pipeline_failed_jobs.rb @@ -1,25 +1,12 @@ # frozen_string_literal: true -require 'gitlab' +require_relative 'base' -require_relative 'default_options' - -class PipelineFailedJobs +class PipelineFailedJobs < Base def initialize(options) - @project = options.delete(:project) + super @pipeline_id = options.delete(:pipeline_id) @exclude_allowed_to_fail_jobs = options.delete(:exclude_allowed_to_fail_jobs) - - # Force the token to be a string so that if api_token is nil, it's set to '', - # allowing unauthenticated requests (for forks). - api_token = options.delete(:api_token).to_s - - warn "No API token given." if api_token.empty? - - @client = Gitlab.client( - endpoint: options.delete(:endpoint) || API::DEFAULT_OPTIONS[:endpoint], - private_token: api_token - ) end def execute @@ -43,5 +30,5 @@ class PipelineFailedJobs private - attr_reader :project, :pipeline_id, :exclude_allowed_to_fail_jobs, :client + attr_reader :pipeline_id, :exclude_allowed_to_fail_jobs end |