{"id":42939615,"url":"https://github.com/wechuli/allcheckspassed","last_synced_at":"2026-01-30T20:03:15.710Z","repository":{"id":215606313,"uuid":"739328985","full_name":"wechuli/allcheckspassed","owner":"wechuli","description":"GitHub Action to confirm that all checks reported on a commit have passed","archived":false,"fork":false,"pushed_at":"2025-12-31T19:02:19.000Z","size":1681,"stargazers_count":32,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-13T02:52:14.812Z","etag":null,"topics":["actions","checks","ci"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/allcheckspassed","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wechuli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-05T09:58:26.000Z","updated_at":"2025-12-31T18:57:06.000Z","dependencies_parsed_at":"2024-03-12T04:32:40.086Z","dependency_job_id":"7c97b04e-741e-4634-9ff0-e816123a44f1","html_url":"https://github.com/wechuli/allcheckspassed","commit_stats":null,"previous_names":["wechuli/allcheckspassed"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/wechuli/allcheckspassed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechuli%2Fallcheckspassed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechuli%2Fallcheckspassed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechuli%2Fallcheckspassed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechuli%2Fallcheckspassed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechuli","download_url":"https://codeload.github.com/wechuli/allcheckspassed/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechuli%2Fallcheckspassed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28918235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T19:10:10.838Z","status":"ssl_error","status_checked_at":"2026-01-30T19:06:40.573Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["actions","checks","ci"],"created_at":"2026-01-30T20:03:12.419Z","updated_at":"2026-01-30T20:03:15.701Z","avatar_url":"https://github.com/wechuli.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# All checks pass action\n\nThis action will check that all checks have passed on a given pull request.\n\n## V2\n\n### What's Changed\n\n- Upgrade to Node24 runtime\n- On GitHub.com, the name of the check run created by the workflow itself is extracted from the available `job.check_run_id` context, using this action as a reusable is now supported. This functionality is not yet available on GitHub Enterprise Server (GHES), will likely be available on the next release version - 3.18. On GitHub Enterprise Server, the action will attempt to extract its check name from the workflow file.\n- Support for [commit statuses](https://docs.github.com/en/rest/commits/statuses?apiVersion=2022-11-28#about-commit-statuses) is now implemented on V2. To prevent a breaking change, this is disabled by default. You can enable it by setting the `include_commit_statuses` input to `true`.\n\n## Basic usage\n\nThe action works well with the `pull_request` or `pull_request_target` events. You can use it to confirm that all checks (and optionally commit statuses) that run on a pull request passed.\n\n```yaml\nname: All checks pass\non:\n  pull_request:\n    types: [ opened, synchronize, reopened, ready_for_review ]\n\njobs:\n  allchecks:\n    runs-on: ubuntu-latest\n    permissions:\n      checks: read\n      contents: read\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n```\n\nWith this default configuration, the action will fail if any of the checks on the pull request have failed or if\nany of the checks are still in progress, pending or queued when the workflow is complete.\n\nThe action also created a checks summary with details of each check that was evaluated and their status:\n\n![Screenshot 2024-02-06 at 15 37 43](https://github.com/wechuli/allcheckspassed/assets/15605874/de9a3a20-02ff-4d96-8da5-0c8300d429e7)\n\n## How it works\n\nWhen the workflow is triggered, the action will poll the GitHub API every 1 minute (default) for 10 tries (default) - you can change these to your liking.\nIf all the checks are successful, the action will succeed. If any of the checks are still in progress, pending or queued, the action fails\n\nIt will create a job summary of each check along with the details.\n\n## Permissions\n\nThe workflow job must be granted read access to `checks` and `contents` for it to work:\n\n```yaml\njobs:\n  allchecks:\n    runs-on: ubuntu-latest\n    permissions:\n      checks: read\n      contents: read\n```\n\nIf you additionally want the action to check for commit statues on top of checks, you'll need to add the `statuses` permission:\n\n```yaml\njobs:\n  allchecks:\n    runs-on: ubuntu-latest\n    permissions:\n      checks: read\n      contents: read\n      statuses: read\n```\n\n## Examples\n\n### Exclude certain checks from causing a failure\n\nYou can exclude certain checks from causing a failure by using the `checks_exclude` input. The input accepts a comma\nseparated string of values:\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          checks_exclude: 'CodeQL,lint,cosmetic'\n```\n\nYou might want to do this to allow certain checks to fail, such as a code quality check, but still require that all\nother checks pass.\n\nThe `checks_exclude` and `checks_include` inputs support Regular Expressions. For example, if you want to exclude all\nchecks have the word `lint` somewhere in the string, you don't have to list them all out, you can use the following:\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          checks_exclude: '.*lint.*'\n```\n\n### Include only certain checks\n\nYou can choose to include only specific checks for evaluation and ignore others. This is not the primary use case\nfor this action, but it is possible. If you want the check to always be included, you might consider using the native\nrepository rulesets or branch protection rules. You can't provide both the `checks_include` and `checks_exclude`inputs.\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          checks_include: 'CodeQL'\n```\n\n### What should be considered as passing\n\nAt the moment, checks with `success`, `neutral` and `skipped` are considered passing by GitHub. This action will\ndefault to this behavior as well but you can change this if you want to.\n\n```yaml\nsteps:\n  - uses: wechuli/allcheckspassed@v2\n    with:\n      treat_skipped_as_passed: false\n      treat_neutral_as_passed: false\n```\n\nIn the above configuration, the action will fail if any of the checks are skipped or neutral.\n\n### Missing checks\n\nIf you define one or more checks in the `checks_include` input, the action will output a warning if any of the checks\nare missing. You can choose instead to fail the action if any of the checks are missing:\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          fail_on_missing_checks: true\n```\n\n### Time\n\nThe default behavior of this action is that is delays its execution for 1 minute (default) and polls the API 10 times (\nretries) with a delay\nbetween each poll of 1 minute (default). You can change these values to your liking:\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          delay: '5'\n          retries: '3'\n          polling_interval: '3'\n\n```\n\nWhen the step with the action runs, it will wait for 5 minutes before polling the API for the first time. It will then\npoll the API 3 times with a delay of 3 minutes between each poll.\n\nYou also don't have to poll, you can just run the action once and get the result.\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          poll: false\n\n```\n\n### Fail Fast\n\nBy default, the action will fail the step as soon as a check meets the condition for failure. This default behavior can\nsave some\nexecution minutes since the action will not wait for all checks to complete before it reports a failure.The fail_fast\nflag can be\nused to cause this action to report a failure status as soon as one other check has failed. If you instead wish to wait\nfor all checks to complete before reporting a failure, you can set the fail_fast flag to false.\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          fail_fast: false\n\n```\n\n### Verbose logging\n\nTo enable additional logging when the action runs, you may enable the `verbose` mode (defaults to false). The additional\nlogs will indicate which specific checks are being waited on in each polling iteration. This may be helpful in debugging\nwhat checks are matched by `checks_include` or `checks_exclude`.\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          verbose: true\n```\n\n### Job summary\n\nBy default, the action will create a job summary with the details of each check that was evaluated and their status. You can disable the job summary by setting  the `show_job_summary` input to false. This will prevent the action from creating a job summary at the end of the workflow run.\n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          show_job_summary: false\n```\n\n### Status Commits\n\nYou can choose to include commit statuses in addition to checks for evaluation. By default, this is disabled. If your CI/CD is only ever running on GitHub Actions and you are not explicitly calling the commit status API, then that option can be left to default to false as is. If you have an external integration (such as Jenkins) that is reporting commit statuses instead of checks, you can set the `include_commit_statuses` option to `true` so that those are evaluated as well. \n\n```yaml\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          include_commit_statuses: true\n```\nChecks and status commits use a different API and there are some nuances to be aware of. More on this is documented at [./docs/adrs/commit_status.md](./docs/adrs/commit_status.md)\n\n\n## Setup with environments\n\nThis action is essentially a workflow run that will consume your GitHub Actions minutes. You may want to delay the\nexecution of the action to give enough time for your checks to run. GitHub provides the environments feature\nthat has a protection rule to allow you to delay the execution of job for a specified amount of time after the job is\ntriggered:\n\nhttps://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#wait-timer\n\nThis will save you some minutes if have checks that take a long time to complete and you don't want to poll the API for\na long time.\n\n```yaml\njobs:\n  allchecks:\n    runs-on: ubuntu-latest\n    environment: delayenv\n    steps:\n      - uses: wechuli/allcheckspassed@v2\n        with:\n          poll: false\n```\n\n![Image](https://github.com/wechuli/allcheckspassed/assets/15605874/abb794ff-f008-409f-9760-160c24b6c45c)\n\nUnfortunately, this feature is only available on private/internal repositories for Enterprise plans. All public\nrepositories\nhave access to this feature.\n\nA downside of using environments is that it creates deployments which will show up on your pull request's timeline,\nthese\ncan sometimes be confusing, there is no way to prevent that.\n\n## Setup with repository rulesets/branch protection rules\n\nYou want to require the check that is created to always pass in your repository rulesets or branch protection rules.\nWhere possible prefer to configure repository rulesets\nto branch protection rules as they are more flexible.\n\n## Limitations\n\nUltimately this is a temporary workaround for a missing feature, ensure all checks that run pass. GitHub may implement\nthis as some point, at which point you will not need the action anymore.\n\n- Unfortunately, you'll need to poll the API to get the state of the checks. The action itself is consuming GitHub\n  Actions minutes doing this polling\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechuli%2Fallcheckspassed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwechuli%2Fallcheckspassed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechuli%2Fallcheckspassed/lists"}