Compare commits
28 Commits
a353e018de
...
v0.1.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 54aad809cc | |||
| dd09c790bb | |||
| 95201cc5ad | |||
| e28661b667 | |||
|
c443c48690
|
|||
| c2c488b81d | |||
|
e201b66f3d
|
|||
| d61efd3b0d | |||
| af6597b216 | |||
| 95d4d17722 | |||
| 8777a59ced | |||
| 70a557afce | |||
| 82e94c7fbb | |||
| 26436c1c91 | |||
| 14ad17748b | |||
| 0ab624be6b | |||
| 18250f9863 | |||
| 36ca2ca0fe | |||
| 6206c37aac | |||
| f63c8fb341 | |||
| 2a5340c8c6 | |||
| a3f9974186 | |||
| 1c26beed2b | |||
| ff5b418602 | |||
| 82a08a50e6 | |||
| 842b1794e0 | |||
| cecab087c8 | |||
| 6c01846189 |
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(ls:*)",
|
||||||
|
"Bash(git -C /Users/argoyle/Source/Unbound/dbsetup log --oneline -20)",
|
||||||
|
"Bash(find:*)",
|
||||||
|
"WebSearch",
|
||||||
|
"Bash(git add:*)",
|
||||||
|
"Bash(pre-commit run:*)",
|
||||||
|
"Bash(go build:*)",
|
||||||
|
"Bash(go test:*)",
|
||||||
|
"Bash(but status)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
uses: unboundsoftware/shared-workflows/.gitea/workflows/Release.yml@main
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
name: pre-commit
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pre-commit:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
SKIP: no-commit-to-branch
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- uses: actions/setup-go@v6
|
||||||
|
with:
|
||||||
|
go-version: 'stable'
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.14'
|
||||||
|
- name: Install goimports
|
||||||
|
run: go install golang.org/x/tools/cmd/goimports@latest
|
||||||
|
- uses: pre-commit/action@v3.0.1
|
||||||
@@ -10,13 +10,6 @@ repos:
|
|||||||
args:
|
args:
|
||||||
- --allow-multiple-documents
|
- --allow-multiple-documents
|
||||||
- id: check-added-large-files
|
- id: check-added-large-files
|
||||||
- repo: https://gitlab.com/devopshq/gitlab-ci-linter
|
|
||||||
rev: v1.0.6
|
|
||||||
hooks:
|
|
||||||
- id: gitlab-ci-linter
|
|
||||||
args:
|
|
||||||
- --project
|
|
||||||
- unboundsoftware/dbsetup
|
|
||||||
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
|
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
|
||||||
rev: v9.23.0
|
rev: v9.23.0
|
||||||
hooks:
|
hooks:
|
||||||
@@ -30,7 +23,7 @@ repos:
|
|||||||
- id: go-imports
|
- id: go-imports
|
||||||
args:
|
args:
|
||||||
- -local
|
- -local
|
||||||
- gitlab.com/unboundsoftware/shiny/presenter
|
- git.unbound.se/unboundsoftware/shiny/presenter
|
||||||
- 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:
|
||||||
|
|||||||
+25
-1
@@ -2,7 +2,31 @@
|
|||||||
|
|
||||||
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.0.3] - 2025-11-05
|
## [0.1.0] - 2026-01-09
|
||||||
|
|
||||||
|
### 🚀 Features
|
||||||
|
|
||||||
|
- Add Gitea Actions workflow
|
||||||
|
|
||||||
|
### ⚙️ Miscellaneous Tasks
|
||||||
|
|
||||||
|
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.6.2
|
||||||
|
- *(deps)* Update golang:1.25.4 docker digest to efe81fa
|
||||||
|
- *(deps)* Update pre-commit hook gitleaks/gitleaks to v8.29.1
|
||||||
|
- *(deps)* Update pre-commit hook gitleaks/gitleaks to v8.30.0
|
||||||
|
- *(deps)* Update golang docker tag to v1.25.5
|
||||||
|
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.7.0
|
||||||
|
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.7.1
|
||||||
|
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.7.2
|
||||||
|
- *(deps)* Update golang:1.25.5 docker digest to 0c27bcf
|
||||||
|
- *(deps)* Update golang:1.25.5 docker digest to ad03ba9
|
||||||
|
- *(deps)* Update actions/checkout action to v6
|
||||||
|
- *(deps)* Update actions/setup-go action to v6
|
||||||
|
- *(deps)* Update pre-commit hook golangci/golangci-lint to v2.8.0
|
||||||
|
- Migrate module path from gitlab.com to git.unbound.se
|
||||||
|
- Add pre-commit and release workflows
|
||||||
|
|
||||||
|
## [0.0.3] - 2025-11-13
|
||||||
|
|
||||||
### 🐛 Bug Fixes
|
### 🐛 Bug Fixes
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
**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`
|
||||||
|
- Primary dependencies: sqlx, goose (migrations), otelsqlx (OTEL wrapper)
|
||||||
|
|
||||||
|
## Common Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Download dependencies
|
||||||
|
go mod download
|
||||||
|
|
||||||
|
# Run tests with race detection and coverage
|
||||||
|
CGO_ENABLED=1 go test -race -coverprofile=coverage.txt ./...
|
||||||
|
|
||||||
|
# Generate coverage report
|
||||||
|
go tool cover -html=coverage.txt -o coverage.html
|
||||||
|
|
||||||
|
# Check for security vulnerabilities
|
||||||
|
go install golang.org/x/vuln/cmd/govulncheck@latest
|
||||||
|
govulncheck ./...
|
||||||
|
|
||||||
|
# Run pre-commit hooks (add all files first)
|
||||||
|
git add -A && pre-commit run --all-files
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
Single-package module with one source file (`database.go`):
|
||||||
|
|
||||||
|
- **DatabaseConfig**: Configuration struct with connection URL, driver name, and pool settings. Uses struct tags compatible with kong CLI parser.
|
||||||
|
- **Database**: Main handler providing:
|
||||||
|
- `SetupDB()` - Validates database connection and returns Database instance
|
||||||
|
- `Connect()` - Creates OTEL-wrapped connection pool via otelsqlx
|
||||||
|
- `RunMigrations()` - Executes goose migrations from an `fs.FS` filesystem
|
||||||
|
|
||||||
|
## Code Quality
|
||||||
|
|
||||||
|
Pre-commit hooks enforce:
|
||||||
|
- gofumpt formatting (stricter than gofmt)
|
||||||
|
- golangci-lint
|
||||||
|
- go-imports with local path `git.unbound.se/unboundsoftware/`
|
||||||
|
- Conventional commits format (feat:, fix:, chore:, etc.)
|
||||||
|
- Gitleaks for secret detection
|
||||||
|
|
||||||
|
## CI/CD
|
||||||
|
|
||||||
|
GitLab CI pipeline runs: dependency download → tests with race detector → vulnerability scanning → Codecov upload.
|
||||||
@@ -2,6 +2,3 @@
|
|||||||
|
|
||||||
Helper module for setting up database connection pool using an
|
Helper module for setting up database connection pool using an
|
||||||
OTEL-wrapper which adds the actual query to a span.
|
OTEL-wrapper which adds the actual query to a span.
|
||||||
|
|
||||||
[](https://gitlab.com/unboundsoftware/dbsetup/commits/main)
|
|
||||||
[](https://codecov.io/gl/unboundsoftware/dbsetup)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user