name: Autofill BIT checks
run-name: Autofill BIT checks on ${{ github.event.workflow_run.head_branch }} build

on:
  workflow_run:
    workflows: ["Build Browser"]
    types:
      - completed

jobs:
  check-files:
    name: Check files
    runs-on: ubuntu-22.04
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    permissions:
      actions: write
      contents: read
      id-token: write
    steps:
    - name: Checkout code
      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      with:
        fetch-depth: 0

    - name: Check for job requirements
      if: ${{ !github.event.workflow_run.pull_requests || !github.event.workflow_run.head_branch }}
      env:
        GH_TOKEN: ${{ github.token }}
      run: |
        gh run cancel ${{ github.run_id }}
        gh run watch ${{ github.run_id }}

    - name: Log in to Azure
      uses: bitwarden/gh-actions/azure-login@main
      with:
        subscription_id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
        tenant_id: ${{ secrets.AZURE_TENANT_ID }}
        client_id: ${{ secrets.AZURE_CLIENT_ID }}

    - name: Get Azure Key Vault secrets
      id: get-kv-secrets
      uses: bitwarden/gh-actions/get-keyvault-secrets@main
      with:
        keyvault: gh-org-bitwarden
        secrets: "BW-GHAPP-ID,BW-GHAPP-KEY"

    - name: Log out from Azure
      uses: bitwarden/gh-actions/azure-logout@main

    - name: Generate GH App token
      uses: actions/create-github-app-token@30bf6253fa41bdc8d1501d202ad15287582246b4 # v2.0.3
      id: app-token
      with:
        app-id: ${{ steps.get-kv-secrets.outputs.BW-GHAPP-ID }}
        private-key: ${{ steps.get-kv-secrets.outputs.BW-GHAPP-KEY }}
        owner: bitwarden
        repositories: browser-interactions-testing
        permission-actions: write

    - name: Get changed files
      id: changed-files
      uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
      with:
        list-files: shell
        ref: ${{ github.event.workflow_run.head_branch }}
        token: ${{ secrets.GITHUB_TOKEN }}
        filters: |
          monitored:
            - 'apps/browser/src/autofill/**'
            - 'apps/browser/src/background/**'
            - 'apps/browser/src/platform/services/browser-script-injector.service.ts'

    - name: Trigger test-all workflow in browser-interactions-testing
      if: steps.changed-files.outputs.monitored == 'true'
      uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0
      with:
        token: ${{ steps.app-token.outputs.token }}
        repository: "bitwarden/browser-interactions-testing"
        event-type: trigger-bit-tests
        client-payload: |-
          {
            "origin_issue": ${{ github.event.workflow_run.pull_requests[0].number }},
            "origin_branch": "${{ github.event.workflow_run.pull_requests[0].head.ref }}"
          }
