## Summary Rewrites the Dockerfile to use sha256-pinned images and proper multi-stage build structure. Adds missing Makefile targets and a Gitea CI workflow. ## Changes ### Dockerfile - **Lint stage**: `golangci/golangci-lint` v1.64.8 pinned by sha256 — runs `make fmt-check` + `make lint` - **Test stage**: `golang` 1.22.12 pinned by sha256 — runs `make test` with dependency on lint stage - Removed redundant final stage (this is a library with no binary to build) - Both images pinned by digest with version+date comments ### Makefile - Added `fmt-check` target: verifies `gofmt` compliance without modifying files - Added `check` target: runs `fmt-check`, `lint`, `test` in sequence - Added `hooks` target: installs a pre-commit hook that runs `make check` - Separated `gofmt` check from `lint` target (was previously bundled) - Changed default target from `test` to `check` ### CI - Added `.gitea/workflows/check.yml`: runs `docker build .` on push to main and on PRs ## Verification `docker build --progress plain .` passes — all stages complete successfully. closes #9 <!-- session: agent:sdlc-manager:subagent:fffa0a5a-5127-4489-a2e0-314c5eaaed68 --> Co-authored-by: clawbot <clawbot@noreply.git.eeqj.de> Reviewed-on: #14 Co-authored-by: clawbot <clawbot@noreply.example.org> Co-committed-by: clawbot <clawbot@noreply.example.org>
simplelog
Summary
simplelog is an opinionated logging package designed to facilitate easy and structured logging in Go applications with an absolute minimum of boilerplate.
The idea is that you can add a single import line which replaces the
stdlib log/slog default handler, and solve the 90% case for logging.
Current Status
Released v1.0.0 2024-06-14. Works as intended. No known bugs.
Features
- if output is a tty, outputs pretty color logs
- if output is not a tty, outputs json
- supports delivering each log message via a webhook
Planned Features
- supports delivering logs via tcp RELP (e.g. to remote rsyslog using imrelp)
Installation
To use simplelog, first ensure your project is set up with Go modules:
go mod init your_project_name
Then, add SimpleLog to your project:
go get sneak.berlin/go/simplelog
Usage
Below is an example of how to use SimpleLog in a Go application. This
example is provided in the form of a main.go file, which demonstrates
logging at various levels using structured logging syntax.
package main
import (
"log/slog"
_ "sneak.berlin/go/simplelog"
)
func main() {
// log structured data with slog as usual:
slog.Info("User login attempt", slog.String("user", "JohnDoe"), slog.Int("attempt", 3))
slog.Warn("Configuration mismatch", slog.String("expected", "config.json"), slog.String("found", "config.dev.json"))
slog.Error("Failed to save data", slog.String("reason", "permission denied"))
}
License
Description
Languages
Go
85.6%
Dockerfile
6.2%
Makefile
5.4%
Shell
2.8%