Skip to content

ci: default workflow tokens to read-only contents - #1218

Merged
DaleSeo merged 1 commit into
mainfrom
jamadeo/restrict-workflow-token-defaults
Aug 27, 2026
Merged

ci: default workflow tokens to read-only contents#1218
DaleSeo merged 1 commit into
mainfrom
jamadeo/restrict-workflow-token-defaults

Conversation

@jamadeo

@jamadeo jamadeo commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Sets an explicit read-only contents permission default on workflows that previously relied on GitHub's repository-level token defaults. This allows checkout—including in the crates.io release job—while preventing implicit write access. Existing job-level grants remain unchanged for jobs that require additional permissions.

Addresses the default token-permission findings tracked in #1215. Release-plz and the coverage job's explicit write permissions are reviewed separately.

@jamadeo
jamadeo requested a review from a team as a code owner August 25, 2026 18:43
@github-actions github-actions Bot added T-CI Changes to CI/CD workflows and configuration T-config Configuration file changes labels Aug 25, 2026
@jamadeo
jamadeo marked this pull request as draft August 25, 2026 18:43
@jamadeo
jamadeo force-pushed the jamadeo/restrict-workflow-token-defaults branch from 5a1cacb to f8fff78 Compare August 25, 2026 18:49
@jamadeo jamadeo changed the title ci: default workflow tokens to no permissions ci: default workflow tokens to read-only contents Aug 25, 2026
@jamadeo
jamadeo marked this pull request as ready for review August 25, 2026 18:50
@DaleSeo
DaleSeo merged commit 3501f3e into main Aug 27, 2026
22 checks passed
@DaleSeo
DaleSeo deleted the jamadeo/restrict-workflow-token-defaults branch August 27, 2026 10:01
jmagar added a commit to dinglebear-ai/rust-sdk that referenced this pull request Sep 4, 2026
* fix: allow concurrent streamable http requests (modelcontextprotocol#1186)

* fix: allow concurrent streamable http requests

* fix: keep streamable http recovery responsive

Keep cancellation and replies available while old session POSTs finish.
Bound the wait for old POSTs and the replacement initialization handshake.
Do not retry interrupted POSTs because the server may have processed them.

Add regressions for recovery, queued cancellation, control timeouts, and
server replies needed by active requests.

* fix: preserve response and cancellation ordering

* refactor: clarify streamable http control flow

* fix: match stream responses against pending request ids

Match responses against all pending requests before removing a stream
registration. Keep distinct numeric and string ids separate while preserving
the existing fallback for servers that stringify numeric ids.

Add a mixed-id regression and keep a separate registration owner alive in
the abandoned-cancellation test.

* feat: make streamable http control timeouts configurable

* fix(transport): fall back after sessionless HTTP discover rejections (modelcontextprotocol#1211)

* fix(transport): fall back after HTTP discover rejection

* fix(transport): limit legacy fallback to sessionless probes

* style: apply nightly rustfmt import ordering

* ci: pin GitHub Actions to commit SHAs (modelcontextprotocol#1216)

* ci: scope release token permissions to jobs (modelcontextprotocol#1220)

* ci: default workflow tokens to read-only contents (modelcontextprotocol#1218)

* ci: remove coverage job write permission (modelcontextprotocol#1219)

* ci: pin release-plz fork revision (modelcontextprotocol#1221)

* feat: add request-state key rotation (modelcontextprotocol#1128)

* feat: add request-state key rotation

* docs: streamline request-state codec documentation

* fix: harden request-state fallback verification

* refactor: refine request-state keyring API

* docs: make request-state rotation guidance self-contained

* docs: streamline request-state keyring rustdocs

* test: streamline request-state keyring coverage

* docs: restore request-state key rotation doctest

* chore: remove manual changelog entry

* ci: reduce dependabot update noise (modelcontextprotocol#1184)

* docs: use auto lifecycle in HTTP example (modelcontextprotocol#1187)

* chore(deps): bump taiki-e/install-action from 2.85.13 to 2.86.7 (modelcontextprotocol#1230)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.85.13 to 2.86.7.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@82cd3e7...b6ff580)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.86.7
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add typed custom request responses

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Nick Cooper <142361983+nickcoai@users.noreply.github.com>
Co-authored-by: King Star <mcxin.y@gmail.com>
Co-authored-by: Jack Amadeo <jackamadeo@block.xyz>
Co-authored-by: camillelawrence <gocamille@users.noreply.github.com>
Co-authored-by: Dale Seo <5466341+DaleSeo@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-CI Changes to CI/CD workflows and configuration T-config Configuration file changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants