Skip to content

Support Approval Rules in Deployment Approval UI

Release notes

In this release, we are adding additional key information for multiple approval rules in the approval UI. Now during the workflow of approving a deployment, you can see who has already approved and how many approvals are still needed and from which groups. This key information enables transparency and context for making the approval decision and also ensures compliance during an audit review.

Problem

In the initial MVC, both Deployment Executors and Deployment Approvers were managed in the same access level. This could be a problem that Approvers can accidentally gain an access to the critical environment, where they are supposed to approve/reject only. To resolve the problem, we should separate access levels between executors and approvers. For example:

  • Production Environment:
    • Who can deploy?: @operator-group
    • Needs approval for deployment?:
      • At least one approval from @qa-tester-group
      • At least one approval from @security-group

In the previous issue, we added a API-basis support for the Multi Access Levels. In this issue, we extend the feature to frontend part, so that users can easily interact with the multi access levels.

Design

New Modal
Screen_Shot_2022-09-01_at_10.26.16_AM

Figma File

Technical Proposal

  • For the project with Multiple Approval Rules, we show the proposed interface.
    • We can send this flag to frontend via EnvironmentHelper.
      • Condition: deployment.environment.required_approval_count > 0 && deployment.environment.has_approval_rules? == true
    • If this is true, frontend requests to the GraphQL query. Alternatively, frontend can call Public API, however, it doesn't include user avators.
  • For the project with Unified Approval Setting, we show the previous interface.

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by Chris Balane