|
| 1 | +# GitPush |
| 2 | + |
| 3 | +English | [简体中文](README_CN.md) |
| 4 | + |
| 5 | +An AI-powered GitHub Release Tracker that monitors your favorite repositories, summarizes updates using AI, and delivers them straight to your inbox. |
| 6 | + |
| 7 | +## Technology Stack |
| 8 | + |
| 9 | +GitPush is built on four core Cloudflare services: |
| 10 | + |
| 11 | +- **Workers**: Serverless runtime environment for the application |
| 12 | +- **Workflows**: Automated pipeline for release monitoring and processing |
| 13 | +- **Workers AI**: AI-powered release summary generation with DeepSeek R1 |
| 14 | +- **Email Routing**: Reliable email notification delivery system |
| 15 | + |
| 16 | +## Configuration |
| 17 | + |
| 18 | +### Environment Variables |
| 19 | + |
| 20 | +> **Security Note**: It is recommended to configure these environment variables through the Cloudflare Workers dashboard instead of storing them in the `wrangler.jsonc` file to prevent sensitive information from being exposed on GitHub. |
| 21 | +
|
| 22 | +| Variable Name | Description | Example | Notes | |
| 23 | +|---------------|-------------|---------|--------| |
| 24 | +| `GITHUB_REPOS` | GitHub repositories to monitor | "https://github.com/owner/repo1,https://github.com/owner/repo2" | Use commas to separate multiple repositories | |
| 25 | +| `EMAIL_FROM_ADDRESS` | Notification sender email | "noreply@yourdomain.com" | Must be configured in Cloudflare like [this](https://developers.cloudflare.com/email-routing/setup/email-routing-addresses/) | |
| 26 | +| `EMAIL_TO_ADDRESS` | Notification recipient email,must match your destination_address | "your.email@domain.com" | Must be configured in Cloudflare like [this](https://developers.cloudflare.com/email-routing/setup/email-routing-addresses/) | |
| 27 | +| `GITHUB_TOKEN` | GitHub Personal Access Token | "xxxxxxxxxxxx" | Optional. Not required for personal use (60 unauthenticated requests/hour. You can get [More deails](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28) here. | |
| 28 | + |
| 29 | +### Other Configuration on `wrangler.jsonc` |
| 30 | +| Configuration | Description | Example | Notes | |
| 31 | +|--------------|-------------|---------|--------| |
| 32 | +| `send_email.destination_address` | Notification recipient email | "your.email@domain.com" | Must match EMAIL_TO_ADDRESS | |
| 33 | +| `triggers.crons` | Schedule for monitoring repositories | "0 1 * * *" | Cron expression format (e.g., "0 1 * * *" means run at 1 AM daily and check updates from the past 24 hours) | |
| 34 | + |
| 35 | +## Deployment |
| 36 | + |
| 37 | +> **Note**: This project is designed to run on Cloudflare Workers and requires Cloudflare's infrastructure. It cannot be run locally due to its dependencies on Cloudflare-specific features like Email API and AI capabilities. |
| 38 | +
|
| 39 | +```bash |
| 40 | +pnpm install |
| 41 | +pnpm run deploy |
| 42 | +``` |
| 43 | + |
| 44 | +## Usage |
| 45 | + |
| 46 | +### Automatic Updates |
| 47 | + |
| 48 | +Once deployed, GitPush will automatically: |
| 49 | +- Run daily at 1 AM (configurable via `triggers.crons` in `wrangler.jsonc`) |
| 50 | +- Check for new releases in your monitored repositories |
| 51 | +- Send email notifications if updates are found |
| 52 | + |
| 53 | +### Manual Triggers |
| 54 | + |
| 55 | +Besides automatic updates, you can also manually trigger the workflow in two ways: |
| 56 | + |
| 57 | +1. **Using cURL Command** |
| 58 | + |
| 59 | +Send a POST request with your target repositories: |
| 60 | + |
| 61 | +```bash |
| 62 | +curl -X POST https://your-worker.workers.dev \ |
| 63 | + -H "Content-Type: application/json" \ |
| 64 | + -d '{ |
| 65 | + "repo_urls": [ |
| 66 | + "https://github.com/owner/repo1", |
| 67 | + "https://github.com/owner/repo2" |
| 68 | + ] |
| 69 | + }' |
| 70 | +``` |
| 71 | + |
| 72 | +2. **Using Cloudflare Dashboard** |
| 73 | + |
| 74 | +- Go to [Cloudflare Dashboard](https://dash.cloudflare.com) |
| 75 | +- Navigate to Compute(Workers) > Workflows > Your Workflow |
| 76 | +- Click "Trigger" button |
| 77 | +- Input your target repositories and trigger the workflow |
| 78 | + |
| 79 | +```json |
| 80 | +{ |
| 81 | + "repo_urls": [ |
| 82 | + "https://github.com/owner/repo1", |
| 83 | + "https://github.com/owner/repo2" |
| 84 | + ] |
| 85 | +} |
| 86 | +``` |
| 87 | + |
| 88 | +### Monitoring |
| 89 | + |
| 90 | +To monitor the workflow execution: |
| 91 | +1. Go to [Cloudflare Dashboard](https://dash.cloudflare.com) |
| 92 | +2. Navigate to Compute(Workers) > Workflows > Your Workflow |
| 93 | +3. Here you can view: |
| 94 | + - Execution history |
| 95 | + - Success/failure status |
| 96 | + - Detailed logs for each step |
| 97 | + - Email delivery status |
0 commit comments