Skip to content

Migrate “Status checks” to go under Settings > Merge Requests, after Merge checks.

This is the frontend implementation issue

Problem to solve

Merge Request (MR) Approval Rules are meant to map to specific users that can take action on approving Merge Requests. As a result, Status checks does not align with the intent of that feature so they will be relocated in the UI as another Merge Request setting.

Proposal

  1. Remove status checks as an approval rule option.
  2. Add Status checks after Merge checks, reusing the majority of the table/modal components from MR Approval Rules

Design

Screenshots
🆕 location
Status_checks
Modal - Modal -
Modal_-__failure Modal_-_valid

Is this a cross-stage feature?

🤝 groupcompliance groupsource code groupcode review

Implementation

I think this will be a weight of 5️⃣ due to the many changes needed:

  1. Add a new application under merge checks
    • See if we can reuse code from ee/app/assets/javascripts/approvals/components/project_settings/app.vue
  2. Add a store to CRUD the status checks
  3. Add a list view for the status checks
    1. Using the ApprovalGateIcon (we can probably rename this)
    2. With a edit button
    3. With a delete button
  4. Add a Add status check button and open the create model when clicked
  5. Add a create modal
    • Can reuse parts of ee/app/assets/javascripts/approvals/components/modal_rule_create.vue
    • Can reuse parts of the RuleForm
    • No need to use the approval type selection
  6. Add a edit modal
    • Can reuse parts of ee/app/assets/javascripts/approvals/components/modal_rule_create.vue
  7. Add a delete modal
    • Can reuse parts of ee/app/assets/javascripts/approvals/components/modal_rule_remove.vue

Moved to #332017 (closed):

  1. Undo the changes made to approvals in #300973 (closed)
  2. Update the feature specs and add new ones for status checks

Follow-up: Look at moving similar code to a shared usage between approval rules and status checks

Edited by Robert Hunt