From e04bc39d54dc8c5146499e51d9fb3d4242efda22 Mon Sep 17 00:00:00 2001 From: Beytullah Cengiz <116653370+BeytullahCengiz88@users.noreply.github.com> Date: Tue, 30 Jun 2026 09:36:03 +0200 Subject: [PATCH] Create sync-fork.yml --- .github/workflows/sync-fork.yml | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/sync-fork.yml diff --git a/.github/workflows/sync-fork.yml b/.github/workflows/sync-fork.yml new file mode 100644 index 0000000..d725cd7 --- /dev/null +++ b/.github/workflows/sync-fork.yml @@ -0,0 +1,52 @@ +name: Sync fork with upstream + +on: + schedule: + # Daily at 03:00 UTC + - cron: "0 3 * * *" + workflow_dispatch: + +permissions: + contents: write + +jobs: + sync: + runs-on: ubuntu-latest + + steps: + - name: Checkout fork default branch + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Sync from upstream + env: + # IMPORTANT: change this to the original source repository + UPSTREAM_REPO: "ORIGINAL_OWNER/ORIGINAL_REPO" + # Optional: set your branch explicitly if not default branch behavior + TARGET_BRANCH: "main" + run: | + set -euo pipefail + + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + # Ensure we're on target branch + git checkout "${TARGET_BRANCH}" + + # Add/update upstream remote + if git remote get-url upstream >/dev/null 2>&1; then + git remote set-url upstream "https://github.com/${UPSTREAM_REPO}.git" + else + git remote add upstream "https://github.com/${UPSTREAM_REPO}.git" + fi + + # Fetch and fast-forward only + git fetch upstream + git merge --ff-only "upstream/${TARGET_BRANCH}" || { + echo "Fast-forward failed (diverged history). Manual intervention required." + exit 1 + } + + # Push only if branch moved + git push origin "${TARGET_BRANCH}"