{"id":26678376,"url":"https://github.com/telexintegrations/github-commit-monitor","last_synced_at":"2025-10-17T15:35:31.925Z","repository":{"id":278753866,"uuid":"933001020","full_name":"telexintegrations/github-commit-monitor","owner":"telexintegrations","description":"GitHub Commit Monitor is a Flask-based integration that connects GitHub repositories with the Telex messaging platform. It receives webhook events for commits, verifies payload signatures for security, and sends real-time notifications to a Telex channel. Deployed on Heroku, it features CI/CD automation for seamless updates.","archived":false,"fork":false,"pushed_at":"2025-02-21T13:47:41.000Z","size":1309,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T14:32:47.009Z","etag":null,"topics":["flask-application","github-commits","python3","telex"],"latest_commit_sha":null,"homepage":"https://github-commit-monitor-4a53c549b932.herokuapp.com","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/telexintegrations.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}},"created_at":"2025-02-14T23:22:40.000Z","updated_at":"2025-02-21T13:47:45.000Z","dependencies_parsed_at":"2025-02-21T14:43:52.072Z","dependency_job_id":null,"html_url":"https://github.com/telexintegrations/github-commit-monitor","commit_stats":null,"previous_names":["telexintegrations/github-commit-monitor"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fgithub-commit-monitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fgithub-commit-monitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fgithub-commit-monitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fgithub-commit-monitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/telexintegrations","download_url":"https://codeload.github.com/telexintegrations/github-commit-monitor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245591530,"owners_count":20640692,"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":["flask-application","github-commits","python3","telex"],"created_at":"2025-03-26T05:15:34.057Z","updated_at":"2025-10-17T15:35:31.864Z","avatar_url":"https://github.com/telexintegrations.png","language":"Python","readme":"\n# GitHub Commit Tracker Integration for Telex\n\nA Telex integration that tracks GitHub repository commits and sends real-time notifications to your Telex channel. Built with Python, Flask, and Docker.\n\n![GitHub Commit Monitor](docs/images/github-commit-monitor.png)\n\n## Features\n\n- 🔄 Real-time commit notifications\n- 🔐 Secure webhook processing with signature verification\n- 🎨 Customizable notification format\n- 🚀 Easy integration with GitHub repositories\n\n## Architecture\n\n![Integration Architecture](docs/images/architecture-github-commit-monitor.png)\n\nThe integration uses:\n- Flask for the webhook endpoint\n- Gunicorn as the WSGI server\n- GitHub Webhooks for commit tracking\n- Heroku for hosting\n\n## Prerequisites\n\n- GitHub repository access\n- Telex channel with webhook capability\n- Heroku account\n- Python 3.9+\n\n## Environment Variables\n\nConfigure these environment variables in Heroku:\n\n```plaintext\nMY_GITHUB_SECRET=your_github_webhook_secret\nCHANNEL_ID=your_telex_channel_id\nAPP_URL=https://your-app-name.herokuapp.com\n```\n\n## Quick Start\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/CynthiaWahome/github-commit-monitor\n   cd github-commit-monitor\n   ```\n\n2. **Deploy to Heroku**\n   ```bash\n   # Install Heroku CLI if you haven't already\n   heroku create your-app-name\n   heroku stack:set container\n   git push heroku main\n   ```\n\n3. **Configure Environment Variables**\n   ```bash\n   heroku config:set MY_GITHUB_SECRET=your_github_webhook_secret\n   heroku config:set CHANNEL_ID=your_telex_channel_id\n   heroku config:set APP_URL=https://your-app-name.herokuapp.com\n   ```\n\n## GitHub Webhook Setup\n\n1. Go to your GitHub repository settings\n2. Navigate to Webhooks \u003e Add webhook\n3. Configure webhook:\n   - Payload URL: `https://your-app-name.herokuapp.com/github-webhook`\n   - Content type: `application/json`\n   - Secret: Same as `MY_GITHUB_SECRET`\n   - Events: Select \"Just the push event\"\n\n![GitHub Webhook Setup](docs/images/github-webhook.png)\n\n## Telex Channel Configuration\n\n1. Get your Telex channel ID\n2. Add it to your Heroku config variables\n3. Test the connection:\n   ```bash\n   curl -X POST https://your-app-name.herokuapp.com/github-webhook\n   ```\n\n![Telex Channel Setup](docs/images/telex-channel-setup.png)\n\n## Testing\n\nRun the test suite:\n```bash\npython -m pytest --cov=app tests/ --cov-report=html\n```\n\nKey test areas:\n- Webhook signature verification\n- Payload processing\n- Telex message formatting\n- Error handling\n\n## API Endpoints\n\n- `POST /github-webhook`: Receives GitHub commits\n- `GET /integration.json`: Integration metadata\n- `GET /health`: Health check endpoint\n\n## Troubleshooting\n\nCommon issues:\n1. **401 Unauthorized**: Check GitHub secret in Heroku config\n2. **404 Not Found**: Verify Heroku app URL\n3. **Application Error**: Check Heroku logs with `heroku logs --tail`\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more details.\n\n## Support\n\nIf you encounter any issues or have questions, please feel free to open an issue on our [GitHub Issues](https://github.com/your-repo/issues) page. \n\n## Contributing\n\nWe welcome contributions! Please see our [CONTRIBUTING](./CONTRIBUTING.md) guide for more details on how to get started.\n\n## Code of Conduct\n\nPlease note that this project is released with a [Contributor Code of Conduct](./CODE_OF_CONDUCT.md). By participating in this project, you agree to abide by its terms.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Fgithub-commit-monitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelexintegrations%2Fgithub-commit-monitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Fgithub-commit-monitor/lists"}