Browse Source

🔐 Use PR Submit for pull requests (#16167)

pull/16170/head
Sebastián Ramírez 1 week ago
committed by GitHub
parent
commit
5cd0678fb6
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      .github/pr-submit.yml
  2. 16
      .github/workflows/bump-pre-commit-hooks.yml
  3. 18
      .github/workflows/prepare-release.yml

3
.github/pr-submit.yml

@ -0,0 +1,3 @@
workflows:
- .github/workflows/bump-pre-commit-hooks.yml
- .github/workflows/prepare-release.yml

16
.github/workflows/bump-pre-commit-hooks.yml

@ -12,6 +12,9 @@ jobs:
if: github.repository_owner == 'fastapi' if: github.repository_owner == 'fastapi'
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 10 timeout-minutes: 10
permissions:
contents: read
id-token: write
steps: steps:
- name: Dump GitHub context - name: Dump GitHub context
env: env:
@ -19,8 +22,7 @@ jobs:
run: echo "$GITHUB_CONTEXT" run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with: with:
token: ${{ secrets.FASTAPI_LATEST_CHANGES }} persist-credentials: false
persist-credentials: true
- name: Set up Python - name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with: with:
@ -36,9 +38,12 @@ jobs:
uv.lock uv.lock
- name: Bump pre-commit hooks - name: Bump pre-commit hooks
run: uv run prek auto-update --freeze --cooldown-days 7 run: uv run prek auto-update --freeze --cooldown-days 7
- name: Get PR Submit token
id: pr-submit
uses: tiangolo/pr-submit@d802fdf59bde80bc3eb8bd3259f4cbeec63de4aa # 0.0.1
- name: Create pull request - name: Create pull request
env: env:
GH_TOKEN: ${{ secrets.FASTAPI_LATEST_CHANGES }} GH_TOKEN: ${{ steps.pr-submit.outputs.token }}
BASE_BRANCH: ${{ github.event.repository.default_branch }} BASE_BRANCH: ${{ github.event.repository.default_branch }}
run: | run: |
set -euo pipefail set -euo pipefail
@ -46,12 +51,13 @@ jobs:
echo "No pre-commit hook updates available" echo "No pre-commit hook updates available"
exit 0 exit 0
fi fi
git config user.name "github-actions[bot]" git config user.name "pr-submit[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com" git config user.email "pr-submit[bot]@users.noreply.github.com"
branch="bump-pre-commit-hooks" branch="bump-pre-commit-hooks"
git switch -C "$branch" git switch -C "$branch"
git add .pre-commit-config.yaml git add .pre-commit-config.yaml
git commit -m "⬆ Bump pre-commit hooks" git commit -m "⬆ Bump pre-commit hooks"
gh auth setup-git
git push --force origin "$branch" git push --force origin "$branch"
if [ -z "$(gh pr list --head "$branch" --state open --json number --jq '.[].number')" ]; then if [ -z "$(gh pr list --head "$branch" --state open --json number --jq '.[].number')" ]; then
gh pr create \ gh pr create \

18
.github/workflows/prepare-release.yml

@ -23,9 +23,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 5 timeout-minutes: 5
permissions: permissions:
contents: write contents: read
issues: write id-token: write
pull-requests: write
env: env:
PREPARE_RELEASE_VERSION_FILE: fastapi/__init__.py PREPARE_RELEASE_VERSION_FILE: fastapi/__init__.py
PREPARE_RELEASE_RELEASE_NOTES_FILE: docs/en/docs/release-notes.md PREPARE_RELEASE_RELEASE_NOTES_FILE: docs/en/docs/release-notes.md
@ -36,8 +35,7 @@ jobs:
run: echo "$GITHUB_CONTEXT" run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with: with:
token: ${{ secrets.FASTAPI_LATEST_CHANGES }} # zizmor: ignore[secrets-outside-env] persist-credentials: false
persist-credentials: true
- name: Set up Python - name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with: with:
@ -59,18 +57,22 @@ jobs:
version="$(uv run python scripts/prepare_release.py current-version)" version="$(uv run python scripts/prepare_release.py current-version)"
echo "$version" echo "$version"
echo "version=$version" >> "$GITHUB_OUTPUT" echo "version=$version" >> "$GITHUB_OUTPUT"
- name: Get PR Submit token
id: pr-submit
uses: tiangolo/pr-submit@d802fdf59bde80bc3eb8bd3259f4cbeec63de4aa # 0.0.1
- name: Create release pull request - name: Create release pull request
env: env:
GH_TOKEN: ${{ secrets.FASTAPI_LATEST_CHANGES }} GH_TOKEN: ${{ steps.pr-submit.outputs.token }}
VERSION: ${{ steps.release-version.outputs.version }} VERSION: ${{ steps.release-version.outputs.version }}
run: | run: |
set -euo pipefail set -euo pipefail
branch="release-${VERSION}-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" branch="release-${VERSION}-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
git config user.name "github-actions[bot]" git config user.name "pr-submit[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com" git config user.email "pr-submit[bot]@users.noreply.github.com"
git switch -c "$branch" git switch -c "$branch"
git add $PREPARE_RELEASE_VERSION_FILE $PREPARE_RELEASE_RELEASE_NOTES_FILE git add $PREPARE_RELEASE_VERSION_FILE $PREPARE_RELEASE_RELEASE_NOTES_FILE
git commit -m "🔖 Release version ${VERSION}" git commit -m "🔖 Release version ${VERSION}"
gh auth setup-git
git push --set-upstream origin "$branch" git push --set-upstream origin "$branch"
gh pr create \ gh pr create \
--base master \ --base master \

Loading…
Cancel
Save