Skip to content

Commit afd6fa9

Browse files
authored
ci: tighten internal refs to @v1 and remove issue-feed shim (v1.1.0) (#68)
- Pin the notify workflows' internal octo-notify references @main -> @v1, so a @v1 caller gets a fully version-frozen graph (workflow + transport action), closing the v1.0.0 partial isolation leak. - Remove the octo-issue-feed.yml back-compat shim (verified zero consumers org-wide; all callers now use octo-issue-notify.yml@v1). - Docs §5 updated to mark the rename and internal-ref isolation resolved.
1 parent fa4ca04 commit afd6fa9

6 files changed

Lines changed: 18 additions & 88 deletions

File tree

.github/workflows/octo-ci-status.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ jobs:
227227
228228
- name: Send to CI status feed
229229
if: steps.build.outputs.skip != 'true'
230-
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@main
230+
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@v1
231231
with:
232232
im-message: ${{ steps.build.outputs.im_message }}
233233
im-token: ${{ secrets.OCTO_BOT_TOKEN }}
@@ -238,7 +238,7 @@ jobs:
238238
# Run even if the ci-status send failed, so one IM group outage does not
239239
# suppress the other (matches the original "attempt both groups" behavior).
240240
if: ${{ always() && steps.build.outputs.skip != 'true' }}
241-
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@main
241+
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@v1
242242
with:
243243
im-message: ${{ steps.build.outputs.im_message }}
244244
im-token: ${{ secrets.OCTO_BOT_TOKEN }}

.github/workflows/octo-issue-feed.yml

Lines changed: 0 additions & 68 deletions
This file was deleted.

.github/workflows/octo-issue-notify.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
# secret. The agent fetches issue details itself via the GitHub API using
1717
# repo + number, so the body is NOT egressed through Actions.
1818
#
19-
# This is the canonical name. The legacy octo-issue-feed.yml is a thin
20-
# pass-through shim kept for callers not yet migrated; it will be removed after
21-
# all callers move to octo-issue-notify.yml@v1.
19+
# This is the canonical reusable for issue notification + triage. (It replaced
20+
# the legacy octo-issue-feed.yml, whose back-compat shim was removed in v1.1.0
21+
# once all callers migrated to octo-issue-notify.yml@v1.)
2222
name: Octo Issue Notify (reusable)
2323

2424
on:
@@ -145,7 +145,7 @@ jobs:
145145
146146
- name: Send (IM feed + optional triage webhook)
147147
if: steps.build.outputs.skip != 'true'
148-
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@main
148+
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@v1
149149
with:
150150
im-message: ${{ steps.build.outputs.im_message }}
151151
im-token: ${{ secrets.OCTO_BOT_TOKEN }}

.github/workflows/octo-pr-result-notify.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ jobs:
170170
171171
- name: Send to Octo IM
172172
if: steps.build.outputs.skip != 'true'
173-
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@main
173+
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@v1
174174
with:
175175
im-message: ${{ steps.build.outputs.im_message }}
176176
im-token: ${{ secrets.OCTO_BOT_TOKEN }}

.github/workflows/octo-pr-review-feed.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ jobs:
118118
119119
- name: Send to Octo IM
120120
if: steps.build.outputs.skip != 'true'
121-
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@main
121+
uses: Mininglamp-OSS/.github/.github/actions/octo-notify@v1
122122
with:
123123
im-message: ${{ steps.build.outputs.im_message }}
124124
im-token: ${{ secrets.OCTO_BOT_TOKEN }}

docs/workflow-architecture.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -402,25 +402,23 @@ of them instantly, with no rollback anchor and no audit of which repo runs what.
402402
and creates/updates the GitHub Release on every `vX.Y.Z` tag push (stable
403403
releases only; pre-releases do not advance the alias).
404404
4. **Rename via shim**: `octo-issue-feed.yml``octo-issue-notify.yml` (canonical).
405-
The old path is kept as a thin pass-through shim forwarding to the new name, so
406-
callers migrate without a flag day; the shim is removed in a later `vX.Y.0`
407-
once no caller references it.
405+
During transition the old path was a thin pass-through shim. **Resolved in
406+
v1.1.0**: all callers migrated to `octo-issue-notify.yml@v1`, the shim has zero
407+
consumers and was removed.
408408
5. **Distribution = "both" model:**
409409
- **Enforced gates** (history-check, check-sprint, dependency-review,
410410
secret-scan, language quality) → org **required workflows / rulesets**, so
411411
no per-repo opt-in is needed. *This is what fixes the #65 failure mode.*
412412
- **Optional pieces**`.github/workflow-templates/` starter workflows for
413413
one-click scaffolding of new repos, keeping callers uniform.
414414

415-
**Known limitation — internal refs at v1.0.0 (tighten in v1.1.0):** the reusables'
416-
own internal `uses:` (the four notify workflows → `octo-notify@main`; the
417-
`octo-issue-feed` shim → `octo-issue-notify.yml@main`) stay `@main` in v1.0.0. A
418-
`@v1` caller therefore gets the frozen v1 *workflow* but a transitively-latest
419-
transport action — a partial isolation leak. They are NOT switched to `@v1` yet
420-
because the current `v1`/`#31` snapshot predates the `octo-notify` action (added
421-
in #66), so an internal `@v1` would resolve to a snapshot with no such action and
422-
break. Once `v1` is rolled onto a commit that contains `octo-notify` (this wave),
423-
a follow-up tightens internal refs to `@v1` and re-cuts `v1.1.0`.
415+
**Internal-ref isolation — RESOLVED in v1.1.0:** the reusables' own internal
416+
`uses:` (the notify workflows → `octo-notify`) now pin `@v1`, not `@main`. A
417+
`@v1` caller therefore gets a fully version-frozen graph (workflow *and* its
418+
transport action), closing the partial isolation leak that existed at v1.0.0.
419+
(They could not be `@v1` at v1.0.0 because the prior `v1`/#31 snapshot predated
420+
the `octo-notify` action from #66; once `v1` rolled onto a commit containing it,
421+
the refs were tightened and `v1.1.0` cut.)
424422

425423
---
426424

0 commit comments

Comments
 (0)