{"id":18900677,"url":"https://github.com/jmertic/contrib_check","last_synced_at":"2025-07-10T06:08:29.839Z","repository":{"id":137801313,"uuid":"325999134","full_name":"jmertic/contrib_check","owner":"jmertic","description":"Checks contributions in a repo or a GitHub org for DCO signoffs and other things.","archived":false,"fork":false,"pushed_at":"2025-06-30T18:22:55.000Z","size":413,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-30T19:29:09.910Z","etag":null,"topics":["compliance","dco"],"latest_commit_sha":null,"homepage":"","language":"Python","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/jmertic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-01T14:56:48.000Z","updated_at":"2025-06-30T18:22:58.000Z","dependencies_parsed_at":"2024-06-13T17:49:13.218Z","dependency_job_id":"c631b707-44ac-4f8c-ab23-1903a2e45716","html_url":"https://github.com/jmertic/contrib_check","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jmertic/contrib_check","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmertic%2Fcontrib_check","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmertic%2Fcontrib_check/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmertic%2Fcontrib_check/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmertic%2Fcontrib_check/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmertic","download_url":"https://codeload.github.com/jmertic/contrib_check/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmertic%2Fcontrib_check/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264538320,"owners_count":23624429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["compliance","dco"],"created_at":"2024-11-08T08:52:35.499Z","updated_at":"2025-07-10T06:08:29.791Z","avatar_url":"https://github.com/jmertic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contribution checker\n\nChecks contributions in a repo or a GitHub org for:\n\n- DCO signoffs ( https://developercertificate.org )\n\nRefactor of previous [dco-org-check](https://github.com/jmertic/dco-org-check) script for extensibility.\n\nThe script will produce a CSV file named after the repo with any commits matching a check, and for DCO signoffs will produce a file similar to the below that can be checked into the repository and used for remediation...\n\n```\nI, John Doe hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: john.doe@foo.com\n\n4f93aecac9b1a64331148cd496d0ee54584a1553 Commit 1\n538c1d602cc6f59e7b600f49889069a4caac7959 Commit 2\n9e57035ef29319fc44a7d167e7896bc144e80b10 Commit 3\n```\n\n## Installation\n\n```\ngit clone https://github.com/jmertic/contrib_check\ncd contrib_check\nchmod +x contrib_check.py\npip install -r requirements.txt\n```\n\n## Usage\n\n```\nusage: contrib_check.py [-h] (-c CONFIGFILE | --repo REPO | --org ORG) [--dco DCO]\n\nScan a single repo or organization for various contribution checks ( such as DCO )\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -c CONFIGFILE, --config CONFIGFILE\n                        name of YAML config file\n  --repo REPO           URL or path to the repo to search\n  --org ORG             URL to GitHub org to search\n  --dco DCO             Perform a DCO check (defaults to true)\n```\n\n### Config file options ( set argument is the default if not specified )\n\n```yaml\n# Path or URL to the repo \nrepo: \n# set if scanning an org\norg:\n  # org type\n  type: github\n  # name\n  name: \n  # list of repos to ignore when scanning\n  ignore_repos:\n    - repo1\n    - repo2\n    - ...\n  # list of repos to only look at when scanning\n  only_repos:\n    - repo1\n    - repo2\n    - ...\n# checks to run\nchecks:\n  # set if dco\n  dco:\n    # list of directory names where previous commit signoffs are in the repo\n    signoff_dirs:\n      - dco-signoffs\n    # set if you want to have the script create the previous commits signoff files\n    prior-commits-directory: dco-signoffs\n```\n\n## Contributing\n\nFeel free to send [issues](/issues) or [pull requests](/pulls) ( with a DCO signoff of course :-) ) in accordance with the [contribution guidelines](CONTRIBUTING.md)\n\nFor more checks to add, note the scope of this tool is scanning contributions to a repository. \n\n## Useful tools to make doing DCO signoffs easier\n\nThere are a number of great tools out there to manage DCO signoffs for developers to make it much easier to do signoffs.\n\n- DCO command line tool, which let's you do a single signoff for an entire repo ( https://github.com/coderanger/dco )\n- GitHub UI integrations for adding the signoff automatically ( https://github.com/scottrigby/dco-gh-ui )\n  - Chrome - https://chrome.google.com/webstore/detail/dco-github-ui/onhgmjhnaeipfgacbglaphlmllkpoijo\n  - Firefox - https://addons.mozilla.org/en-US/firefox/addon/scott-rigby/?src=search\n\nSPDX-License-Identifier: Apache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmertic%2Fcontrib_check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmertic%2Fcontrib_check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmertic%2Fcontrib_check/lists"}