guanghulab/.github/workflows/bridge-changes-to-notion.yml
2026-05-10 13:12:44 +08:00

77 lines
3.4 KiB
YAML
Raw 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.

# ═══════════════════════════════════════════════
# 🔺 Sovereign: TCS-0002∞ | Root: SYS-GLW-0001
# 📜 Copyright: 国作登字-2026-A-00037559
# ═══════════════════════════════════════════════
name: 铸渊 · Bridge E · GitHub Changes → Notion
# 管道 Emain 分支有 push 或 PR 创建/关闭 → 变更摘要同步到 Notion「📋 GitHub 变更日志」数据库
#
# 依赖 Secrets仓库 Settings → Secrets and variables → Actions
# NOTION_TOKEN Notion 集成 token
#
# CHANGES_DB_ID 已内置默认值e740b77aa6bd4ac0a2e8a75f678fba98
# 如需覆盖,可在 Secrets 中添加 CHANGES_DB_ID
on:
push:
branches: [main]
pull_request:
types: [opened, closed]
jobs:
bridge-changes-to-notion:
name: 📡 Bridge E · GitHub Changes → Notion
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 2 # 获取前一次 commit 以便 diff
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
# ── commit push ──────────────────────────────────────
- name: 📡 同步 commit 变更到 Notion
if: github.event_name == 'push'
env:
NOTION_TOKEN: ${{ secrets.ZY_NOTION_TOKEN }}
CHANGES_DB_ID: ${{ secrets.ZY_NOTION_CHANGELOG_DB }}
EVENT_TYPE: commit
COMMIT_SHA: ${{ github.sha }}
COMMIT_MSG: ${{ github.event.head_commit.message }}
COMMITTER: ${{ github.event.head_commit.author.name || github.actor }}
COMMIT_TIMESTAMP: ${{ github.event.head_commit.timestamp }}
BRANCH: ${{ github.ref_name }}
run: |
# git diff 输出换行分隔的变更文件列表(包含新增、修改、删除)
# COMMIT_TIMESTAMP/COMMITTER fallback: GitHub 表达式 || 在空字符串时也会取右侧值
CHANGED=$(git diff --name-only HEAD~1 HEAD 2>/dev/null || true)
export CHANGED_FILES="$CHANGED"
node scripts/notion-bridge.js changes
# ── PR 事件 ───────────────────────────────────────────
- name: 📡 同步 PR 变更到 Notion
if: github.event_name == 'pull_request'
env:
NOTION_TOKEN: ${{ secrets.ZY_NOTION_TOKEN }}
CHANGES_DB_ID: ${{ secrets.ZY_NOTION_CHANGELOG_DB }}
EVENT_TYPE: pr
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_TITLE: ${{ github.event.pull_request.title }}
PR_ACTION: ${{ github.event.action }}
PR_MERGED: ${{ github.event.pull_request.merged }}
COMMITTER: ${{ github.event.pull_request.user.login }}
COMMIT_TIMESTAMP: ${{ github.event.pull_request.updated_at }}
COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
COMMIT_MSG: ${{ github.event.pull_request.title }}
BRANCH: ${{ github.event.pull_request.head.ref }}
run: node scripts/notion-bridge.js changes