Repository navigation
feat(protected_environments): add deploy groups - #661
Merged
Merged
Conversation
Allow a shared group to receive direct deployment access without replacing existing protection settings. Require complete preflight, explicit confirmation, and matching response/read-back evidence to prevent stale or duplicate writes. Signed-off-by: sjungwon03 <sjungwon03@gmail.com>
Record the review entry point for the protected environment deployment group addition slice. Signed-off-by: sjungwon03 <sjungwon03@gmail.com>
sjungwon03-ai
approved these changes
Oct 18, 2026
sjungwon03-ai
left a comment
Member
There was a problem hiding this comment.
Review summary
Verdict: Approved
- Reviewed: protected-environment deployment-group API, controller, dialog, localization, and regression coverage
- Checks: all reported CI checks passed
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.
Summary
Project protected environments can now add one shared group to deployment access by exact numeric group ID. The new grant explicitly uses direct membership, and the dialog requires the exact environment name and acknowledgement after reviewing existing deployment access and approval rules.
Complete paginated inventory and strict detail preflight reject stale, missing, ambiguous and duplicate-group grants. One PUT sends only the group ID and direct-membership setting. Strict response and authoritative read-back checks require exactly one new stable grant and preserve existing deploy grants, descriptions, approval rules and legacy counts. Pending operations and account changes are isolated; uncertain writes require fresh inspection and confirmation, blocking duplicate retries if the grant was applied.
Closes #660
Validation
dart format --output=none --set-exit-if-changed .flutter analyzereports no issuesbuild_runneris not applicableChecklist
dev; links one issue withCloses #Screenshots
Fixture-only captures show the confirmation portion of the scrollable dialog.
Notes for reviewers
The update endpoint supports adding deploy records without an existing record ID. The request explicitly chooses direct membership. Reported
access_levelmetadata on the new group grant is accepted and retained; the request supplies no role/user selector. The write disables redirects and automatic OAuth replay. The strict reader is the same full-rule reader used by existing deployment-group membership edits.Premium/Ultimate, enabled CI/CD, management permission and sharing the group with the project are server requirements. No group/member enumeration or sharing mutation is added. Group-level rules remain read-only. Grant replacement/removal and inherited-membership selection during creation are separate slices.
The endpoint provides no atomic compare-and-set; preflight and read-back cannot eliminate concurrent server changes. Preservation covers modelled fields, and no live role/tier/self-hosted version matrix was validated. See implementation and evidence.