From 2aafb8fc95967a38bbac6bac4095e8b7d3fff182 Mon Sep 17 00:00:00 2001 From: Davide Polato Date: Tue, 1 Sep 2026 23:00:24 +0200 Subject: [PATCH] fix(skills): derive the two remaining Airflow literals from project config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `pr-management-stats/fetch.md` queried `repository(owner:"apache",name:"airflow")` in its GraphQL batch-fetch recipe, and `release-announce-draft` pinned the download URL to `closer.lua?path=airflow//`. Both are operative instructions, not examples, so an agent following them against another adopter queries the wrong repository and points at the wrong dist tree. Bind the query's owner/name from `` the way the other GraphQL recipes already do, and render the dist path from `` as the rest of the announce skill does. Teach `check-placeholders.sh` the two lowercase forms (`name:"airflow"`, `path=airflow`) so this class is caught at commit time — before this change the linter passed on both lines. Fixes [apache/magpie#1139](https://github.com/apache/magpie/issues/1139). Signed-off-by: Davide Polato --- skills/pr-management-stats/fetch.md | 4 ++-- skills/release-announce-draft/SKILL.md | 2 +- tools/dev/check-placeholders.sh | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/skills/pr-management-stats/fetch.md b/skills/pr-management-stats/fetch.md index 2ecee9e1f..31ccc3d47 100644 --- a/skills/pr-management-stats/fetch.md +++ b/skills/pr-management-stats/fetch.md @@ -209,8 +209,8 @@ Two stages: 2. **Fetch comments in aliased batches** of **30 PRs per GraphQL call**. Each alias queries one PR with `comments(last: 25) { nodes { author { login } authorAssociation createdAt body } }`. A single query with 30 aliases stays well inside GitHub's complexity budget; larger batch sizes occasionally hit `MAX_NODE_LIMIT_EXCEEDED`. Budget: ~54 GraphQL calls for 1600 PRs; end-to-end around 60 seconds on a warm token. ```graphql -query { - repository(owner:"apache",name:"airflow") { +query($owner: String!, $repo: String!) { # bound from split on "/" + repository(owner:$owner, name:$repo) { pr63407: pullRequest(number:63407) { number author{login} authorAssociation closedAt mergedAt state merged labels(first:30){nodes{name}} diff --git a/skills/release-announce-draft/SKILL.md b/skills/release-announce-draft/SKILL.md index 55348bcdd..96ee51ba5 100644 --- a/skills/release-announce-draft/SKILL.md +++ b/skills/release-announce-draft/SKILL.md @@ -360,7 +360,7 @@ before including it. - Download links in the site files must resolve through the `closer.lua` mirror redirector (e.g. - `https://www.apache.org/dyn/closer.lua?path=airflow//...`), + `https://www.apache.org/dyn/closer.lua?path=//...`), not through a direct `dist.apache.org` URL. - The PR is opened (not merged) by this skill; a committer merges it after the `[ANNOUNCE]` email is sent. diff --git a/tools/dev/check-placeholders.sh b/tools/dev/check-placeholders.sh index b32b219c3..c1af62f33 100755 --- a/tools/dev/check-placeholders.sh +++ b/tools/dev/check-placeholders.sh @@ -51,6 +51,11 @@ FORBIDDEN_PATTERNS=( "airflow-s/airflow-s" "Apache Airflow" "apache.org/airflow" + # Lowercase forms that slip past the four above: a GraphQL + # `repository(owner:"apache",name:"airflow")` argument and a + # `closer.lua?path=airflow/` dist path. + 'name:"airflow"' + "path=airflow" ) # Files / directories where Airflow references are intentional: