name: Cron / Crowdin Pull
run-name: Crowdin Pull - ${{ github.event_name == 'workflow_dispatch' && 'Manual' || 'Scheduled' }}

on:
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * 5'

jobs:
  crowdin-sync:
    name: Crowdin Pull - ${{ matrix.name }} - ${{ github.event_name }}
    runs-on: ubuntu-24.04
    permissions:
      contents: write
      pull-requests: write
    strategy:
      matrix:
        include:
          - name: Password Manager
            project_id: 269690
            config: crowdin-bwpm.yml
            branch: crowdin-pull-bwpm
          - name: Authenticator
            project_id: 673718
            config: crowdin-bwa.yml
            branch: crowdin-pull-bwa
    steps:
      - name: Checkout repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Login to Azure - CI Subscription
        uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
        with:
          creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}

      - name: Retrieve secrets
        id: retrieve-secrets
        uses: bitwarden/gh-actions/get-keyvault-secrets@main
        with:
          keyvault: "bitwarden-ci"
          secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase"

      - name: Generate GH App token
        uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
        id: app-token
        with:
          app-id: ${{ secrets.BW_GHAPP_ID }}
          private-key: ${{ secrets.BW_GHAPP_KEY }}

      - name: Download translations for ${{ matrix.name }}
        uses: crowdin/github-action@b8012bd5491b8aa8578b73ab5b5f5e7c94aaa6e2 # v2.7.0
        env:
          GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
          CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
          _CROWDIN_PROJECT_ID: ${{ matrix.project_id }}
        with:
          config: ${{ matrix.config }}
          upload_sources: false
          upload_translations: false
          download_translations: true
          github_user_name: "bitwarden-devops-bot"
          github_user_email: "106330231+bitwarden-devops-bot@users.noreply.github.com"
          commit_message: "Crowdin Pull - ${{ matrix.name }}"
          localization_branch_name: ${{ matrix.branch }}
          create_pull_request: true
          pull_request_title: "Crowdin Pull - ${{ matrix.name }}"
          pull_request_body: ":inbox_tray: New translations for ${{ matrix.name }} received!"
          gpg_private_key: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key }}
          gpg_passphrase: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key-passphrase }}
