## Parent Part of #14 ## What to build - Add `Notes(ctx, source *dagger.Directory, version, repo string, token *dagger.Secret) (string, error)` to `.dagger/main.go` that renders the GitHub Release body — `## Images` table from `matrix.json` + `## Usage` block + GitHub-generated commit changelog appended via `repos/{repo}/releases/generate-notes`. - Replace `softprops/action-gh-release` in `release.yml` with the idempotent `gh release view → create / edit / upload` pattern from haydenk/homestead. - Add `$GITHUB_STEP_SUMMARY` block with a link to the published release. ## Acceptance criteria - [ ] `dagger call notes --source=. --version=YYYYMMDD --repo=haydenk/docker-ansible-testing` produces expected markdown locally - [ ] `release.yml` uses `gh release create` (preinstalled `gh`, no third-party action) - [ ] Re-running a release for an existing tag updates notes instead of failing - [ ] Unit tests for `Notes` over a fixed `matrix.json` - [ ] `softprops/action-gh-release` no longer referenced anywhere - [ ] PAT-less ## Blocked by - #16 (release.yml callable refactor)
Parent
Part of #14
What to build
Notes(ctx, source *dagger.Directory, version, repo string, token *dagger.Secret) (string, error)to.dagger/main.gothat renders the GitHub Release body —## Imagestable frommatrix.json+## Usageblock + GitHub-generated commit changelog appended viarepos/{repo}/releases/generate-notes.softprops/action-gh-releaseinrelease.ymlwith the idempotentgh release view → create / edit / uploadpattern from haydenk/homestead.$GITHUB_STEP_SUMMARYblock with a link to the published release.Acceptance criteria
dagger call notes --source=. --version=YYYYMMDD --repo=haydenk/docker-ansible-testingproduces expected markdown locallyrelease.ymlusesgh release create(preinstalledgh, no third-party action)Notesover a fixedmatrix.jsonsoftprops/action-gh-releaseno longer referenced anywhereBlocked by