From 07a29eae80cef32895867cb641b1f64c6857cace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Burwash?= <35510512+SBurwash@users.noreply.github.com> Date: Thu, 7 Mar 2024 13:30:08 -0500 Subject: [PATCH] DE-2912 Maintenance - Implemente dependabot as package manager - Implement Automatic PR merging & dependency management in Wrike (#18) * Removed renovate * Added dependabot * Updated --- .github/dependabot.yml | 56 ++++++++++++++++++++ .github/workflows/dependabot_auto_merge.yml | 57 +++++++++++++++++++++ renovate.json | 6 --- 3 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/dependabot_auto_merge.yml delete mode 100644 renovate.json diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..02f7042 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,56 @@ +version: 2 + +updates: + - package-ecosystem: pip + open-pull-requests-limit: 5 + directory: / + registries: "*" + schedule: + interval: daily + time: "10:00" + timezone: America/Montreal + reviewers: + - potloc/data-engineering + assignees: + - potloc/data-engineering + labels: + - python + - dependencies + groups: # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups + minor-updates: + update-types: + - minor + patterns: + - "*" + major-updates: + update-types: + - major + patterns: + - "*" + rebase-strategy: auto + + - package-ecosystem: github-actions + open-pull-requests-limit: 5 + directory: / + schedule: + interval: daily + time: "10:00" + timezone: America/Montreal + reviewers: + - potloc/data-engineering + assignees: + - potloc/data-engineering + labels: + - github-actions + - dependencies + groups: + minor-updates: + update-types: + - minor + patterns: + - "*" + major-updates: + update-types: + - major + patterns: + - "*" \ No newline at end of file diff --git a/.github/workflows/dependabot_auto_merge.yml b/.github/workflows/dependabot_auto_merge.yml new file mode 100644 index 0000000..0f08b50 --- /dev/null +++ b/.github/workflows/dependabot_auto_merge.yml @@ -0,0 +1,57 @@ +name: Dependabot +on: + pull_request: + types: + - opened + - reopened + - synchronize + +permissions: + contents: write + pull-requests: write + repository-projects: read + +jobs: + dependabot: + name: Enable Auto-Merge and Approve + if: ${{ github.actor == 'dependabot[bot]' && !contains(github.event.pull_request.labels.*.name, 'automerge') && !contains(github.head_ref, '/terraform/') }} + runs-on: ubuntu-latest + steps: + - name: Fetch Dependabot Metadata + id: metadata + uses: dependabot/fetch-metadata@v1 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + - name: GitHub Actions - Patch or Minor + if: ${{ contains(github.head_ref, '/github_actions/') && (steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch') }} + shell: bash --noprofile --norc -xeo pipefail {0} + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr review "$PR_URL" --approve + gh pr merge "$PR_URL" --auto --squash + gh pr edit "$PR_URL" --add-label 'automerge' + + - name: Development - Patch or Minor + if: ${{ !contains(github.head_ref, '/github_actions/') && (steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch') && steps.metadata.outputs.dependency-type == 'direct:development' }} + shell: bash --noprofile --norc -xeo pipefail {0} + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr review "$PR_URL" --approve + gh pr merge "$PR_URL" --auto --squash + gh pr edit "$PR_URL" --add-label 'automerge' + + - name: Production - Patch + if: ${{ !contains(github.head_ref, '/github_actions/') && steps.metadata.outputs.update-type == 'version-update:semver-patch' && steps.metadata.outputs.dependency-type == 'direct:production' }} + shell: bash --noprofile --norc -xeo pipefail {0} + env: + PR_URL: ${{ github.event.pull_request.html_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr review "$PR_URL" --approve + gh pr merge "$PR_URL" --auto --squash + gh pr edit "$PR_URL" --add-label 'automerge' diff --git a/renovate.json b/renovate.json deleted file mode 100644 index 39a2b6e..0000000 --- a/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -}