75 lines
2.4 KiB
YAML
75 lines
2.4 KiB
YAML
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 }}
|