handle_merge_request

in lib/release_tools/cherry_pick/auto_deploy_service.rb [61:90]


      def handle_merge_request(merge_request)
        result =
          if allowed?(merge_request)
            assert_mirrored!(merge_request)

            if target_includes_merge_commit?(merge_request)
              Result.new(
                merge_request: merge_request,
                status: :completed,
                reason: "Auto deploy branch #{target} already contains MR merge commit"
              )

            elsif target_includes_cherry_picked_commit?(merge_request)
              Result.new(
                merge_request: merge_request,
                status: :not_required,
                reason: "Auto deploy branch #{target} already contains a cherry-picked commit"
              )

            else
              cherry_pick(merge_request)
            end

          else
            Result.new(merge_request: merge_request, status: :denied, reason: 'Missing ~severity::1 or ~severity::2 label')
          end

        record_result(result)
      end