Sha256: 031973d2e7c5d387bf3d24785df0dcaa1523de465c470b29b82b3fc0f106c9f2

Contents?: true

Size: 1.85 KB

Versions: 9

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

module Shipit
  module Webhooks
    module Handlers
      module PullRequest
        class ClosedHandler < Shipit::Webhooks::Handlers::Handler
          params do
            requires :action, String
            requires :number, Integer
            requires :pull_request do
              requires :id, Integer
              requires :number, Integer
              requires :url, String
              requires :title, String
              requires :state, String
              requires :additions, Integer
              requires :deletions, Integer
              requires :head do
                requires :sha, String
                requires :ref, String
              end
              requires :user do
                requires :login, String
              end
              requires :assignees, Array do
                requires :login, String
              end
              requires :labels, Array do
                requires :name, String
              end
            end
            requires :repository do
              requires :full_name, String
            end
            requires :sender do
              requires :login, String
            end
          end

          def process
            return unless respond_to_pull_request_closed?

            review_stack.archive!
          end

          private

          def repository
            @repository ||=
              Shipit::Repository.from_github_repo_name(params.repository.full_name) ||
              Shipit::NullRepository.new
          end

          def review_stack
            @review_stack ||=
              Shipit::Webhooks::Handlers::PullRequest::ReviewStackAdapter
                .new(params, scope: repository.review_stacks)
          end

          def respond_to_pull_request_closed?
            params.action == "closed"
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
shipit-engine-0.39.0 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.38.0 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.37.0 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.36.1 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.36.0 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.35.1 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.35.0 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.34.0 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
shipit-engine-0.33.0 app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb