feat: implement modern repository best practices, CI Gatekeeper, and Go 1.23+ compatibility - #92
Merged
Merged
Conversation
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pull request implements comprehensive modern repository best practices across CI/CD automation, dependency updates, static analysis, security scanning, community standards, and machine-readable documentation, targeting Go 1.23+ compatibility.
Summary of Changes
1. Go 1.23+ Compatibility
go 1.23.0ingo.modto ensure universal compatibility across all modern Go releases (Go 1.23 through 1.27+).1.23,1.24,1.25,1.26,1.27, andstable.2. CI/CD & Quality Gates (
.github/workflows/)ci.yml):format-and-tidy: Enforcesgofmt -s,go mod verify, andgo mod tidygit diff checks.test: Multi-Go version matrix (1.23,1.24,1.25,1.26,1.27,stable) with-race -shuffle=on, atomic coverage profiles, and Codecov upload.lint: Dedicatedgo vetandrevivequality gate with.revive.toml.govulncheck: Automated Go vulnerability static analysis.ci-gatekeeper: Single aggregator job evaluating all upstream check statuses, serving as the sole required check for branch protection rules.security.yml): CodeQL static analysis and scheduled weekly scans.benchmark.yml): Preserved dynamic package change detection andbenchdiff/benchstat95% confidence interval checks, enhanced with concurrency cancellation and least-privilege permissions.go.yml.3. Dependency Management & Health (
.github/).github/dependabot.yml): Weekly automated dependency checks for Go modules (with minor/patch grouping) and GitHub Actions..github/ISSUE_TEMPLATE/): Structured GitHub Issue Forms for bug reports (bug_report.yml), feature requests (feature_request.yml), and configuration routing (config.yml)..github/PULL_REQUEST_TEMPLATE.md): Standardized PR checklist ensuring generics compliance, zero-allocation reads, test coverage, and documentation synchronization.4. Code Quality & Coverage Configuration
.golangci.yml&revive.toml): Modernized linter configuration with strict rules for exported package/symbol documentation, cyclomatic complexity, and code health.codecov.yml): Configured 80% project and patch coverage thresholds with 1% tolerance, ignoring benchmarks, examples, and documentation.5. Community & Machine-Readable Documentation
CONTRIBUTING.md: Developer guide covering architecture principles, table-driven testing, zero-allocation benchmarks, and PR workflows for Go 1.23+.SECURITY.md: Vulnerability disclosure policy via GitHub Private Vulnerability Reporting.llms.txt: Standardized machine-readable API overview and package map following thellmstxt.orgspecification..gitignore&.gitattributes: Comprehensive ignore rules for test binaries, coverage, profiles, and OS/IDE metadata; LF line ending normalization and archive export-ignore rules.README.md&AGENTS.md: Synchronized workflow status badges, links to contributing and security guidelines, and updated verification checklists.Verification
gofmt -s -w .passed with 0 unformatted files.go mod tidy && git diff --exit-code go.mod go.sumverified clean.go test ./...passed across all 15 packages.go vet ./...andrevive -config revive.toml ./...passed with 0 issues.govulncheck ./...reported no vulnerabilities.