d12b497a28
Create shared storage module for AWS S3 operations with comprehensive development infrastructure: Core Features: - S3 interface with two upload patterns (manager and direct) - Presigned URL generation with 15-minute expiration - Support for multipart uploads and direct PutObject - Comprehensive test coverage (8 tests, 70.4% coverage) - Generic implementation without project-specific dependencies Development Tooling: - .editorconfig for consistent editor settings - .pre-commit-config.yaml with Go linters and formatters - .golangci.yml for golangci-lint configuration - commitlint.config.js for conventional commit validation - cliff.toml for automated changelog generation (v0.0.1) - renovate.json for automated dependency updates - .gitlab-ci.yml for CI/CD pipeline CI/CD Pipeline: - Automated testing with race detection - Coverage tracking and Codecov integration - Vulnerability scanning with govulncheck - Pre-commit validation gates - Release automation Module exports: - New(bucket) - Upload manager pattern for large files - NewS3(cfg, bucket) - Direct upload pattern - Store(path, content, contentType) - Upload and get presigned URL 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
47 lines
1.1 KiB
YAML
47 lines
1.1 KiB
YAML
# See https://pre-commit.com for more information
|
|
# See https://pre-commit.com/hooks.html for more hooks
|
|
repos:
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v6.0.0
|
|
hooks:
|
|
- id: trailing-whitespace
|
|
- id: end-of-file-fixer
|
|
- id: check-yaml
|
|
args:
|
|
- --allow-multiple-documents
|
|
- 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/storage
|
|
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
|
|
rev: v9.23.0
|
|
hooks:
|
|
- id: commitlint
|
|
stages: [ commit-msg ]
|
|
additional_dependencies: [ '@commitlint/config-conventional' ]
|
|
- repo: https://github.com/dnephin/pre-commit-golang
|
|
rev: v0.5.1
|
|
hooks:
|
|
- id: go-mod-tidy
|
|
- id: go-imports
|
|
args:
|
|
- -local
|
|
- gitlab.com/unboundsoftware/storage
|
|
- repo: https://github.com/lietu/go-pre-commit
|
|
rev: v1.0.0
|
|
hooks:
|
|
- id: go-test
|
|
- id: gofumpt
|
|
- repo: https://github.com/golangci/golangci-lint
|
|
rev: v2.5.0
|
|
hooks:
|
|
- id: golangci-lint-full
|
|
- repo: https://github.com/gitleaks/gitleaks
|
|
rev: v8.28.0
|
|
hooks:
|
|
- id: gitleaks
|