Add duo workflow status check

What does this MR do and why?

Can be used for getting more details why Duo Workflow doesn't work.

References

Related to #505344 (closed)

Implements the solution from #505344 (comment 2220401855)

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After

How to set up and validate locally

Sample query to use for testing:

query {
  project(fullPath: "gitlab-org/cli") {
    id
    duoWorkflowStatusCheck {
      enabled
      checks {
        name
        value
        message
      }
  	}
  }
}

Expected response:

{
  "data": {
    "project": {
      "id": "gid://gitlab/Project/21",
      "duoWorkflowStatusCheck": {
        "enabled": true,
        "checks": [
          {
            "name": "feature_flag",
            "value": true,
            "message": "duo_workflow feature flag must be enabled."
          },
          {
            "name": "duo_features_enabled",
            "value": true,
            "message": "Project must have duo features enabled."
          },
          {
            "name": "developer_access",
            "value": true,
            "message": "User must have developer access to the project."
          },
          {
            "name": "feature_available",
            "value": true,
            "message": "duo_workflow licensed feature must be available for the project and experimental features must be enabled."
          }
        ]
      }
    }
  },
  "correlationId": "01JD710VBP2781JYJ4JYVZYY3S"
}

Merge request reports

Loading