3.3 KiB
3.3 KiB
📧 Git Push & Deployment Email Notification Automation Guide
This guide explains how the automated email reporting system for Freshers-Hub works, including configuration, scripts, and integration steps for VPS & Gitea CI/CD pipelines.
🛠️ Overview of Included Scripts
Two core scripts were added to the repository under the scripts/ directory:
scripts/send_git_email.py: Python script usingsmtplibto send rich HTML formatted deployment reports todorutoslayer@gmail.comvia Gmail SMTP.scripts/post-receive.sh: Shell script template for Git post-receive hook execution.
⚙️ Configuration Details
| Parameter | Value |
|---|---|
| Sender Email | krishnaowoxd@gmail.com |
| App Password | qkwylwtcsnlrpree (no spaces) |
| Recipient Email | dorutoslayer@gmail.com |
| SMTP Host / Port | smtp.gmail.com:587 (TLS) |
🚀 How to Enable Automated Email Reports
Method A: Add to VPS Webhook / Deployment Script (Recommended)
If your VPS uses an automated webhook endpoint or deployment script (e.g. /var/www/freshers-hub/deploy.sh), add the python execution command right after git pull:
#!/bin/bash
cd /var/www/freshers-hub
# 1. Pull latest code
git pull origin main
# 2. Build & Restart services (your existing deployment steps)
npm run build
systemctl restart springboot chatbot telegram-bot nginx
# 3. 📧 Trigger Email Report Notification
/usr/bin/python3 /var/www/freshers-hub/scripts/send_git_email.py \
"$(git rev-parse --abbrev-ref HEAD)" \
"$(git log -1 --format='%an <%ae>')" \
"$(git log -1 --format='%h')" \
"$(git log -1 --format='%cd' --date=local)" \
"$(git log -1 --format='%B')" \
"$(git diff-tree --no-commit-id --name-status -r HEAD | head -n 15)"
Method B: Configure Gitea Git Hook
If using Gitea custom hooks:
- Go to your Gitea repository page:
https://git.rit-services.in/ShanmugaKrishnanSM/RIT-nexus. - Navigate to Settings -> Git Hooks.
- Edit
post-receive(orcustom_hooks/post-receive). - Paste the following hook script:
#!/bin/bash
/usr/bin/python3 /var/www/freshers-hub/scripts/send_git_email.py \
"main" \
"$(git log -1 --format='%an <%ae>')" \
"$(git log -1 --format='%h')" \
"$(git log -1 --format='%cd' --date=local)" \
"$(git log -1 --format='%B')" \
"$(git diff-tree --no-commit-id --name-status -r HEAD | head -n 15)"
- Save changes.
🧪 Manual Verification Command
To verify that email delivery works from your VPS terminal:
python3 /var/www/freshers-hub/scripts/send_git_email.py \
"main" \
"Test Author <krishnaowoxd@gmail.com>" \
"cd30366" \
"Fri Aug 7 11:55:00 2026" \
"Testing email notification system" \
"M src/components/BusRouteMap/BusRouteMap.tsx"
📊 Sample HTML Email Report Format
When triggered, the recipient receives a formatted HTML email containing:
- Branch:
main - Author: Commit Author Name & Email
- Commit Hash: Short 7-character hash
- Timestamp: Date & Time of push
- Commit Message: Full commit message text
- Changed Files: List of top modified files (
M,A,D)