Create sync-fork.yml

This commit is contained in:
Beytullah Cengiz 2026-06-30 09:36:03 +02:00 committed by github-actions[bot]
parent c72c0ad685
commit e04bc39d54

52
.github/workflows/sync-fork.yml vendored Normal file
View file

@ -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}"