Merge pull request #178 from qinfendebingshuo/copilot/fix-rclone-oauth-token-bug

fix: rclone OAuth2 token JSON — use Node.js instead of shell echo
This commit is contained in:
冰朔 2026-03-24 19:36:35 +08:00 committed by GitHub
commit fbdc8dae8a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 20 additions and 9 deletions

View File

@ -49,16 +49,27 @@ jobs:
echo "✅ OAuth2 credentials validated"
# Use node to generate token JSON — avoids shell escaping issues with special characters
TOKEN_JSON=$(node -e "
const token = {
access_token: '',
token_type: 'Bearer',
refresh_token: process.env.GDRIVE_REFRESH_TOKEN,
expiry: '2000-01-01T00:00:00Z'
};
process.stdout.write(JSON.stringify(token));
")
mkdir -p "${HOME}/.config/rclone"
{
echo "[gdrive]"
echo "type = drive"
echo "scope = drive"
echo "client_id = ${GDRIVE_CLIENT_ID}"
echo "client_secret = ${GDRIVE_CLIENT_SECRET}"
echo "token = {\"access_token\":\"\",\"token_type\":\"Bearer\",\"refresh_token\":\"${GDRIVE_REFRESH_TOKEN}\",\"expiry\":\"2000-01-01T00:00:00Z\"}"
echo "root_folder_id = 1fqWdLPaZkUZYt4OT_h3fJQHnd-q5QN3G"
} > "${HOME}/.config/rclone/rclone.conf"
cat > "${HOME}/.config/rclone/rclone.conf" <<RCLONE_EOF
[gdrive]
type = drive
scope = drive
client_id = ${GDRIVE_CLIENT_ID}
client_secret = ${GDRIVE_CLIENT_SECRET}
token = ${TOKEN_JSON}
root_folder_id = 1fqWdLPaZkUZYt4OT_h3fJQHnd-q5QN3G
RCLONE_EOF
chmod 600 "${HOME}/.config/rclone/rclone.conf"
echo "✅ rclone configured with OAuth2"