| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A beautifully simple, entirely serverless AWS Lambda function that monitors a GitHub user account for new activity and sends visually rich, professionally formatted HTML email updates when public events (like commits, PRs, issues) are detected.
It dynamically pulls secrets from AWS SSM during execution, keeping credentials entirely safe and off your servers. Driven by an AWS EventBridge scheduler, this system requires zero operational overhead or constantly running servers.
[ AWS EventBridge Scheduler ]
|
| Triggers every 30 mins
v
[ AWS Lambda Function ] ----------> [ AWS KMS (Decrypt Secrets) ]
(tracker.js) ----------> [ AWS SSM (Fetch API Keys) ]
|
| Poll public events
v
[ GitHub API ]
|
| If new events/commits found
v
[ Resend Email API ]
|
| Delivered to user
v
[ User Inbox ]
sam build
sam deploy --guidedgithub-tracker/
├── src/ # Lambda runtime code
│ ├── index.js # Lambda handler (entry point)
│ ├── config.js # SSM secrets + env config loader
│ ├── github.js # GitHub API integration
│ ├── email.js # HTML email builder + Resend dispatch
│ └── package.json # Runtime dependencies (dotenv, resend)
├── standalone/
│ └── direct-deploy.js # Single-file version for manual Lambda upload
├── assets/ # Images for documentation
├── template.yaml # AWS SAM infrastructure-as-code
├── samconfig.toml # SAM deployment preferences
├── .sample.env # Example environment variables
└── .gitignore
Create three SecureString parameters in AWS Systems Manager:
aws ssm put-parameter --name "/github-tracker/prod/resend-api-key" \
--value "re_your_key_here" --type SecureString
aws ssm put-parameter --name "/github-tracker/prod/github-username" \
--value "your-github-username" --type SecureString
aws ssm put-parameter --name "/github-tracker/prod/notify-email" \
--value "you@example.com" --type SecureStringCopy the sample env file and fill in your values:
cp .sample.env .envInstall dependencies:
cd src && npm installInvoke the handler locally:
node -e "require('./src/index.js').handler({}, {})"Note: When running locally, the code reads from .env directly. SSM is only used inside the Lambda runtime.
| Component | Technology |
|---|---|
| Runtime | Node.js 20.x (AWS Lambda) |
| IaC | AWS SAM / CloudFormation |
| Scheduler | AWS EventBridge |
| Secrets | AWS SSM Parameter Store + KMS |
| Resend API | |
| Data Source | GitHub Public Events API |
| Back | FazBrowse Home | New Git URL |