From d456054b2d4c70abf8ca22503178da897485d82a Mon Sep 17 00:00:00 2001 From: Brion Date: Fri, 4 Sep 2026 16:08:00 +0530 Subject: [PATCH] Add ThunderID provider helper for Better Auth's Generic OAuth plugin Introduces @thunderid/better-auth, a community provider helper that returns a typed GenericOAuthConfig for a ThunderID issuer to use with Better Auth's generic-oauth plugin. All OAuth 2.0 / OIDC handling is performed by Better Auth itself, so there is no ThunderID SDK dependency or protocol logic to keep in sync. Also wires the package into the release workflow (Level 0, alongside @thunderid/javascript, since it has no @thunderid/* dependency). Signed-off-by: Brion --- .github/workflows/release.yml | 71 +++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a8c1e1d1..2bf94045 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,6 +24,12 @@ on: type: boolean default: false + sdk_better_auth: + description: '@thunderid/better-auth' + required: false + type: boolean + default: false + sdk_browser: description: '@thunderid/browser' required: false @@ -192,6 +198,71 @@ jobs: --title "ThunderID JavaScript SDK v${{ steps.bump.outputs.version }}" \ --generate-notes + release-better-auth: + name: 🔑 Release @thunderid/better-auth + needs: [validate] + if: needs.validate.result == 'success' && github.event.inputs.sdk_better_auth == 'true' + runs-on: ubuntu-latest + steps: + - name: 📥 Checkout Code + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + token: ${{ secrets.THUNDERID_AUTOMATION_BOT }} + + - name: 📦 Set up pnpm + uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4.3.0 + with: + version: latest + + - name: ⚙️ Set up Node.js + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: ${{ env.NODE_VERSION }} + registry-url: 'https://registry.npmjs.org' + cache: 'pnpm' + + - name: 📦 Install Dependencies + run: pnpm install --frozen-lockfile + + - name: 🏷️ Bump Version + id: bump + run: | + cd packages/better-auth + pnpm version ${{ github.event.inputs.bump_type }} --no-git-tag-version + echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT + + - name: 🔨 Build + run: pnpm turbo run build --filter=@thunderid/better-auth + + - name: 📤 Commit, Tag & Push + run: | + git config user.name "${{ env.RELEASE_GIT_USER_NAME }}" + git config user.email "${{ env.RELEASE_GIT_USER_EMAIL }}" + git add packages/better-auth/package.json + git diff --cached --quiet || git commit -m "[Release] @thunderid/better-auth@${{ steps.bump.outputs.version }}" + for i in $(seq 1 5); do + git pull --rebase origin ${{ github.ref_name }} + git push origin HEAD:${{ github.ref_name }} && break + [ "$i" -eq 5 ] && exit 1 + sleep $((i * 3)) + done + git tag "sdk/better-auth/v${{ steps.bump.outputs.version }}" + git push origin "sdk/better-auth/v${{ steps.bump.outputs.version }}" + + - name: 📦 Publish to npm + run: pnpm publish --no-git-checks --access public --provenance + working-directory: packages/better-auth + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: 🚀 Create GitHub Release + env: + GH_TOKEN: ${{ secrets.THUNDERID_AUTOMATION_BOT }} + run: | + gh release create "sdk/better-auth/v${{ steps.bump.outputs.version }}" \ + --title "ThunderID Better Auth SDK v${{ steps.bump.outputs.version }}" \ + --generate-notes + # ── Level 1: depends on javascript ───────────────────────────────────────── release-browser: name: 🌐 Release @thunderid/browser