@@ -5,8 +5,11 @@ DESCRIPTION >
55 - Excludes Gerrit platform as it uses a different workflow model.
66 - Queries `pull_requests_analyzed` directly for optimal performance using sorting key on `segmentId, channel, openedAt`.
77 - Primary use case: displaying average PR resolution time metrics in development health dashboards.
8+ - The pipe scopes data either to a single project (via `segments_filtered`) or to every project in a
9+ collection (via `segments_filtered_by_collection`). Exactly one of `project`/`collectionSlug` must be given.
810 - Parameters:
9- - `project`: Required string for project slug (e.g., 'k8s', 'tensorflow') - inherited from `segments_filtered`
11+ - `project`: Project slug (e.g., 'k8s', 'tensorflow') - inherited from `segments_filtered`. Required unless `collectionSlug` is given.
12+ - `collectionSlug`: Collection slug (e.g., 'cncf') - inherited from `segments_filtered_by_collection`. Required unless `project` is given.
1013 - `repos`: Optional array of repository URLs for filtering (e.g., ['https://github.com/kubernetes/kubernetes'])
1114 - `startDate`: Optional DateTime filter for PRs opened after timestamp (e.g., '2024-01-01 00:00:00')
1215 - `endDate`: Optional DateTime filter for PRs opened before timestamp (e.g., '2024-12-31 23:59:59')
@@ -18,10 +21,10 @@ SQL >
1821 SELECT round(avg(resolvedInSeconds)) AS "averagePullRequestResolveVelocitySeconds"
1922 FROM pull_requests_analyzed
2023 WHERE
21- segmentId = (SELECT segmentId FROM segments_filtered)
22- AND isNotNull(resolvedAt )
23- AND resolvedInSeconds > 0
24- AND platform != 'gerrit'
24+ {% if defined(collectionSlug) %}
25+ segmentId IN (SELECT segmentId FROM segments_filtered_by_collection )
26+ {% else %} segmentId = (SELECT segmentId FROM segments_filtered)
27+ {% end %} AND isNotNull(resolvedAt) AND resolvedInSeconds > 0 AND platform != 'gerrit'
2528 {% if defined(repos) %}
2629 AND channel
2730 IN {{ Array(repos, 'String', description="Filter activity repo list", required=False) }}
0 commit comments