A Spring Boot application that synchronizes GitHub repository issues with Firebase Firestore.
- Java 21 or higher (for local development)
- Docker and Docker Compose (for containerized deployment)
- GitHub Personal Access Token
- Firebase Service Account credentials
- Setup Environment
# Clone the repository
git clone <repository-url>
cd github-firebase-connector
# Setup development environment
make setup-dev
# Edit .env with your configuration
vim .env
- Run with Docker
# Start the application
make docker-run
# Check health
curl http://localhost:8080/actuator/health
- Access Services
- Application: http://localhost:8080
- Health Check: http://localhost:8080/actuator/health
- Firestore Emulator UI: http://localhost:4000
Set the following environment variables or use .env
file:
export GITHUB_TOKEN=your_github_token
export FIREBASE_SERVICE_ACCOUNT_PATH=/path/to/service-account.json
export FIREBASE_PROJECT_ID=your_firebase_project_id
# Build the project
./gradlew build
# Run the application
./gradlew bootRun
# Or use Makefile
make run
make setup-dev # Setup development environment
make build # Build application
make test # Run unit tests
make integration-test # Run integration tests
make run # Run locally
make docker-build # Build Docker image
make docker-run # Run with Docker Compose
make docker-stop # Stop containers
make docker-logs # View logs
make docker-clean # Clean up resources
make monitoring-start # Start monitoring stack
make health # Check application health
make status # Show status
src/
├── main/
│ ├── java/com/company/connector/
│ │ └── GitHubFirebaseConnectorApplication.java
│ └── resources/
│ └── application.yml
└── test/
└── java/
- GitHub API integration with retry logic
- Firebase Firestore integration
- Configurable synchronization intervals
- Comprehensive error handling
- Spring Boot Actuator endpoints for monitoring
- Caching with Caffeine
- Docker containerization with multi-stage builds
- Docker Compose for local development
- Monitoring stack with Prometheus and Grafana
- Comprehensive integration test suite
# Basic deployment
docker-compose up -d
# With monitoring
docker-compose --profile monitoring up -d
See DOCKER.md for detailed deployment instructions including:
- Kubernetes manifests
- Security considerations
- Scaling strategies
- Monitoring setup
- Docker Deployment Guide - Comprehensive Docker deployment instructions
- Integration Tests - Testing documentation
- API Documentation - Interactive API docs (when running)