chore(deps): update machine-learning #1044
Workflow file for this run
This file contains hidden or 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
| name: Auto-close PRs | |
| on: | |
| pull_request_target: # zizmor: ignore[dangerous-triggers] | |
| types: [opened, edited, labeled] | |
| permissions: {} | |
| jobs: | |
| parse_template: | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.action != 'labeled' && github.event.pull_request.head.repo.fork == true }} | |
| permissions: | |
| contents: read | |
| outputs: | |
| uses_template: ${{ steps.check.outputs.uses_template }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| sparse-checkout: .github/pull_request_template.md | |
| sparse-checkout-cone-mode: false | |
| persist-credentials: false | |
| - name: Check required sections | |
| id: check | |
| env: | |
| BODY: ${{ github.event.pull_request.body }} | |
| run: | | |
| OK=true | |
| while IFS= read -r header; do | |
| printf '%s\n' "$BODY" | grep -qF "$header" || OK=false | |
| done < <(sed '/<!--/,/-->/d' .github/pull_request_template.md | grep "^## ") | |
| echo "uses_template=$OK" | tee --append "$GITHUB_OUTPUT" | |
| close_template: | |
| runs-on: ubuntu-latest | |
| needs: parse_template | |
| if: >- | |
| ${{ | |
| needs.parse_template.outputs.uses_template == 'false' | |
| && github.event.pull_request.state != 'closed' | |
| && !contains(github.event.pull_request.labels.*.name, 'auto-closed:template') | |
| }} | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - name: Comment and close | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| NODE_ID: ${{ github.event.pull_request.node_id }} | |
| run: | | |
| gh api graphql \ | |
| -f prId="$NODE_ID" \ | |
| -f body="This PR has been automatically closed as the description doesn't follow our template. After you edit it to match the template, the PR will automatically be reopened." \ | |
| -f query=' | |
| mutation CommentAndClosePR($prId: ID!, $body: String!) { | |
| addComment(input: { | |
| subjectId: $prId, | |
| body: $body | |
| }) { | |
| __typename | |
| } | |
| closePullRequest(input: { | |
| pullRequestId: $prId | |
| }) { | |
| __typename | |
| } | |
| }' | |
| - name: Add label | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| run: gh pr edit "$PR_NUMBER" --repo "${{ github.repository }}" --add-label "auto-closed:template" | |
| close_llm: | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.action == 'labeled' && github.event.label.name == 'auto-closed:llm' }} | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - name: Comment and close | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| NODE_ID: ${{ github.event.pull_request.node_id }} | |
| run: | | |
| gh api graphql \ | |
| -f prId="$NODE_ID" \ | |
| -f body="Thank you for your interest in contributing to Immich! Unfortunately this PR looks like it was generated using an LLM. As noted in our [CONTRIBUTING.md](https://github.com/immich-app/immich/blob/main/CONTRIBUTING.md#use-of-generative-ai), we request that you don't use LLMs to generate PRs as those are not a good use of maintainer time." \ | |
| -f query=' | |
| mutation CommentAndClosePR($prId: ID!, $body: String!) { | |
| addComment(input: { | |
| subjectId: $prId, | |
| body: $body | |
| }) { | |
| __typename | |
| } | |
| closePullRequest(input: { | |
| pullRequestId: $prId | |
| }) { | |
| __typename | |
| } | |
| }' | |
| reopen: | |
| runs-on: ubuntu-latest | |
| needs: parse_template | |
| if: >- | |
| ${{ | |
| needs.parse_template.outputs.uses_template == 'true' | |
| && github.event.pull_request.state == 'closed' | |
| && contains(github.event.pull_request.labels.*.name, 'auto-closed:template') | |
| }} | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - name: Remove template label | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| run: gh pr edit "$PR_NUMBER" --repo "${{ github.repository }}" --remove-label "auto-closed:template" || true | |
| - name: Check for remaining auto-closed labels | |
| id: check_labels | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| run: | | |
| REMAINING=$(gh pr view "$PR_NUMBER" --repo "${{ github.repository }}" --json labels \ | |
| --jq '[.labels[].name | select(startswith("auto-closed:"))] | length') | |
| echo "remaining=$REMAINING" | tee --append "$GITHUB_OUTPUT" | |
| - name: Reopen PR | |
| if: ${{ steps.check_labels.outputs.remaining == '0' }} | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| NODE_ID: ${{ github.event.pull_request.node_id }} | |
| run: | | |
| gh api graphql \ | |
| -f prId="$NODE_ID" \ | |
| -f query=' | |
| mutation ReopenPR($prId: ID!) { | |
| reopenPullRequest(input: { | |
| pullRequestId: $prId | |
| }) { | |
| __typename | |
| } | |
| }' |