diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml new file mode 100644 index 0000000..604b9db --- /dev/null +++ b/.github/workflows/sync.yml @@ -0,0 +1,42 @@ +name: Sync Fork + +on: + schedule: + - cron: '0 * * * *' # Runs every hour + workflow_dispatch: + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Setup Git + run: | + git config --global user.name 'dbaranovstonfi' + git config --global user.email 'd.baranov@stonfi.net' + + - name: Fetch all branches + run: git fetch --all + + - name: Add remote upstream + run: git remote add upstream https://github.com/tonstack/adnl-rs + + - name: Fetch upstream branches + run: git fetch upstream + + - name: Sync branches + run: | + for branch in $(git branch -r | grep upstream | grep -v '\->' | sed 's|upstream/||'); do + git checkout $branch 2>/dev/null || git checkout -b $branch upstream/$branch + git merge upstream/$branch --strategy-option theirs || git checkout --theirs . + done + + - name: Push changes + env: + PAT: ${{ secrets.PAT }} + run: | + for branch in $(git branch -r | grep upstream | grep -v '\->' | sed 's|upstream/||'); do + git push https://dbaranovstonfi:${PAT}@github.com/ston-fi/adnl-rs $branch + done