potiuk opened a new pull request, #225:
URL: https://github.com/apache/airflow-steward/pull/225

   ## Summary
   
   Complete the post-advisory close-out chain by adding three new action 
bullets to Step 4 (*Apply confirmed changes*) in 
[`security-issue-sync/SKILL.md`](.claude/skills/security-issue-sync/SKILL.md).
   
   This is the orchestration piece that ties together the three 
previously-merged PRs:
   
   | PR | Provides |
   |---|---|
   | #222 | Convention + handoff templates + Step 2b *Advisory archived* 
trigger description |
   | #223 | `vulnogram-api-record-publish` CLI (REVIEW → PUBLIC over the OAuth 
API) |
   | #224 | `release-manager-wrap-up-comment.md` template |
   | **This PR** | The concrete per-action recipes Step 4 reads when executing 
the combined apply |
   
   ## Three new Step 4 bullets
   
   ### Vulnogram state transition (REVIEW → PUBLIC)
   
   ```bash
   uv run --project <framework>/tools/vulnogram/oauth-api \
     vulnogram-api-record-publish --cve-id <CVE-YYYY-NNNNN>
   ```
   
   Locked to the "Advisory archived on `<users-list>`" combined-apply trigger; 
idempotent on already-PUBLIC; refuses unexpected states with exit 3.
   
   ### Advisory short-summary extraction
   
   Fetches the archived advisory email body from `lists.apache.org`, extracts 
the prose block between the CVE header line and the *Affected version range:* 
block, surfaces in the Step 2 proposal so the user can spot misextraction 
before the body-field update applies. Lands the summary into the *Short public 
summary for publish* body field **before** the Step 5 JSON regen, so the 
re-pushed JSON carries the published summary verbatim (lock-step with the body).
   
   ### Wrap-up comment (post-close)
   
   Loads `release-manager-wrap-up-comment.md` (#224) and posts as the **last** 
action of the combined apply. The conditional `MILESTONE_BULLET` placeholder is 
resolved by a sibling-state check:
   
   ```bash
   ms=$(gh issue view <N> --repo <tracker> --json milestone --jq 
'.milestone.number // empty')
   if [ -n "$ms" ]; then
     open=$(gh issue list --repo <tracker> --milestone "$ms" --state open 
--json number --jq 'length')
     if [ "$open" -eq 0 ]; then
       # Last-sibling case → substitute close-milestone link
       ...
     else
       bullet=""
     fi
   fi
   ```
   
   Idempotent via the `<!-- apache-steward: release-manager-wrap-up v1 -->` 
marker.
   
   ## Test plan
   
   - [x] `skill-validate` pre-commit passes (verified).
   - [ ] Live smoke test deferred to the first real post-advisory cycle that 
exercises the combined apply — at that point the agent reads the new Step 4 
bullets and runs the recipes against a real tracker. Worked examples already 
landed adopter-side on airflow-s#295 and airflow-s#355 (handoff comments), but 
those predate the SKILL.md wiring; the next real advisory cycle is the first 
end-to-end test.
   
   ## Closes
   
   End of the no-uv-run-for-RM + sync-drives-lifecycle-close-out arc upstream:
   
   - #222 ✅ merged
   - #223 ✅ merged
   - #224 ✅ merged
   - **This PR** ← closes the loop
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to