name: 01-CLA-Assistant
## This workflow is used only for public repositories
## uncomment the other trigger conditions for public repositories

on:
  workflow_dispatch:
  issue_comment:
   types: [created]
  pull_request_target:
   types: [opened,closed,synchronize,reopened]

permissions:
  actions: write
  contents: read # this can be 'read' if the signatures are in remote repository
  pull-requests: write
  statuses: write

jobs:
  CLAAssistant:
    runs-on: ubuntu-24.04
    steps:
      - name: Create CLA Assistant Lite bot token
        uses: actions/create-github-app-token@v2
        id: app-token
        with:
          app-id: ${{ secrets.GH_APP_ID }}
          private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
          owner: SiliconLabsInternal
          repositories: contributor-license-agreements

      - name: "CLA Assistant"
        if: ${{ contains(github.event.comment.body, 'I have read the CLA Document and I hereby sign the CLA') }} || github.event_name == 'pull_request_target'
        uses: SiliconLabsSoftware/action-cla-assistant@silabs_flavour_v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PERSONAL_ACCESS_TOKEN: ${{ steps.app-token.outputs.token }}
        with:
          path-to-signatures: "cla_signatures_db.json"
          path-to-document: "https://github.com/SiliconLabsSoftware/agreements-and-guidelines/blob/main/contributor_license_agreement.md"
          branch: 'cla-database'
          allowlist: silabs-*,bot*
          # the following are the optional inputs - If the optional inputs are not given, then default values will be taken
          remote-organization-name: "SiliconLabsInternal"
          remote-repository-name: "contributor-license-agreements"
          create-file-commit-message: "Created the CLA database file. CLA Assistant Lite bot created this file."
          signed-commit-message: "$contributorName has signed the CLA in $owner/$repo#$pullRequestNo"
