From bcec4bea97cb2e3d5a178066d7e0397161c11926 Mon Sep 17 00:00:00 2001 From: nickevansuk <2616208+nickevansuk@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:53:07 +0100 Subject: [PATCH] feat: Dependabot auto-update --- .github/dependabot.yml | 23 +++++++ .github/workflows/dependabot-automerge.yml | 25 ++++++++ .github/workflows/eslint-auto-update.yml | 71 ++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/dependabot-automerge.yml create mode 100644 .github/workflows/eslint-auto-update.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..f4f9c9eb --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + day: "wednesday" + time: "16:00" + timezone: "Europe/London" + groups: + development-dependencies: + dependency-type: "development" + exclude-patterns: + - "eslint*" + - "jasmine*" + eslint: + dependency-type: "development" + patterns: + - "eslint*" + jasmine: + dependency-type: "development" + patterns: + - "jasmine*" diff --git a/.github/workflows/dependabot-automerge.yml b/.github/workflows/dependabot-automerge.yml new file mode 100644 index 00000000..3e04dc11 --- /dev/null +++ b/.github/workflows/dependabot-automerge.yml @@ -0,0 +1,25 @@ +name: Dependabot and CI auto-merge +on: pull_request + +permissions: + contents: write + pull-requests: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v1 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + - name: Enable auto-merge for Dependabot PRs + run: gh pr merge "$PR_URL" --auto --body "" --squash + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + - name: Auto-approve Dependabot PRs + uses: hmarr/auto-approve-action@v3 + diff --git a/.github/workflows/eslint-auto-update.yml b/.github/workflows/eslint-auto-update.yml new file mode 100644 index 00000000..f0f786c1 --- /dev/null +++ b/.github/workflows/eslint-auto-update.yml @@ -0,0 +1,71 @@ +name: ESLint Fix +on: pull_request + +permissions: + contents: write + pull-requests: write + +jobs: + dependabot-metadata: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + outputs: + dependency-group: ${{ steps.metadata.outputs.dependency-group }} + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v1 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + create-pr: + runs-on: ubuntu-latest + needs: dependabot-metadata + if: ${{needs.dependabot-metadata.outputs.dependency-group == 'eslint' }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.ref }} + - name: Use Node.js 14.x + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Install + run: npm ci + - name: Lint Fix + run: npm run lint-fix + - name: git reset to include the version bumps in the PR + run: git reset HEAD~1 + - name: Create Pull Request + id: cpr + uses: peter-evans/create-pull-request@v5 + with: + path: ./ + token: ${{ secrets.DEPENDABOT_PUBLIC_REPO_ACCESS_TOKEN }} + commit-message: ESLint --fix + committer: openactive-bot + author: openactive-bot + signoff: false + branch: ci/eslint + base: master + delete-branch: true + title: 'ESLint fix' + body: | + Lint fixes based on the latest version of ESLint. + labels: | + automated pr + draft: false + - name: Auto-approve PR + uses: hmarr/auto-approve-action@v3 + with: + pull-request-number: ${{ steps.cpr.outputs.pull-request-number }} + - name: Enable auto-merge for Dependabot PRs + run: gh pr merge "$PR_URL" --auto --body "" --squash + env: + PR_URL: ${{ steps.cpr.outputs.pull-request-url }} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + - name: Check outputs + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"