Implements local polling-based commit detection without requiring webhooks or public endpoints. Perfect for local development workflow.
Backend Changes:
- Added commit tracking columns to projects table:
* latest_commit_sha: SHA of latest commit on branch
* latest_commit_message: Commit message preview
* latest_commit_author: Commit author name
* latest_commit_date: Commit timestamp
* last_commit_check: Last time commits were checked
- Created commitPoller service that:
* Polls all projects every 60 seconds (configurable)
* Uses GitHub API to check for new commits on tracked branch
* Compares latest remote commit with deployed commit
* Updates project with latest commit information
- Integrated poller into server lifecycle (start/stop)
Frontend Changes:
- Enhanced pipeline to detect new commits:
* Compares project.latest_commit_sha with deployment.commit_sha
* Shows yellow warning in GitHub stage when new commit detected
* Displays commit message preview (first 50 chars)
* Action button: "Deploy new?" for one-click deployment
- New commit detection shown when deployment is running or stopped
- Does not interfere with active builds/deployments
Benefits:
- Works entirely locally without exposing ports
- No webhook configuration required
- Uses existing GitHub access tokens
- Real-time commit awareness within 60 seconds
- Helps catch commits before pushing to production
- Perfect for intermediate testing step before Railway deployment