67 lines
2.9 KiB
YAML
67 lines
2.9 KiB
YAML
name: 铸渊 · Bridge E · GitHub Changes → Notion
|
||
|
||
# 管道 E:main 分支有 push 或 PR 创建/关闭 → 变更摘要同步到 Notion 变更日志数据库
|
||
# 依赖 Secrets:
|
||
# NOTION_TOKEN Notion 集成 token(见仓库 Settings → Secrets → Actions)
|
||
# NOTION_CHANGES_DB_ID 「GitHub 变更日志」Notion 数据库 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.NOTION_TOKEN }}
|
||
NOTION_CHANGES_DB_ID: ${{ secrets.NOTION_CHANGES_DB_ID }}
|
||
EVENT_TYPE: commit
|
||
COMMIT_SHA: ${{ github.sha }}
|
||
COMMIT_MSG: ${{ github.event.head_commit.message }}
|
||
COMMITTER: ${{ github.event.head_commit.author.username || github.actor }}
|
||
COMMIT_TIMESTAMP: ${{ github.event.head_commit.timestamp }}
|
||
CHANGED_FILES: ${{ join(github.event.commits[0].added, ',') }}
|
||
run: |
|
||
# 从 git diff 提取完整变更文件列表(更完整)
|
||
CHANGED=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | tr '\n' ',' | sed 's/,$//')
|
||
export CHANGED_FILES="${CHANGED:-$CHANGED_FILES}"
|
||
node scripts/notion-bridge.js changes
|
||
|
||
# ── PR 分支 ───────────────────────────────────────────
|
||
- name: 📡 同步 PR 变更到 Notion
|
||
if: github.event_name == 'pull_request'
|
||
env:
|
||
NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }}
|
||
NOTION_CHANGES_DB_ID: ${{ secrets.NOTION_CHANGES_DB_ID }}
|
||
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 }}
|
||
run: node scripts/notion-bridge.js changes
|