From 64f8a3b97b5e7fa1a23c738470498563e2d847ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= Date: Mon, 15 Jan 2024 15:17:25 +0000 Subject: [PATCH 1/3] Reorganize code across top-level packages --- .gitignore | 1 + Dockerfile | 4 ++-- main.go => cmd/service/main.go | 4 ++-- {gcp => internal/gcp}/artifactregistry/artifactregistry.go | 0 {gcp => internal/gcp}/artifactregistry/doc.go | 0 {gcp => internal/gcp}/artifactregistry/docker.go | 0 {gcp => internal/gcp}/artifactregistry/http.go | 4 ++-- {gcp => internal/gcp}/doc.go | 0 {gcp => internal/gcp}/gateway.go | 6 +++--- {gcp => internal/gcp}/gateway_test.go | 4 ++-- {gcp => internal/gcp}/http.go | 4 ++-- {oidc => internal/oidc}/identity/discovery.go | 0 {oidc => internal/oidc}/identity/key.go | 0 {oidc => internal/oidc}/identity/key_test.go | 0 {oidc => internal/oidc}/identity/keyring.go | 0 {oidc => internal/oidc}/identity/keyring_test.go | 0 {oidc => internal/oidc}/identity/provider.go | 0 {oidc => internal/oidc}/identity/provider_test.go | 0 internal/oidc/identity/proxy.go | 0 .../oidc}/identity/testdata/gitlab_discovery_keys.json | 0 {oidc => internal/oidc}/identity/testdata/identity_key.pem | 0 {oidc => internal/oidc}/token/claims.go | 0 {oidc => internal/oidc}/token/claims_test.go | 2 +- {oidc => internal/oidc}/token/token.go | 0 {oidc => internal/oidc}/token/token_test.go | 2 +- {service => internal/service}/service.go | 4 ++-- {service => internal/service}/service_test.go | 2 +- {service => internal/service}/testdata/identity_key.pem | 0 {pkg => internal}/utils/context/context.go | 0 {pkg => internal}/utils/http/http.go | 0 {pkg => internal}/utils/middleware/bearer.go | 6 +++--- {pkg => internal}/utils/middleware/response.go | 0 32 files changed, 22 insertions(+), 21 deletions(-) rename main.go => cmd/service/main.go (94%) rename {gcp => internal/gcp}/artifactregistry/artifactregistry.go (100%) rename {gcp => internal/gcp}/artifactregistry/doc.go (100%) rename {gcp => internal/gcp}/artifactregistry/docker.go (100%) rename {gcp => internal/gcp}/artifactregistry/http.go (97%) rename {gcp => internal/gcp}/doc.go (100%) rename {gcp => internal/gcp}/gateway.go (97%) rename {gcp => internal/gcp}/gateway_test.go (99%) rename {gcp => internal/gcp}/http.go (90%) rename {oidc => internal/oidc}/identity/discovery.go (100%) rename {oidc => internal/oidc}/identity/key.go (100%) rename {oidc => internal/oidc}/identity/key_test.go (100%) rename {oidc => internal/oidc}/identity/keyring.go (100%) rename {oidc => internal/oidc}/identity/keyring_test.go (100%) rename {oidc => internal/oidc}/identity/provider.go (100%) rename {oidc => internal/oidc}/identity/provider_test.go (100%) create mode 100644 internal/oidc/identity/proxy.go rename {oidc => internal/oidc}/identity/testdata/gitlab_discovery_keys.json (100%) rename {oidc => internal/oidc}/identity/testdata/identity_key.pem (100%) rename {oidc => internal/oidc}/token/claims.go (100%) rename {oidc => internal/oidc}/token/claims_test.go (99%) rename {oidc => internal/oidc}/token/token.go (100%) rename {oidc => internal/oidc}/token/token_test.go (98%) rename {service => internal/service}/service.go (97%) rename {service => internal/service}/service_test.go (97%) rename {service => internal/service}/testdata/identity_key.pem (100%) rename {pkg => internal}/utils/context/context.go (100%) rename {pkg => internal}/utils/http/http.go (100%) rename {pkg => internal}/utils/middleware/bearer.go (97%) rename {pkg => internal}/utils/middleware/response.go (100%) diff --git a/.gitignore b/.gitignore index bd22805..82c9a42 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ *.toml .envrc .idea +.tool-versions \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 83cf24a..bca09e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ FROM golang:1.21 AS builder WORKDIR /app COPY . . -RUN CGO_ENABLED=0 go build -o glgo +RUN CGO_ENABLED=0 go build -o glgo ./cmd/service/ -FROM alpine:3.18.5 +FROM alpine WORKDIR /app COPY --from=builder /app/glgo . EXPOSE 8080 diff --git a/main.go b/cmd/service/main.go similarity index 94% rename from main.go rename to cmd/service/main.go index 937e726..99de65e 100644 --- a/main.go +++ b/cmd/service/main.go @@ -5,8 +5,8 @@ import ( "log/slog" "os" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/identity" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/service" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/identity" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/service" ) func main() { diff --git a/gcp/artifactregistry/artifactregistry.go b/internal/gcp/artifactregistry/artifactregistry.go similarity index 100% rename from gcp/artifactregistry/artifactregistry.go rename to internal/gcp/artifactregistry/artifactregistry.go diff --git a/gcp/artifactregistry/doc.go b/internal/gcp/artifactregistry/doc.go similarity index 100% rename from gcp/artifactregistry/doc.go rename to internal/gcp/artifactregistry/doc.go diff --git a/gcp/artifactregistry/docker.go b/internal/gcp/artifactregistry/docker.go similarity index 100% rename from gcp/artifactregistry/docker.go rename to internal/gcp/artifactregistry/docker.go diff --git a/gcp/artifactregistry/http.go b/internal/gcp/artifactregistry/http.go similarity index 97% rename from gcp/artifactregistry/http.go rename to internal/gcp/artifactregistry/http.go index 359aa56..4da0614 100644 --- a/gcp/artifactregistry/http.go +++ b/internal/gcp/artifactregistry/http.go @@ -7,8 +7,8 @@ import ( "net/http" "strconv" - utils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/pkg/utils/context" - httputils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/pkg/utils/http" + utils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils/context" + httputils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils/http" "github.com/gorilla/mux" "golang.org/x/oauth2" diff --git a/gcp/doc.go b/internal/gcp/doc.go similarity index 100% rename from gcp/doc.go rename to internal/gcp/doc.go diff --git a/gcp/gateway.go b/internal/gcp/gateway.go similarity index 97% rename from gcp/gateway.go rename to internal/gcp/gateway.go index 8c00c2b..bf37908 100644 --- a/gcp/gateway.go +++ b/internal/gcp/gateway.go @@ -11,10 +11,10 @@ import ( "github.com/lestrrat-go/jwx/v2/jws" "github.com/lestrrat-go/jwx/v2/jwt" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/identity" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/token" "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/identity" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/token" - httputils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/pkg/utils/http" + httputils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils/http" ) const ( diff --git a/gcp/gateway_test.go b/internal/gcp/gateway_test.go similarity index 99% rename from gcp/gateway_test.go rename to internal/gcp/gateway_test.go index a34ccbf..6641531 100644 --- a/gcp/gateway_test.go +++ b/internal/gcp/gateway_test.go @@ -20,10 +20,10 @@ import ( "github.com/lestrrat-go/jwx/v2/jwt" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/identity" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/token" "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/testutil" "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/identity" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/token" ) func TestTokenExchangeGateway(t *testing.T) { diff --git a/gcp/http.go b/internal/gcp/http.go similarity index 90% rename from gcp/http.go rename to internal/gcp/http.go index fc9fa11..845d597 100644 --- a/gcp/http.go +++ b/internal/gcp/http.go @@ -1,8 +1,8 @@ package gcp import ( - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/gcp/artifactregistry" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/pkg/utils/middleware" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/gcp/artifactregistry" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils/middleware" "github.com/gorilla/mux" ) diff --git a/oidc/identity/discovery.go b/internal/oidc/identity/discovery.go similarity index 100% rename from oidc/identity/discovery.go rename to internal/oidc/identity/discovery.go diff --git a/oidc/identity/key.go b/internal/oidc/identity/key.go similarity index 100% rename from oidc/identity/key.go rename to internal/oidc/identity/key.go diff --git a/oidc/identity/key_test.go b/internal/oidc/identity/key_test.go similarity index 100% rename from oidc/identity/key_test.go rename to internal/oidc/identity/key_test.go diff --git a/oidc/identity/keyring.go b/internal/oidc/identity/keyring.go similarity index 100% rename from oidc/identity/keyring.go rename to internal/oidc/identity/keyring.go diff --git a/oidc/identity/keyring_test.go b/internal/oidc/identity/keyring_test.go similarity index 100% rename from oidc/identity/keyring_test.go rename to internal/oidc/identity/keyring_test.go diff --git a/oidc/identity/provider.go b/internal/oidc/identity/provider.go similarity index 100% rename from oidc/identity/provider.go rename to internal/oidc/identity/provider.go diff --git a/oidc/identity/provider_test.go b/internal/oidc/identity/provider_test.go similarity index 100% rename from oidc/identity/provider_test.go rename to internal/oidc/identity/provider_test.go diff --git a/internal/oidc/identity/proxy.go b/internal/oidc/identity/proxy.go new file mode 100644 index 0000000..e69de29 diff --git a/oidc/identity/testdata/gitlab_discovery_keys.json b/internal/oidc/identity/testdata/gitlab_discovery_keys.json similarity index 100% rename from oidc/identity/testdata/gitlab_discovery_keys.json rename to internal/oidc/identity/testdata/gitlab_discovery_keys.json diff --git a/oidc/identity/testdata/identity_key.pem b/internal/oidc/identity/testdata/identity_key.pem similarity index 100% rename from oidc/identity/testdata/identity_key.pem rename to internal/oidc/identity/testdata/identity_key.pem diff --git a/oidc/token/claims.go b/internal/oidc/token/claims.go similarity index 100% rename from oidc/token/claims.go rename to internal/oidc/token/claims.go diff --git a/oidc/token/claims_test.go b/internal/oidc/token/claims_test.go similarity index 99% rename from oidc/token/claims_test.go rename to internal/oidc/token/claims_test.go index 2d9bc97..67b33b4 100644 --- a/oidc/token/claims_test.go +++ b/internal/oidc/token/claims_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/token" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/token" ) func TestGitlabClaims_CloudClaims(t *testing.T) { diff --git a/oidc/token/token.go b/internal/oidc/token/token.go similarity index 100% rename from oidc/token/token.go rename to internal/oidc/token/token.go diff --git a/oidc/token/token_test.go b/internal/oidc/token/token_test.go similarity index 98% rename from oidc/token/token_test.go rename to internal/oidc/token/token_test.go index 245c386..416a5d6 100644 --- a/oidc/token/token_test.go +++ b/internal/oidc/token/token_test.go @@ -11,7 +11,7 @@ import ( "github.com/lestrrat-go/jwx/v2/jwt" "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/token" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/token" ) func newRawToken(_ *testing.T) token.Token { diff --git a/service/service.go b/internal/service/service.go similarity index 97% rename from service/service.go rename to internal/service/service.go index c301dd3..0fb7119 100644 --- a/service/service.go +++ b/internal/service/service.go @@ -8,8 +8,8 @@ import ( "github.com/gorilla/mux" "gitlab.com/gitlab-org/labkit/log" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/gcp" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/identity" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/gcp" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/identity" ) type Service struct { diff --git a/service/service_test.go b/internal/service/service_test.go similarity index 97% rename from service/service_test.go rename to internal/service/service_test.go index ae367d8..b7e16a6 100644 --- a/service/service_test.go +++ b/internal/service/service_test.go @@ -11,8 +11,8 @@ import ( "github.com/lestrrat-go/jwx/v2/jwk" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/identity" "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/testutil" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/identity" ) func TestHealthCheck(t *testing.T) { diff --git a/service/testdata/identity_key.pem b/internal/service/testdata/identity_key.pem similarity index 100% rename from service/testdata/identity_key.pem rename to internal/service/testdata/identity_key.pem diff --git a/pkg/utils/context/context.go b/internal/utils/context/context.go similarity index 100% rename from pkg/utils/context/context.go rename to internal/utils/context/context.go diff --git a/pkg/utils/http/http.go b/internal/utils/http/http.go similarity index 100% rename from pkg/utils/http/http.go rename to internal/utils/http/http.go diff --git a/pkg/utils/middleware/bearer.go b/internal/utils/middleware/bearer.go similarity index 97% rename from pkg/utils/middleware/bearer.go rename to internal/utils/middleware/bearer.go index 6e06335..54ed673 100644 --- a/pkg/utils/middleware/bearer.go +++ b/internal/utils/middleware/bearer.go @@ -6,9 +6,9 @@ import ( "net/http" "strings" - "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/oidc/token" - ctxutils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/pkg/utils/context" - httputils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/pkg/utils/http" + "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/oidc/token" + ctxutils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils/context" + httputils "gitlab.com/gitlab-org/architecture/gitlab-gcp-integration/glgo/internal/utils/http" "github.com/lestrrat-go/jwx/v2/jwt" "google.golang.org/api/option" diff --git a/pkg/utils/middleware/response.go b/internal/utils/middleware/response.go similarity index 100% rename from pkg/utils/middleware/response.go rename to internal/utils/middleware/response.go -- GitLab From 27f84f66910bf0736510e05a6364432d52bc30e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= Date: Tue, 16 Jan 2024 15:06:11 +0000 Subject: [PATCH 2/3] Remove unneeded file --- internal/oidc/identity/proxy.go | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 internal/oidc/identity/proxy.go diff --git a/internal/oidc/identity/proxy.go b/internal/oidc/identity/proxy.go deleted file mode 100644 index e69de29..0000000 -- GitLab From 0d311f2b730237abb2e0170715aaff561fbbffc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pereira?= Date: Wed, 17 Jan 2024 11:07:24 +0000 Subject: [PATCH 3/3] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index bca09e3..c61d8c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /app COPY . . RUN CGO_ENABLED=0 go build -o glgo ./cmd/service/ -FROM alpine +FROM alpine:3.18.5 WORKDIR /app COPY --from=builder /app/glgo . EXPOSE 8080 -- GitLab