{"id":22852105,"url":"https://github.com/thomasvjoseph/manual-approval","last_synced_at":"2026-05-11T03:04:39.316Z","repository":{"id":266830803,"uuid":"899484511","full_name":"thomasvjoseph/manual-approval","owner":"thomasvjoseph","description":"Hold up the GitHub Actions workflow and request manual confirmation from selected approvers to continue. By providing 'yes' or 'no' in issue.","archived":false,"fork":false,"pushed_at":"2024-12-20T05:31:33.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T11:35:55.131Z","etag":null,"topics":["cicd","deployment","devops","github","github-actions","relase","workflow"],"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/thomasvjoseph.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}},"created_at":"2024-12-06T11:09:12.000Z","updated_at":"2025-01-27T04:59:35.000Z","dependencies_parsed_at":"2025-02-06T11:42:54.012Z","dependency_job_id":null,"html_url":"https://github.com/thomasvjoseph/manual-approval","commit_stats":null,"previous_names":["thomasvjoseph/manual-approval"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasvjoseph%2Fmanual-approval","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasvjoseph%2Fmanual-approval/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasvjoseph%2Fmanual-approval/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasvjoseph%2Fmanual-approval/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomasvjoseph","download_url":"https://codeload.github.com/thomasvjoseph/manual-approval/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246429447,"owners_count":20775806,"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":["cicd","deployment","devops","github","github-actions","relase","workflow"],"created_at":"2024-12-13T06:07:12.405Z","updated_at":"2026-05-11T03:04:34.263Z","avatar_url":"https://github.com/thomasvjoseph.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Manual Approval GitHub Action\n\nHold up the GitHub Actions workflow and request manual confirmation from selected approvers to continue.\n\nThis GitHub Action allows you to create an issue on your repository that requires manual approval through comments. Assignees of the issue (or any user if no assignees are set) can approve or reject the issue by commenting `\"yes\"` or `\"no\"` on the issue.\nThe action can also be configured to require a minimum number of approvals if multiple assignees are set.\n\n## Features\n- Creates an issue for manual approval.\n- Only allows assignees (or anyone if no assignees are specified) to approve or reject.\n- Tracks approvals and rejections based on user comments.\n- Optionally requires a minimum number of approvals for closing the issue.\n\n## Inputs\n\n| Input Name          | Description                                                              | Default               |\n| ------------------- | ------------------------------------------------------------------------ | --------------------- |\n| `INPUT_TITLE`        | Title of the issue to be created.                                        | `Manual Approval`     |\n| `INPUT_BODY`         | Body of the issue. This should include instructions for users to approve or reject. | `Provide approval as yes or no.` |\n| `INPUT_LABELS`       | A comma-separated list of labels to apply to the issue.                  | `\"\"`           |\n| `INPUT_ASSIGNEES`    | A comma-separated list of assignees for the issue. If not provided, anyone can approve/reject. | `\"\"` |\n| `INPUT_TIMEOUT`      | Timeout period (in minutes) for waiting for approval. If no comment is received within this time, the issue will be closed. | `30`                   |\n| `INPUT_MIN_APPROVERS`| Minimum number of approvals required to close the issue. Only applicable when there are multiple assignees. | `1`                   |\n\n\n## Usage\n\n### Workflow Example\n\n```yaml\nname: Manual Approval Workflow\n\non:\n  push:\n    branches:\n      - main\npermissions:\n  id-token: write\n  issues: write\n  contents: read\n\njobs:\n  approval:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v4\n\n      - name: Request approval\n        uses: thomasvjoseph/manual-approval@v1.0.1\n        with:\n          INPUT_TITLE: \"Manual Approval Request\"\n          INPUT_BODY: \"Please approve or reject by commenting 'yes' or 'no'.\"\n          INPUT_ASSIGNEES: \"user1,user2\"\n          INPUT_MIN_APPROVERS: 1\n          INPUT_TIMEOUT: 10\n\n     - name: Run a one-line script\n       run: echo Hello, world!\n\n```\n\n## How it Works\n\n\t1.\tWhen the workflow is triggered, it creates an issue with the title and body you provide.\n\t2.\tIf you have set assignees, only those users can approve or reject the issue by commenting \"yes\" or \"no\".\n\t3.\tIf the number of approvals meets the INPUT_MIN_APPROVERS threshold, the issue will be closed with a success message.\n\t4.\tIf any assignee comments \"no\", the issue will be closed with a rejection message.\n\t5.\tIf no approval is received within the specified timeout (INPUT_TIMEOUT), the issue will be closed with a failure message.\n\n## Example Use Cases\n\n\t•\tSingle Assignee: If you have only one assignee, the workflow will proceed when that assignee approves or rejects the issue.\n\t•\tMultiple Assignees: If you have multiple assignees, you can set a minimum number of approvals required to close the issue.\n\n## Contributing\n\nFeel free to fork this repository, make improvements, and submit pull requests. If you have suggestions or find any bugs, open an issue to discuss them.\n\n## License\n\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) for more details.\n\n\n## Author:  \nthomas joseph\n- [linkedin](https://www.linkedin.com/in/thomas-joseph-88792b132/)\n- [medium](https://medium.com/@thomasvjoseph)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasvjoseph%2Fmanual-approval","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomasvjoseph%2Fmanual-approval","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasvjoseph%2Fmanual-approval/lists"}