Skip to content

Upstream Sync

Upstream Sync #1

Workflow file for this run

name: Upstream Sync
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
# 检查是否为 fork 仓库
check-repository:
name: Check Repository Type
runs-on: ubuntu-latest
outputs:
is_fork: ${{ steps.check.outputs.is_fork }}
steps:
- id: check
run: |
if [ "${{ github.repository }}" != "ErlichLiu/DeepClaude" ]; then
echo "is_fork=true" >> $GITHUB_OUTPUT
else
echo "is_fork=false" >> $GITHUB_OUTPUT
fi
# 同步上游更改
sync:
needs: check-repository
if: needs.check-repository.outputs.is_fork == 'true'
name: Sync Latest From Upstream
runs-on: ubuntu-latest
steps:
# 标准签出
- name: Checkout target repo
uses: actions/checkout@v4
# 如果上游仓库有对.github/workflows/下的文件进行变更,则需要使用有workflow权限的token
# with:
# token: ${{ secrets.ACTION_TOKEN }}
# 获取分支名(区分 PR 和普通提交场景)
- name: Get branch name (merge)
if: github.event_name != 'pull_request'
shell: bash
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV
- name: Get branch name (pull request)
if: github.event_name == 'pull_request'
shell: bash
run: echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF} | tr / -)" >> $GITHUB_ENV
# 运行同步动作
- name: Sync upstream changes
id: sync
uses: aormsby/[email protected]
with:
upstream_sync_repo: ErlichLiu/DeepClaude
upstream_sync_branch: ${{ env.BRANCH_NAME }}
target_sync_branch: ${{ env.BRANCH_NAME }}
target_repo_token: ${{ secrets.GITHUB_TOKEN }}
upstream_pull_args: --allow-unrelated-histories --no-edit
shallow_since: '1 days ago'
test_mode: false