{"id":28529433,"url":"https://github.com/mlcommons/cla-bot","last_synced_at":"2026-02-04T22:33:50.205Z","repository":{"id":38238838,"uuid":"489433548","full_name":"mlcommons/cla-bot","owner":"mlcommons","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-07T23:37:00.000Z","size":16132,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-09T14:12:38.830Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlcommons.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-05-06T17:05:49.000Z","updated_at":"2024-11-07T23:37:03.000Z","dependencies_parsed_at":"2023-11-09T00:47:42.997Z","dependency_job_id":null,"html_url":"https://github.com/mlcommons/cla-bot","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/mlcommons/cla-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlcommons%2Fcla-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlcommons%2Fcla-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlcommons%2Fcla-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlcommons%2Fcla-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlcommons","download_url":"https://codeload.github.com/mlcommons/cla-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlcommons%2Fcla-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29098235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T21:05:08.033Z","status":"ssl_error","status_checked_at":"2026-02-04T21:04:53.031Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-09T14:10:48.271Z","updated_at":"2026-02-04T22:33:50.198Z","avatar_url":"https://github.com/mlcommons.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![build](https://github.com/cla-assistant/github-action/workflows/build/badge.svg) [![Discord](https://img.shields.io/discord/463752820026376202.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://discord.gg/WpJpRKm)\n# MLCommons CLA bot GitHub Action\n\nStreamline your workflow and let this GitHub Action(a lite version of [CLA Assistant](https://github.com/cla-assistant/cla-assistant)) handle the legal side of contributions to a repository for you. CLA assistant gitHub action enables contributors to sign CLAs from within a pull request. With this GitHub Action we could get rid of the need for a centrally managed database by **storing the contributor's signature data** in a decentralized way - **in the same repository's file system** or **in a remote repository**\n\n### Features\n1. decentralized data storage\n1. fully integrated within github environment\n1. no User Interface is required\n1. signatures will be stored in a file inside the repository or in a remote repository\n1. versioning of signatures\n\n## Configure Contributor License Agreement within two minutes\n\n#### 1. Add the following Workflow File to your repository in this path`.github/workflows/cla.yml`\n\n```yml\nname: \"cla-bot\"\non:\n  issue_comment:\n    types: [created]\n  pull_request_target:\n    types: [opened,closed,synchronize]\n\njobs:\n  cla-check:\n    runs-on: ubuntu-latest\n    steps:\n      - name: \"MLCommons CLA bot check\"\n        if: (github.event.comment.body == 'recheck') || github.event_name == 'pull_request_target'\n        # Alpha Release\n        uses: mlcommons/cla-bot@master\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          # the below token should have repo scope and must be manually added by you in the repository's secret\n          PERSONAL_ACCESS_TOKEN : ${{ secrets.MLCOMMONS_BOT_CLA_TOKEN }}\n        with:\n          path-to-signatures: 'cla-bot/v1/cla.json'\n          path-to-document: 'https://github.com/mlcommons/systems/blob/main/mlcommons_cla.txt' # e.g. a CLA or a DCO document\n          # branch should not be protected\n          branch: 'main'\n          allowlist: user1,bot*\n          remote-organization-name: mlcommons\n          remote-repository-name: systems\n\n         #below are the optional inputs - If the optional inputs are not given, then default values will be taken\n          #remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository)\n          #remote-repository-name:  enter the  remote repository name where the signatures should be stored (Default is storing the signatures in the same repository)\n          #create-file-commit-message: 'For example: Creating file for storing CLA Signatures'\n          #signed-commit-message: 'For example: $contributorName has signed the CLA in #$pullRequestNo'\n          #custom-notsigned-prcomment: 'pull request comment with Introductory message to ask new contributors to sign'\n          #custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA'\n          #custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.'\n\n```\n\n#### 2. Pull Request event triggers CLA Workflow\n\nCLA action workflow will be triggered on all Pull Request `opened, synchronize, closed`. This workflow will always run in the base repository and thats why we are making use of the [pull_request_target](https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request_target) event.\n\u003cbr/\u003e When the CLA workflow is triggered on pull request `closed` event, it will lock the Pull Request conversation after the Pull Request merge so that the contributors cannot modify or delete the signatures (Pull Request comment) later. This feature is optional.\n\n#### 4. Signatures stored in a JSON file\n\nAfter the contributor signed a CLA, the contributor's signature with metadata will be stored in a JSON file inside the repository like below screenshot and you can specify the custom path to this file with `path-to-signatures` input in the workflow. \u003cbr/\u003e The default path is `path-to-signatures: 'signatures/version1/cla.json'`\n\n**NOTE:** You do not need to create this file manually. Our workflow will create the signature file if it does not already exist. Manually creating this file will cause the workflow to fail.\n\n![Screenshot 2020-01-07 at 16 13 43](https://user-images.githubusercontent.com/33329946/71905595-c33aec80-3168-11ea-8a08-c78f13cb0dcb.png)\n\n#### 5. Users and bots in allowlist\n\nIf a GitHub username is included in the allowlist, they will not be required to sign a CLA. You can make use of this feature If you don't want your colleagues working in the same team/organisation to sign a CLA. And also, since there's no way for bot users (such as Dependabot or Greenkeeper) to sign a CLA, you may want to add them in `allowlist`. You can do so by adding their names in a comma separated string to the `allowlist` input in the CLA  workflow file(in this case `dependabot-preview[bot],greenkeeper[bot]`). You can also use wildcard symbol in case you want to allow all bot users something like `bot*`.\n\n### Environmental Variables :\n\n\n| Name                  | Requirement | Description |\n| --------------------- | ----------- | ----------- |\n| `GITHUB_TOKEN`        | _required_ | Usage: `GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}`,  CLA Action uses this in-built GitHub token to make the API calls for interacting with GitHub. It is built into Github Actions and does not need to be manually specified in your secrets store. [More Info](https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)|\n| `PERSONAL_ACCESS_TOKEN`        | _required_ | Usage: `PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN}}`, you have to create a [Personal Access Token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) with `repo scope` and store in the repository's [secrets](https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets). This token is required for consuming the  [Actions re-run API](https://docs.github.com/en/rest/reference/actions#re-run-a-workflow) to automatically re-run the last failed workflow and also for storing the signatures in a remote repository if required. |\n\n### Inputs Description :\n\n| Name                  | Requirement | Description | Example |\n| --------------------- | ----------- | ----------- | ------- |\n| `path-to-signatures`       | _optional_ |  Path to the JSON file where  all the signatures of the contributors will be stored inside the repository. | signatures/version1/cla.json |\n| `branch`   | _optional_ |  Branch in which all the signatures of the contributors will be stored and Default branch is `master`.  | master |\n| `allowlist`   | _optional_ | You can specify users and bots to be [added in allowlist](https://github.com/cla-assistant/github-action#5-users-and-bots-in-allowlist).  | user1,user2,bot* |\n| `remote-repository-name`   | _optional_ | provide the remote repository name where all the signatures should be stored . | remote repository name |\n| `remote-organization-name`   | _optional_ | provide the remote organization name where all the signatures should be stored. | remote organization name |\n| `create-file-commit-message`   | _optional_ |Commit message when a new CLA file is created. | Creating file for storing CLA Signatures. |\n| `signed-commit-message`   | _optional_ | Commit message when a new contributor signs the CLA in a Pull Request. |  $contributorName has signed the CLA in $pullRequestNo |\n| `custom-pr-sign-comment`   | _optional_ | The signature to be committed in order to sign the CLA. | I have read the Developer Terms Document and I hereby accept the Terms |\n| `custom-allsigned-prcomment`   | _optional_ | pull request comment when everyone has signed | All Contributors have signed the CLA. |\n\n## License\n\nContributor License Agreement assistant\n\nCopyright (c) 2020 [SAP SE](http://www.sap.com) or an SAP affiliate company. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\nCredits\n=======\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/reviewninja/review.ninja/master/sap_logo.png\" title=\"SAP\" /\u003e\n\u003cp align=\"center\"\u003e\n:heart: from the GitHub team @SAP\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlcommons%2Fcla-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlcommons%2Fcla-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlcommons%2Fcla-bot/lists"}