Contribution Checker

June 23, 2026 ยท View on GitHub

Checks contributions in a repo or a GitHub org for:

Refactor of previous dco-org-check script for extensibility.

The script will produce a CSV file named after the repo with any commits matching a check, and for DCO signoffs will produce the commit message to use for remediation commits.

DCO Remediation Commit for John Doe <john.doe@foo.com>        

I, John Doe <john.doe@foo.com>, hereby add my Signed-off-by to this commit: 845f7fc    
I, John Doe <john.doe@foo.com, hereby add my Signed-off-by to this commit: 45248d3

You can do any checkin to the repository to with that in the commit message to provide the remediation commit.

Installation

pipx install git+https://github.com/jmertic/contrib_check.git

Usage

usage: contrib-check [-h] (--repo REPO | --org ORG) [-o OUTPUT_DIR] [--org-type ORG_TYPE] [--dco-skip] [--dco-allow-individual-remediation-commits]
                     [--dco-allow-thirdparty-remediation-commits] [--dco-signoff-dirs DCO_SIGNOFF_DIRS] [--dco-start-date DCO_START_DATE]
                     [--dco-start-commit DCO_START_COMMIT] [--only-repos ONLY_REPOS | --ignore-repos IGNORE_REPOS] [--skip-archived-repos]
                     [-l {debug,info,warning,error,critical}] [--logfile LOGFILE]

Scan a single repo or organization for various contribution checks ( such as DCO )

options:
  -h, --help            show this help message and exit
  --repo REPO           URL or path to the repo to search (default: None)
  --org ORG             URL to GitHub org to search (default: None)
  -o OUTPUT_DIR, --output-dir OUTPUT_DIR
                        Output directory (default: /Users/johnmertic/Code/contrib_check)
  --org-type ORG_TYPE   Type of Org (default: github)
  --dco-skip            Skips DCO checks (default: False)
  --dco-allow-individual-remediation-commits
                        Allow individual remediation commits for DCO signoffs (only needed if not enabled in dco.yml in the repo) (default: False)
  --dco-allow-thirdparty-remediation-commits
                        Allow third party remediation commits for DCO signoffs (only needed if not enabled in dco.yml in the repo) (default: False)
  --dco-signoff-dirs DCO_SIGNOFF_DIRS
                        List of directory names, comma delimited, where past signoffs could be in the repo (default: dco-signoffs,dco_signoffs)
  --dco-start-date DCO_START_DATE
                        Start checking for DCO signoffs after the provided date (ISO format or relative date, e.g. '2 weeks ago') (default: None)
  --dco-start-commit DCO_START_COMMIT
                        Start checking for DCO signoffs after the provided commit hash (default: None)
  --only-repos ONLY_REPOS
                        When specifying an org, only include the comma delimited list of repos (default: None)
  --ignore-repos IGNORE_REPOS
                        When specifying an org, do not include the comma delimited list of repos (default: None)
  --skip-archived-repos
                        Skip repos marked as Archived (default: False)
  -l {debug,info,warning,error,critical}, --log {debug,info,warning,error,critical}
                        Logging level (default: error)
  --logfile LOGFILE     Name for the log file (default: debug.log)

Contributing

Feel free to send issues or pull requests ( with a DCO signoff of course :-) ) in accordance with the contribution guidelines

For more checks to add, note the scope of this tool is scanning contributions to a repository.

SPDX-License-Identifier: Apache-2.0