Sha256: 1a86f62c1c8d8e650916192faa92dbde3b32fd7e85de7732bf24c26aa7347998

Contents?: true

Size: 1.82 KB

Versions: 26

Compression:

Stored size: 1.82 KB

Contents

# frozen_string_literal: true

class Gitlab::Client
  # 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
end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
gitlab-5.1.0 lib/gitlab/client/services.rb
gitlab-5.0.0 lib/gitlab/client/services.rb
gitlab-4.20.1 lib/gitlab/client/services.rb
gitlab-4.20.0 lib/gitlab/client/services.rb
fs-gitlab-4.19.3 lib/gitlab/client/services.rb
fs-gitlab-4.19.2 lib/gitlab/client/services.rb
fs-gitlab-4.19.1 lib/gitlab/client/services.rb
gitlab-4.19.0 lib/gitlab/client/services.rb
fs-gitlab-4.18.2 lib/gitlab/client/services.rb
fs-gitlab-4.18.1 lib/gitlab/client/services.rb
gitlab-4.18.0 lib/gitlab/client/services.rb
gitlab-4.17.0 lib/gitlab/client/services.rb
gitlab-4.16.1 lib/gitlab/client/services.rb
gitlab-4.16.0 lib/gitlab/client/services.rb
gitlab-4.15.0 lib/gitlab/client/services.rb
gitlab-4.14.1 lib/gitlab/client/services.rb
gitlab-4.14.0 lib/gitlab/client/services.rb
gitlab-4.13.1 lib/gitlab/client/services.rb
gitlab-4.13.0 lib/gitlab/client/services.rb
gitlab-4.12.0 lib/gitlab/client/services.rb