{"id":28219950,"url":"https://github.com/wprashed/github-tracker","last_synced_at":"2025-06-11T09:30:35.408Z","repository":{"id":289503478,"uuid":"971225520","full_name":"wprashed/github-tracker","owner":"wprashed","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-23T15:35:05.000Z","size":19,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T03:12:19.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wprashed.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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":"2025-04-23T07:45:15.000Z","updated_at":"2025-04-23T15:40:12.000Z","dependencies_parsed_at":"2025-04-23T16:58:07.670Z","dependency_job_id":null,"html_url":"https://github.com/wprashed/github-tracker","commit_stats":null,"previous_names":["wprashed/github-tracker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wprashed%2Fgithub-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wprashed%2Fgithub-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wprashed%2Fgithub-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wprashed%2Fgithub-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wprashed","download_url":"https://codeload.github.com/wprashed/github-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wprashed%2Fgithub-tracker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259238537,"owners_count":22826776,"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":[],"created_at":"2025-05-18T03:11:54.762Z","updated_at":"2025-06-11T09:30:35.394Z","avatar_url":"https://github.com/wprashed.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Issue/PR Tracker\n\nThis project allows you to track GitHub Issues and Pull Requests (PRs) from a specific repository, send email and Slack notifications, export data to CSV, and even sync the data to Notion for easy collaboration. Additionally, it includes a Flask-based real-time dashboard to view the current issues and PRs.\n\n## Features\n\n- **Track GitHub Issues and PRs**: Fetch data from a GitHub repository using the GitHub API.\n- **Email Summary**: Send a daily summary of issues and PRs via email using SMTP.\n- **Slack Notification**: Send daily updates to a Slack channel using the Slack Web API.\n- **Export to CSV**: Save the issues and PRs in CSV format for further analysis.\n- **Sync with Notion**: Sync the issues and PRs with a Notion database.\n- **Flask Dashboard**: Display a real-time dashboard of issues and PRs.\n- **CRON Support**: Schedule the script to run daily using a CRON job.\n\n## Requirements\n\n- Python 3.x\n- Required libraries:\n  - `requests`\n  - `smtplib`\n  - `slack_sdk`\n  - `flask`\n  - `notion-client`\n  \n#### You can install the necessary libraries using the following command:\n\n```bash\npip install requests slack_sdk flask notion-client\n```\n\n## Setup Instructions\n\n### Step 1: GitHub API Setup\n\n1. Create a GitHub Personal Access Token. You can create one in your [GitHub settings](https://github.com/settings/tokens).\n2. Replace the following values in `github_tracker.py` with your GitHub information:\n   - `GITHUB_TOKEN`: Your GitHub Personal Access Token.\n   - `OWNER`: The GitHub repository owner.\n   - `REPO`: The GitHub repository name.\n\n### Step 2: Email Configuration (Optional)\n\nTo send email notifications, you'll need to set up your email credentials:\n\n1. Replace the following values in `github_tracker.py`:\n   - `EMAIL_FROM`: Your email address.\n   - `EMAIL_PASSWORD`: Your email account password.\n   - `SMTP_SERVER`: Your email server (e.g., \"smtp.gmail.com\" for Gmail).\n   - `SMTP_PORT`: SMTP port (587 for Gmail).\n   - `EMAIL_TO`: Recipient email address.\n\n### Step 3: Slack Configuration (Optional)\n\nTo send Slack notifications, create an incoming webhook on Slack and use the following settings:\n\n1. Replace the following values in `github_tracker.py`:\n   - `SLACK_TOKEN`: Your Slack API token.\n   - `SLACK_CHANNEL`: The Slack channel where the notifications will be sent.\n   - `SLACK_WEBHOOK_URL`: Your Slack Webhook URL.\n\n### Step 4: Notion Sync (Optional)\n\nTo sync the issues and PRs to Notion:\n\n1. Generate a Notion integration token via the [Notion developers page](https://www.notion.so/my-integrations).\n2. Replace the following values in `github_tracker.py`:\n   - `NOTION_TOKEN`: Your Notion integration token.\n   - `DATABASE_ID`: The ID of your Notion database where issues and PRs will be synced.\n\n### Step 5: CSV Export (Optional)\n\nThe script can automatically export the issues and PRs to a CSV file. You can modify the file name and location by changing the `CSV_FILENAME` variable in `github_tracker.py`.\n\n### Step 6: Running the Script\n\nOnce you have configured the settings, you can run the tracker:\n\n```bash\npython github_tracker.py\n```\n\nThis will fetch issues and PRs from the specified GitHub repository and perform the following actions based on your configuration:\n\n- Send an email summary (if configured).\n- Send a Slack notification (if configured).\n- Export the data to CSV (if configured).\n- Sync the data to Notion (if configured).\n\n### Step 7: Flask Dashboard (Optional)\n\nIf you want to set up a real-time dashboard to view the issues and PRs:\n\n1. Run the Flask app with:\n\n```bash\npython dashboard.py\n```\n\n2. Open your web browser and navigate to `http://localhost:5000` to see the real-time dashboard.\n\n### Step 8: Scheduling the Script (Optional)\n\nTo run the script automatically every day (e.g., for a daily check-in), you can schedule the script using CRON on Linux/macOS.\n\n1. Open the CRON configuration:\n\n```bash\ncrontab -e\n```\n\n2. Add the following line to run the script every day at 9:00 AM:\n\n```bash\n0 9 * * * /path/to/python3 /path/to/github_tracker.py\n```\n\n## Project Structure\n\n```\n/github-tracker\n    ├── github_tracker.py        # The main tracking script\n    ├── dashboard.py             # Flask dashboard (optional)\n    ├── /templates\n    │   └── dashboard.html       # Dashboard HTML template\n    └── README.txt               # This README file\n```\n\n## Customization\n\nYou can customize the following aspects of the project:\n\n- **Email Notifications**: Modify the email body and recipient list.\n- **Slack Messages**: Customize the message format and Slack channel.\n- **CSV Export**: Change the CSV filename and the fields you want to include.\n- **Notion Integration**: Adjust the Notion database properties for syncing.\n- **Flask Dashboard**: Modify the dashboard template to include additional information or features.\n\n## Troubleshooting\n\n- **GitHub API Limits**: GitHub API has rate limits. If you encounter errors due to rate limiting, check [GitHub’s API rate limits](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting).\n- **Slack Errors**: If the Slack message fails, ensure your Slack API token and webhook URL are correct.\n- **Email Errors**: If you encounter issues with email delivery, check the SMTP settings and ensure the email account allows \"less secure apps\" if necessary.\n\n## License\n\nThis project is open-source and available under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwprashed%2Fgithub-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwprashed%2Fgithub-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwprashed%2Fgithub-tracker/lists"}