diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1b685f8..0fc0c91 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,6 +13,17 @@ on: # reference amounts to running whatever that repository contains tomorrow. This matters # more here than on pull requests: these jobs sign nothing today, but they do publish # the artifacts people install. +# Declared here rather than inherited, for the reason status_check.yml gives for its own +# block: the token's reach should be readable in the file that uses it, and a repository +# default that widens later should not silently widen these jobs with it. The repository +# default is `read` today, so this changes nothing about what runs -- it fixes what a +# reader can know without leaving the file, and it is what CodeQL alert #1 asked for. +# +# The `release` job below overrides this with `contents: write`, which is how job-level +# permissions work: this is a default, not a ceiling. +permissions: + contents: read + env: GRADLE_CACHE_PATHS: | ~/.gradle/caches diff --git a/.github/workflows/status_check.yml b/.github/workflows/status_check.yml index f3b3355..7b890fc 100644 --- a/.github/workflows/status_check.yml +++ b/.github/workflows/status_check.yml @@ -280,8 +280,13 @@ jobs: # docs/api-37-emulator-crash.md has the per-method measurements, and the # correction that produced them. # - # api-level must be "37.0". A bare 37 is not an SDK package and fails - # during setup, which cost a run to discover. + # api-level must be a POINT release. A bare 37 is not an SDK package and + # fails during setup, which cost a run to discover. `37.0` is the choice + # here rather than the only option: `37.1` and `37.2-beta*` exist and + # abort the same way, and api37-debug.yml's inputs document both, with + # the wrinkle that above 37.0 they ship only as google_apis_ps16k. + # docs/api-37-emulator-crash.md measures 37.0 rev 6 and 37.1 rev 8 side + # by side, so pinning 37.0 is a decision, not a constraint. # # notAnnotation removes the three tests that do not pass on this image; they # run in the advisory job below, off the same marker so they cannot end up