Skip to content

Add a new filter for pipeline jobs

What does this MR do and why?

Describe in detail what your merge request does and why.

This MR adds a new filter for jobs in GraphQL queries. With this filter we can query jobs that, for example, have manual execution trigger. This functionality is needed to implement #385732 (closed)

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

  1. You'll need a project that has manual and not-manual deployment jobs. If you don't have one you could clone this project: https://gitlab.com/andrei.zubov/pipelinestest and run a few deployment pipelines. The deploy-staging job will be a manual one
  2. navigate to graphql explorer (for example gdk.test:3000/-/graphql-explorer )
  3. execute the following graphql query
query getEnvironmentDetails(
  $projectFullPath: ID!
  $environmentName: String
) {
  project(fullPath: $projectFullPath) {
    id
    environment(name: $environmentName) {
      id
      deployments(
        orderBy: { createdAt: DESC }
      ) {
        nodes {
          id
          job {
            id
            deploymentPipeline: pipeline {
              id
              jobs(whenExecuted: ["manual"], retried: false) {
                nodes {
                  id
                  name
                  playable
                  scheduledAt
                  webPath
                }
              }
            }
          }
        }
      }
    }
  }
}

example variables:

"projectFullPath": "gitlab-org/pipelinestest",
"environmentName": "production"
  1. you should see a result with manual pipeline jobs

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Andrei Zubov

Merge request reports