{"id":25413807,"url":"https://github.com/0xvikasrushi/openissuemonitor","last_synced_at":"2025-10-31T07:31:41.493Z","repository":{"id":199321972,"uuid":"700326766","full_name":"0xVikasRushi/OpenIssueMonitor","owner":"0xVikasRushi","description":"Open Issue Monitor is a notification system designed for tracking specific labels for GitHub issues.","archived":false,"fork":false,"pushed_at":"2023-10-22T12:33:21.000Z","size":223,"stargazers_count":23,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-10T02:09:05.598Z","etag":null,"topics":["github-api","github-issues","github-issues-labels","github-labels","gsoc"],"latest_commit_sha":null,"homepage":"","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/0xVikasRushi.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}},"created_at":"2023-10-04T11:41:31.000Z","updated_at":"2024-08-25T17:17:53.000Z","dependencies_parsed_at":"2023-10-14T19:54:41.330Z","dependency_job_id":"b48ea823-91bd-413a-88a1-406bf928a837","html_url":"https://github.com/0xVikasRushi/OpenIssueMonitor","commit_stats":null,"previous_names":["0xvikasrushi/openissuemonitor"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xVikasRushi%2FOpenIssueMonitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xVikasRushi%2FOpenIssueMonitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xVikasRushi%2FOpenIssueMonitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xVikasRushi%2FOpenIssueMonitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xVikasRushi","download_url":"https://codeload.github.com/0xVikasRushi/OpenIssueMonitor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239140312,"owners_count":19588384,"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":["github-api","github-issues","github-issues-labels","github-labels","gsoc"],"created_at":"2025-02-16T14:31:50.035Z","updated_at":"2025-10-31T07:31:41.127Z","avatar_url":"https://github.com/0xVikasRushi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Issue Monitor\n\n![GitHub Release](https://img.shields.io/github/release/0xVikasRushi/OpenIssueMonitor.svg?style=flat)\n![GitHub](https://img.shields.io/github/license/0xVikasRushi/OpenIssueMonitor)\n![Github Stars](https://img.shields.io/github/stars/0xVikasRushi/OpenIssueMonitor)\n![GitHub last commit](https://img.shields.io/github/last-commit/0xVikasRushi/OpenIssueMonitor)\n![GitHub issues](https://img.shields.io/github/issues-raw/0xVikasRushi/OpenIssueMonitor)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/0xVikasRushi/OpenIssueMonitor)\n\n\n![Open Issue Monitor](https://github.com/0xVikasRushi/OpenIssueMonitor/assets/88543171/ea6766ad-ef1c-4ba5-903e-0c5eeb635051)\n\n\n\nOpen Issue Monitor is a notification system designed for tracking specific GitHub issues. It enables you to monitor issues in open-source GitHub repositories that have specific labels. \n\n\nIt regularly scans for new issues, compares them to the existing ones, and sends you notifications via Telegram whenever there are updates or changes.\n\n## Table of Contents\n- [Problem](#major-problem)\n- [Features](#features)\n- [How It Works](#how-it-works)\n  - [Math Section](#math-section)\n- [Installation](#installation)\n    - [Create Telegram Bot](https://github.com/0xVikasRushi/OpenIssueMonitor/blob/main/CREATE_BOT.md)\n- [Usage](#usage)\n- [Self Hosting](#self-hosting)\n- [Limitations](#limitations)\n- [What's Next](#whats-next)\n- [License](#license)\n- [Feedback](#feedback)\n\n## Major Problem\n \nIf you're someone  actively contribute to open-source projects on GitHub, you know how crucial it is to be one of the first people and get issue assigned to you. \n\nBut when you use GitHub's watch on in repositories, you end up getting a lot of emails. These emails include every discussion and a lot of extra information that you might not actually want or need.\n\nIf you're someone who's genuinely interested in contributing to open-source projects, such as through programs like GSOC, then you're in the right place! Welcome to the community.\n\n\n## Features\n\n- Track GitHub open-source project issues with selected labels.\n- Periodically call the GitHub API to retrieve issue data.\n- Compare previous and new issue data to detect changes.\n- Notify users of new issues via Telegram.\n\n## How It Works\n### Math Section\nTo understand how the rate of API requests aligns with the GitHub rate limit, let's break down the calculations:\n- GitHub rate limit: 5000 requests per hour\n- OpenIssueMointer application sends 1 request every 10 seconds (approximately 6 requests per minute).\n\n#### Calculations:\n\n- Requests per hour : 6 requests/minute * 60 minutes = 360 requests/hour\n- OpenIssueMointer application's rate of sending requests is well within the GitHub rate limit, ensuring smooth and uninterrupted operation.\n- Once the application is running, it will periodically check for new issues in the GitHub repositories you have configured and notify you via \nTelegram when new issues are detected.\n\nYou can also use the `/rate-limit` command in Telegram bot to check the rate limit status of the GitHub API.\n\n\n## Installation\n\nTo run Open Issue Monitor, follow these steps:\n\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/0xVikasRushi/OpenIssueMonitor\n   cd OpenIssueMonitor\n2. Install dependencies:\n   ```bash\n    yarn install\n3. Environment Variables\n    To run this project, you will need to add the following environment variables to your .env file\u003cbr\u003e\n    \n    `TELEGRAM_BOT_TOKEN=` - [Guide to Create Telegram Access Token](https://github.com/0xVikasRushi/OpenIssueMonitor/blob/main/CREATE_BOT.md) \u003cbr\u003e\n    `GITHUB_ACCESS_TOKEN` - [Guide to Create Github Access Token](https://docs.github.com/en/enterprise-server@3.6/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) \u003cbr\u003e\n\n    Create a .env file in the project root directory with the following content:\n      ```bash\n      GITHUB_ACCESS_TOKEN=your_github_access_token\n      TELEGRAM_BOT_TOKEN=your_telegram_bot_token\n      REPO_OWNER=\u003coptional\u003e\n      REPO_NAME=\u003coptional\u003e\n    \n5. Start the application:\n    ```bash\n     yarn run dev\n## Usage\n\nThe Telegram bot offers the following commands to interact with the Open Issue Monitor:\n\n- `/startserver`: Start the server for monitoring GitHub issues.\n  - Example usage: `/startserver`\n  - Action: Initiates the server for monitoring.\n\n- `/status`: Check the status of the server.\n  - Example usage: `/status`\n  - Action: Retrieves the current status of the server.\n\n- `/stop`: Stop the server.\n  - Example usage: `/stop`\n  - Action: Stops the server.\n\n- `/ratelimit`: Check the rate limit status.\n  - Example usage: `/ratelimit`\n  - Action: Retrieves information about the rate limit.\n\n- `/getCurrentConfig`: Get the current configuration.\n  - Example usage: `/getCurrentConfig`\n  - Action: Retrieves and displays the current configuration settings.\n\n- `/changeRateLimit`: Change the rate limit settings.\n  - Example usage: `/changeRateLimit`\n  - Action: Allows changing the rate limit settings.\n\n- `/addLabel`: Add a label to an issue.\n  - Example usage: `/addLabel`\n  - Action: Provides a way to add labels to GitHub issues.\n\n- `/help` or `/start`: Get help and usage instructions.\n  - Example usage: `/help` or `/start`\n  - Action: Displays usage instructions and available commands.\n\n- Default: If an invalid or unrecognized command is provided, the bot will display usage instructions.\n## Self Hosting\n  You have the Free options to self-host the Open Issue Monitor backend for free on various cloud platforms. Here are some recommended free hosting options:\n- [Render](https://render.com/)\n  Render offers a free tier that allows you to host web applications without incurring costs.\n- [Railway](https://railway.app/)\n- [Fly.io](https://fly.io/)\n- [Amazon EC2 (Free Tier)](https://aws.amazon.com/ec2/)\n  Amazon EC2 offers a free tier that allows you to run small virtual servers for free for 12 months.\n  \nChoose one of these free hosting platforms to deploy your Open Issue Monitor backend without incurring hosting expenses.\nRefer to the respective platform's documentation for detailed deployment instructions.\n\n## Limitations\n\nOpen Issue Monitor currently has some limitations:\n\n1. **Single Repository Focus:** It can only monitor and provide notifications for a single GitHub repository at a time. If you're involved in multiple projects, you would need to set up separate instances for each repository.\n\n2. **Multi-Label Tracking:** While it can track multiple labels within a repository, it doesn't support tracking across multiple repositories simultaneously. Each instance of Open Issue Monitor is dedicated to a specific repository.\n\n## What's Next\n\nThe future development of Open Issue Monitor:\n\n1. **Multiple Repository Support:**  Allowing users to monitor and receive notifications from multiple GitHub repositories within a single instance of the application.\n2. **Managed Service Platform:** We are exploring the idea of creating a platform where users can easily subscribe to multiple repositories and select specific labels of interest.\n3. **Discord Bot Integration:** To expand our reach and accommodate different communication preferences, we're planning to introduce a Discord bot service alongside the existing Telegram integration.\n\n\n## License\n[MIT](https://github.com/0xVikasRushi/OpenIssueMonitor/blob/main/LICENSE)\n\n## Feedback\n\nFeel free to utilize the code for your own purposes, explore its inner workings, and make it your own. However, we kindly request that you remain mindful of GitHub's rate limit policies when using our application. \nMoreover.\n\nI love constructive criticism! Don't hesitate to roast my code, point out areas for improvement.\nSuggest new features and Thanks to [Shubh A Chudasama](https://github.com/c-shubh) helping me out the project.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xvikasrushi%2Fopenissuemonitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xvikasrushi%2Fopenissuemonitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xvikasrushi%2Fopenissuemonitor/lists"}