Whitelinke-Async-GitHub-Issue-Fetcher is a Flask-based web service designed to asynchronously fetch and manage open GitHub issues using the GitHub API. It supports user authentication, rate-limited API access, and integrates caching with Redis for optimized performance. This project provides an efficient and scalable solution for interacting with GitHub repositories, retrieving issue data, and offering a secure, API-driven interface. Key features include: Async fetching of GitHub issues using aiohttp User authentication with JWT Database integration with PostgreSQL Redis caching for improved performance Rate-limiting for API calls
Set up your environment:
Install Python (version 3.7 or later).
Set up a virtual environment to keep dependencies isolated (optional but recommended).
Install required dependencies:
Install the required libraries and packages using pip. You can do this by creating a requirements.txt file or manually installing them one by one.
Set up environment variables:
Create a .env file in your project directory.
Add the necessary environment variables (like SECRET_KEY, DATABASE_URL, GITHUB_TOKEN, etc.).
Configure Redis (if using Redis for caching):
Install and configure Redis on your system or use a hosted Redis service.
Create the database:
Set up the database (PostgreSQL, as mentioned in your code).
Run any necessary database migrations if required.
Run the application:
Start the Flask app by running the script that contains the Flask initialization.
The app should run on your local machine, typically accessible at http://127.0.0.1:5000.
Verify that the app is running:
Test the endpoints like /health to ensure everything is set up correctly.