Some checks failed
Security & Dependency Updates / Dependency Security Scan (push) Successful in 29s
Security & Dependency Updates / Docker Security Scan (push) Failing after 53s
Security & Dependency Updates / License Compliance (push) Successful in 13s
Security & Dependency Updates / Check for Dependency Updates (push) Successful in 19s
Security & Dependency Updates / Code Quality Metrics (push) Successful in 11s
Security & Dependency Updates / Security Summary (push) Successful in 7s
Features: - Real-time water level monitoring for Ping River Basin (16 stations) - Coverage from Chiang Dao to Nakhon Sawan in Northern Thailand - FastAPI web interface with interactive dashboard and station management - Multi-database support (SQLite, MySQL, PostgreSQL, InfluxDB, VictoriaMetrics) - Comprehensive monitoring with health checks and metrics collection - Docker deployment with Grafana integration - Production-ready architecture with enterprise-grade observability CI/CD & Automation: - Complete Gitea Actions workflows for CI/CD, security, and releases - Multi-Python version testing (3.9-3.12) - Multi-architecture Docker builds (amd64, arm64) - Daily security scanning and dependency monitoring - Automated documentation generation - Performance testing and validation Production Ready: - Type safety with Pydantic models and comprehensive type hints - Data validation layer with range checking and error handling - Rate limiting and request tracking for API protection - Enhanced logging with rotation, colors, and performance metrics - Station management API for dynamic CRUD operations - Comprehensive documentation and deployment guides Technical Stack: - Python 3.9+ with FastAPI and Pydantic - Multi-database architecture with adapter pattern - Docker containerization with multi-stage builds - Grafana dashboards for visualization - Gitea Actions for CI/CD automation - Enterprise monitoring and alerting Ready for deployment to B4L infrastructure!
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Generate status badges for README.md
|
|
"""
|
|
|
|
import json
|
|
import requests
|
|
from datetime import datetime
|
|
|
|
def generate_badge_url(label, message, color="brightgreen"):
|
|
"""Generate a shields.io badge URL"""
|
|
return f"https://img.shields.io/badge/{label}-{message}-{color}"
|
|
|
|
def generate_workflow_badge(repo_url, workflow_name, branch="main"):
|
|
"""Generate workflow status badge"""
|
|
# For Gitea, you might need to adjust this based on your instance
|
|
badge_url = f"{repo_url}/actions/workflows/{workflow_name}/badge.svg?branch={branch}"
|
|
return badge_url
|
|
|
|
def main():
|
|
"""Generate badges for the project"""
|
|
repo_url = "https://git.b4l.co.th/B4L/Northern-Thailand-Ping-River-Monitor"
|
|
|
|
badges = {
|
|
"CI/CD": generate_workflow_badge(repo_url, "ci.yml"),
|
|
"Security": generate_workflow_badge(repo_url, "security.yml"),
|
|
"Documentation": generate_workflow_badge(repo_url, "docs.yml"),
|
|
"Python": generate_badge_url("Python", "3.9%2B", "blue"),
|
|
"FastAPI": generate_badge_url("FastAPI", "0.104%2B", "green"),
|
|
"Docker": generate_badge_url("Docker", "Ready", "blue"),
|
|
"License": generate_badge_url("License", "MIT", "green"),
|
|
"Version": generate_badge_url("Version", "v3.1.0", "blue"),
|
|
}
|
|
|
|
print("# Status Badges")
|
|
print()
|
|
print("Add these badges to your README.md:")
|
|
print()
|
|
|
|
for name, url in badges.items():
|
|
print(f"[]({repo_url})")
|
|
|
|
print()
|
|
print("# Markdown Format")
|
|
print()
|
|
|
|
badge_line = " ".join([f"[]({repo_url})" for name, url in badges.items()])
|
|
print(badge_line)
|
|
|
|
if __name__ == "__main__":
|
|
main() |