module Gitlab::Client::Jobs
Defines methods related to projects. @see docs.gitlab.com/ee/api/jobs.html
Public Instance Methods
Download a single artifact file from specific tag or branch
@example
Gitlab.download_branch_artifact_file(1, "master", "some/release/file.pdf", 'pdf')
@param [Integer, String] project_id(required) The ID or name of a project. @param [String] ref_name(required) Branch or tag name in repository. HEAD or SHA references are not supported. @param [String] artifact_path(required) Path to a file inside the artifacts archive. @param [String] job(required) The name of the job. @return [Gitlab::FileResponse]
# File lib/gitlab/client/jobs.rb, line 138 def download_branch_artifact_file(project_id, ref_name, artifact_path, job) get("/projects/#{url_encode project_id}/jobs/artifacts/#{ref_name}/raw/#{artifact_path}", query: { job: job }, format: nil, headers: { Accept: 'application/octet-stream' }, parser: proc { |body, _| if body.encoding == Encoding::ASCII_8BIT # binary response ::Gitlab::FileResponse.new StringIO.new(body, 'rb+') else # error with json response ::Gitlab::Request.parse(body) end }) end
Download a single artifact file by job ID
@example
Gitlab.download_job_artifact_file(1, 5, "some/release/file.pdf")
@param [Integer, String] project_id(required) The ID or name of a project. @param [String] job_id(required) The unique job identifier. @param [String] artifact_path(required) Path to a file inside the artifacts archive. @return [Gitlab::FileResponse]
# File lib/gitlab/client/jobs.rb, line 115 def download_job_artifact_file(project_id, job_id, artifact_path) get("/projects/#{url_encode project_id}/jobs/#{job_id}/artifacts/#{artifact_path}", format: nil, headers: { Accept: 'application/octet-stream' }, parser: proc { |body, _| if body.encoding == Encoding::ASCII_8BIT # binary response ::Gitlab::FileResponse.new StringIO.new(body, 'rb+') else # error with json response ::Gitlab::Request.parse(body) end }) end
Gets a single job
@example
Gitlab.job(1, 2) Gitlab.job("project", 2)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job
# File lib/gitlab/client/jobs.rb, line 62 def job(project_id, job_id) get("/projects/#{url_encode project_id}/jobs/#{job_id}") end
Gets artifacts from a job
@example
Gitlab.job_artifacts(1, 2) Gitlab.job_artifacts("project", 2)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 75 def job_artifacts(project_id, job_id) get("/projects/#{url_encode project_id}/jobs/#{job_id}/artifacts", format: nil, headers: { Accept: 'text/plain' }, parser: ::Gitlab::Request::Parser) end
Delete Artifacts Deletes the artifacts associated with a job.
@example
Gitlab.job_artifacts_delete(1,1) Gitlab.job_artifacts_delete("project", 1)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 246 def job_artifacts_delete(project_id, job_id) delete("/projects/#{url_encode project_id}/jobs/#{job_id}/artifacts") end
Download Job Artifact
@example
Gitlab.job_artifacts_download(1, "master", "release") Gitlab.job_artifacts_download("project", "master", "release")
@param [Integer, String] project_id The ID or name of a project. @param [String] ref Ref Name @param [String] job jobname @return [Gitlab::FileResponse]
# File lib/gitlab/client/jobs.rb, line 92 def job_artifacts_download(project_id, ref_name, job_name) get("/projects/#{url_encode project_id}/jobs/artifacts/#{ref_name}/download", query: { job: job_name }, format: nil, headers: { Accept: 'application/octet-stream' }, parser: proc { |body, _| if body.encoding == Encoding::ASCII_8BIT # binary response ::Gitlab::FileResponse.new StringIO.new(body, 'rb+') else # error with json response ::Gitlab::Request.parse(body) end }) end
Keep Artifacts Prevents artifacts from being deleted when expiration is set.
@example
Gitlab.job_artifacts_keep(1,1) Gitlab.job_artifacts_keep("project", 1)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 232 def job_artifacts_keep(project_id, job_id) post("/projects/#{url_encode project_id}/jobs/#{job_id}/artifacts/keep") end
Cancel a job
@example
Gitlab.job_cancel(1,1) Gitlab.job_cancel("project", 1)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 178 def job_cancel(project_id, job_id) post("/projects/#{url_encode project_id}/jobs/#{job_id}/cancel") end
Erase Job
@example
Gitlab.job_erase(1,1) Gitlab.job_erase("project", 1)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 204 def job_erase(project_id, job_id) post("/projects/#{url_encode project_id}/jobs/#{job_id}/erase") end
Play a Job Triggers a manual action to start a job.
@example
Gitlab.job_play(1,1) Gitlab.job_play("project", 1)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 218 def job_play(project_id, job_id) post("/projects/#{url_encode project_id}/jobs/#{job_id}/play") end
Retry a job
@example
Gitlab.job_retry(1,1) Gitlab.job_retry("project", 1)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 191 def job_retry(project_id, job_id) post("/projects/#{url_encode project_id}/jobs/#{job_id}/retry") end
Get Job Trace
@example
Gitlab.job_trace(1,1) Gitlab.job_trace("project", 1)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the job @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 162 def job_trace(project_id, job_id) get("/projects/#{url_encode project_id}/jobs/#{job_id}/trace", format: nil, headers: { Accept: 'text/plain' }, parser: ::Gitlab::Request::Parser) end
Gets a list of Jobs
for a Project
@example
Gitlab.jobs(1) Gitlab.jobs("project") Gitlab.jobs("project", {scope: ["manual", "success"], per_page: 100 })
@param [Integer, String] id The ID or name of a project. @param [Hash] options A customizable set of options. @option options [Array] :scope The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided. @option options [Integer] :page The page number. @option options [Integer] :per_page The number of results per page. @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 20 def jobs(project_id, options = {}) get("/projects/#{url_encode project_id}/jobs", query: options) end
Gets a list of Bridge Jobs
from a pipeline
@example
Gitlab.pipeline_bridges(1, 2) Gitlab.pipeline_bridges("project", 2)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the pipeline @param [Hash] options A customizable set of options. @option options [Array] :scope The scope of bridge jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all bridge jobs if none provided. @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 50 def pipeline_bridges(project_id, pipeline_id, options = {}) get("/projects/#{url_encode project_id}/pipelines/#{pipeline_id}/bridges", query: options) end
Gets a list of Jobs
from a pipeline
@example
Gitlab.pipeline_jobs(1, 2) Gitlab.pipeline_jobs("project", 2)
@param [Integer, String] The ID or name of a project. @param [Integer] the id of the pipeline @param [Hash] options A customizable set of options. @option options [Array] :scope The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped, manual; showing all jobs if none provided. @return [Array<Gitlab::ObjectifiedHash>]
# File lib/gitlab/client/jobs.rb, line 35 def pipeline_jobs(project_id, pipeline_id, options = {}) get("/projects/#{url_encode project_id}/pipelines/#{pipeline_id}/jobs", query: options) end