From c4d1d33933e7efa43c319a48dc180fae3b0ef129 Mon Sep 17 00:00:00 2001 From: Chong Wei Hon Date: Wed, 24 Sep 2025 18:25:35 +0800 Subject: [PATCH 1/4] Create sync-upstream.yml Create sync upstream action for sync code automatic to all forked user --- .github/workflows/sync-upstream.yml | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/sync-upstream.yml diff --git a/.github/workflows/sync-upstream.yml b/.github/workflows/sync-upstream.yml new file mode 100644 index 0000000..067e2b9 --- /dev/null +++ b/.github/workflows/sync-upstream.yml @@ -0,0 +1,43 @@ +name: Sync Fork + +on: + schedule: + - cron: '0 */6 * * *' # Runs every day at midnight UTC + workflow_dispatch: # Allows you to run this workflow manually from the Actions tab + +jobs: + sync: + runs-on: ubuntu-latest + + steps: + - name: Checkout Fork + uses: actions/checkout@v3 + with: + # Using a personal access token is recommended for pushing changes. + # The GITHUB_TOKEN has restricted permissions. + token: ${{ secrets.GH_PAT }} + fetch-depth: 0 # Fetches all history for all branches and tags + + - name: Set up Git + run: | + git config --global user.name "${{ github.actor }}" + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + + - name: Add Upstream Remote + run: git remote add upstream https://github.com/djteang/OrangeTV.git + + - name: Fetch Upstream + run: git fetch upstream + + - name: Sync main Branch + run: | + git checkout main + git merge upstream/main + git push origin main + + # Repeat for other branches you want to sync + # - name: Sync develop Branch + # run: | + # git checkout develop + # git merge upstream/develop + # git push origin develop From 2552d6e60590ea6f7e0d0639b66dd7b278fb56ee Mon Sep 17 00:00:00 2001 From: Chong Wei Hon Date: Wed, 24 Sep 2025 18:32:58 +0800 Subject: [PATCH 2/4] Update sync-upstream.yml Update sync-upstream.yml --- .github/workflows/sync-upstream.yml | 40 +++++------------------------ 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/.github/workflows/sync-upstream.yml b/.github/workflows/sync-upstream.yml index 067e2b9..c70eac9 100644 --- a/.github/workflows/sync-upstream.yml +++ b/.github/workflows/sync-upstream.yml @@ -2,42 +2,16 @@ name: Sync Fork on: schedule: - - cron: '0 */6 * * *' # Runs every day at midnight UTC - workflow_dispatch: # Allows you to run this workflow manually from the Actions tab + - cron: '0 */6 * * *' + workflow_dispatch: jobs: sync: runs-on: ubuntu-latest - steps: - - name: Checkout Fork - uses: actions/checkout@v3 + - name: Sync upstream changes + uses: dabreadman/fork-sync-with-upstream-action@v1 with: - # Using a personal access token is recommended for pushing changes. - # The GITHUB_TOKEN has restricted permissions. - token: ${{ secrets.GH_PAT }} - fetch-depth: 0 # Fetches all history for all branches and tags - - - name: Set up Git - run: | - git config --global user.name "${{ github.actor }}" - git config --global user.email "${{ github.actor }}@users.noreply.github.com" - - - name: Add Upstream Remote - run: git remote add upstream https://github.com/djteang/OrangeTV.git - - - name: Fetch Upstream - run: git fetch upstream - - - name: Sync main Branch - run: | - git checkout main - git merge upstream/main - git push origin main - - # Repeat for other branches you want to sync - # - name: Sync develop Branch - # run: | - # git checkout develop - # git merge upstream/develop - # git push origin develop + upstream_repository: djteang/OrangeTV + target_branch: main + github_token: ${{ secrets.GITHUB_TOKEN }} From 52780436a292156cc0421ffb662e099e49b2d69b Mon Sep 17 00:00:00 2001 From: Chong Wei Hon Date: Wed, 24 Sep 2025 18:40:13 +0800 Subject: [PATCH 3/4] Update sync-upstream.yml Fix not able to sync --- .github/workflows/sync-upstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-upstream.yml b/.github/workflows/sync-upstream.yml index c70eac9..ff651a8 100644 --- a/.github/workflows/sync-upstream.yml +++ b/.github/workflows/sync-upstream.yml @@ -12,6 +12,6 @@ jobs: - name: Sync upstream changes uses: dabreadman/fork-sync-with-upstream-action@v1 with: - upstream_repository: djteang/OrangeTV + upstream_repository: https://github.com/djteang/OrangeTV target_branch: main github_token: ${{ secrets.GITHUB_TOKEN }} From 957adc010a2256029ac28f98d836eb297999dadc Mon Sep 17 00:00:00 2001 From: Chong Wei Hon Date: Wed, 24 Sep 2025 18:43:55 +0800 Subject: [PATCH 4/4] Update sync-upstream.yml Bug fix for not able to run upstream sync --- .github/workflows/sync-upstream.yml | 42 ++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/.github/workflows/sync-upstream.yml b/.github/workflows/sync-upstream.yml index ff651a8..9e3154a 100644 --- a/.github/workflows/sync-upstream.yml +++ b/.github/workflows/sync-upstream.yml @@ -1,17 +1,45 @@ -name: Sync Fork +name: Upstream Sync on: schedule: - - cron: '0 */6 * * *' + - cron: "0 */6 * * *" # run every 6 hours workflow_dispatch: +permissions: + contents: write + actions: write + jobs: - sync: + sync_latest_from_upstream: + name: Sync latest commits from upstream repo runs-on: ubuntu-latest + if: ${{ github.event.repository.fork }} + steps: + # Step 1: run a standard checkout action + - name: Checkout target repo + uses: actions/checkout@v4 + + # Step 2: run the sync action - name: Sync upstream changes - uses: dabreadman/fork-sync-with-upstream-action@v1 + id: sync + uses: aormsby/Fork-Sync-With-Upstream-action@v3.4.1 with: - upstream_repository: https://github.com/djteang/OrangeTV - target_branch: main - github_token: ${{ secrets.GITHUB_TOKEN }} + upstream_sync_repo: djteang/OrangeTV + upstream_sync_branch: main + target_sync_branch: main + target_repo_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Sync check + if: failure() + run: | + echo "[Error] Due to a change in the workflow file of the upstream repository, GitHub has automatically suspended the scheduled automatic update. You need to manually sync your fork." + exit 1 + + - name: Delete workflow runs + uses: Mattraks/delete-workflow-runs@main + with: + token: ${{ secrets.GITHUB_TOKEN }} + repository: ${{ github.repository }} + retain_days: 0 + keep_minimum_runs: 2