18 Commits

Author SHA1 Message Date
renovate 4a04370f50 chore(deps): update pre-commit hook golangci/golangci-lint to v2.10.1 (#72)
Release / release (push) Successful in 1m13s
dbsetup / vulnerabilities (push) Successful in 3m11s
dbsetup / test (push) Successful in 3m30s
pre-commit / pre-commit (push) Successful in 7m47s
2026-02-17 17:04:12 +00:00
renovate 761154be92 chore(deps): update pre-commit hook golangci/golangci-lint to v2.9.0 (#71)
dbsetup / vulnerabilities (push) Failing after 2s
dbsetup / test (push) Failing after 2s
pre-commit / pre-commit (push) Failing after 2s
Release / release (push) Successful in 39s
2026-02-11 10:35:33 +00:00
argoyle 87e9adac97 Merge pull request 'ci: add code coverage integration' (#69) from ci-coverage-integration into main
Release / release (push) Successful in 4m32s
dbsetup / vulnerabilities (push) Successful in 7m57s
dbsetup / test (push) Successful in 8m17s
pre-commit / pre-commit (push) Successful in 15m7s
Reviewed-on: #69
2026-01-28 12:38:13 +00:00
argoyle d0e92e767a ci: add code coverage integration
dbsetup / test (pull_request) Successful in 7m10s
dbsetup / vulnerabilities (pull_request) Successful in 6m34s
pre-commit / pre-commit (pull_request) Successful in 11m20s
Add go-test-coverage for coverage threshold enforcement. Coverage data
is uploaded as artifacts on main branch and compared against baseline
in PRs using shell script that gracefully handles first run without
baseline. PR comments show coverage percentage.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 13:03:07 +01:00
argoyle 379a820a70 Merge pull request 'chore: remove unused .gitlab-ci.yml' (#68) from remove-gitlab-ci into main
Release / release (push) Successful in 3m43s
dbsetup / test (push) Successful in 5m50s
dbsetup / vulnerabilities (push) Successful in 7m15s
pre-commit / pre-commit (push) Successful in 14m52s
Reviewed-on: #68
2026-01-23 14:56:24 +00:00
argoyle 2025050f72 chore: remove unused .gitlab-ci.yml
dbsetup / vulnerabilities (pull_request) Successful in 3m52s
dbsetup / test (pull_request) Successful in 6m2s
pre-commit / pre-commit (pull_request) Successful in 6m17s
No longer needed after migration to Gitea Actions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 14:34:51 +01:00
renovate 2341ab5a10 chore(deps): update golang docker tag to v1.25.6 (#67)
dbsetup / test (push) Successful in 1m32s
Release / release (push) Successful in 2m53s
dbsetup / vulnerabilities (push) Successful in 3m54s
pre-commit / pre-commit (push) Successful in 8m5s
2026-01-15 22:25:51 +00:00
renovate f01cfc08af chore(deps): update pre-commit hook alessandrojcm/commitlint-pre-commit-hook to v9.24.0 (#65)
Release / release (push) Successful in 1m3s
dbsetup / vulnerabilities (push) Successful in 4m10s
dbsetup / test (push) Successful in 4m30s
pre-commit / pre-commit (push) Successful in 17m39s
2026-01-13 21:15:21 +00:00
renovate 082a672a34 chore(deps): update golang:1.25.5 docker digest to 3a01526 (#64)
Release / release (push) Failing after 51s
dbsetup / vulnerabilities (push) Successful in 1m3s
dbsetup / test (push) Successful in 1m27s
pre-commit / pre-commit (push) Successful in 15m34s
2026-01-13 06:14:33 +00:00
argoyle 3fee690ea3 Merge pull request 'chore(release): prepare for v0.1.1' (#62) from next-release into main
Release / release (push) Successful in 33s
dbsetup / test (push) Successful in 2m11s
dbsetup / vulnerabilities (push) Successful in 3m43s
pre-commit / pre-commit (push) Successful in 7m27s
Reviewed-on: #62
2026-01-09 13:24:14 +00:00
releaser 3b8d953aa4 chore(release): prepare for v0.1.1
dbsetup / test (pull_request) Successful in 2m48s
dbsetup / vulnerabilities (pull_request) Successful in 4m6s
pre-commit / pre-commit (pull_request) Successful in 7m7s
2026-01-09 13:13:54 +00:00
releaser 37740b6bc2 chore(release): prepare for v0.1.1 2026-01-09 13:13:48 +00:00
argoyle 731464b9a9 Merge pull request 'chore: migrate module path to gitea.unbound.se' (#63) from migrate-to-gitea into main
dbsetup / vulnerabilities (push) Successful in 1m7s
Release / release (push) Successful in 2m7s
dbsetup / test (push) Successful in 6m36s
pre-commit / pre-commit (push) Successful in 11m2s
Reviewed-on: #63
2026-01-09 13:11:52 +00:00
argoyle f1a91fdd40 chore: migrate module path to gitea.unbound.se
dbsetup / vulnerabilities (pull_request) Successful in 3m1s
dbsetup / test (pull_request) Successful in 3m6s
pre-commit / pre-commit (pull_request) Successful in 4m49s
Update module path from git.unbound.se to gitea.unbound.se for Go module
discovery over HTTPS.
2026-01-09 13:43:44 +01:00
releaser 76097b8ff2 chore(release): prepare for v0.1.1
dbsetup / vulnerabilities (pull_request) Successful in 6m33s
dbsetup / test (pull_request) Successful in 6m43s
pre-commit / pre-commit (pull_request) Successful in 11m53s
2026-01-09 09:05:16 +00:00
releaser 69786d9b8d chore(release): prepare for v0.1.1 2026-01-09 09:05:12 +00:00
argoyle 661f95fb5f Merge pull request 'chore(deps): update actions/setup-python action to v6' (#61) from renovate/actions-setup-python-6.x into main
Release / release (push) Successful in 1m34s
dbsetup / vulnerabilities (push) Successful in 6m47s
dbsetup / test (push) Successful in 8m25s
pre-commit / pre-commit (push) Successful in 14m22s
Reviewed-on: #61
2026-01-09 09:04:14 +00:00
renovate 7b740036d0 chore(deps): update actions/setup-python action to v6
dbsetup / vulnerabilities (pull_request) Successful in 2m23s
dbsetup / test (pull_request) Successful in 2m30s
pre-commit / pre-commit (pull_request) Successful in 5m5s
2026-01-09 08:07:52 +00:00
10 changed files with 85 additions and 47 deletions
+2 -1
View File
@@ -9,7 +9,8 @@
"Bash(pre-commit run:*)", "Bash(pre-commit run:*)",
"Bash(go build:*)", "Bash(go build:*)",
"Bash(go test:*)", "Bash(go test:*)",
"Bash(but status)" "Bash(but status)",
"Bash(but --help:*)"
] ]
} }
} }
+55
View File
@@ -17,6 +17,61 @@ jobs:
- name: Run tests - name: Run tests
run: go test -race -coverprofile=coverage.txt ./... run: go test -race -coverprofile=coverage.txt ./...
- name: Check coverage
uses: vladopajic/go-test-coverage@v2
with:
config: ./.testcoverage.yml
# Download baseline coverage from main branch (for PRs)
- name: Download baseline coverage
if: gitea.event_name == 'pull_request'
uses: actions/download-artifact@v3
with:
name: coverage-baseline
path: ./baseline
continue-on-error: true
# Compare coverage against baseline (for PRs)
- name: Compare coverage
if: gitea.event_name == 'pull_request'
run: |
CURRENT=$(go tool cover -func=coverage.txt | grep "^total:" | awk '{print $NF}' | tr -d '%')
if [ -f ./baseline/coverage.txt ]; then
BASE=$(go tool cover -func=./baseline/coverage.txt | grep "^total:" | awk '{print $NF}' | tr -d '%')
echo "Base coverage: ${BASE}%"
echo "Current coverage: ${CURRENT}%"
if [ "$(echo "$CURRENT < $BASE" | bc -l)" -eq 1 ]; then
echo "::error::Coverage decreased from ${BASE}% to ${CURRENT}%"
exit 1
fi
echo "Coverage maintained or improved: ${BASE}% -> ${CURRENT}%"
else
echo "No baseline coverage found, skipping comparison"
echo "Current coverage: ${CURRENT}%"
fi
# Upload coverage as baseline (only on main)
- name: Upload coverage baseline
if: gitea.ref == 'refs/heads/main'
uses: actions/upload-artifact@v3
with:
name: coverage-baseline
path: coverage.txt
retention-days: 90
# Post coverage to PR comment
- name: Post coverage comment
if: gitea.event_name == 'pull_request'
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_URL: ${{ gitea.server_url }}
run: |
COVERAGE=$(go tool cover -func=coverage.txt | grep "^total:" | awk '{print $NF}')
curl -X POST "${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/issues/${{ gitea.event.pull_request.number }}/comments" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"body\": \"## Coverage Report\n\nTotal coverage: **${COVERAGE}**\"}"
vulnerabilities: vulnerabilities:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
- uses: actions/setup-go@v6 - uses: actions/setup-go@v6
with: with:
go-version: 'stable' go-version: 'stable'
- uses: actions/setup-python@v5 - uses: actions/setup-python@v6
with: with:
python-version: '3.14' python-version: '3.14'
- name: Install goimports - name: Install goimports
-38
View File
@@ -1,38 +0,0 @@
include:
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
- project: unboundsoftware/ci-templates
file: Defaults.gitlab-ci.yml
- project: unboundsoftware/ci-templates
file: Release.gitlab-ci.yml
- project: unboundsoftware/ci-templates
file: Pre-Commit-Go.gitlab-ci.yml
image: amd64/golang:1.25.5@sha256:ad03ba93327b8a6143b49373790b5d92c28067bdb814418509466122ee9c9e63
stages:
- deps
- test
deps:
stage: deps
script:
- go mod download
test:
stage: test
dependencies:
- deps
script:
- CGO_ENABLED=1 go test -mod=readonly -race -coverprofile=coverage.txt -covermode=atomic -coverpkg=$(go list ./... | tr '\n' , | sed 's/,$//') ./...
- go tool cover -html=coverage.txt -o coverage.html
- go tool cover -func=coverage.txt
- curl -Os https://uploader.codecov.io/latest/linux/codecov
- chmod +x codecov
- ./codecov -t ${CODECOV_TOKEN} -R $CI_PROJECT_DIR -C $CI_COMMIT_SHA -r $CI_PROJECT_PATH
vulnerabilities:
stage: test
image: amd64/golang:1.25.5@sha256:ad03ba93327b8a6143b49373790b5d92c28067bdb814418509466122ee9c9e63
script:
- go install golang.org/x/vuln/cmd/govulncheck@latest
- govulncheck ./...
+3 -3
View File
@@ -11,7 +11,7 @@ repos:
- --allow-multiple-documents - --allow-multiple-documents
- id: check-added-large-files - id: check-added-large-files
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
rev: v9.23.0 rev: v9.24.0
hooks: hooks:
- id: commitlint - id: commitlint
stages: [ commit-msg ] stages: [ commit-msg ]
@@ -23,14 +23,14 @@ repos:
- id: go-imports - id: go-imports
args: args:
- -local - -local
- git.unbound.se/unboundsoftware/shiny/presenter - gitea.unbound.se/unboundsoftware/dbsetup
- repo: https://github.com/lietu/go-pre-commit - repo: https://github.com/lietu/go-pre-commit
rev: v1.0.0 rev: v1.0.0
hooks: hooks:
- id: go-test - id: go-test
- id: gofumpt - id: gofumpt
- repo: https://github.com/golangci/golangci-lint - repo: https://github.com/golangci/golangci-lint
rev: v2.8.0 rev: v2.10.1
hooks: hooks:
- id: golangci-lint-full - id: golangci-lint-full
- repo: https://github.com/gitleaks/gitleaks - repo: https://github.com/gitleaks/gitleaks
+13
View File
@@ -0,0 +1,13 @@
# Coverage configuration for go-test-coverage
# https://github.com/vladopajic/go-test-coverage
profile: coverage.txt
threshold:
file: 0
package: 0
total: 0
exclude:
paths:
- _test\.go$
+1 -1
View File
@@ -1,3 +1,3 @@
{ {
"version": "v0.1.0" "version": "v0.1.1"
} }
+7
View File
@@ -2,6 +2,13 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [0.1.1] - 2026-01-09
### ⚙️ Miscellaneous Tasks
- *(deps)* Update actions/setup-python action to v6
- Migrate module path to gitea.unbound.se
## [0.1.0] - 2026-01-09 ## [0.1.0] - 2026-01-09
### 🚀 Features ### 🚀 Features
+2 -2
View File
@@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
**dbsetup** is a Go helper module for database connection pool initialization with OpenTelemetry (OTEL) instrumentation. It wraps database connections with OTEL to automatically add SQL queries to tracing spans. **dbsetup** is a Go helper module for database connection pool initialization with OpenTelemetry (OTEL) instrumentation. It wraps database connections with OTEL to automatically add SQL queries to tracing spans.
- Module path: `git.unbound.se/unboundsoftware/dbsetup` - Module path: `gitea.unbound.se/unboundsoftware/dbsetup`
- Primary dependencies: sqlx, goose (migrations), otelsqlx (OTEL wrapper) - Primary dependencies: sqlx, goose (migrations), otelsqlx (OTEL wrapper)
## Common Commands ## Common Commands
@@ -44,7 +44,7 @@ Single-package module with one source file (`database.go`):
Pre-commit hooks enforce: Pre-commit hooks enforce:
- gofumpt formatting (stricter than gofmt) - gofumpt formatting (stricter than gofmt)
- golangci-lint - golangci-lint
- go-imports with local path `git.unbound.se/unboundsoftware/` - go-imports with local path `gitea.unbound.se/unboundsoftware/`
- Conventional commits format (feat:, fix:, chore:, etc.) - Conventional commits format (feat:, fix:, chore:, etc.)
- Gitleaks for secret detection - Gitleaks for secret detection
+1 -1
View File
@@ -1,4 +1,4 @@
module git.unbound.se/unboundsoftware/dbsetup module gitea.unbound.se/unboundsoftware/dbsetup
go 1.24.4 go 1.24.4