Skip to content

Commit dd980fa

Browse files
committed
feat: addint the option to use github app auth
1 parent ce2eece commit dd980fa

1 file changed

Lines changed: 31 additions & 3 deletions

File tree

.github/workflows/prepare.yml

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ on:
44
workflow_call:
55
secrets:
66
RELEASE_TOKEN:
7-
required: true
7+
required: false
8+
APP_ID:
9+
required: false
10+
APP_PRIVATE_KEY:
11+
required: false
812
inputs:
913
default_version:
1014
description: 'Default version if no input is provided'
@@ -63,12 +67,36 @@ jobs:
6367
is_release: ${{ steps.version.outputs.is_release }}
6468
semver: ${{ steps.version.outputs.semver }}
6569
steps:
70+
- name: Validate auth configuration
71+
id: auth-check
72+
env:
73+
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
74+
APP_ID: ${{ secrets.APP_ID }}
75+
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
76+
run: |
77+
if [ -n "${APP_ID}" ] && [ -n "${APP_PRIVATE_KEY}" ]; then
78+
echo "use_app_auth=true" >> $GITHUB_OUTPUT
79+
elif [ -n "${RELEASE_TOKEN}" ]; then
80+
echo "use_app_auth=false" >> $GITHUB_OUTPUT
81+
else
82+
echo "::error::Either RELEASE_TOKEN or both APP_ID and APP_PRIVATE_KEY must be set"
83+
exit 1
84+
fi
85+
86+
- name: Generate a token
87+
id: generate-token
88+
if: steps.auth-check.outputs.use_app_auth == 'true'
89+
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
90+
with:
91+
client-id: ${{ secrets.APP_ID }}
92+
private-key: ${{ secrets.APP_PRIVATE_KEY }}
93+
6694
- name: Checkout repository
6795
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6896
with:
6997
ref: ${{ inputs.ref || github.ref }}
7098
# token: ${{ secrets.GITHUB_TOKEN }}
71-
token: ${{ secrets.RELEASE_TOKEN }}
99+
token: ${{ steps.generate-token.outputs.token || secrets.RELEASE_TOKEN }}
72100
fetch-depth: 0
73101

74102
- name: Setup Node.js
@@ -87,7 +115,7 @@ jobs:
87115
# env:
88116
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
89117
env:
90-
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
118+
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token || secrets.RELEASE_TOKEN }}
91119

92120
- name: Get version info
93121
id: version

0 commit comments

Comments
 (0)