{"id":15140244,"url":"https://github.com/self-approval/app","last_synced_at":"2025-08-21T02:07:58.884Z","repository":{"id":57864583,"uuid":"524577227","full_name":"self-approval/app","owner":"self-approval","description":"A GitHub App built with Probot that allows Pull Request authors to self-approve their Pull Requests. | By @Cubik65536 \u0026 @iXORTech","archived":false,"fork":false,"pushed_at":"2024-07-26T23:41:31.000Z","size":3031,"stargazers_count":4,"open_issues_count":5,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-13T09:44:26.871Z","etag":null,"topics":["approval","bot","github-app","probot","probot-app","project-maintenance","pull-request","pull-requests","pullrequest","pullrequests"],"latest_commit_sha":null,"homepage":"http://self-approval.ixor.tech","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/self-approval.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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":"Cubik65536","custom":"https://afdian.net/@cubik65536"}},"created_at":"2022-08-14T05:00:44.000Z","updated_at":"2024-07-26T23:41:34.000Z","dependencies_parsed_at":"2023-11-28T07:28:23.831Z","dependency_job_id":"0edc2b55-b4a5-481a-9eee-505b676dd06b","html_url":"https://github.com/self-approval/app","commit_stats":{"total_commits":49,"total_committers":2,"mean_commits":24.5,"dds":"0.12244897959183676","last_synced_commit":"ed99adf08a8c29878b6e969ccf2d390471c81bd6"},"previous_names":["self-approval/app"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/self-approval/app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/self-approval%2Fapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/self-approval%2Fapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/self-approval%2Fapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/self-approval%2Fapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/self-approval","download_url":"https://codeload.github.com/self-approval/app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/self-approval%2Fapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271415496,"owners_count":24755639,"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-08-21T02:00:08.990Z","response_time":74,"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":["approval","bot","github-app","probot","probot-app","project-maintenance","pull-request","pull-requests","pullrequest","pullrequests"],"created_at":"2024-09-26T08:01:44.105Z","updated_at":"2025-08-21T02:07:58.862Z","avatar_url":"https://github.com/self-approval.png","language":"TypeScript","readme":"# Self Approval App\n\n\u003e A GitHub App built with [Probot](https://github.com/probot/probot) that allows Pull Request authors to self-approve their Pull Requests.\n\n\u003e Special thanks to [dkhmelenko/autoapproval](https://github.com/dkhmelenko/autoapproval) for providing some inspiration and also some code implementation for this App.\n\n## Introduction\n\nFor some repositories, the Pull Request have to be approved before it can be merged.\n\nThis GitHub App allows some whitelisted repository maintainers to self-approve their Pull Requests, so they can directly approve and merge their own Pull Requests.\n\n## Local Setup / Server Deployment\n\nInstall dependencies\n\n```\nnpm install\n```\n\nBuild the project\n\n```\nnpm run build\n```\n\nStart the server\n\n```\nnpm start\n```\n\nFollow the instructions to register a new GitHub app.\n\nConfigure the app in the `.env` file by following the following instructions\n\n### Configuration\n\n1. Copy the `.env.example` file to `.env`\n2. Fill in the following values according to the following descriptions:\n    - `APP_ID`: the ID of the app, which you can get from the [app settings page](https://github.com/settings/apps).\n    - `GITHUB_CLIENT_ID`: the Client ID of the app, which you can get from the [app settings page](https://github.com/settings/apps).\n    - `GITHUB_CLIENT_SECRET`: the Client Secret of the app, which you can generate and get from the [app settings page](https://github.com/settings/apps).\n    - `WEBHOOK_SECRET`: the **Webhook Secret** that you generated when you created the app.\n    - `PRIVATE_KEY`: the contents of the private key you downloaded after creating the app.\n3. \\[OPTIONAL\\] Change the `PORT` to the port you want the app to listen to.\n4. \\[OPTIONAL\\] Setup HTTPS and domain name for the app. You can use multiple ways to do this (e.g. Nginx \u0026 Certbot).\n5. Set the **Webhook URL** of your GitHub App in the app settings page to the `WEBHOOK_URL` you configured in the `.env` file.\n\n### Update the app\n\nIf you want to update the app that is deployed on your server, you can follow the following steps:\n\n1. Stop the server\n2. Pull the latest changes from the repository\n3. Rerun the npm commands shown above\n\n## Deploy to Vercel\n\nThis app can be continuously deployed to [Vercel](https://vercel.com/) using the [Vercel GitHub app](https://github.com/apps/vercel).\n\n### Deploying\n\n1. You have two options to begin with:\n    - Click the following link to deploy this app to Vercel: [Deploy with Vercel](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fself-approval%2Fapp\u0026env=APP_ID,GITHUB_CLIENT_ID,GITHUB_CLIENT_SECRET,WEBHOOK_SECRET,PRIVATE_KEY\u0026project-name=self-approval-app\u0026repository-name=self-approval-app)\n    - Fork this repository and deploy it manually to Vercel following the [Vercel documentation](https://vercel.com/docs/git#deploying).\n2. Fill the following environment variables according to the following descriptions:\n    - `APP_ID`: the ID of the app, which you can get from the [app settings page](https://github.com/settings/apps).\n    - `GITHUB_CLIENT_ID`: the Client ID of the app, which you can get from the [app settings page](https://github.com/settings/apps).\n    - `GITHUB_CLIENT_SECRET`: the Client Secret of the app, which you can generate and get from the [app settings page](https://github.com/settings/apps).\n    - `WEBHOOK_SECRET`: the **Webhook Secret** that you generated when you created the app.\n    - `PRIVATE_KEY`: the contents of the private key you downloaded after creating the app.\n3. \\[OPTIONAL\\] Set the URL of your Vercel app if you want to use a custom domain.\n4. Set the **Webhook URL** of your GitHub App in the app settings page to `https://\u003cyour-vercel-app-url\u003e/api/github/webhooks`.\n\n### Update the app\n\nIf you want to update the app that is deployed on Vercel, you can follow the following steps:\n\n- If you used the above link to deploy the app\n  1. Go to the [Vercel dashboard](https://vercel.com/dashboard) and select the app you deployed\n  2. Click on the `Git Repository` button to go the the GitHub repository\n  3. Delete the repository\n  4. Redeploy the app using the above guide\n- If you forked the repository and deployed it manually\n  1. Go to the [Vercel dashboard](https://vercel.com/dashboard) and select the app you deployed\n  2. Click on the `Git Repository` button to go the the GitHub repository\n  3. Sync from the upstream repository\n  4. Wait for the Vercel to automatically redeploy the app\n\n### Considerations\n\n- Vercel [expects to find your lambda functions under `/api` folder]([url](https://vercel.com/docs/concepts/functions/serverless-functions#deploying-serverless-functions)). Make sure your functions are placed there and double check Vercel detected your Lambda Functions during the deployment process by checking the logs:\n\n![image](https://user-images.githubusercontent.com/2574275/187179364-b0019f95-be41-462a-97d5-facf4de39095.png)\n\n### How it works\n\nThe [api/github/webhooks/index.ts](api/github/webhooks/index.ts) file is handling requests to `POST /api/github/webhooks`, so make sure to configure your GitHub App registration's webhook URL accordingly.\n\n## Configure GitHub Repository\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/self-approval-pull-request.yml`. And the file should have these 3 entries: `self_approval_comments`, `from_author` and `apply_labels`.\n\n### self_approval_comments\n\nDefine the list of comments that will be considered as self-approval.\n\n```yml\nself_approval_messages:\n  - \"I self-approve!\"\n  - \"I self-certify!\"\n```\n\n### from_author\n\nDefine the list of GitHub users who can self-approve their Pull Request.\n\n```yml\nfrom_author:\n  - \"Cubik65536\"\n  - \"\u003cGitHub ID of other project maintainer\u003e\"\n```\n\nAssign an empty array if you want everyone can self-approve their Pull Requests (example: `from_author: []`).\n\n### apply_labels\n\nDefines the list of labels on PR, which should be added once PR was approved. For example:\n\n```yml\napply_labels:\n  - \"can-be-merged\"\n  - \"self-approved\"\n```\n\nAssign an empty array if no labels should be applied to PRs (example: `apply_labels: []`).\n\n## License\n\n[ISC](LICENSE) © 2022-2024 iXOR Technology \u0026 Cubik65536\n","funding_links":["https://github.com/sponsors/Cubik65536","https://afdian.net/@cubik65536"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fself-approval%2Fapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fself-approval%2Fapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fself-approval%2Fapp/lists"}