name: Dedupe Dependabot PRs

on:
  push:
    branches: ['dependabot/**']

permissions:
  contents: write
  pull-requests: write
  repository-projects: write

jobs:
  dedupe:
    name: Dedupe Dependabot PRs
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Cache .yarn/cache
        uses: actions/cache@v3
        env:
          cache-name: yarn-cache
        with:
          path: .yarn/cache
          key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-${{ env.cache-name }}

      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16'

      - name: Enable Corepack
        run: corepack enable

      - name: Configure Git
        run: |
          git config user.name 'github-actions[bot]'
          git config user.email 'github-actions[bot]@users.noreply.github.com'

      - name: Detect working directory
        run: |
          echo "WORKING_DIRECTORY=$(git log -1 --pretty=%B | sed -n 's/.* in \/\(.*\)$/\1/p')" >> $GITHUB_ENV

      - name: Dedupe dependencies
        run: yarn dedupe
        working-directory: ${{ env.WORKING_DIRECTORY }}
        env:
          HUSKY: 0

      - name: Commit changes
        run: |
          git add .
          git commit -m 'Dedupe dependencies' || true
        working-directory: ${{ env.WORKING_DIRECTORY }}

      - name: Push changes
        run: git push
        working-directory: ${{ env.WORKING_DIRECTORY }}

Add action to dedupe Dependabot PRs
Add action to dedupe Dependabot PRs
