---
# SPDX-License-Identifier: Apache-2.0
# Copyright 2026 The Linux Foundation

name: Call Verify Workflow(s)

# yamllint disable-line rule:truthy
on:
  workflow_dispatch:
    inputs:
      GERRIT_BRANCH:
        description: "Branch that change is against"
        required: true
        type: string
      GERRIT_CHANGE_ID:
        description: "The ID for the change"
        required: true
        type: string
      GERRIT_CHANGE_NUMBER:
        description: "The Gerrit number"
        required: true
        type: string
      GERRIT_CHANGE_URL:
        description: "URL to the change"
        required: true
        type: string
      GERRIT_EVENT_TYPE:
        description: "Type of Gerrit event"
        required: true
        type: string
      GERRIT_PATCHSET_NUMBER:
        description: "The patch number for the change"
        required: true
        type: string
      GERRIT_PATCHSET_REVISION:
        description: "The revision sha"
        required: true
        type: string
      GERRIT_PROJECT:
        description: "Project in Gerrit"
        required: true
        type: string
      GERRIT_REFSPEC:
        description: "Gerrit refspec of change"
        required: true
        type: string

concurrency:
  # yamllint disable-line rule:line-length
  group: ${{ github.repository }}-${{ github.workflow }}-${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
  cancel-in-progress: true

permissions: read-all

jobs:
  call-onos-component-verify:
    # yamllint disable-line rule:line-length
    uses: ${{ github.repository_owner }}/shared-workflows/workflows/verify-onos-component.yaml@main
    with:
      GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }}
      GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }}
      GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }}
      GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }}
      GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }}
      GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
      GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }}
      GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }}
      GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
    secrets:
      GERRIT_SSH_PRIVKEY: ${{ secrets.GERRIT_SSH_PRIVKEY }}
