name: Repo Sync on: push: branches: [master] pull_request: types: [closed, opened, synchronize, edited, labeled] branches: [master] workflow_dispatch: inputs: action: description: "Which action to run" required: true type: choice options: [sync, escalation] jobs: sync: if: github.event_name == 'push' || inputs.action == 'sync' uses: warpdotdev/repo-sync/.github/workflows/sync.yml@main with: repo_sync_ref: main app_id: ${{ vars.REPO_SYNC_APP_ID }} public_repo: warpdotdev/warp private_repo: warpdotdev/warp-internal secrets: app_private_key: ${{ secrets.REPO_SYNC_APP_PRIVATE_KEY }} warp_api_key: ${{ secrets.WARP_API_KEY }} restack: # Run the restack workflow on PRs for `repo-sync/`-prefixed branches # when they merge or are labelled with `repo-sync:needs-restack`. if: >- github.event_name == 'pull_request' && startsWith(github.event.pull_request.head.ref, 'repo-sync/') && ( github.event.pull_request.merged == true || (github.event.action == 'labeled' && github.event.label.name == 'repo-sync:needs-restack') ) uses: warpdotdev/repo-sync/.github/workflows/restack.yml@main with: repo_sync_ref: main app_id: ${{ vars.REPO_SYNC_APP_ID }} public_repo: warpdotdev/warp private_repo: warpdotdev/warp-internal secrets: app_private_key: ${{ secrets.REPO_SYNC_APP_PRIVATE_KEY }} warp_api_key: ${{ secrets.WARP_API_KEY }} approve: if: >- github.event_name == 'pull_request' && github.event.action != 'closed' && startsWith(github.event.pull_request.head.ref, 'repo-sync/') uses: warpdotdev/repo-sync/.github/workflows/approve.yml@main with: repo_sync_ref: main approver_app_id: ${{ vars.REPO_SYNC_APPROVER_APP_ID }} public_repo: warpdotdev/warp private_repo: warpdotdev/warp-internal secrets: approver_app_private_key: ${{ secrets.REPO_SYNC_APPROVER_APP_PRIVATE_KEY }} escalation: if: inputs.action == 'escalation' uses: warpdotdev/repo-sync/.github/workflows/escalation.yml@main with: repo_sync_ref: main app_id: ${{ vars.REPO_SYNC_APP_ID }} public_repo: warpdotdev/warp private_repo: warpdotdev/warp-internal escalate_to: "@oncall-client-primary" escalate_after: "30m" secrets: app_private_key: ${{ secrets.REPO_SYNC_APP_PRIVATE_KEY }}