guanghulab/.github/archived-workflows/check-token-health.yml
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

75 lines
2.7 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 🛡️ Token 健康检查(每日安全网)
#
# 守护: PER-ZY001 铸渊 (Zhuyuan)
# 系统: SYS-GLW-0001
# 主控: TCS-0002∞ (冰朔)
#
# CRON: 每天 12:15 CST (04:15 UTC) — 避开日休眠 04:00-04:10 CST
# 功能: 只检查不刷新,即将过期才紧急刷新
#
# 生命线任务:天眼休眠期内豁免执行
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
name: 🛡️ Token 健康检查(每日安全网)
on:
schedule:
# 每天 12:15 CST (04:15 UTC) — 在日休眠 04:10 CST 之后
- cron: '15 4 * * *'
workflow_dispatch:
permissions:
contents: write
actions: write
jobs:
check-tokens:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: 🛡️ 检查 Token 健康状态
id: health_check
run: |
node -e "
const fs = require('fs');
const reg = JSON.parse(fs.readFileSync('config/gdrive-tokens.json', 'utf8'));
let urgent = false;
for (const t of reg.tokens) {
const hoursLeft = (new Date(t.expires_at) - new Date()) / 3600000;
console.log(t.user_name + ': ' + hoursLeft.toFixed(1) + 'h remaining');
if (hoursLeft < 48) {
console.log(' ⚠️ URGENT: < 48h, triggering emergency renewal');
urgent = true;
}
}
if (urgent) process.exit(1);
console.log('✅ All tokens healthy.');
"
- name: ⚡ 紧急刷新(仅在即将过期时)
if: failure()
env:
GDRIVE_CLIENT_ID: ${{ secrets.GDRIVE_CLIENT_ID }}
GDRIVE_CLIENT_SECRET: ${{ secrets.GDRIVE_CLIENT_SECRET }}
GDRIVE_REFRESH_TOKEN: ${{ secrets.GDRIVE_REFRESH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FORCE_RENEW: 'true'
# 新增开发者 Token每次加人时追加
# GDRIVE_REFRESH_TOKEN_DEV001: ${{ secrets.GDRIVE_REFRESH_TOKEN_DEV001 }}
# GDRIVE_REFRESH_TOKEN_DEV002: ${{ secrets.GDRIVE_REFRESH_TOKEN_DEV002 }}
run: |
npm install tweetsodium
node scripts/gdrive/renew-tokens.js
- name: 📋 提交
if: always()
run: |
git config user.name "zhuyuan-bot"
git config user.email "zhuyuan@guanghulab.com"
git add config/gdrive-tokens.json
git add -f grid-db/logs/token-alert.json 2>/dev/null || true
git diff --cached --quiet || git commit -m "auto: Token health check $(date -u +%Y-%m-%dT%H:%M:%SZ) [skip ci]"
git push