{"id":15018146,"url":"https://github.com/dkhmelenko/autoapproval","last_synced_at":"2025-10-23T15:31:50.640Z","repository":{"id":38375756,"uuid":"158618442","full_name":"dkhmelenko/autoapproval","owner":"dkhmelenko","description":"The bot for approving pull requests","archived":false,"fork":false,"pushed_at":"2024-01-02T04:29:22.000Z","size":3055,"stargazers_count":35,"open_issues_count":14,"forks_count":14,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T12:06:40.641Z","etag":null,"topics":["approve","bot","hacktoberfest","probot","probot-app","pull-requests"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkhmelenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":["dkhmelenko"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2018-11-21T23:37:45.000Z","updated_at":"2024-10-07T07:46:40.000Z","dependencies_parsed_at":"2024-06-18T21:52:42.892Z","dependency_job_id":null,"html_url":"https://github.com/dkhmelenko/autoapproval","commit_stats":{"total_commits":319,"total_committers":9,"mean_commits":35.44444444444444,"dds":0.5266457680250783,"last_synced_commit":"e1b09b598aef4333d4299436650ef8561e71916e"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkhmelenko%2Fautoapproval","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkhmelenko%2Fautoapproval/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkhmelenko%2Fautoapproval/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkhmelenko%2Fautoapproval/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkhmelenko","download_url":"https://codeload.github.com/dkhmelenko/autoapproval/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237852490,"owners_count":19376694,"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":["approve","bot","hacktoberfest","probot","probot-app","pull-requests"],"created_at":"2024-09-24T19:51:33.447Z","updated_at":"2025-10-23T15:31:49.154Z","avatar_url":"https://github.com/dkhmelenko.png","language":"TypeScript","funding_links":["https://github.com/sponsors/dkhmelenko"],"categories":[],"sub_categories":[],"readme":"# autoapproval\n\n[![Build Status](https://github.com/dkhmelenko/autoapproval/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/dkhmelenko/autoapproval/actions?query=branch%3Amaster)\n[![codecov](https://codecov.io/gh/dkhmelenko/autoapproval/branch/master/graph/badge.svg)](https://codecov.io/gh/dkhmelenko/autoapproval)\n\nA GitHub App built with [Probot](https://github.com/probot/probot) for approving pull requests automatically\n\n![image](https://user-images.githubusercontent.com/4306809/50573484-13a0a100-0dd5-11e9-8ef3-aad5069e83e3.png)\n\n## Setup\n\n```sh\n# Install dependencies\nnpm install\n\n# Run typescript\nnpm run build\n\n# Run the bot\nnpm start\n\n# Run tests, don't forget to run `npm run build` beforehand\nnpm run test\n```\n\nThis app requires `Write code` permissions in order not to have issues with approving PRs.\n```\nRepository administrators can require that all pull requests receive a specific number of approving reviews from people with write or admin permissions in the repository or from a designated code owner before they're merged into a protected branch.\n\n...\n\nYou won't be able to merge your pull request until the required number of reviewers with write or admin permissions in the repository approve your pull request's changes in their review.\n```\n\nMore about it can be found on [Github Help](https://help.github.com/en/articles/about-pull-request-reviews#required-reviews).\n\n### Configure GitHub Action\n\nThis application runs on GitHub Actions.\nCreate new file in your directory `.github/workflows/autoapproval.yml` and add the following configuration.\n```yaml\non:\n  pull_request:\n    types: [opened, reopened, labeled, edited]\n  pull_request_review:\n    types: [dismissed]\n    \npermissions:\n  contents: read\n  pull-requests: write\n  \njobs:\n  autoapproval:\n    runs-on: ubuntu-latest\n    name: Autoapproval\n    steps:\n      - uses: dkhmelenko/autoapproval@v1.0\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n## Configuration\n\nIn order to use the bot, the config file should be provided. Config file should be defined in your repository. Config file is the yml file with the path `.github/autoapproval.yml`. The file should have at least 3 mandatory entries: `from_owner`, `required_labels` and `apply_labels`.\n\n---\n\n### from_owner\n**mandatory**\n\nDefines the list of users, whos pull requests should be approved automatically. For example:\n```\nfrom_owner:\n  - dkhmelenko\n  - quongeri\n```\nAssign an empty array if you want to approve PRs from any user (example: `from_owner: []`).\n\n---\n\n### required_labels\n**mandatory**\n\nDefines the list of labels on PR, which should be present for approving PR automatically. For example:\n```\nrequired_labels:\n  - ready\n```\nAssign an empty array if you want to approve PRs without any label (example: `required_labels: []`).\n\n---\n\n### required_labels_mode\nDefines the behavior how `required_labels` should be treated.\nIf nothing specified, then all labels from `required_label` are mandatory.\nIf the value set to `one_of`, then it's enough to have only of the `required_labels` to get approval.\n\n---\n\n### blacklisted_labels\n\nDefines the list of labels on PR, which will prevent the PR from being automatically approved. For example:\n```\nblacklisted_labels:\n  - wip\n```\nAssign an empty array if you do not want to blacklist any labels.\n\n---\n\n### apply_labels\n**mandatory**\n\nDefines the list of labels on PR, which should be added once PR was approved automatically. For example:\n```\napply_labels:\n  - merge\n```\nAssign an empty array if no labels should be applied to PRs (example: `apply_labels: []`).\n\n_NOTES_:\n1. If label doesn't exist, it will not be created. In order to apply the label after approving PR automatically, you need to define the label beforehand.\n2. If PR already contains a review from this bot, new approval will not happen. Except the case when review was dismissed.\n\n---\n\n### auto_merge_labels / auto_squash_merge_labels / auto_rebase_merge_labels\nDefines labels for which the bot should enable auto merging for the pull request.\nThis will automatically merge the PR after approving it when all checks passed.\n\n\nThe following example with merge PR with the method \"Merge\" on GitHub:\n```\nauto_merge_labels:\n  - auto-merge\n```\n\nYou can also use \"Squash \u0026 Merge\" as merge method for a given list of labels:\n```\nauto_squash_merge_labels:\n  - auto-squash-merge\n```\n\nThe same is true for \"Rebase \u0026 Merge\":\n```\nauto_rebase_merge_labels:\n  - auto-rebase-merge\n```\n\n_NOTES_:\n- the `Allow auto-merge` setting must be enabled for the repository.\n- it is enough to use only one of the options: `auto_merge_labels`, `auto_squash_merge_labels` or `auto_rebase_merge_labels`\n- the repository should have enabled the merge method\n\n\n## Releasing\nTo release new version of the app, the following steps are required:\n1. compile Node.js module into a single file by running the following command\n```\nncc build index.js --license licenses.txt\n```\n2. tag new release and push tags\n```\ngit tag -a -m \"New action release\" v1.1\ngit push --tags\n```\n\n## Contributing\n\nIf you have suggestions for how autoapproval could be improved, or want to report a bug, open an issue! We'd love all and any contributions.\n\nFor more, check out the [Contributing Guide](CONTRIBUTING.md).\n\n## License\n\n[ISC](LICENSE) © 2018 [Dmytro Khmelenko](https://dkhmelenko.github.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkhmelenko%2Fautoapproval","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkhmelenko%2Fautoapproval","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkhmelenko%2Fautoapproval/lists"}