feat(3475): support enabling/disabling of pipeline#3476
Merged
Conversation
- Add DISABLED pipeline state with ACTIVE<->DISABLED transition validation
- Update PUT /pipelines/{id} to accept state and stateChangeMessage fields
- Pipeline admins can update state alongside all existing fields
- Screwdriver cluster admins (non-pipeline-admins) can update state fields only
- Child pipelines now allow state-only updates instead of blocking all updates
- Block event creation for DISABLED pipelines in POST /events
- Preserve DISABLED state on child pipeline sync (no longer reset to ACTIVE)
- Bump screwdriver-data-schema to ^26.1.0 and screwdriver-models to ^33.3.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
minghay
reviewed
Apr 2, 2026
minghay
approved these changes
Apr 2, 2026
sagar1312
added a commit
to screwdriver-cd/ui
that referenced
this pull request
Apr 14, 2026
Exposes the new pipeline DISABLED state (added in screwdriver-cd/screwdriver#3476) in the V2 pipeline settings page, following the same patterns used for job enable/disable. Changes: - Add Disable/Enable Pipeline section to the settings main page, placed after the Sync sections and before Admins, with plain section styling (no danger zone) - Add Pipeline::Settings::Main::Modal::TogglePipeline confirmation modal with an optional reason input; sends PUT /pipelines/:id with { state: 'DISABLED' } or { state: 'ACTIVE' } to toggle pipeline state - Display stateChanger, stateChangeTime (humanized), and stateChangeMessage below the current pipeline state when a state change has been recorded - Add isDisabledPipeline / hasDisabledPipelines utilities and DISABLED icon ('ban') to app/utils/pipeline.js - Add integration tests for the new modal and update existing settings main component tests for revised section/danger-zone counts - Add contributor entry to package.json Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Screwdriver supports enabling and disabling individual jobs to prevent builds from being created or executed for those jobs. This is useful for temporarily pausing specific parts of a pipeline without removing them.
However, for large pipelines with many jobs, managing this at the job level becomes time-consuming and inefficient — each job must be disabled individually. There is currently no way to disable an entire pipeline in one action.
Additionally, pipelines currently only support three states: ACTIVE, INACTIVE (used for child pipelines managed by a config pipeline), and DELETING. There is no first-class concept of a user-initiated disabled state at the pipeline level.
Objective
References
#3475
screwdriver-cd/data-schema#612
screwdriver-cd/models#664
License
I confirm that this contribution is made under a BSD license and that I have the authority necessary to make this contribution on behalf of its copyright owner.