[pull] main from huggingface:main #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Adapted from https://github.com/huggingface/diffusers/blob/main/.github/workflows/pr_style_bot.yml | |
name: PR Style Bot | |
on: | |
issue_comment: | |
types: [created] | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
run-style-bot: | |
if: > | |
contains(github.event.comment.body, '@bot /style') && | |
github.event.issue.pull_request != null | |
runs-on: ubuntu-latest | |
steps: | |
- name: Extract PR details | |
id: pr_info | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const prNumber = context.payload.issue.number; | |
const { data: pr } = await github.rest.pulls.get({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: prNumber | |
}); | |
// We capture both the branch ref and the "full_name" of the head repo | |
// so that we can check out the correct repository & branch (including forks). | |
core.setOutput("prNumber", prNumber); | |
core.setOutput("headRef", pr.head.ref); | |
core.setOutput("headRepoFullName", pr.head.repo.full_name); | |
- name: Check out PR branch | |
uses: actions/checkout@v4 | |
env: | |
HEADREPOFULLNAME: ${{ steps.pr_info.outputs.headRepoFullName }} | |
HEADREF: ${{ steps.pr_info.outputs.headRef }} | |
with: | |
persist-credentials: false | |
# Instead of checking out the base repo, use the contributor's repo name | |
repository: ${{ env.HEADREPOFULLNAME }} | |
ref: ${{ env.HEADREF }} | |
# You may need fetch-depth: 0 for being able to push | |
fetch-depth: 0 | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Debug | |
env: | |
HEADREPOFULLNAME: ${{ steps.pr_info.outputs.headRepoFullName }} | |
HEADREF: ${{ steps.pr_info.outputs.headRef }} | |
PRNUMBER: ${{ steps.pr_info.outputs.prNumber }} | |
run: | | |
echo "PR number: $PRNUMBER" | |
echo "Head Ref: $HEADREF" | |
echo "Head Repo Full Name: $HEADREPOFULLNAME" | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
- name: Get Ruff Version from pre-commit-config.yaml | |
id: get-ruff-version | |
run: | | |
RUFF_VERSION=$(awk '/repo: https:\/\/github.com\/astral-sh\/ruff-pre-commit/{flag=1;next}/rev:/{if(flag){print $2;exit}}' .pre-commit-config.yaml) | |
echo "ruff_version=${RUFF_VERSION}" >> $GITHUB_OUTPUT | |
- name: Install Ruff | |
env: | |
RUFF_VERSION: ${{ steps.get-ruff-version.outputs.ruff_version }} | |
run: python -m pip install "ruff==${RUFF_VERSION}" | |
- name: Ruff check | |
run: ruff check --fix | |
- name: Ruff format | |
run: ruff format | |
- name: Commit and push changes | |
id: commit_and_push | |
env: | |
HEADREPOFULLNAME: ${{ steps.pr_info.outputs.headRepoFullName }} | |
HEADREF: ${{ steps.pr_info.outputs.headRef }} | |
PRNUMBER: ${{ steps.pr_info.outputs.prNumber }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
echo "HEADREPOFULLNAME: $HEADREPOFULLNAME, HEADREF: $HEADREF" | |
# Configure git with the Actions bot user | |
git config user.name "github-actions[bot]" | |
git config user.email "github-actions[bot]@users.noreply.github.com" | |
# Make sure your 'origin' remote is set to the contributor's fork | |
git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/$HEADREPOFULLNAME.git" | |
# If there are changes after running style/quality, commit them | |
if [ -n "$(git status --porcelain)" ]; then | |
git add . | |
git commit -m "Apply style fixes" | |
# Push to the original contributor's forked branch | |
git push origin HEAD:$HEADREF | |
echo "changes_pushed=true" >> $GITHUB_OUTPUT | |
else | |
echo "No changes to commit." | |
echo "changes_pushed=false" >> $GITHUB_OUTPUT | |
fi | |
- name: Comment on PR with workflow run link | |
if: steps.commit_and_push.outputs.changes_pushed == 'true' | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const prNumber = parseInt(process.env.prNumber, 10); | |
const runUrl = `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}` | |
await github.rest.issues.createComment({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
issue_number: prNumber, | |
body: `Style fixes have been applied. [View the workflow run here](${runUrl}).` | |
}); | |
env: | |
prNumber: ${{ steps.pr_info.outputs.prNumber }} |