Sha256: bcd9b501522dd3ff9050cc38212b5ebe152f2dbb6a46a4254f4282d1d32a3e91

Contents?: true

Size: 1.28 KB

Versions: 13

Compression:

Stored size: 1.28 KB

Contents

require 'rest_client'

module Lita
  module GithubPrList
    class GitlabMergeRequests
      attr_accessor :raw_response, :redis

      def initialize(args = {})
        self.redis = args.fetch(:redis, nil)
      end

      # Gitlab merge events don't always trigger the web hook. This will remove merged MRs from redis
      def rectify
        if local_merge_requests?
          closed_merge_requests.each do |closed_merge_request|
            Lita::GithubPrList::MergeRequest.new({ id: closed_merge_request.id, state: 'not_open', redis: redis }).handle
          end
        end
      end

    private

      def gitlab_data
        self.raw_response = RestClient::Request.execute(
          method: :get,
          url: "#{Lita.config.handlers.github_pr_list.gitlab_project_endpoint}/merge_requests",
          headers: {
            accept: 'application/xml',
            content_type: 'application/xml',
            'PRIVATE-TOKEN' => Lita.config.handlers.github_pr_list.gitlab_api_key
          },
          verify_ssl: OpenSSL::SSL::VERIFY_NONE
        )
      end

      def closed_merge_requests
        Builders::MergeRequestBuilder.new(merge_request_data: JSON.parse(gitlab_data)).closed
      end

      def local_merge_requests?
        redis.keys("gitlab_mr*").any?
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
lita-github_pr_list-0.3.2 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.3.1 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.3.0 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.2.2 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.2.1 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.2.0 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.1.3 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.1.2 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.1.1 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.1.0 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.0.21 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.0.20 lib/lita/github_pr_list/gitlab_merge_requests.rb
lita-github_pr_list-0.0.19 lib/lita/github_pr_list/gitlab_merge_requests.rb