Expose all Pipelines AE to analytics GraphQL

What does this MR do and why?

Exposes new Pipelines AE as a separate field in Analytics GraphQL. Check "How to test locally" for sample query.

References

How to set up and validate locally

query PipelineAnalytics($fullPath: ID!) {
  group(fullPath: $fullPath) {
    analytics {
      pipelines(
        source: ["push", "schedule"]
        ref: ["main"]
        startedAtFrom: "2026-01-01T00:00:00Z"
        startedAtTo: "2026-01-31T00:00:00Z"
      ) {
        aggregated(
          orderBy: [
            { identifier: "startedAt", direction: ASC, parameters: { granularity: "weekly" } }
            { identifier: "status", direction: ASC }
          ]
        ) {
          count
          nodes {
            dimensions {
              status
              source
              ref
              startedAtWeekly: startedAt(granularity: "weekly")
            }
            totalCount
            medianDuration: durationQuantile(quantile: 0.5)
            p95Duration:    durationQuantile(quantile: 0.95)
            successOutcome:  outcomeRate(status: ["success"])
            failureOutcome:  outcomeRate(status: ["failed"])
            canceledOutcome: outcomeRate(status: ["canceled"])
            skippedOutcome:  outcomeRate(status: ["skipped"])
            unhappyOutcome:  outcomeRate(status: ["failed", "canceled"])
          }
        }
      }
    }
  }
}

MR acceptance checklist

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

Related to #603448 (moved)

Merge request reports

Loading