{"id":20690180,"url":"https://github.com/per1234/workflowsawaiting","last_synced_at":"2025-10-07T13:57:21.312Z","repository":{"id":37939583,"uuid":"368351380","full_name":"per1234/workflowsawaiting","owner":"per1234","description":"Check for workflows awaiting approval","archived":false,"fork":false,"pushed_at":"2025-09-22T02:10:59.000Z","size":271,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-22T04:17:02.911Z","etag":null,"topics":["ci","continuous-integration","github-actions","maintainers"],"latest_commit_sha":null,"homepage":"","language":"Python","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/per1234.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2021-05-17T23:57:40.000Z","updated_at":"2025-09-22T02:11:02.000Z","dependencies_parsed_at":"2023-12-25T04:26:53.920Z","dependency_job_id":"31229fcb-b1e2-4145-87e9-0776099dfd28","html_url":"https://github.com/per1234/workflowsawaiting","commit_stats":{"total_commits":101,"total_committers":2,"mean_commits":50.5,"dds":0.3564356435643564,"last_synced_commit":"c080d177f8bde9cc762c0dbfc6489d2e7c76f4af"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/per1234/workflowsawaiting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per1234%2Fworkflowsawaiting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per1234%2Fworkflowsawaiting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per1234%2Fworkflowsawaiting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per1234%2Fworkflowsawaiting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/per1234","download_url":"https://codeload.github.com/per1234/workflowsawaiting/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per1234%2Fworkflowsawaiting/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278786670,"owners_count":26045588,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ci","continuous-integration","github-actions","maintainers"],"created_at":"2024-11-16T23:12:11.052Z","updated_at":"2025-10-07T13:57:21.292Z","avatar_url":"https://github.com/per1234.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# workflowsawaiting\n\nCheck for [GitHub Actions](https://github.com/features/actions) workflow runs which are awaiting approval.\n\nFrom https://docs.github.com/en/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks\n\n\u003e workflows on pull requests are not run automatically if they are received from first-time contributors, and must be approved first\n\nThis policy puts a large burden on repository maintainers. Even with an active maintainer, it can introduce significant delays in the important feedback cycle between contributors and the CI system. The first time PRs targeted by the system are often the very ones that benefit the most from an automated validation system. It can be easy for maintainers to overlook that each push to a PR necessitates another approval.\n\nFor this reason, it's useful to have a tool to monitor repositories for unapproved workflows.\n\n## Table of Contents\n\n\u003c!-- toc --\u003e\n\n- [Dependencies](#dependencies)\n- [Usage](#usage)\n  - [Arguments](#arguments)\n    - [`CONFIG_PATH`](#config_path)\n  - [Options](#options)\n    - [`--report-path`](#--report-path)\n    - [`--verbose`](#--verbose)\n  - [Environment variables](#environment-variables)\n    - [`GITHUB_TOKEN`](#github_token)\n- [Configuration file](#configuration-file)\n  - [`owner`](#owner)\n  - [`repo`](#repo)\n  - [`action`](#action)\n  - [`scope`](#scope)\n\n\u003c!-- tocstop --\u003e\n\n## Dependencies\n\nRequired tools:\n\n- [Python](https://www.python.org/) 3.9\n- [Poetry](http://python-poetry.org/) - Used for dependency management\n\nRun the following from the project's root folder to install the Python module dependencies:\n\n```\npoetry install\n```\n\n## Usage\n\n```\npoetry run python workflowsawaiting.py [OPTION]... CONFIG_PATH\n```\n\n### Arguments\n\n#### `CONFIG_PATH`\n\n**Required**\n\nPath to a [YAML](https://en.wikipedia.org/wiki/YAML) formatted file defining the repositories to monitor workflows in.\n\nSee the [Configuration file](#configuration-file) section for details on the file format.\n\n### Options\n\n#### `--report-path`\n\n**Optional**\n\nPath to output a [JSON](https://www.json.org/) format report of the results to.\n\n#### `--verbose`\n\n**Optional**\n\nOutput debug information.\n\n### Environment variables\n\n#### `GITHUB_TOKEN`\n\n**Required**\n\n[GitHub access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) to use for the GitHub API requests.\n\n## Configuration file\n\nThe repositories to monitor workflows in are defined by a [YAML](https://en.wikipedia.org/wiki/YAML) formatted file.\n\nIt is a list of configuration objects, which support the following keys:\n\n### `owner`\n\nRepository owner. If an owner, the configuration applies to all that owner's repositories, though subsequent configuration objects can modify that list.\n\n### `repo`\n\nRepository name. If no `repo` is specified by a configuration object, the `action` is applied to all the owner's repositories which are in the `scope`, though subsequent configuration objects can modify that list.\n\n### `action`\n\nSupported values:\n\n- **`monitor`** (default)\n- **`ignore`**\n\n### `scope`\n\nSupported values:\n\n- **`maintaining`**: (default) monitor only repositories where the owner of [`GITHUB_TOKEN`](#github_token) has permissions.\n- **`all`**: monitor all repositories\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fper1234%2Fworkflowsawaiting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fper1234%2Fworkflowsawaiting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fper1234%2Fworkflowsawaiting/lists"}