Introduce failure_reason or failure_code for pipeline

The following discussion from gitlab-ce!11910 should be addressed:

  • @ayufan started a discussion: (+6 comments)

    I wonder if we should not do it differently:

    class Pipeline
      enum :failure_reason [
        everything_ok: null,
        unauthorized: 10
      ]
    end
    
    class CreatePipelineService
      def execute
        unless check_permission?
          return error!(:unauthorized, ...)
        end
      end
    end
    
    class PipelineScheduleWorker
      def perform
         for_each_Schedule do |schedule|
           pipeline = CreatePipelineService.new.execute
           schedule.deactivate! if pipeline.unauthorized?
         end
      end
    end
Assignee Loading
Time tracking Loading