Skip to content

Commit fbde4b8

Browse files
authored
Merge branch 'main' into use-ko
2 parents 57f6e04 + 913147b commit fbde4b8

File tree

18 files changed

+574
-831
lines changed

18 files changed

+574
-831
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
run: make test-all
6262

6363
- name: Upload coverage artifacts
64-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
64+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
6565
with:
6666
name: coverage-report
6767
path: |

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
cache: true
2626

2727
- name: Install cosign
28-
uses: sigstore/cosign-installer@7e8b541eb2e61bf99390e1afd4be13a184e9ebc5
28+
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad
2929

3030
- name: Install Syft
3131
uses: anchore/sbom-action/download-syft@v0.20.9

Makefile

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,23 @@ check-schema: ## Check if server.schema.json is in sync with openapi.yaml
2828
# Test targets
2929
test-unit: ## Run unit tests with coverage (requires PostgreSQL)
3030
@echo "Starting PostgreSQL for unit tests..."
31-
@docker compose up -d postgres
31+
@docker compose up -d postgres 2>&1 | grep -v "Pulling\|Pulled\|Creating\|Created\|Starting\|Started" || true
3232
@echo "Waiting for PostgreSQL to be ready..."
3333
@sleep 3
34+
@echo ""
3435
@echo "Running unit tests..."
35-
go test -v -race -coverprofile=coverage.out -covermode=atomic ./internal/... ./cmd/...
36-
go tool cover -html=coverage.out -o coverage.html
37-
@echo "Coverage report generated: coverage.html"
38-
@echo "Stopping PostgreSQL..."
39-
@docker compose down postgres
36+
@if command -v gotestsum >/dev/null 2>&1; then \
37+
gotestsum --format pkgname-and-test-fails -- -race -coverprofile=coverage.out -covermode=atomic ./internal/... ./cmd/... 2>&1 | grep -v "ld: warning:"; \
38+
else \
39+
go test -race -coverprofile=coverage.out -covermode=atomic ./internal/... ./cmd/... 2>&1 | grep -v "ld: warning:" | grep -v "^ld:"; \
40+
fi
41+
@echo ""
42+
@go tool cover -html=coverage.out -o coverage.html
43+
@echo "✅ Coverage report: coverage.html"
44+
@go tool cover -func=coverage.out | tail -1
45+
@echo ""
46+
@docker compose down postgres >/dev/null 2>&1
47+
@echo "✅ Tests complete"
4048

4149
test: ## Run unit tests (use 'make test-all' to run all tests)
4250
@echo "⚠️ Running unit tests only. Use 'make test-all' to run both unit and integration tests."

cmd/publisher/commands/init.go

Lines changed: 87 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@ func InitCommand() error {
2121
return errors.New("server.json already exists")
2222
}
2323

24+
// Detect if we're in a subdirectory of the git repository
25+
subfolder := detectSubfolder()
26+
2427
// Try to detect values from environment
25-
name := detectServerName()
28+
name := detectServerName(subfolder)
2629
description := detectDescription()
2730
version := "1.0.0"
2831
repoURL := detectRepoURL()
@@ -55,7 +58,7 @@ func InitCommand() error {
5558

5659
// Create the server structure
5760
server := createServerJSON(
58-
name, description, version, repoURL, repoSource,
61+
name, description, version, repoURL, repoSource, subfolder,
5962
packageType, packageIdentifier, version, envVars,
6063
)
6164

@@ -82,6 +85,50 @@ func InitCommand() error {
8285
return nil
8386
}
8487

88+
func detectSubfolder() string {
89+
// Get current working directory
90+
cwd, err := os.Getwd()
91+
if err != nil {
92+
return ""
93+
}
94+
95+
// Find git repository root
96+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
97+
defer cancel()
98+
cmd := exec.CommandContext(ctx, "git", "rev-parse", "--show-toplevel")
99+
cmd.Dir = cwd
100+
output, err := cmd.Output()
101+
if err != nil {
102+
// Not in a git repository
103+
return ""
104+
}
105+
106+
gitRoot := strings.TrimSpace(string(output))
107+
108+
// Clean the paths to ensure proper comparison
109+
gitRoot = filepath.Clean(gitRoot)
110+
cwd = filepath.Clean(cwd)
111+
112+
// If we're in the root, no subfolder
113+
if gitRoot == cwd {
114+
return ""
115+
}
116+
117+
// Check if cwd is actually within gitRoot
118+
if !strings.HasPrefix(cwd, gitRoot) {
119+
return ""
120+
}
121+
122+
// Calculate relative path from git root to current directory
123+
relPath, err := filepath.Rel(gitRoot, cwd)
124+
if err != nil {
125+
return ""
126+
}
127+
128+
// Convert to forward slashes for consistency (important for cross-platform)
129+
return filepath.ToSlash(relPath)
130+
}
131+
85132
func getNameFromPackageJSON() string {
86133
data, err := os.ReadFile("package.json")
87134
if err != nil {
@@ -109,18 +156,13 @@ func getNameFromPackageJSON() string {
109156
return fmt.Sprintf("io.github.<your-username>/%s", name)
110157
}
111158

112-
func detectServerName() string {
159+
func detectServerName(subfolder string) string {
113160
// Try to get from git remote
114161
repoURL := detectRepoURL()
115-
if repoURL != "" {
116-
// Extract owner/repo from GitHub URL
117-
if strings.Contains(repoURL, "github.com") {
118-
parts := strings.Split(repoURL, "/")
119-
if len(parts) >= 5 {
120-
owner := parts[3]
121-
repo := strings.TrimSuffix(parts[4], ".git")
122-
return fmt.Sprintf("io.github.%s/%s", owner, repo)
123-
}
162+
if repoURL != "" && strings.Contains(repoURL, "github.com") {
163+
name := buildGitHubServerName(repoURL, subfolder)
164+
if name != "" {
165+
return name
124166
}
125167
}
126168

@@ -138,6 +180,24 @@ func detectServerName() string {
138180
return "com.example/my-mcp-server"
139181
}
140182

183+
func buildGitHubServerName(repoURL, subfolder string) string {
184+
parts := strings.Split(repoURL, "/")
185+
if len(parts) < 5 {
186+
return ""
187+
}
188+
189+
owner := parts[3]
190+
repo := strings.TrimSuffix(parts[4], ".git")
191+
192+
// If we're in a subdirectory, use the current folder name
193+
if subfolder != "" {
194+
folderName := filepath.Base(subfolder)
195+
return fmt.Sprintf("io.github.%s/%s", owner, folderName)
196+
}
197+
198+
return fmt.Sprintf("io.github.%s/%s", owner, repo)
199+
}
200+
141201
func detectDescription() string {
142202
// Try to get from package.json
143203
if data, err := os.ReadFile("package.json"); err == nil {
@@ -263,7 +323,7 @@ func detectPackageIdentifier(serverName string, packageType string) string {
263323
}
264324

265325
func createServerJSON(
266-
name, description, version, repoURL, repoSource,
326+
name, description, version, repoURL, repoSource, subfolder,
267327
packageType, packageIdentifier, packageVersion string,
268328
envVars []model.KeyValueInput,
269329
) apiv0.ServerJSON {
@@ -326,16 +386,24 @@ func createServerJSON(
326386
}
327387
}
328388

389+
// Create repository with optional subfolder
390+
repo := model.Repository{
391+
URL: repoURL,
392+
Source: repoSource,
393+
}
394+
395+
// Only set subfolder if we're actually in a subdirectory
396+
if subfolder != "" {
397+
repo.Subfolder = subfolder
398+
}
399+
329400
// Create server structure
330401
return apiv0.ServerJSON{
331402
Schema: model.CurrentSchemaURL,
332403
Name: name,
333404
Description: description,
334-
Repository: model.Repository{
335-
URL: repoURL,
336-
Source: repoSource,
337-
},
338-
Version: version,
339-
Packages: []model.Package{pkg},
405+
Repository: repo,
406+
Version: version,
407+
Packages: []model.Package{pkg},
340408
}
341409
}

docs/community-projects.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ The following is a list of notable community-driven projects in the ecosystem re
66

77
- [MCP Bench](https://mcpbench.ai/)🔎 - Explore the MCP registry with richer filters, community stars, and LLM-generated classification tags.
88
- [MCP Registry Cheat Sheet](https://github.com/subbyte/mcp-registry-cheatsheet) - MCP Registry Cheat Sheet for MCP server developers, client developers, and registry admin
9+
- [MCP Registry Database](https://lite.datasette.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2Frosmur%2Fofficial-mcp-registry-database%2Fmain%2Fofficial_mcp_registry.db#/official_mcp_registry/servers) - A minimal, web browsable, live database of the official MCP Registry [source code](https://github.com/rosmur/official-mcp-registry-database).
910
- [MCP Registry Remote MCP Server](https://github.com/jaw9c/mcp-registry-mcp) - Open Remote MCP server for the Registry at `https://registry-mcp.remote-mcp.com`
1011
- [MCP Server for MCP Registry](https://github.com/formulahendry/mcp-server-mcp-registry) - MCP Server to discover and search for available MCP servers in the registry
1112
- [mcp-insights](https://github.com/joelverhagen/mcp-insights/) - Analytics and insights for the MCP Registry

docs/guides/publishing/publish-server.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,10 @@ LABEL io.modelcontextprotocol.server.name="io.github.username/server-name"
313313

314314
The identifier format is `registry/namespace/repository:tag` (e.g., `docker.io/user/app:1.0.0` or `ghcr.io/user/app:1.0.0`). The version can also be specified as a digest.
315315

316-
The official MCP registry currently supports Docker Hub (`docker.io`) and GitHub Container Registry (`ghcr.io`).
316+
The official MCP registry supports:
317+
- Docker Hub (`docker.io`)
318+
- GitHub Container Registry (`ghcr.io`)
319+
- Google Artifact Registry (any `*.pkg.dev` domain)
317320

318321
</details>
319322

docs/reference/server-json/official-registry-requirements.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@ Only trusted public registries are supported. Private registries and alternative
3636

3737
**Supported registries:**
3838
- **NPM**: `https://registry.npmjs.org` only
39-
- **PyPI**: `https://pypi.org` only
39+
- **PyPI**: `https://pypi.org` only
4040
- **NuGet**: `https://api.nuget.org` only
41-
- **Docker/OCI**: `https://docker.io` only
41+
- **Docker/OCI**:
42+
- Docker Hub (`docker.io`)
43+
- GitHub Container Registry (`ghcr.io`)
44+
- Google Artifact Registry (`*.pkg.dev`)
4245
- **MCPB**: `https://github.com` releases and `https://gitlab.com` releases only
4346

4447
## `_meta` Namespace Restrictions

go.mod

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ require (
66
github.com/caarlos0/env/v11 v11.3.1
77
github.com/coreos/go-oidc/v3 v3.16.0
88
github.com/danielgtaylor/huma/v2 v2.34.1
9-
github.com/distribution/reference v0.6.0
109
github.com/golang-jwt/jwt/v5 v5.3.0
10+
github.com/google/go-containerregistry v0.20.6
1111
github.com/jackc/pgx/v5 v5.7.6
1212
github.com/prometheus/client_golang v1.23.2
13+
github.com/rs/cors v1.11.1
1314
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
1415
github.com/stretchr/testify v1.11.1
1516
go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0
@@ -25,7 +26,11 @@ require (
2526
require (
2627
github.com/beorn7/perks v1.0.1 // indirect
2728
github.com/cespare/xxhash/v2 v2.3.0 // indirect
29+
github.com/containerd/stargz-snapshotter/estargz v0.16.3 // indirect
2830
github.com/davecgh/go-spew v1.1.1 // indirect
31+
github.com/docker/cli v28.2.2+incompatible // indirect
32+
github.com/docker/distribution v2.8.3+incompatible // indirect
33+
github.com/docker/docker-credential-helpers v0.9.3 // indirect
2934
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
3035
github.com/go-logr/logr v1.4.3 // indirect
3136
github.com/go-logr/stdr v1.2.2 // indirect
@@ -34,13 +39,19 @@ require (
3439
github.com/jackc/pgpassfile v1.0.0 // indirect
3540
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
3641
github.com/jackc/puddle/v2 v2.2.2 // indirect
42+
github.com/klauspost/compress v1.18.0 // indirect
43+
github.com/mitchellh/go-homedir v1.1.0 // indirect
3744
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
3845
github.com/opencontainers/go-digest v1.0.0 // indirect
46+
github.com/opencontainers/image-spec v1.1.1 // indirect
47+
github.com/pkg/errors v0.9.1 // indirect
3948
github.com/pmezard/go-difflib v1.0.0 // indirect
4049
github.com/prometheus/client_model v0.6.2 // indirect
4150
github.com/prometheus/common v0.66.1 // indirect
4251
github.com/prometheus/otlptranslator v0.0.2 // indirect
4352
github.com/prometheus/procfs v0.17.0 // indirect
53+
github.com/sirupsen/logrus v1.9.3 // indirect
54+
github.com/vbatts/tar-split v0.12.1 // indirect
4455
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
4556
go.opentelemetry.io/otel/trace v1.38.0 // indirect
4657
go.yaml.in/yaml/v2 v2.4.2 // indirect

go.sum

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,21 @@ github.com/caarlos0/env/v11 v11.3.1 h1:cArPWC15hWmEt+gWk7YBi7lEXTXCvpaSdCiZE2X5m
44
github.com/caarlos0/env/v11 v11.3.1/go.mod h1:qupehSf/Y0TUTsxKywqRt/vJjN5nz6vauiYEUUr8P4U=
55
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
66
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
7+
github.com/containerd/stargz-snapshotter/estargz v0.16.3 h1:7evrXtoh1mSbGj/pfRccTampEyKpjpOnS3CyiV1Ebr8=
8+
github.com/containerd/stargz-snapshotter/estargz v0.16.3/go.mod h1:uyr4BfYfOj3G9WBVE8cOlQmXAbPN9VEQpBBeJIuOipU=
79
github.com/coreos/go-oidc/v3 v3.16.0 h1:qRQUCFstKpXwmEjDQTIbyY/5jF00+asXzSkmkoa/mow=
810
github.com/coreos/go-oidc/v3 v3.16.0/go.mod h1:wqPbKFrVnE90vty060SB40FCJ8fTHTxSwyXJqZH+sI8=
911
github.com/danielgtaylor/huma/v2 v2.34.1 h1:EmOJAbzEGfy0wAq/QMQ1YKfEMBEfE94xdBRLPBP0gwQ=
1012
github.com/danielgtaylor/huma/v2 v2.34.1/go.mod h1:ynwJgLk8iGVgoaipi5tgwIQ5yoFNmiu+QdhU7CEEmhk=
1113
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1214
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1315
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
14-
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
15-
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
16+
github.com/docker/cli v28.2.2+incompatible h1:qzx5BNUDFqlvyq4AHzdNB7gSyVTmU4cgsyN9SdInc1A=
17+
github.com/docker/cli v28.2.2+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
18+
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
19+
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
20+
github.com/docker/docker-credential-helpers v0.9.3 h1:gAm/VtF9wgqJMoxzT3Gj5p4AqIjCBS4wrsOh9yRqcz8=
21+
github.com/docker/docker-credential-helpers v0.9.3/go.mod h1:x+4Gbw9aGmChi3qTLZj8Dfn0TD20M/fuWy0E5+WDeCo=
1622
github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
1723
github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
1824
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -24,6 +30,8 @@ github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9v
2430
github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
2531
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
2632
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
33+
github.com/google/go-containerregistry v0.20.6 h1:cvWX87UxxLgaH76b4hIvya6Dzz9qHB31qAwjAohdSTU=
34+
github.com/google/go-containerregistry v0.20.6/go.mod h1:T0x8MuoAoKX/873bkeSfLD2FAkwCDf9/HZgsFJ02E2Y=
2735
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
2836
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2937
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248=
@@ -44,10 +52,16 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
4452
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
4553
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
4654
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
55+
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
56+
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
4757
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
4858
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
4959
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
5060
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
61+
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
62+
github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
63+
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
64+
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
5165
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
5266
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5367
github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
@@ -62,13 +76,19 @@ github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7D
6276
github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw=
6377
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
6478
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
79+
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
80+
github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
6581
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
6682
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
83+
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
84+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
6785
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6886
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
6987
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
7088
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
7189
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
90+
github.com/vbatts/tar-split v0.12.1 h1:CqKoORW7BUWBe7UL/iqTVvkTBOF8UvOMKOIZykxnnbo=
91+
github.com/vbatts/tar-split v0.12.1/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA=
7292
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
7393
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
7494
go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 h1:PeBoRj6af6xMI7qCupwFvTbbnd49V7n5YpG6pg8iDYQ=
@@ -97,6 +117,7 @@ golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo=
97117
golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
98118
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
99119
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
120+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
100121
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
101122
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
102123
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
@@ -109,3 +130,5 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV
109130
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
110131
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
111132
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
133+
gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=
134+
gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=

0 commit comments

Comments
 (0)