Skip to content

Conversation

@ryanaidilp
Copy link
Contributor

Summary

Release v2.4.0 ready for merge to main branch.

Changes

  • Enhanced national endpoint with pagination support
  • Added automatic PR creation workflow for release/hotfix branches
  • Updated Swagger documentation to reflect pagination changes
  • Improved GitHub Actions workflow for better git flow integration

Deployment

This release will be deployed to production after merge.

Checklist

  • All preparation tasks completed
  • Tests are passing
  • Documentation updated
  • Ready for production deployment

ryanaidilp and others added 30 commits September 8, 2025 22:59
- Simplified generate-changelog.rb to require only --version parameter
- Auto-detect repository URL for commit links
- Removed complex configuration files (YAML configs)
- Updated workflows to call script directly like pico-api-docs
- Removed unnecessary DevOps tooling (Docker, GitHub Actions, etc.)
- Made the script self-contained and easily reusable

The changelog generator now works like pico-api-docs version:
Just run: ruby generate-changelog.rb --version X.Y.Z
- Restored working deploy.yml from develop branch
- Simplified release-branch-creation.yml to call script directly
- Removed complex DevOps over-engineering
- Kept essential workflows: CI, Deploy, Release Branch Creation, Release Workflow
- Added empty lines at end of files per requirement

The workflows now follow the pico-api-docs pattern:
- Simple changelog generation with --version parameter
- No complex configuration or Docker requirements
- Focus on essential functionality that works
✅ Fixed all duplicate jobs and workflow conflicts:

- Removed duplicate deployment logic from release-workflow.yml
- Enhanced deploy.yml with proper trigger conditions
- Fixed duplicate GitHub release creation
- Added missing newlines to all workflow files
- Ensured clear separation of concerns:
  - ci.yml: Development quality gates
  - release-branch-creation.yml: Release preparation
  - release-workflow.yml: Git Flow orchestration
  - deploy.yml: Production deployment

Perfect Git Flow automation:
1. Release branch created → Generate changelog, create PRs
2. Release merged to main → Create tag, setup back-merge
3. Tag created → Deploy to production, create GitHub release

No more duplicates, conflicts, or circular dependencies!
- Fix Go version inconsistency in release-branch-creation.yml (1.21 -> 1.25.x)
- Add version_files configuration to .version-config.yml
- Create scripts/update-version.sh for automated version updates
- Replace hardcoded file updates with configuration-driven approach
- Support pattern-based version replacement with {version} and {major} placeholders
…rganization

- Add swagger regeneration step after version updates
- Move generate-changelog.rb to scripts/ directory for better organization
- Update workflow to use Ruby script instead of Go script
- Ensure swagger docs reflect version changes automatically
- Maintain script organization consistency across project
…nerator

feat: simplify changelog generator and remove unnecessary complexity
… API

- Add TransformToResponseWithoutProvince methods to ProvinceCase models
- Update GetProvincesWithLatestCase service to use new transformation
- Remove duplicate province information from latest_case object
- Maintain backward compatibility for other endpoints
- Add comprehensive test coverage for new transformation methods

The province list API now returns cleaner data structure without
redundant province information in the latest_case object.
…ndant-data

fix: remove redundant province data from latest_case in province list API
- Add smart change detection to only test modified packages
- Create centralized test configuration (.test-config.yml) with:
  * Per-package coverage thresholds
  * Configurable enforcement policies (warn vs enforce)
  * Test execution settings and triggers
- Enhance CI workflow with selective testing:
  * Only run unit tests on changed packages
  * Smart integration test triggering
  * Selective linting based on changes
  * Fallback to full suite for critical changes
- Improve coverage reporting:
  * Per-package threshold validation
  * Clear pass/warn/fail indicators
  * Actionable recommendations
  * Enhanced PR comments with testing strategy
- Optimize CI performance while maintaining comprehensive coverage
- Default to warning mode (non-enforcing) for gradual adoption

The CI now provides faster feedback by testing only relevant changes
while ensuring critical paths are always validated.
- Add documentation for new CI/CD features and intelligent testing
- Update project structure to include scripts/ directory and config files
- Document test coverage configuration and per-package thresholds
- Add version management documentation with automated file updates
- Include comprehensive testing commands and workflow information
- Document selective testing and performance optimization features

The README now reflects all recent enhancements including:
- Intelligent CI/CD with selective package testing
- Centralized test configuration with .test-config.yml
- Automated version management and Swagger regeneration
- Enhanced Git Flow automation with changelog generation
- Remove separate production build files in favor of single file approach
- Add conditional Swagger UI routing based on ENV variable
- Provide clear instructions for minimal production builds (6.1MB vs 23MB)
- Update build documentation with optimization flags and size comparisons
- Maintain full Swagger functionality in development mode
- Update deployment workflow to use optimized build flags

Key improvements:
- 73% binary size reduction possible (23MB → 6.1MB) by commenting docs import
- 26% reduction (23MB → 17MB) with optimized flags but keeping Swagger
- Environment-based Swagger UI enable/disable (ENV=production disables)
- Clear production vs development build instructions
- Single codebase approach without build tags

For minimal production build, comment out docs import in cmd/main.go
and use: CGO_ENABLED=0 go build -ldflags="-w -s" -o pico-api-go cmd/main.go
- Disable docs import in cmd/main.go for production deployment
- Comment out httpSwagger import in routes.go to exclude dependencies
- Remove Swagger generation step from deploy workflow (served from static site)
- Update deploy workflow messaging for minimal production build
- Verified: 6.1MB production binary vs 23MB development binary (73% reduction)

Changes:
- cmd/main.go: Commented out docs import for production
- routes.go: Disabled httpSwagger import and handler for minimal build
- deploy.yml: Removed Swagger generation, updated build messaging
- README.md: Updated production build documentation

The deploy workflow now builds truly minimal production binaries
since Swagger documentation is served from separate static website.
- Fix integration test failure by updating SetupRoutes call signature
- Add missing enableSwagger parameter to api_test.go setupTestServer
- Fix Go code formatting issues with gofmt across multiple files
- All tests now pass: unit tests, integration tests, and formatting checks

Changes:
- test/integration/api_test.go: Updated SetupRoutes call with enableSwagger=true
- cmd/main.go: Fixed import formatting and comment placement
- Multiple files: Applied gofmt formatting fixes

Verified:
- All unit tests pass
- All integration tests pass
- No gofmt formatting issues
- Code ready for CI pipeline
- Fix "unknown flag: --out-format" error by specifying compatible golangci-lint version
- Use golangci-lint v1.54.2 instead of "latest" to avoid version conflicts
- Remove --out-format flag for better compatibility with older versions
- Ensure linter runs successfully in CI pipeline

The issue was caused by the CI downloading an old version (v2.4.0) that doesn't
support the --out-format flag, while the install script was supposed to get "latest".
This fix ensures consistent, compatible linter execution.
- Change db.PingContext to db.DB.PingContext
- Change db.QueryRowContext to db.DB.QueryRowContext
- Change db.Stats to db.DB.Stats
- Fixes typecheck errors where linter couldn't resolve embedded *sql.DB methods
- Add .golangci.yml to properly configure linter for test files
- Exclude typecheck linter for test files to avoid mock/embed false positives
- Add specific exclusions for testify mock methods (Called, On, AssertExpectations)
- Add exclusion for sqlmock undefined issues
- Enable other important linters while avoiding problematic ones for tests

This resolves the 40+ linting errors related to mock interfaces and test dependencies.
feat: optimize binary size with conditional Swagger compilation
Following release branch creation for v2.4.0, updating develop

branch to target the next minor version v2.5.0.

Changes:

- Update project version to 2.5.0

- Prepare for next development cycle

This maintains the Git Flow pattern where develop always contains

the next planned version.
- Add page parameter to pagination-enabled endpoints
- Regenerate Swagger docs with complete pagination support
- Fix /provinces/cases and /provinces/{provinceId}/cases endpoints
- All pagination endpoints now include limit, offset, page, and all parameters
- Fix database embedded field selector issues for linter compliance
- Update mock interfaces to include new pagination methods
- Fix version assertions in tests from 2.4.0 to 2.5.0
- All tests and linting now pass successfully
- Fix version script bug that replaced rate limiting "100" with "2.5.0"
- Remove formatting artifacts (\t\t) from API description
- Regenerate Swagger docs with correct "100 requests per minute" value
- Maintain proper API documentation consistency
- Revert database method calls to use db.DB.MethodName() format
- Fix typecheck linter errors in CI pipeline
- Local staticcheck warnings acceptable vs CI build failures
- All tests continue to pass with explicit field access
chore: bump version to v2.5.0 for next development cycle
- Update version to 2.4.0 in project files

- Generate release changelog

This commit prepares the release/v2.4.0 branch for release.
- Fix embedded field selector warnings in database package
- Complete pagination parameter documentation in all endpoints
- Add page parameter support to province cases endpoints
- All tests passing and linter clean
- Fix version update script regex patterns to prevent rate limiting value corruption
- Update database method calls to use explicit db.DB format for CI compatibility
- Regenerate Swagger documentation with corrected rate limiting values
- Add hybrid pagination to /national endpoint (returns all data by default, paginated when parameters provided)
- Implement GetNationalCasesPaginated and GetNationalCasesPaginatedSorted service methods
- Add GetAllPaginated and GetByDateRangePaginated repository methods with total count
- Support limit, offset, and page query parameters with date range filtering
- Update Swagger documentation with pagination parameter descriptions
- Add pagination methods to all mock interfaces for comprehensive test coverage
- Maintain backward compatibility for existing API consumers
- Follow consistent pagination pattern matching province endpoints
- Add new job to automatically create PRs to main when release/* or hotfix/* branches are created
- Use conventional commit style for PR titles (release: vX.X.X or fix: vX.X.X)
- Include deployment checklists and proper labeling
- Prevent duplicate PRs with existing PR detection
- Support both release and hotfix branch patterns
- Clean PR descriptions without attribution text
@github-actions
Copy link
Contributor

github-actions bot commented Sep 15, 2025

🎯 CI Pipeline Summary

🔄 Running full test suite (triggered by critical file changes)

📊 Job Status

Job Status Details
🔍 Change Detection ✅ Success Analyzed changed packages
🧪 Tests ✅ Success Unit tests passed
🔍 Linting ✅ Success Code style checks passed
🔨 Build ✅ Success Application compiled successfully

🎉 Overall Result: SUCCESS

All CI checks completed successfully! The code is ready for review/merge.

- Remove duplicate method implementations in covid_service.go
- Fix code formatting with gofmt
- Update test expectations to match current version 2.4.0
- All tests now passing, build successful
@github-actions
Copy link
Contributor

🔍 Linting Results

🔄 Running full test suite (triggered by critical file changes)

  • Linted all packages (full suite mode)
  • 🕒 Linting completed at: Mon Sep 15 15:48:42 UTC 2025

@github-actions
Copy link
Contributor

📊 Enhanced Code Coverage Report

🔄 Running full test suite (triggered by critical file changes)

🎯 Coverage Summary

Metric Value Status
Total Coverage 45.2% ⚠️ WARN (threshold: 80.0%)

📦 Package Coverage Analysis

Package Coverage Threshold Status Notes
pkg/utils 57.1% 80.0% ⚠️ WARN Consider improving
internal/repository 48.2% 85.0% ❌ FAIL Action required
internal/middleware 57.5% 75.0% ⚠️ WARN Consider improving
cmd/main.go:49: 0.0% 80.0% ⚠️ WARN Consider improving
docs/docs.go:866: 0.0% 80.0% ⚠️ WARN Consider improving
internal/handler 73.6% 80.0% ❌ FAIL Action required
internal/config 0.0% 70.0% ⚠️ WARN Consider improving
internal/service 26.1% 85.0% ❌ FAIL Action required
pkg/database 0.0% 75.0% ⚠️ WARN Consider improving
internal/models 99.4% 60.0% ✅ PASS

🔍 Testing Strategy Applied

  • Full test suite executed (critical files changed)
  • 🔧 Integration tests executed (core packages affected)

💡 Recommendations

Packages needing attention:

  • 📉 pkg/utils (57.1%) - Consider adding more unit tests
  • 📉 internal/repository (48.2%) - Consider adding more unit tests
  • 📉 internal/middleware (57.5%) - Consider adding more unit tests
  • 📉 cmd/main.go:49: (0.0%) - Consider adding more unit tests
  • 📉 docs/docs.go:866: (0.0%) - Consider adding more unit tests
  • 📉 internal/handler (73.6%) - Consider adding more unit tests
  • 📉 internal/config (0.0%) - Consider adding more unit tests
  • 📉 internal/service (26.1%) - Consider adding more unit tests
  • 📉 pkg/database (0.0%) - Consider adding more unit tests

📋 Detailed Coverage

Click to expand detailed coverage by file
github.com/banua-coder/pico-api-go/cmd/main.go:49:					main						0.0%
github.com/banua-coder/pico-api-go/docs/docs.go:866:					init						0.0%
github.com/banua-coder/pico-api-go/internal/config/config.go:42:			Load						0.0%
github.com/banua-coder/pico-api-go/internal/config/config.go:72:			getEnv						0.0%
github.com/banua-coder/pico-api-go/internal/config/config.go:79:			getEnvAsInt					0.0%
github.com/banua-coder/pico-api-go/internal/config/config.go:88:			getEnvAsDuration				0.0%
github.com/banua-coder/pico-api-go/internal/config/config.go:97:			getEnvAsBool					0.0%
github.com/banua-coder/pico-api-go/internal/handler/covid_handler.go:19:		NewCovidHandler					100.0%
github.com/banua-coder/pico-api-go/internal/handler/covid_handler.go:50:		GetNationalCases				58.5%
github.com/banua-coder/pico-api-go/internal/handler/covid_handler.go:129:		GetLatestNationalCase				77.8%
github.com/banua-coder/pico-api-go/internal/handler/covid_handler.go:158:		GetProvinces					69.2%
github.com/banua-coder/pico-api-go/internal/handler/covid_handler.go:202:		GetProvinceCases				64.6%
github.com/banua-coder/pico-api-go/internal/handler/covid_handler.go:347:		HealthCheck					64.7%
github.com/banua-coder/pico-api-go/internal/handler/covid_handler.go:404:		GetAPIIndex					100.0%
github.com/banua-coder/pico-api-go/internal/handler/response.go:16:			writeJSONResponse				75.0%
github.com/banua-coder/pico-api-go/internal/handler/response.go:24:			writeSuccessResponse				100.0%
github.com/banua-coder/pico-api-go/internal/handler/response.go:31:			writeErrorResponse				100.0%
github.com/banua-coder/pico-api-go/internal/handler/routes.go:12:			SetupRoutes					0.0%
github.com/banua-coder/pico-api-go/internal/middleware/cors.go:7:			CORS						0.0%
github.com/banua-coder/pico-api-go/internal/middleware/logging.go:15:			WriteHeader					0.0%
github.com/banua-coder/pico-api-go/internal/middleware/logging.go:20:			Write						0.0%
github.com/banua-coder/pico-api-go/internal/middleware/logging.go:26:			Logging						0.0%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:22:			writeRateLimitError				80.0%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:51:			NewRateLimiter					100.0%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:68:			Stop						100.0%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:76:			cleanup						75.0%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:88:			cleanOldClients					100.0%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:107:		getClientIP					100.0%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:134:		isAllowed					92.3%
github.com/banua-coder/pico-api-go/internal/middleware/ratelimit.go:183:		RateLimit					100.0%
github.com/banua-coder/pico-api-go/internal/middleware/recovery.go:10:			Recovery					0.0%
github.com/banua-coder/pico-api-go/internal/models/national_case.go:29:			Scan						92.3%
github.com/banua-coder/pico-api-go/internal/models/national_case.go:53:			Value						100.0%
github.com/banua-coder/pico-api-go/internal/models/national_case_response.go:51:	TransformToResponse				100.0%
github.com/banua-coder/pico-api-go/internal/models/national_case_response.go:88:	TransformSliceToResponse			100.0%
github.com/banua-coder/pico-api-go/internal/models/national_case_response.go:97:	calculatePercentages				100.0%
github.com/banua-coder/pico-api-go/internal/models/pagination.go:21:			CalculatePaginationMeta				100.0%
github.com/banua-coder/pico-api-go/internal/models/province_case_response.go:68:	TransformToResponse				100.0%
github.com/banua-coder/pico-api-go/internal/models/province_case_response.go:73:	TransformToResponseWithoutProvince		100.0%
github.com/banua-coder/pico-api-go/internal/models/province_case_response.go:79:	transformToResponseWithOptions			100.0%
github.com/banua-coder/pico-api-go/internal/models/province_case_response.go:143:	TransformToResponse				100.0%
github.com/banua-coder/pico-api-go/internal/models/province_case_response.go:148:	TransformToResponseWithoutProvince		100.0%
github.com/banua-coder/pico-api-go/internal/models/province_case_response.go:153:	TransformProvinceCaseSliceToResponse		100.0%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:30:	NewNationalCaseRepository			100.0%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:34:	GetAll						100.0%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:39:	GetAllSorted					76.5%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:74:	GetByDateRange					100.0%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:79:	GetByDateRangeSorted				76.5%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:116:	GetLatest					87.5%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:137:	GetByDay					87.5%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:158:	GetAllPaginated					0.0%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:163:	GetAllPaginatedSorted				0.0%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:209:	GetByDateRangePaginated				0.0%
github.com/banua-coder/pico-api-go/internal/repository/national_case_repository.go:214:	GetByDateRangePaginatedSorted			0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:37:	NewProvinceCaseRepository			100.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:41:	GetAll						100.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:46:	GetAllSorted					100.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:62:	GetAllPaginated					0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:67:	GetAllPaginatedSorted				0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:100:	GetByProvinceID					100.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:117:	GetByProvinceIDPaginated			0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:152:	GetByProvinceIDAndDateRange			100.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:169:	GetByProvinceIDAndDateRangePaginated		0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:204:	GetByDateRange					0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:221:	GetByDateRangePaginated				0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:256:	GetLatestByProvinceID				85.7%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:282:	queryProvinceCases				78.9%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:327:	buildOrderClause				70.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:361:	GetByProvinceIDSorted				0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:365:	GetByProvinceIDPaginatedSorted			0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:369:	GetByProvinceIDAndDateRangeSorted		0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:373:	GetByProvinceIDAndDateRangePaginatedSorted	0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:377:	GetByDateRangeSorted				0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_case_repository.go:381:	GetByDateRangePaginatedSorted			0.0%
github.com/banua-coder/pico-api-go/internal/repository/province_repository.go:20:	NewProvinceRepository				100.0%
github.com/banua-coder/pico-api-go/internal/repository/province_repository.go:24:	GetAll						76.5%
github.com/banua-coder/pico-api-go/internal/repository/province_repository.go:54:	GetByID						100.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:48:		NewCovidService					100.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:60:		GetNationalCases				100.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:68:		GetNationalCasesSorted				0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:76:		GetNationalCasesByDateRange			90.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:94:		GetNationalCasesByDateRangeSorted		0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:112:		GetLatestNationalCase				75.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:120:		GetNationalCasesPaginated			0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:128:		GetNationalCasesPaginatedSorted			0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:136:		GetNationalCasesByDateRangePaginated		0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:154:		GetNationalCasesByDateRangePaginatedSorted	0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:172:		GetProvinces					75.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:180:		GetProvincesWithLatestCase			0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:210:		GetProvinceCases				75.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:218:		GetProvinceCasesByDateRange			70.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:236:		GetAllProvinceCases				75.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:244:		GetAllProvinceCasesSorted			0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:252:		GetAllProvinceCasesByDateRange			70.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:270:		GetProvinceCasesPaginated			0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:278:		GetProvinceCasesByDateRangePaginated		0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:296:		GetAllProvinceCasesPaginated			0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:304:		GetAllProvinceCasesByDateRangePaginated		0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:322:		GetAllProvinceCasesPaginatedSorted		0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:330:		GetAllProvinceCasesByDateRangeSorted		0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:348:		GetAllProvinceCasesByDateRangePaginatedSorted	0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:366:		GetProvinceCasesSorted				0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:374:		GetProvinceCasesPaginatedSorted			0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:382:		GetProvinceCasesByDateRangeSorted		0.0%
github.com/banua-coder/pico-api-go/internal/service/covid_service.go:400:		GetProvinceCasesByDateRangePaginatedSorted	0.0%
github.com/banua-coder/pico-api-go/pkg/database/mysql.go:28:				NewMySQLConnection				0.0%
github.com/banua-coder/pico-api-go/pkg/database/mysql.go:41:				NewMySQLConnectionWithConfig			0.0%
github.com/banua-coder/pico-api-go/pkg/database/mysql.go:101:				DefaultConnectionConfig				0.0%
github.com/banua-coder/pico-api-go/pkg/database/mysql.go:113:				HealthCheck					0.0%
github.com/banua-coder/pico-api-go/pkg/database/mysql.go:131:				GetConnectionStats				0.0%
github.com/banua-coder/pico-api-go/pkg/utils/query.go:10:				ParseIntQueryParam				100.0%
github.com/banua-coder/pico-api-go/pkg/utils/query.go:25:				ParseBoolQueryParam				100.0%
github.com/banua-coder/pico-api-go/pkg/utils/query.go:30:				ParseStringArrayQueryParam			100.0%
github.com/banua-coder/pico-api-go/pkg/utils/query.go:57:				ParseSortParam					0.0%
github.com/banua-coder/pico-api-go/pkg/utils/query.go:91:				IsValidSortField				0.0%
github.com/banua-coder/pico-api-go/pkg/utils/query.go:109:				GetSQLOrderClause				0.0%
github.com/banua-coder/pico-api-go/pkg/utils/query.go:138:				ValidatePaginationParams			100.0%
total:											(statements)					45.2%

@ryanaidilp ryanaidilp self-assigned this Sep 15, 2025
@ryanaidilp ryanaidilp merged commit 75e4d51 into main Sep 15, 2025
8 checks passed
@ryanaidilp ryanaidilp deleted the release/v2.4.0 branch September 15, 2025 15:49
github-actions bot added a commit that referenced this pull request Sep 15, 2025
Automated back-merge of release v2.4.0 from main branch.

Original PR: #37
Merged commit: 75e4d51
Tag created: v2.4.0
Branch: chore/back-merge-v2.4.0-to-develop
@github-actions
Copy link
Contributor

🚀 Release Process Completed Successfully

The complete Git Flow release process has finished:

✅ Completed Actions

🔄 Deployment Pipeline

The deployment workflow will be automatically triggered and will:

  1. Build the application
  2. Deploy to production
  3. Run health checks
  4. Create GitHub release

🎉 Git Flow Complete

Your release tag has been created and deployment triggered! Monitor the deployment progress and merge the back-merge PR when ready.

@github-actions
Copy link
Contributor

🔄 Back-merge PR Created

A back-merge PR has been automatically created to sync the develop branch:

Please review and merge the back-merge PR to complete the release process.

@ryanaidilp ryanaidilp restored the release/v2.4.0 branch September 15, 2025 15:50
@ryanaidilp ryanaidilp deleted the release/v2.4.0 branch September 15, 2025 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants