Skip to content

Add graphql resources for integration exclusions

Jerry Seto requested to merge 454372-exclusion-graphql-endpoints into master

What does this MR do and why?

  • Add a mutation for creating exclusions
  • Add a mutation for deleting exclusions
  • Add an integration_exclusions field for listing exclusions

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.

How to set up and validate locally

Try some of these queries locally:

mutation integrationExclusionCreate($input: IntegrationExclusionCreateInput!) {
  integrationExclusionCreate(input: $input) {
    exclusions {
      project {
        id
        name
      }
    }
  }
}

# Example Variables
# {
#   "input": {
#     "projectIds": ["gid://gitlab/Project/1", "gid://gitlab/Project/2"],
#     "integrationName": "BEYOND_IDENTITY"
#   }
# }
# Example response
# {
#   "data": {
#     "integrationExclusionCreate": {
#       "exclusions": [
#         {
#           "project": {
#             "id": "gid://gitlab/Project/2",
#             "name": "Gitlab Shell"
#           }
#         },
#         {
#           "project": {
#             "id": "gid://gitlab/Project/1",
#             "name": "Gitlab Test"
#           }
#         }
#       ]
#     }
#   }
# }
mutation integrationExclusionDelete($input: IntegrationExclusionDeleteInput!) {
  integrationExclusionDelete(input: $input) {
    exclusions {
      project {
        id
        name
      }
    }
  }
}
# Example variables
# {
#   "input": {
#     "projectIds": ["gid://gitlab/Project/2"],
#     "integrationName": "BEYOND_IDENTITY"
#   }
# }
# Example response
# {
#   "data": {
#     "integrationExclusionDelete": {
#       "exclusions": [
#         {
#           "project": {
#             "id": "gid://gitlab/Project/2",
#             "name": "Gitlab Shell"
#           }
#         }
#       ]
#     }
#   }
# }
query integrationExclusion {
  integrationExclusions(integrationName: BEYOND_IDENTITY) {
    nodes {
      project {
        name
        id
        fullPath
      }
    }
  }
}

# Example response
# {
#   "data": {
#     "integrationExclusions": {
#       "nodes": [
#         {
#           "project": {
#             "name": "Gitlab Test",
#             "id": "gid://gitlab/Project/1"
#           }
#         }
#       ]
#     }
#   }
# }

Related to #454372 (closed)

Edited by Jerry Seto

Merge request reports

Loading