{"id":23796849,"url":"https://github.com/aayushchugh/repo-command","last_synced_at":"2025-08-17T13:15:43.868Z","repository":{"id":56734161,"uuid":"523854247","full_name":"aayushchugh/repo-command","owner":"aayushchugh","description":"A Github app that lets you automate your basic tasks by automatically adding labels to your pull requests and using `/` commands in your comments to do some nice stuff like approving and merging pull requests.","archived":false,"fork":false,"pushed_at":"2025-01-01T20:26:09.000Z","size":1667,"stargazers_count":12,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-10T09:48:41.720Z","etag":null,"topics":["bot","github","javascript","nodejs","probot"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/repo-command","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/aayushchugh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"zenodo":null}},"created_at":"2022-08-11T20:05:41.000Z","updated_at":"2025-06-17T04:44:34.000Z","dependencies_parsed_at":"2024-05-01T19:40:25.502Z","dependency_job_id":"96c840ba-3b7e-4270-9c77-f7783d634c21","html_url":"https://github.com/aayushchugh/repo-command","commit_stats":{"total_commits":151,"total_committers":5,"mean_commits":30.2,"dds":"0.23841059602649006","last_synced_commit":"1b08e18070f3ecce3f5338f3c825b9735963f32e"},"previous_names":["aayushchugh/repository-commander","aayushchugh/repo-command","shriproperty/repository-commander"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/aayushchugh/repo-command","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushchugh%2Frepo-command","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushchugh%2Frepo-command/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushchugh%2Frepo-command/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushchugh%2Frepo-command/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aayushchugh","download_url":"https://codeload.github.com/aayushchugh/repo-command/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aayushchugh%2Frepo-command/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270852335,"owners_count":24656872,"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-17T02:00:09.016Z","response_time":129,"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":["bot","github","javascript","nodejs","probot"],"created_at":"2025-01-01T20:11:38.117Z","updated_at":"2025-08-17T13:15:43.859Z","avatar_url":"https://github.com/aayushchugh.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./logo.svg\" height=\"200\" width=\"200\" alt=\"logo\" align=\"center\"/\u003e\n\u003ch1\u003eRepo Command\u003c/h1\u003e\n\nA GitHub bot that automates repository management through commands and automatic labeling.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![GitHub release](https://img.shields.io/github/release/aayushchugh/repo-command.svg)](https://github.com/aayushchugh/repo-command/releases/)\n\n\u003c/div\u003e\n\n## Features\n\n### Automatic Labeling\n\n- Labels new PRs as \"ready for review\"\n- Adds \"approved\" label when PR is approved\n- Adds \"changes requested\" when changes are requested\n- Adds \"merged\" label to merged PRs\n- Adds \"fixed\" label to closed bug issues\n- Adds \"implemented\" label to closed feature/enhancement issues\n\n### Commands\n\nUse these commands in PR/issue comments:\n\n- `/approve` - Approve a pull request\n- `/merge` - Merge a pull request\n- `/close` - Close an issue or pull request\n- `/wip` - Mark as work in progress\n- `/label \u003cname\u003e` - Add labels\n- `/request-info` - Request more information\n\n### Smart Automations\n\n- Requests more information when issue descriptions are too short\n- Welcomes first-time contributors\n- Manages labels based on PR/issue status\n- Automatically removes labels when conditions change\n\n## Installation\n\n1. [Install the GitHub App](https://github.com/apps/repo-command)\n2. Grant access to your repositories\n3. Optionally create a config file (see Configuration section)\n\n## Usage\n\n### Commands\n\n1. **Approve PR**\n\n    ```\n    /approve\n    ```\n\n    Approves the pull request (requires write access)\n\n\u003cimg width=\"1404\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c15be504-a2e9-496e-bf63-ddd4dcf759ad\" /\u003e\n\n2. **Merge PR**\n\n    ```\n    /merge\n    ```\n\n    Merges the pull request using rebase strategy (requires write access)\n\n\u003cimg width=\"1417\" alt=\"image\" src=\"https://github.com/user-attachments/assets/85a37b6a-a13b-44aa-895d-43edeb02e95a\" /\u003e\n\n3. **Close**\n\n    ```\n    /close\n    ```\n\n    Closes a issue/PR\n\n   \u003cimg width=\"1404\" alt=\"image\" src=\"https://github.com/user-attachments/assets/8deba0de-9aff-48f4-883d-9b5419c89879\" /\u003e\n\n\n4. **Add Labels**\n\n    ```\n    /label bug documentation\n    ```\n\n    Adds one or more labels to the issue/PR\n\n\u003cimg width=\"1400\" alt=\"image\" src=\"https://github.com/user-attachments/assets/8bc0ee2a-caf7-4204-acc2-9f15f91efbd3\" /\u003e\n\n\n5. **Work in Progress**\n\n    ```\n    /wip\n    ```\n\n    Marks PR as work in progress\n\n\u003cimg width=\"1422\" alt=\"image\" src=\"https://github.com/user-attachments/assets/e4f1026c-3fb5-4763-9c93-875084a26574\" /\u003e\n\n\n6. **Request Information**\n    ```\n    /request-info\n    ```\n    Requests additional information from the author\n\n\u003cimg width=\"1405\" alt=\"image\" src=\"https://github.com/user-attachments/assets/81e84593-9934-44ce-8e85-d3f1d404048a\" /\u003e\n\n\n### Automations\n\nThe bot includes several automatic behaviors that can be enabled or disabled:\n\n1. **Request more info** (`requestMoreInfo`)\n\n   - Request more information from user when description is too short\n   - Triggers on: Issue opened\n\n  \u003cimg width=\"1402\" alt=\"image\" src=\"https://github.com/user-attachments/assets/7c52d5d1-2d17-4cb7-a94d-1735a05612d4\" /\u003e\n\n\n2. **Ready for Review** (`addReadyForReview`)\n\n    - Adds \"ready for review\" label to new pull requests\n    - Triggers on: Pull request opened\n\n\u003cimg width=\"950\" alt=\"image\" src=\"https://github.com/user-attachments/assets/257880d5-aa91-4b4b-876e-0c9ca5c27ffc\" /\u003e\n\n  \n\n3. **Approval Labels** (`addApprovedLabel`)\n\n    - Adds \"approved\" label when PR is approved\n    - Removes \"changes requested\" label if present\n    - Triggers on: Pull request review submitted\n\n \u003cimg width=\"1404\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c15be504-a2e9-496e-bf63-ddd4dcf759ad\" /\u003e\n\n\n4. **Changes Requested** (`addChangesRequestedLabel`)\n\n    - Adds \"changes requested\" label when changes are requested\n    - Removes \"approved\" and \"ready for review\" labels\n    - Triggers on: Pull request review submitted\n\n\u003cimg width=\"1425\" alt=\"image\" src=\"https://github.com/user-attachments/assets/000ea27f-6353-4e44-b1fd-d7df42d64857\" /\u003e\n\n\n5. **Merged Label** (`addMergedLabel`)\n\n    - Adds \"merged\" label when PR is merged\n    - Removes review-related labels\n    - Triggers on: Pull request closed (merged)\n\n  \n \u003cimg width=\"1403\" alt=\"image\" src=\"https://github.com/user-attachments/assets/94707a0e-b2a4-48ac-93d1-abaf6741ef44\" /\u003e\n\n\n6. **Welcome Messages** (`welcomeContributor`, `welcomeIssue`)\n    - Welcomes first-time contributors\n    - Provides helpful onboarding information\n    - Triggers on: First PR or issue\n\n\u003cimg width=\"930\" alt=\"image\" src=\"https://github.com/user-attachments/assets/e68f4114-d8f7-4dae-9ef1-055b954e84e5\" /\u003e\n\n\n\n## Configuration\n\nCreate a `.github/repo-command.yml` file in your repository:\n\n```yaml\n# Minimum length required for issue/PR descriptions\nminBodyLength: 50\n\n# Enable/disable commands\ncommands:\n    wip: true\n    approve: true\n    close: true\n    label: true\n    merge: true\n    requestInfo: true\n\n# Enable/disable automations\nautomations:\n    addReadyForReview: true\n    addApprovedLabel: true\n    addChangesRequestedLabel: true\n    addMergedLabel: true\n    requestMoreInfo: true\n    addLabelsOnClose: true\n    welcomeContributor: true\n    welcomeIssue: true\n\n# Configure labels\nlabels:\n    wip: \"work in progress\"\n    readyForReview: \"ready for review\"\n    approved: \"approved\"\n    changesRequested: \"changes requested\"\n    needsMoreInfo: \"needs more info\"\n    merged: \"merged\"\n    bug: \"bug\"\n    feature: \"feature\"\n    enhancement: \"enhancement\"\n    fixed: \"fixed\"\n    implemented: \"implemented\"\n\n# Configure messages\nmessages:\n    welcomeContributor: |\n        Thanks for your first pull request, @{user}! 🎉\n        The team will review your changes soon.\n    welcomeIssue: |\n        Thanks for opening your first issue, @{user}! 🎉\n    requestMoreInfo: |\n        Hey @{user}! Please provide more details in your {type}.\n    moreInfoAdded: |\n        Thanks @{user} for adding more information!\n```\n\n## Development\n\n### Prerequisites\n\n- Node.js \u003e= 16\n- npm or yarn\n- A GitHub account\n\n### Local Setup\n\n1. Clone the repository\n\n```bash\ngit clone git@github.com:aayushchugh/repo-command.git\ncd repo-command\n```\n\n2. Install dependencies\n\n```bash\nnpm install\n```\n\n3. Create a `.env` file:\n\n```env\nAPP_ID=your_app_id\nPRIVATE_KEY=your_private_key\nWEBHOOK_SECRET=your_webhook_secret\n```\n\n4. Start the bot\n\n```bash\nnpm run dev\n```\n\n### Docker Support\n\nRun using Docker:\n\n```bash\n# Using Docker Compose\ndocker compose up -d\n\n# Or using Docker directly\ndocker build -t repo-command .\ndocker run -d \\\n  -p 3000:3000 \\\n  --env-file .env \\\n  --name repo-command \\\n  repo-command\n```\n\n## Contributing\n\nContributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md).\n\n## Support\n\nFor support:\n\n- Open an issue\n- Email: hey@ayushchugh.com\n\n## License\n\n[MIT](LICENSE) © Ayush Chugh\n\ndocker run -d \\\n -p 3000:3000 \\\n --env-file .env \\\n --name repo-command \\\n repo-command\n\n```\n\nThe bot will be available at `http://localhost:3000`.\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faayushchugh%2Frepo-command","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faayushchugh%2Frepo-command","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faayushchugh%2Frepo-command/lists"}