name: Create Sync Action on: workflow_dispatch: push: branches: - preview env: SOURCE_BRANCH_NAME: ${{ github.ref_name }} jobs: sync_changes: runs-on: ubuntu-latest permissions: pull-requests: write contents: read steps: - name: Checkout Code uses: actions/checkout@v4.1.1 with: persist-credentials: false fetch-depth: 0 - name: Setup GH CLI run: | type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y) curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt update sudo apt install gh -y - name: Push Changes to Target Repo A env: GH_TOKEN: ${{ secrets.ACCESS_TOKEN }} run: | TARGET_REPO="${{ secrets.TARGET_REPO_A }}" TARGET_BRANCH="${{ secrets.TARGET_REPO_A_BRANCH_NAME }}" SOURCE_BRANCH="${{ env.SOURCE_BRANCH_NAME }}" git checkout $SOURCE_BRANCH git remote add target-origin-a "https://$GH_TOKEN@github.com/$TARGET_REPO.git" git push target-origin-a $SOURCE_BRANCH:$TARGET_BRANCH - name: Push Changes to Target Repo B env: GH_TOKEN: ${{ secrets.ACCESS_TOKEN }} run: | TARGET_REPO="${{ secrets.TARGET_REPO_B }}" TARGET_BRANCH="${{ secrets.TARGET_REPO_B_BRANCH_NAME }}" SOURCE_BRANCH="${{ env.SOURCE_BRANCH_NAME }}" git remote add target-origin-b "https://$GH_TOKEN@github.com/$TARGET_REPO.git" git push target-origin-b $SOURCE_BRANCH:$TARGET_BRANCH