# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

name: License Eye Header
description: A full-featured license tool to check and fix license headers and dependencies' licenses.
branding:
  icon: book
  color: orange
inputs:
  log:
    description: The level of log, for example, "debug" or "info"
    required: false
    default: info
  config:
    description: The configuration file, for example, ".licenserc.yaml"
    required: false
    default: .licenserc.yaml
  token:
    description: |
      The token that license eye uses when it needs to comment on the pull request.
      Set to empty ("") to disable commenting on pull request.
    required: false
    default: ${{ github.token }}
  mode:
    description: |
      Which mode License Eye should be run in. Choices are `check` or `fix`. The
      default value is `check`.
    required: false
    default: check
runs:
  using: "composite"
  steps:
    - name: Set up Go 1.18
      uses: actions/setup-go@v5
      with:
        go-version: 1.18
        cache-dependency-path: ${{ github.action_path }}/go.sum
    - shell: bash
      run: make -C $GITHUB_ACTION_PATH install
    - shell: bash
      env:
        GITHUB_TOKEN: ${{ inputs.token }}
      run: license-eye -v ${{ inputs.log }} -c ${{ inputs.config }} header ${{ inputs.mode }}
