| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- # Exceptions. See /LICENSE for license information.
- # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- # Create PR suggestions based on problems found by pre-commit action.
- name: pre-commit-suggestions
- # This action is run whenever the `pre-commit` action finishes. Because the
- # `pre-commit` action is an unprivileged action running on (for example) the
- # `pull_request` event, it's run without write permissions to the repository, so
- # we use a separate privileged `workflow_run` action here to pick up its results
- # and convert them into suggestion comments.
- #
- # This action is only run from the workflow file on the trunk branch. Changes to
- # this file will not take effect until they are merged to trunk.
- on:
- workflow_run:
- workflows: [pre-commit]
- types:
- - completed
- permissions:
- pull-requests: write
- jobs:
- pull-request-suggestions:
- # Only generate suggestions if pre-commit for a PR failed.
- if: |
- github.event.workflow_run.conclusion == 'failure' &&
- github.event.workflow_run.event == 'pull_request'
- runs-on: ubuntu-latest
- steps:
- - uses: reviewdog/action-setup@v1
- with:
- reviewdog_version: latest
- - uses: actions/checkout@v4
- - name: Download pre-commit output
- uses: actions/download-artifact@v4
- with:
- name: pre-commit output
- github-token: ${{ secrets.GITHUB_TOKEN }}
- run-id: ${{ github.event.workflow_run.id }}
- # Use https://github.com/reviewdog/reviewdog to create PR suggestions
- # matching the diff that pre-commit created.
- - name: Create suggestions
- env:
- REVIEWDOG_GITHUB_API_TOKEN:
- ${{ secrets.CARBON_INFRA_BOT_FOR_REVIEWDOG }}
- run: |
- cat ./diff | \
- GITHUB_EVENT_PATH=./event \
- reviewdog -f=diff -f.diff.strip=1 -reporter=github-pr-review
|