Skip to content

chore: sync dev with main#519

Merged
vig-os-release-app[bot] merged 6 commits intodevfrom
chore/sync-main-to-dev-5-1
Apr 10, 2026
Merged

chore: sync dev with main#519
vig-os-release-app[bot] merged 6 commits intodevfrom
chore/sync-main-to-dev-5-1

Conversation

@vig-os-release-app
Copy link
Copy Markdown
Contributor

Syncs dev with main (sync-main-to-dev workflow).

commit-action-bot Bot and others added 6 commits April 10, 2026 13:21
Strip empty Unreleased section from release branch.
Release date TBD (set during finalization).
Set release date to 2026-04-10 and regenerate release docs.

Refs: #516
The GitHub API only returns draft releases to tokens with push access.
The validate job had contents:read, so the draft release check always
failed. Elevate to contents:write and use github.token for the
workspace template variant (upstream already used github.token).

TDD skipped: CI workflow YAML — only verifiable via GitHub Actions run.

Refs: #517
## Description

The Promote Release workflow always fails at the "Verify draft GitHub
Release exists" step in the `validate` job. The GitHub API only returns
draft releases to tokens with push access (`contents: write`), but the
`validate` job had `contents: read` and the workspace template variant
was using the release app token which also lacked push-level
permissions.

This PR elevates the `validate` job permissions to `contents: write` in
both the upstream and workspace `promote-release.yml`, and switches the
workspace template's draft release check to use `github.token` (the
upstream already used it).

## Type of Change

- [ ] `feat` -- New feature
- [x] `fix` -- Bug fix
- [ ] `docs` -- Documentation only
- [ ] `chore` -- Maintenance task (deps, config, etc.)
- [ ] `refactor` -- Code restructuring (no behavior change)
- [ ] `test` -- Adding or updating tests
- [x] `ci` -- CI/CD pipeline changes
- [ ] `build` -- Build system or dependency changes
- [ ] `revert` -- Reverts a previous commit
- [ ] `style` -- Code style (formatting, whitespace)

### Modifiers

- [ ] Breaking change (`!`) -- This change breaks backward compatibility

## Changes Made

- `.github/workflows/promote-release.yml` — change `validate` job
`contents: read` to `contents: write`
- `assets/workspace/.github/workflows/promote-release.yml` — change
`validate` job `contents: read` to `contents: write`; switch `GH_TOKEN`
in the draft release check step from the release app token to `${{
github.token }}`
- `CHANGELOG.md` — add Fixed entry for #517
- `assets/workspace/.devcontainer/CHANGELOG.md` — synced by pre-commit
hook

## Changelog Entry

### Fixed

- **Promote-release validate job cannot see draft releases**
([#517](#517))
- Elevate `validate` job permissions to `contents: write` so the token
has push-level access required by the GitHub API to list draft releases
- Use `github.token` instead of the release app token for the draft
release check in workspace `promote-release.yml`

## Testing

- [ ] Tests pass locally (`just test`)
- [ ] Manual testing performed (describe below)

### Manual Testing Details

TDD skipped: CI workflow YAML changes can only be verified by running
the actual GitHub Actions pipeline. Verification will occur when the
Promote Release workflow is re-run for 0.3.3.

## Checklist

- [x] My code follows the project's style guidelines
- [x] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly (edit
`docs/templates/`, then run `just docs`)
- [x] I have updated `CHANGELOG.md` in the `[Unreleased]` section (and
pasted the entry above)
- [x] My changes generate no new warnings or errors
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published

## Additional Notes

This fix affects both the upstream and workspace template
`promote-release.yml`. The upstream workflow already used `${{
github.token }}` for the draft release check but still had `contents:
read`, so only the permission needed changing. The workspace template
also needed the token source switched from the release app token to `${{
github.token }}`.

Refs: #517
# [Release
0.3.3](https://github.com/vig-os/devcontainer/releases/tag/0.3.3) -
2026-04-10

This PR prepares release 0.3.3 for merge to main.

## [0.3.3](https://github.com/vig-os/devcontainer/releases/tag/0.3.3) -
2026-04-10

### Added

- **Renovate changelog automation**
([#506](#506))
- `renovate-changelog-pr` CLI tool parses Renovate PR metadata and
inserts Keep-a-Changelog entries under `## Unreleased`
- `renovate-changelog` workflow runs on `pull_request_target` for
`renovate[bot]` PRs in both upstream and workspace template
- **Devcontainer image version pinning**
([#509](#509))
- `.vig-os` file at repo root declares `DEVCONTAINER_VERSION` as the
single source of truth for CI container image tags
- `resolve-image` composite action resolves the image tag and validates
it exists in GHCR
- **`GITHUB_REPOSITORY` resolution for workspace init**
([#509](#509))
- `parse-github-remote-lib.sh` extracts `owner/repo` from HTTPS, SSH,
and `git@` GitHub URLs
- `install.sh` gains `--repo` flag; `init-workspace.sh` replaces
`{{GITHUB_REPOSITORY}}` in workspace template files

### Changed

- **Switch from Dependabot to Renovate**
([#509](#509))
- Replace `.github/dependabot.yml` with `renovate.json` and shared
`renovate-default.json` preset
- Renovate covers all ecosystems previously tracked (github-actions,
pip, npm, docker) plus template directories not reachable by Dependabot
- **Sync workflows run in devcontainer image**
([#509](#509))
- `sync-issues` and `sync-main-to-dev` use `resolve-image` and run
inside the pinned devcontainer, removing the `setup-env` composite
action dependency and the inlined retry helper
- `sync-main-to-dev` creates sync branches via `git push` instead of the
GitHub refs API
- **Smoke-test dispatch triggers promote-release for final releases**
([#511](#511))
- Final releases dispatch downstream `promote-release.yml` instead of
merging the release PR directly, publishing the draft GitHub Release and
satisfying the upstream promote-time downstream gate
- RC releases wait for release PR required checks but no longer merge
the PR to `main`

### Removed

- **Dependabot configuration**
([#509](#509))
- Delete `.github/dependabot.yml` and
`assets/workspace/.github/dependabot.yml`

### Fixed

- **Promote-release draft release validation**
([#507](#507))
- Use the paginated releases list API with jq instead of `GET
/releases/tags/{tag}`, which returns 404 for draft releases
- Apply the same release lookup for RC git tag cleanup in upstream and
workspace `promote-release.yml`

### Security

- **Nightly Trivy gate remediation (OpenSSL, gh, typos)**
([#512](#512))
- Pin `python:3.12-slim-bookworm` to current digest and add targeted
`libssl3`/`openssl` upgrade to `3.0.19-1~deb12u2` (CVE-2026-28390,
CVE-2026-31790)
- Refresh `.trivyignore`: drop resolved gh/docker-cli and gRPC entries;
add Go stdlib and typos-related suppressions plus `jwt-token` false
positive
- Suppress unfixable base-image CVEs: ncurses (CVE-2025-69720), SQLite
(CVE-2025-7458), systemd (CVE-2026-29111), zlib/minizip (CVE-2023-45853)
@vig-os-release-app vig-os-release-app Bot enabled auto-merge April 10, 2026 16:16
@vig-os-release-app vig-os-release-app Bot requested a review from c-vigo as a code owner April 10, 2026 16:16
@vig-os-release-app vig-os-release-app Bot merged commit 6933f86 into dev Apr 10, 2026
18 checks passed
@vig-os-release-app vig-os-release-app Bot deleted the chore/sync-main-to-dev-5-1 branch April 10, 2026 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant