Sha256: 689377ad165dfb7570170524a591fbb97f4e0f0f565bc39af5688f355f1dffab

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

# frozen_string_literal: true

# Third party services connected to a project.
# @see https://docs.gitlab.com/ce/api/services.html
module Services
  # Create/Edit service
  # Full service params documentation: https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/services.md
  #
  # @example
  #   Gitlab.change_service(42, :redmine, { new_issue_url: 'https://example.com/projects/test_project/issues/new',
  #                                         project_url: 'https://example.com/projects/test_project/issues',
  #                                         issues_url: 'https://example.com/issues/:id' })
  #
  # @param  [Integer, String] project The ID or name of a project.
  # @param  [String] service A service code name.
  # @param  [Hash] params A service parameters.
  # @return [Boolean]
  def change_service(project, service, params)
    put("/projects/#{url_encode project}/services/#{correct_service_name(service)}", body: params)
  end

  # Delete service
  #
  # @example
  #   Gitlab.delete_service(42, :redmine)
  #
  # @param  [Integer, String] project The ID or name of a project.
  # @param  [String] service A service code name.
  # @return [Boolean]
  def delete_service(project, service)
    delete("/projects/#{url_encode project}/services/#{correct_service_name(service)}")
  end

  # Get service
  #
  # @example
  #   Gitlab.service(42, :redmine)
  #
  # @param  [Integer, String] project The ID or name of a project.
  # @param  [String] service A service code name.
  # @return [Gitlab::ObjectifiedHash]
  def service(project, service)
    get("/projects/#{url_encode project}/services/#{correct_service_name(service)}")
  end

  private

  def correct_service_name(service)
    service.to_s.tr('_', '-')
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gitlab-4.6.0 lib/gitlab/client/services.rb