GithubHelp home page GithubHelp logo

0xvikasrushi / openissuemonitor Goto Github PK

View Code? Open in Web Editor NEW
21.0 2.0 3.0 223 KB

Open Issue Monitor is a notification system designed for tracking specific labels for GitHub issues.

License: MIT License

TypeScript 100.00%
github-api github-issues github-issues-labels github-labels gsoc

openissuemonitor's Introduction

Open Issue Monitor

GitHub Release GitHub Github Stars GitHub last commit GitHub issues GitHub pull requests

Open Issue Monitor

Open 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.

It regularly scans for new issues, compares them to the existing ones, and sends you notifications via Telegram whenever there are updates or changes.

Table of Contents

Major Problem

If 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.

But 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.

If 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.

Features

  • Track GitHub open-source project issues with selected labels.
  • Periodically call the GitHub API to retrieve issue data.
  • Compare previous and new issue data to detect changes.
  • Notify users of new issues via Telegram.

How It Works

Math Section

To understand how the rate of API requests aligns with the GitHub rate limit, let's break down the calculations:

  • GitHub rate limit: 5000 requests per hour
  • OpenIssueMointer application sends 1 request every 10 seconds (approximately 6 requests per minute).

Calculations:

  • Requests per hour : 6 requests/minute * 60 minutes = 360 requests/hour
  • OpenIssueMointer application's rate of sending requests is well within the GitHub rate limit, ensuring smooth and uninterrupted operation.
  • Once the application is running, it will periodically check for new issues in the GitHub repositories you have configured and notify you via Telegram when new issues are detected.

You can also use the /rate-limit command in Telegram bot to check the rate limit status of the GitHub API.

Installation

To run Open Issue Monitor, follow these steps:

  1. Clone the repository:

    git clone https://github.com/0xVikasRushi/OpenIssueMonitor
    cd OpenIssueMonitor
  2. Install dependencies:

     yarn install
  3. Environment Variables To run this project, you will need to add the following environment variables to your .env file

    TELEGRAM_BOT_TOKEN= - Guide to Create Telegram Access Token
    GITHUB_ACCESS_TOKEN - Guide to Create Github Access Token

    Create a .env file in the project root directory with the following content:

    GITHUB_ACCESS_TOKEN=your_github_access_token
    TELEGRAM_BOT_TOKEN=your_telegram_bot_token
    REPO_OWNER=<optional>
    REPO_NAME=<optional>
    
  4. Start the application:

     yarn run dev

Usage

The Telegram bot offers the following commands to interact with the Open Issue Monitor:

  • /startserver: Start the server for monitoring GitHub issues.

    • Example usage: /startserver
    • Action: Initiates the server for monitoring.
  • /status: Check the status of the server.

    • Example usage: /status
    • Action: Retrieves the current status of the server.
  • /stop: Stop the server.

    • Example usage: /stop
    • Action: Stops the server.
  • /ratelimit: Check the rate limit status.

    • Example usage: /ratelimit
    • Action: Retrieves information about the rate limit.
  • /getCurrentConfig: Get the current configuration.

    • Example usage: /getCurrentConfig
    • Action: Retrieves and displays the current configuration settings.
  • /changeRateLimit: Change the rate limit settings.

    • Example usage: /changeRateLimit
    • Action: Allows changing the rate limit settings.
  • /addLabel: Add a label to an issue.

    • Example usage: /addLabel
    • Action: Provides a way to add labels to GitHub issues.
  • /help or /start: Get help and usage instructions.

    • Example usage: /help or /start
    • Action: Displays usage instructions and available commands.
  • Default: If an invalid or unrecognized command is provided, the bot will display usage instructions.

Self Hosting

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:

  • Render Render offers a free tier that allows you to host web applications without incurring costs.
  • Railway
  • Fly.io
  • Amazon EC2 (Free Tier) Amazon EC2 offers a free tier that allows you to run small virtual servers for free for 12 months.

Choose one of these free hosting platforms to deploy your Open Issue Monitor backend without incurring hosting expenses. Refer to the respective platform's documentation for detailed deployment instructions.

Limitations

Open Issue Monitor currently has some limitations:

  1. 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.

  2. 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.

What's Next

The future development of Open Issue Monitor:

  1. Multiple Repository Support: Allowing users to monitor and receive notifications from multiple GitHub repositories within a single instance of the application.
  2. 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.
  3. 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.

License

MIT

Feedback

Feel 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. Moreover.

I love constructive criticism! Don't hesitate to roast my code, point out areas for improvement. Suggest new features and Thanks to Shubh A Chudasama helping me out the project.

openissuemonitor's People

Contributors

0xvikasrushi avatar freakyab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

openissuemonitor's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.