Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:

jobs:
go-check:
uses: duynhlab/gha-workflows/.github/workflows/go-check.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/go-check.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
command-test: 'go test -race -coverprofile=coverage.out ./...'
lint: true
Expand All @@ -25,14 +25,14 @@ jobs:
integration-command: 'go test -tags=integration -covermode=atomic -coverprofile=coverage-integration.out ./internal/core/repository/...'

gitleaks:
uses: duynhlab/gha-workflows/.github/workflows/gitleaks.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/gitleaks.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
permissions:
contents: read
security-events: write

sonar:
needs: [go-check, gitleaks]
uses: duynhlab/gha-workflows/.github/workflows/sonarqube.yml@e321897e5c28e7c861b9d8beb37614e1c5823f42 # main
uses: duynhlab/gha-workflows/.github/workflows/sonarqube.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
project-key: 'duynhlab_${{ github.event.repository.name }}'
organization: 'duynhlab'
Expand All @@ -43,7 +43,7 @@ jobs:

docker-build:
needs: [go-check, sonar]
uses: duynhlab/gha-workflows/.github/workflows/docker-build-go.yml@566b62220abb6db150099ca11cb7a9904288f3b5 # main
uses: duynhlab/gha-workflows/.github/workflows/docker-build-go.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
image-name: ${{ github.event.repository.name }}
push: true
Expand All @@ -58,7 +58,7 @@ jobs:
trivy-report:
needs: [docker-build]
if: needs.docker-build.outputs.scan-status == 'pass'
uses: duynhlab/gha-workflows/.github/workflows/trivy-scan.yml@e321897e5c28e7c861b9d8beb37614e1c5823f42 # main
uses: duynhlab/gha-workflows/.github/workflows/trivy-scan.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
image-ref: ghcr.io/${{ github.repository }}/${{ github.event.repository.name }}@${{ needs.docker-build.outputs.digest }}
severity: 'CRITICAL,HIGH,MEDIUM'
Expand All @@ -75,7 +75,7 @@ jobs:

docker-sign:
needs: [docker-build]
uses: duynhlab/gha-workflows/.github/workflows/docker-sign.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/docker-sign.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
tags: ${{ needs.docker-build.outputs.tags }}
digest: ${{ needs.docker-build.outputs.digest }}
Expand All @@ -89,15 +89,15 @@ jobs:
release-binary:
needs: [go-check, sonar]
if: startsWith(github.ref, 'refs/tags/v')
uses: duynhlab/gha-workflows/.github/workflows/goreleaser.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/goreleaser.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
permissions:
contents: write
id-token: write

notify:
if: always()
needs: [go-check, gitleaks, sonar, docker-build, trivy-report, docker-sign, release-binary]
uses: duynhlab/gha-workflows/.github/workflows/status.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/status.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
slack_channel_id: "C0AD82A9A74"
gsheet_spreadsheet_id: "1F2VUrAOyMGnETApp5yA-ldCW81ConiQXnWYZVxKas_0"
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ permissions:

jobs:
pr-checks:
uses: duynhlab/gha-workflows/.github/workflows/pr-checks.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/pr-checks.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
slack_channel_id: "C0AD82A9A74"
secrets:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}

go-check:
uses: duynhlab/gha-workflows/.github/workflows/go-check.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/go-check.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
command-test: 'go test -race -coverprofile=coverage.out ./...'
lint: true
Expand All @@ -28,14 +28,14 @@ jobs:
integration-command: 'go test -tags=integration -covermode=atomic -coverprofile=coverage-integration.out ./internal/core/repository/...'

gitleaks:
uses: duynhlab/gha-workflows/.github/workflows/gitleaks.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/gitleaks.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
permissions:
contents: read
security-events: write

sonar:
needs: [go-check, gitleaks]
uses: duynhlab/gha-workflows/.github/workflows/sonarqube.yml@e321897e5c28e7c861b9d8beb37614e1c5823f42 # main
uses: duynhlab/gha-workflows/.github/workflows/sonarqube.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
project-key: 'duynhlab_${{ github.event.repository.name }}'
organization: 'duynhlab'
Expand All @@ -49,7 +49,7 @@ jobs:
# fail there — skip instead of painting every deps PR red.
if: always() && github.actor != 'dependabot[bot]'
needs: [pr-checks, go-check, gitleaks, sonar]
uses: duynhlab/gha-workflows/.github/workflows/status.yml@54fd20d46fd99b5fb85e6029247fcaba865c1481 # main
uses: duynhlab/gha-workflows/.github/workflows/status.yml@ff848d88c8b3c301dcd1292cb8367221d3fed64e # main
with:
slack_channel_id: "C0AD82A9A74"
slack_thread_ts: ${{ needs.pr-checks.outputs.slack_thread_ts }}
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# --platform pins the builder to the BUILD host so a multi-arch build
# cross-compiles instead of running this whole stage under emulation.
FROM --platform=$BUILDPLATFORM docker.io/library/golang:1.26.7-alpine AS builder
FROM --platform=$BUILDPLATFORM docker.io/library/golang:1.27.1-alpine AS builder
ARG TARGETOS TARGETARCH
WORKDIR /app
COPY go.mod go.sum ./
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ minimal public view of them.

| Area | Technology |
|------|------------|
| Runtime | Go 1.26 |
| Runtime | Go 1.27 |
| Transports | HTTP only — no gRPC server, no client, no worker |
| Data | PostgreSQL — one table, `user_profiles` |
| Platform libraries | `authmw`, `dbx`, `httpx`, `logger/zapx`, `migratex`, `obsx` |
Expand Down
18 changes: 9 additions & 9 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
module github.com/duynhlab/user-service

go 1.26.7
go 1.27.1

require (
github.com/duynhlab/pkg/authmw v0.37.2
github.com/duynhlab/pkg/dbx v0.37.0
github.com/duynhlab/pkg/httpmw v0.2.0
github.com/duynhlab/pkg/httpx v0.37.1
github.com/duynhlab/pkg/logger/slogx v0.3.0
github.com/duynhlab/pkg/migratex v0.36.2
github.com/duynhlab/pkg/obsx v0.47.0
github.com/duynhlab/pkg/authmw v0.38.0
github.com/duynhlab/pkg/dbx v0.38.0
github.com/duynhlab/pkg/httpmw v0.4.0
github.com/duynhlab/pkg/httpx v0.38.0
github.com/duynhlab/pkg/logger/slogx v0.4.0
github.com/duynhlab/pkg/migratex v0.37.0
github.com/duynhlab/pkg/obsx v0.48.0
github.com/gin-gonic/gin v1.12.0
github.com/jackc/pgx/v5 v5.11.0
github.com/joho/godotenv v1.5.1
Expand Down Expand Up @@ -102,7 +102,7 @@ require (
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/bridges/otelslog v0.20.1 // indirect
go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.71.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.70.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0 // indirect
go.opentelemetry.io/contrib/instrumentation/runtime v0.71.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.22.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.46.0 // indirect
Expand Down
32 changes: 16 additions & 16 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,20 @@ github.com/docker/go-connections v0.7.0 h1:6SsRfJddP22WMrCkj19x9WKjEDTB+ahsdiGYf
github.com/docker/go-connections v0.7.0/go.mod h1:no1qkHdjq7kLMGUXYAduOhYPSJxxvgWBh7ogVvptn3Q=
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/duynhlab/pkg/authmw v0.37.2 h1:eqeTtfsghqKpOIjJFloJO0cNmKdHDvlGPfUbriBAHcI=
github.com/duynhlab/pkg/authmw v0.37.2/go.mod h1:IB1s7C9HiyUAug3foPWzYwg8dUzB3bTgMPXR6Gb7SGY=
github.com/duynhlab/pkg/dbx v0.37.0 h1:1nnF6dds3iHmiviPzL+HbLEHNyxGyowHRx6hn2af6Fg=
github.com/duynhlab/pkg/dbx v0.37.0/go.mod h1:oYXOz72MB7hpDPg7n+81fMEjPYAvrBQvKH+tXW6vOsg=
github.com/duynhlab/pkg/httpmw v0.2.0 h1:DvGmyZzVii7QuJm5UM40DxEAT0gbUT1KZEbN1vNcdIE=
github.com/duynhlab/pkg/httpmw v0.2.0/go.mod h1:dZlOi0zgU3BjDI63nbw10dN/I8N1/ycF9Eb3wqQnhDU=
github.com/duynhlab/pkg/httpx v0.37.1 h1:WIN6sQ3FsGZjFIPZGPESaYyGewCRVoT5l2NTPvI1dc0=
github.com/duynhlab/pkg/httpx v0.37.1/go.mod h1:CzOtG+Qvdr/g5YXF7d8XmtBjMIsK+WpXoj59nYM7z+c=
github.com/duynhlab/pkg/logger/slogx v0.3.0 h1:oxhx2P3Q1kTdgoTF4iiuxBtBW+TuWyDiaooSbRCfkVA=
github.com/duynhlab/pkg/logger/slogx v0.3.0/go.mod h1:9edmpl0M2O0UiLpxjOjjyGGNIVH+/yCsoTeIvFnL5cQ=
github.com/duynhlab/pkg/migratex v0.36.2 h1:Sab/5qFhXU7awrqXvwKCioXs4myOz2nAE8Wbc5x7bQ0=
github.com/duynhlab/pkg/migratex v0.36.2/go.mod h1:rF/I+XnjX0k2BoTtfAkiuDe1U/2ztifUb+jHLzPP0Ro=
github.com/duynhlab/pkg/obsx v0.47.0 h1:H0MoqkpbdzgcZs2ioxhZwBrDg7HCApctmUuLpqwSo84=
github.com/duynhlab/pkg/obsx v0.47.0/go.mod h1:CfQDeE5o+Zo30BnyTpDYbubkHnyLyH+mhMNDjKD0tyE=
github.com/duynhlab/pkg/authmw v0.38.0 h1:J9nSlrD0aGrb50UNp4G0uJcUsORiAsYT7fuWA474iGc=
github.com/duynhlab/pkg/authmw v0.38.0/go.mod h1:zJheLTQRZZaJknGZcO5jsbijPjA5VeypQmphSsPcZnM=
github.com/duynhlab/pkg/dbx v0.38.0 h1:zrrQfbXq3KGxQ17sQmkXRBpedY8Vd7wTjAtGkL1SloI=
github.com/duynhlab/pkg/dbx v0.38.0/go.mod h1:j0gZzgtneu+YaG5uIAgZk4/Oy5nz7CzMfecKTJyGR/Y=
github.com/duynhlab/pkg/httpmw v0.4.0 h1:eQRGOJqFf2EtaOkV5EC59JM3+rUt8xRTCWAxxONAsDU=
github.com/duynhlab/pkg/httpmw v0.4.0/go.mod h1:a68cAq+KGakPQUYOaHQfE2EYOFOGwVoYG/bAan+YQ5I=
github.com/duynhlab/pkg/httpx v0.38.0 h1:0hc7NBm6Rxpq5lLywaANUwPDL9M9b3qpvGTzlsfOI7Y=
github.com/duynhlab/pkg/httpx v0.38.0/go.mod h1:Rjhq+qEQDye4hyNVvWQcH2flvDLRpMQ7nuAa9lX/Kl0=
github.com/duynhlab/pkg/logger/slogx v0.4.0 h1:9pAdFg9N0hDd+OQocIc41RZ6Nr2SjDpSgvJba0DOjHs=
github.com/duynhlab/pkg/logger/slogx v0.4.0/go.mod h1:z61sQ3Q4of48VbaQSnPBCHgBzGX8YRvQaxEc82O66t0=
github.com/duynhlab/pkg/migratex v0.37.0 h1:CAKzeYtxxKNPncS9DRDrl+5PKfVzAJmgxiVkIKlkp8U=
github.com/duynhlab/pkg/migratex v0.37.0/go.mod h1:HxRDKXQidFhTciW5rX977V+eAYOy7GRf5nb8zHVYSjA=
github.com/duynhlab/pkg/obsx v0.48.0 h1:DAdPJsQudqvbOpk1rF+kOMktiq+fzVSgY/C3OxMg68s=
github.com/duynhlab/pkg/obsx v0.48.0/go.mod h1:jYj8QAaH2bag0vvw8gDI76dn0oaa4PhbjfTqRYle/+Q=
github.com/ebitengine/purego v0.10.1 h1:dewVBCBT2GaMu1SrNTYxQhgQBethzfhiwvZiLGP/qyY=
github.com/ebitengine/purego v0.10.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/exaring/otelpgx v0.11.1 h1:pE79fIg/qh/Lpu00kvswFC5dKfqyJJhMJ4Y4N3w5Lj4=
Expand Down Expand Up @@ -229,8 +229,8 @@ go.opentelemetry.io/contrib/bridges/otelslog v0.20.1 h1:5sHc4ToTFjfSZCtGAAM6jPun
go.opentelemetry.io/contrib/bridges/otelslog v0.20.1/go.mod h1:oa6kgvyz/3GYW04dohd0++xJIH4xdQY8PAbpeCMaM8M=
go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.71.0 h1:TMTU0sQyqsF1QU+/Q4LAZlLOx1L3FJDbk5N2RVB1nx4=
go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.71.0/go.mod h1:QzTELfxkj/tFEZSD22OPPwLet5nIPmcdmZPeISk4C8M=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.70.0 h1:LMuyCAyfalSjDyjdC65nK6N0zoTT63+E/u95X0JovZI=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.70.0/go.mod h1:085m8qbm4hgc8rZWGDEa4vmyyo2c3nPxUslYUKUIU04=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0 h1:3g7B90UzBltIDKq1/5mrTGxTnOFDV0ICOhLoxiZ8jlg=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0/go.mod h1:Ef8SuTh59BT7+ofpDxN9z+yOlc4t2GjLmKDgYNJL/NU=
go.opentelemetry.io/contrib/instrumentation/runtime v0.71.0 h1:v4KkRLVvE1cWqTJDfZZkTCG+Z4aolsa6RVos0FX7vqE=
go.opentelemetry.io/contrib/instrumentation/runtime v0.71.0/go.mod h1:g/xbuPC0XbgwMdKuyF5sKOUUEsorSkN6APydyFP/H9E=
go.opentelemetry.io/contrib/propagators/b3 v1.46.0 h1:OFVqWObn7xLIbOjE/koO0LS9fZJNgAyBD0msA+UQAoc=
Expand Down
Loading