Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: makr-code/setup-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: actions/setup-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 2 commits
  • 9 files changed
  • 4 contributors

Commits on Sep 8, 2026

  1. feat: Add mirror and mirror-token inputs for custom Python distri…

    …bution sources (actions#1302)
    
    * feat: Add `mirror` and `mirror-token` inputs for custom Python distribution sources
    
    Users who need custom CPython builds (internal mirrors, GHES-hosted forks,
    special build configurations, compliance builds, air-gapped runners) could not
    previously point setup-python at anything other than actions/python-versions.
    
    Adds two new inputs:
    - `mirror`: base URL hosting versions-manifest.json and the Python
      distributions it references. Defaults to the existing
      https://raw.githubusercontent.com/actions/python-versions/main.
    - `mirror-token`: optional token used to authenticate requests to the mirror.
    
    If `mirror` is a raw.githubusercontent.com/{owner}/{repo}/{branch} URL, the
    manifest is fetched via the GitHub REST API (authenticated rate limit applies);
    otherwise the action falls back to a direct GET of {mirror}/versions-manifest.json.
    
    Token interaction
    -----------------
    
    `token` is never forwarded to arbitrary hosts. Auth resolution is per-URL:
    
      1. if mirror-token is set, use mirror-token
      2. else if token is set AND the target host is github.com,
         *.github.com, or *.githubusercontent.com, use token
      3. else send no auth
    
    Cases:
    
      Default (no inputs set)
        mirror = default raw.githubusercontent.com URL, mirror-token empty,
        token = github.token.
        → manifest API call and tarball downloads use `token`.
        Identical to prior behavior.
    
      Custom raw.githubusercontent.com mirror (e.g. personal fork)
        mirror-token empty, token = github.token.
        → manifest API call and tarball downloads use `token`
          (target hosts are GitHub-owned).
    
      Custom non-GitHub mirror, no mirror-token
        mirror-token empty, token = github.token.
        → manifest fetched via direct URL (no auth attached),
          tarball downloads use no auth.
        `token` is NOT forwarded to the custom host — this is the
        leak-prevention case.
    
      Custom non-GitHub mirror with mirror-token
        mirror-token set, token may be set.
        → manifest fetch and tarball downloads use `mirror-token`.
    
      Custom GitHub mirror with both tokens set
        mirror-token wins. Used for both the manifest API call and
        tarball downloads.
    
    * fix: address mirror review feedback
    
    - scope mirror-token to the mirror host and send it verbatim
    - route non-repo mirrors straight to the URL fetch instead of throwing
    - authenticate the manifest fetch
    - warn on slash branches, and on mirror with PyPy/GraalPy
    - memoize mirror validation
    - exercise the direct-URL path in the E2E job
    
    Addresses actions#1302 (comment)
    
    Co-Authored-By: Claude Opus 4.8 <[email protected]>
    
    * fix: correct mirror warnings, auth scoping, and integration coverage
    
    - only warn about PyPy/GraalPy mirror when a custom mirror is set; the
      action.yml default made the warning fire on every run
    - accept the refs/heads/{branch} raw URL form so it routes via the REST
      API instead of tripping the slash-branch warning
    - scope mirror-token to the full mirror origin (scheme+host+port) so it
      can't leak to a same-host http download_url
    - make an invalid mirror fatal on the auth path, matching getManifestUrl
    - fix warning/docs that wrongly claimed the raw fallback is anonymous
    - force a manifest fetch in the mirror integration job (check-latest) so
      it actually contacts the mirror instead of using the preinstalled cache
    
    ---------
    
    Co-authored-by: Claude Opus 4.8 <[email protected]>
    luhenry and claude authored Sep 8, 2026
    Configuration menu
    Copy the full SHA
    337b072 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2026

  1. Bump browserslist from 4.28.2 to 4.28.9 (actions#1353)

    * Bump browserslist from 4.28.2 to 4.28.9
    
    Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.28.2 to 4.28.9.
    - [Release notes](https://github.com/browserslist/browserslist/releases)
    - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
    - [Commits](browserslist/browserslist@4.28.2...4.28.9)
    
    ---
    updated-dependencies:
    - dependency-name: browserslist
      dependency-version: 4.28.8
      dependency-type: indirect
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    
    * chore: remove mirror-token test, bump js-yaml
    
    ---------
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: priyagupta108 <[email protected]>
    dependabot[bot] and v-priyagupta108 authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    ad3497a View commit details
    Browse the repository at this point in the history
Loading