以前、以下のエントリで実施したことと同等のことですが、
reviewdogを使った方が楽にできそうなので、試したメモです。

pre-commitの出力に対してProblem Matchersを適用して、GitHubのPullRequestにAnnotationする
https://takemikami.com/2024/1215-precommit-github-problemmatcher.html

reviewdog | GitHub
https://github.com/reviewdog/reviewdog

以下ファイルを作成して、GitHubにcommit/PullRequest作成で、
GitHubのUIにAnnotationが表示されることが確認できると思います。

main.py

import sys
def main():
    pass

pyproject.toml

[tool.flake8]
exclude = [".venv"]

.pre-commit-config.yaml

repos:
  - repo: https://github.com/csachs/pyproject-flake8
    rev: v7.0.0
    hooks:
      - id: pyproject-flake8
	    log_file: /tmp/pre-commit-log-pyproject-flake8

.github/workflows/ci.yaml

name: CI
on: pull_request
jobs:
  pre-commit-run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: reviewdog/action-setup@e04ffabe3898a0af8d0fb1af00c188831c4b5893
      - uses: pre-commit/action@v3.0.1
      - name: reviewdog
        env:
          REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        if: always()
        run: |
          cat /tmp/pre-commit-log-pyproject-flake8 \
            | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" \
            | reviewdog -f=flake8 -reporter=github-pr-annotations

元エントリと違う部分は、
.github/workflows/ci.yamlで、
自前で定義したProblemMatchersでなく、reviewdogを使っている部分です。
だいぶスッキリとしたので、楽に導入できそうですね。

エスケープカラーシーケンスの除き方は、以下を参考にさせて頂きました。
ありがとうございます。

逆引きUNIXコマンド/エスケープカラーシーケンスをテキストから除く方法
https://linux.just4fun.biz/?%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%82%AB%E3%83%A9%E3%83%BC%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%82%92%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%8B%E3%82%89%E9%99%A4%E3%81%8F%E6%96%B9%E6%B3%95

以上。