A utility for checking if an (AngularJS-related) GitHub PR has a signed CLA (based on its labels).


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
11Jun 10, 2021Aug 12, 2016Minified + gzip package size for @gkalpak/ng-cla-check in KB


ng-cla-check Build Status


A utility for checking if an (AngularJS-related) GitHub PR has a signed CLA (based on its labels).


Using from the command-line

# Show version info
ng-cla-check --version

# Show usage instructions
ng-cla-check --usage

# Check a PR
ng-cla-check 12345

You can optionally specify the GitHub repo and/or CLA label to check for (by default angular/angular.js and cla: yes respectively):

# Use non-default repo and CLA label
ng-cla-check 12345 --repo="some-user/some-repo" --claLabel="some text"

Note: To use a GitHub access-token, make it available in an environment variable named GITHUB_ACCESS_TOKEN.

Using from other modules

let Checker = require('@gkalpak/ng-cla-check');
let checker = new Checker(/* Use default options */);

    () => {
      // CLA verified successfully.
    err => {
      // Unable to verify CLA...
      if (err) {
        // ...because an error occurred (e.g. network error, authentication error, etc).
      } else {
        // ...because it was probably not signed.

You can also pass custom ghToken, claLabel or repo options:

let checker = new Checker({
  ghToken: '...',   // Pass `false` to force anonymous (rate-limited) requests to the GitHub API.
  claLabel: 'some text',
  repo: 'some-user/some-repo'

Note: For convenience, the name of the GitHub access-token environment variable can be retrieved with Checker.getGhTokenVar().

Finally, you can prevent the checker from logging any messages to the console (e.g. warn when no GitHub access-token is available), by passing true as the second argument:

let quiet = true;
let checker = new Checker(null, quiet);


The following test-types/modes are available:

  • Code-linting: npm run lint Lint JavaScript files using ESLint.

  • Unit tests: npm run test-unit Run all the unit tests once. These tests are quick and suitable to be run on every change.

  • E2E tests: npm run test-e2e Run all the end-to-end tests once. These test may hit actual API endpoints and are considerably slower than unit tests.

  • All tests: npm test / npm run test Run all of the above tests (code-linting, unit tests, e2e tests). This command is automatically run before npm version and npm publish.

  • "Watch" mode: npm run test-watch Watch all files and rerun the unit tests whenever something changes. For performance reasons, code-linting and e2e tests are omitted.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.