From 1ffc99e17c46ac213ea0e80a9e451cd29548d038 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 22:54:11 +0000 Subject: [PATCH 1/3] feat: add automatic major version tag management - Add workflow to automatically update major version tags (v1, v2, etc.) when semantic version tags are pushed - Uses nowactions/update-majorver@v1 action to move major tags to latest patch releases - Triggers on semantic version tag pushes (v*.*.* pattern) - Includes proper permissions for tag management operations Requested by @aaronsteers Co-Authored-By: AJ Steers --- .github/workflows/update-major-tags.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/update-major-tags.yml diff --git a/.github/workflows/update-major-tags.yml b/.github/workflows/update-major-tags.yml new file mode 100644 index 0000000..cfc902f --- /dev/null +++ b/.github/workflows/update-major-tags.yml @@ -0,0 +1,22 @@ +name: Update Major Version Tags + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +permissions: + contents: write + +jobs: + update-major-tags: + name: Update Major Tags + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Update major tag + uses: nowactions/update-majorver@v1 From 7461b94368f4dfaca1ef8afa5605a973f2423826 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 22:55:23 +0000 Subject: [PATCH 2/3] fix: escape dots in semantic version regex pattern - Change trigger pattern from 'v[0-9]+.[0-9]+.[0-9]+' to 'v[0-9]+\.[0-9]+\.[0-9]+' - Ensures the workflow only triggers on proper semantic version tags - Addresses Copilot feedback on PR #14 Co-Authored-By: AJ Steers --- .github/workflows/update-major-tags.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-major-tags.yml b/.github/workflows/update-major-tags.yml index cfc902f..5a460e7 100644 --- a/.github/workflows/update-major-tags.yml +++ b/.github/workflows/update-major-tags.yml @@ -3,7 +3,7 @@ name: Update Major Version Tags on: push: tags: - - 'v[0-9]+.[0-9]+.[0-9]+' + - 'v[0-9]+\.[0-9]+\.[0-9]+' permissions: contents: write From 74d075367d17809fd55cf843b17be3ca4c494931 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 23:05:10 +0000 Subject: [PATCH 3/3] feat: implement complete automated release workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add release-drafter workflow that creates/updates release drafts on main merges - Add release-drafter.yml configuration with semantic versioning support - Modify major tag management to trigger on release publication events instead of direct tag pushes - Follow PyAirbyte's proven patterns but simplified (no Python package publishing) This creates a complete automated release workflow: 1. PRs merged to main → Release draft updated automatically 2. Maintainer publishes the release → Major version tags updated automatically Requested by @aaronsteers Co-Authored-By: AJ Steers --- .github/release-drafter.yml | 41 +++++++++++++++++++++++++ .github/workflows/release-drafter.yml | 24 +++++++++++++++ .github/workflows/update-major-tags.yml | 5 ++- 3 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/release-drafter.yml diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..722ffc5 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,41 @@ +name-template: 'v$RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' +categories: + - title: '🚀 Features' + labels: + - 'feature' + - 'enhancement' + - title: '🐛 Bug Fixes' + labels: + - 'fix' + - 'bugfix' + - 'bug' + - title: '🧰 Maintenance' + label: 'chore' +change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +change-title-escapes: '\<*_&' +version-resolver: + major: + labels: + - 'major' + minor: + labels: + - 'minor' + patch: + labels: + - 'patch' + default: patch +template: | + ## Changes + + $CHANGES +autolabeler: + - label: 'chore' + title: + - '/chore\:/i' + - label: 'bug' + title: + - '/fix\:/i' + - label: 'enhancement' + title: + - '/feature/i' diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 0000000..6e999e7 --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,24 @@ +name: Release Drafter + +on: + push: + branches: + - main + +permissions: + contents: read + +jobs: + update_release_draft: + permissions: + contents: write + pull-requests: read + runs-on: ubuntu-latest + steps: + # Drafts the next Release notes as Pull Requests are merged into "main" + - uses: release-drafter/release-drafter@v6 + with: + config-name: release-drafter.yml + disable-autolabeler: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update-major-tags.yml b/.github/workflows/update-major-tags.yml index 5a460e7..1253c3a 100644 --- a/.github/workflows/update-major-tags.yml +++ b/.github/workflows/update-major-tags.yml @@ -1,9 +1,8 @@ name: Update Major Version Tags on: - push: - tags: - - 'v[0-9]+\.[0-9]+\.[0-9]+' + release: + types: [published] permissions: contents: write