diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml new file mode 100644 index 000000000..46303d754 --- /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/ton-blockchain/ton + + - 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 || git checkout -b $branch + git merge upstream/$branch --allow-unrelated-histories + 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/ton.git $branch + done