From 51d10cf74484c247bf2288350d8d408d65b9c172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M=2E=20Requena=20Plens?= Date: Mon, 26 Oct 2026 21:54:21 +0100 Subject: [PATCH 1/3] refactor(godoc_tool): order findings and count rows with cmp.Or chains MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The finding and count-table comparators of the audit report were chains of ifs, each a strict comparison of two keys already known to differ, so gremlins' boundary mutants, < turned into <=, behave exactly as the original and live. The case of the tagless switch over the test-function families tested name == "TestMain" beside a Test prefix that already implies it, which left two mutants gremlins could not see as covered. On the base seven mutants lived and two were not covered. The comparators are now cmp.Or chains of three-way comparisons, the families a table with the redundant comparison gone, and the count table is cut with min. sortFindings also becomes stable. sort.Slice could put findings that share all four keys in either order, so two runs over one tree could list them differently; slices.SortStableFunc keeps the order they were found in. The new test sorts thirty-two findings over two keys, enough that the sort package's unstable sort no longer orders by insertion, and it failed against sort.Slice and against slices.SortFunc before passing against the stable sort. The package keeps every statement covered, 626 of 626 conditions and 500 of 500 branches, and gremlins kills all 246 mutants. Refs #1269 Signed-off-by: José M. Requena Plens --- cmd/godoc_tool/audit.go | 61 ++++++++++++++++++------------------ cmd/godoc_tool/audit_test.go | 40 +++++++++++++++++++++++ 2 files changed, 71 insertions(+), 30 deletions(-) diff --git a/cmd/godoc_tool/audit.go b/cmd/godoc_tool/audit.go index cbc55bd0a..cbc59d672 100644 --- a/cmd/godoc_tool/audit.go +++ b/cmd/godoc_tool/audit.go @@ -3,6 +3,7 @@ package main import ( + "cmp" "context" "encoding/json" "flag" @@ -15,6 +16,7 @@ import ( "os" "os/exec" "path/filepath" + "slices" "sort" "strings" "time" @@ -535,19 +537,24 @@ func checkTestFunctionDoc(pkg golist.PackageInfo, path string, fn *ast.FuncDecl, } } +// testFamilies are the functions of a test file that go test runs, by the +// prefix of their name, each with the categories a missing and a malformed doc +// comment of one is reported under. TestMain carries the Test prefix, so it is +// one of the first family. +var testFamilies = []struct{ prefix, missing, form string }{ + {prefix: "Test", missing: categoryTestMissing, form: categoryTestForm}, + {prefix: "Benchmark", missing: categoryBenchmarkMissing, form: categoryBenchmarkForm}, + {prefix: "Fuzz", missing: categoryFuzzMissing, form: categoryFuzzForm}, + {prefix: "Example", missing: categoryExampleMissing, form: categoryExampleForm}, +} + func testDocCategories(name string) (missingCategory, formCategory string, ok bool) { - switch { - case name == "TestMain" || strings.HasPrefix(name, "Test"): - return categoryTestMissing, categoryTestForm, true - case strings.HasPrefix(name, "Benchmark"): - return categoryBenchmarkMissing, categoryBenchmarkForm, true - case strings.HasPrefix(name, "Fuzz"): - return categoryFuzzMissing, categoryFuzzForm, true - case strings.HasPrefix(name, "Example"): - return categoryExampleMissing, categoryExampleForm, true - default: - return "", "", false + for _, family := range testFamilies { + if strings.HasPrefix(name, family.prefix) { + return family.missing, family.form, true + } } + return "", "", false } func hasExampleOutput(docText string) bool { @@ -588,19 +595,16 @@ func firstLine(text string) string { return line } +// sortFindings orders the findings by package, file, category and name, and +// keeps the order they were found in among findings that share all four. func sortFindings(findings []finding) { - sort.Slice(findings, func(i, j int) bool { - left, right := findings[i], findings[j] - if left.ImportPath != right.ImportPath { - return left.ImportPath < right.ImportPath - } - if left.File != right.File { - return left.File < right.File - } - if left.Category != right.Category { - return left.Category < right.Category - } - return left.Name < right.Name + slices.SortStableFunc(findings, func(left, right finding) int { + return cmp.Or( + strings.Compare(left.ImportPath, right.ImportPath), + strings.Compare(left.File, right.File), + strings.Compare(left.Category, right.Category), + strings.Compare(left.Name, right.Name), + ) }) } @@ -668,14 +672,11 @@ func writeCountTable(b *strings.Builder, title string, counts map[string]int, li for key, count := range counts { rows = append(rows, row{key: key, count: count}) } - sort.Slice(rows, func(i, j int) bool { - if rows[i].count == rows[j].count { - return rows[i].key < rows[j].key - } - return rows[i].count > rows[j].count + slices.SortFunc(rows, func(left, right row) int { + return cmp.Or(cmp.Compare(right.count, left.count), strings.Compare(left.key, right.key)) }) - if limit > 0 && len(rows) > limit { - rows = rows[:limit] + if limit > 0 { + rows = rows[:min(len(rows), limit)] } b.WriteString("| Name | Count |\n") b.WriteString("| --- | ---: |\n") diff --git a/cmd/godoc_tool/audit_test.go b/cmd/godoc_tool/audit_test.go index 3bf0168d2..b79245a4d 100644 --- a/cmd/godoc_tool/audit_test.go +++ b/cmd/godoc_tool/audit_test.go @@ -14,6 +14,7 @@ import ( "reflect" "slices" "sort" + "strconv" "strings" "testing" "time" @@ -1373,6 +1374,45 @@ func TestSortFindings_OrdersByPathFileCategoryName(t *testing.T) { } } +// TestSortFindings_SharedKeys_KeepTheOrderFound verifies findings that share +// the import path, file, category and name keep the order they were found in, +// so the report lists them the same way on every run. The findings alternate +// between two names and number their details in the order found; there are +// thirty-two of them because below thirteen the sort package's unstable sort +// orders by insertion and keeps ties anyway, so a short list would pass under +// either sort. +func TestSortFindings_SharedKeys_KeepTheOrderFound(t *testing.T) { + t.Parallel() + + var input, wantA, wantB []finding + for i := range 32 { + f := finding{ImportPath: "a", File: "a.go", Category: "func_missing", Name: "B", Detail: strconv.Itoa(i)} + if i%2 == 1 { + f.Name = "A" + wantA = append(wantA, f) + } else { + wantB = append(wantB, f) + } + input = append(input, f) + } + want := slices.Concat(wantA, wantB) + + got := slices.Clone(input) + sortFindings(got) + if !reflect.DeepEqual(got, want) { + t.Errorf("sortFindings() details = %v, want %v", details(got), details(want)) + } +} + +// details returns the detail of each finding, in order. +func details(findings []finding) []string { + out := make([]string, 0, len(findings)) + for _, f := range findings { + out = append(out, f.Detail) + } + return out +} + // TestCountBy_TalliesByKey verifies the aggregation helper counts findings // under the key the caller extracts, and returns an empty map for none. func TestCountBy_TalliesByKey(t *testing.T) { From bbf505f4db9e62e41ea1a250c2c4a2aaac12f227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M=2E=20Requena=20Plens?= Date: Mon, 26 Oct 2026 22:05:04 +0100 Subject: [PATCH 2/3] ci: hold every source file to a copyright and license header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every source file is to open with two lines, the copyright statement "Copyright (c) 2026 José M. Requena Plens" and "SPDX-License-Identifier: MIT", which answer the OpenSSF Best Practices criteria copyright_per_file and license_per_file. This commit adds the gate, the fix mode that writes the header, the generators' share of it and what the header would otherwise break; the header itself reaches the tree in the next commit, made by the fix mode. cmd/internal/fileheader holds the two statements and Go, the form a Go file opens with: the two lines as comments and a blank line, without which the header would be read as the package's doc comment or join a generated file's "Code generated" comment. The gate and every generator read the same constants. cmd/audit_file_headers judges the files git holds in its index and the untracked ones it would add, read with git ls-files. That list is what the repository publishes: a walk would read what .gitignore keeps out (plan/, dist/, site/node_modules), and the name rule of internal/sourcewalk would leave out .github/scripts. Of those it judges Go, shell, PowerShell, Python, Ruby, jq, JavaScript and TypeScript, CSS, Astro, Makefiles and the Dockerfile, each with the header in its comment syntax and after what has to stay above it: a shebang, an encoding declaration on line 1 or 2 for Python and Ruby, a Dockerfile's parser directives, a CSS @charset rule, and the fence of an Astro component's frontmatter, which is where its header lives so that it is not rendered into the page. A file fails when the header is not those two lines, in order, exactly there, and at every comment line whose text opens with the word Copyright or an SPDX tag other than the header: a second copy, a header below the package doc comment, or the notice of a file somebody else wrote. The word has to end there, so the doc comment of fileheader.CopyrightStatement is not a notice. Each line is read alone, so a line of a multi-line string or a heredoc that opens with a comment marker counts as a comment, which errs towards reporting. -fix writes the header into a file that only lacks it, keeping every other byte and its mode, and never rewrites a file with another notice, so a file this repository did not write is not stamped. make check-file-headers runs it and make fix-file-headers its fix mode. It is step 32 of make analyze and a step of ci.yml's generated job. cmd/gen_action_catalog_manifest, cmd/gen_action_grants and cmd/gen_brand open the Go file each writes with the header, and the three generated files are regenerated with it. cmd/gen_action_grants/table_stub.go.txt, the Go source that generator compiles in its output's place, carries it too, by hand, since the gate does not read a .txt file. cmd/godoc_tool's fix -move-package-doc writes it into the doc.go it creates. Four things the header moves are changed here, so that making the rewrite again on a later main does not lose them. scripts/setup-orbit-fixtures.sh printed its help as lines 2 to 44 of itself, which with the header would print the header and lose the last three lines of the usage comment; it now prints the comment by its text, and its help test holds the whole comment beside #1532's nested namespace test. Three quoted compiler messages name a line the header moves three down, gobco's on internal/tools/todos in the testing README and upstream-bugs.md (49:27, now 52:27) and the redeclaration panic in scripts/coverage-conditions.sh (5:6, now 8:6), and are written as the next commit leaves them. A comment of the e2e suite that named line 28 of internal/tools/catalog_filter.go names the declaration. docs/development/file-headers.md says what the header is, which files carry it and where, how a generated file gets it, what happens to a file this repository did not write and how the rewrite lands. The command reference, the static analysis reference, the repository map and the docs/development index name the command. CONTRIBUTING gains a Copyright and License Headers subsection under Code Standards and a checklist item, and the pull request template a checkbox. CLAUDE.md gains the rule and the link, the command in the tree and the package counts (311 in the module, 338 directories holding tracked Go files). AGENTS.md gains the rule among its invariants and counts 32 analyze steps. The Go instructions say a new file opens with the header, the Copilot instructions name the command, the create-mcp-tool templates open with the header, and the go-source-documentation skill and the go-source-documenter agent say it sits above a file's own comment and is not a doc comment. The tests were written first. Against stubs of every function, with the Makefile and ci.yml as they stood before, 14 of the command's 16 test functions failed; the two that passed expect an empty answer, which is the stubs'. The cases for jq failed before the kind existed, the word boundary's four cases failed under a prefix rule, and a fixture planted with a user ignore file naming *.sh lost its script until the tests' git isolation also replaced the user configuration directory. The generators' three new tests and godoc_tool's three doc.go move tests failed before each wrote the header, two more doc.go expectations in its bound tests were updated when the change made them fail, and the help test of setup-orbit-fixtures.sh failed on the fixed range. The command covers every statement, condition and branch and gremlins kills every mutant; godoc_tool, the three generators and fileheader keep every statement, condition and branch with no mutant left alive. Refs #1269 Signed-off-by: José M. Requena Plens --- .github/agents/go-source-documenter.agent.md | 5 +- .github/copilot-instructions.md | 1 + .github/instructions/go.instructions.md | 2 +- .github/pull_request_template.md | 1 + .github/skills/create-mcp-tool/SKILL.md | 17 + .../skills/go-source-documentation/SKILL.md | 5 +- .github/workflows/ci.yml | 7 + AGENTS.md | 9 +- CLAUDE.md | 14 +- CONTRIBUTING.md | 12 + Makefile | 81 ++-- cmd/audit_file_headers/doc.go | 99 +++++ cmd/audit_file_headers/files.go | 60 +++ cmd/audit_file_headers/files_test.go | 161 +++++++ cmd/audit_file_headers/header.go | 225 ++++++++++ cmd/audit_file_headers/header_test.go | 275 ++++++++++++ cmd/audit_file_headers/main.go | 150 +++++++ cmd/audit_file_headers/main_test.go | 420 ++++++++++++++++++ cmd/gen_action_catalog_manifest/main.go | 2 + cmd/gen_action_catalog_manifest/main_test.go | 16 + cmd/gen_action_grants/table_go.go | 7 +- cmd/gen_action_grants/table_go_test.go | 14 +- cmd/gen_action_grants/table_stub.go.txt | 3 + cmd/gen_brand/main.go | 6 +- cmd/gen_brand/main_test.go | 12 + cmd/godoc_tool/docgo.go | 5 +- cmd/godoc_tool/docgo_test.go | 15 +- cmd/internal/fileheader/doc.go | 21 + cmd/internal/fileheader/fileheader.go | 20 + cmd/internal/fileheader/fileheader_test.go | 49 ++ docs/development/README.md | 1 + docs/development/cmd-utilities.md | 31 ++ docs/development/file-headers.md | 74 +++ docs/development/repository-map.md | 3 +- docs/development/static-analysis.md | 14 +- docs/development/testing/README.md | 2 +- docs/development/upstream-bugs.md | 2 +- internal/tools/action_specs_manifest_gen.go | 3 + internal/tools/actiongrants/table_gen.go | 3 + internal/toolutil/brandmark_gen.go | 3 + scripts/coverage-conditions.sh | 4 +- scripts/setup-orbit-fixtures.sh | 4 +- scripts/setup_orbit_fixtures_sh_test.py | 13 + test/e2e/gitlab/common/mcp_exclusions_test.go | 6 +- 44 files changed, 1811 insertions(+), 66 deletions(-) create mode 100644 cmd/audit_file_headers/doc.go create mode 100644 cmd/audit_file_headers/files.go create mode 100644 cmd/audit_file_headers/files_test.go create mode 100644 cmd/audit_file_headers/header.go create mode 100644 cmd/audit_file_headers/header_test.go create mode 100644 cmd/audit_file_headers/main.go create mode 100644 cmd/audit_file_headers/main_test.go create mode 100644 cmd/internal/fileheader/doc.go create mode 100644 cmd/internal/fileheader/fileheader.go create mode 100644 cmd/internal/fileheader/fileheader_test.go create mode 100644 docs/development/file-headers.md diff --git a/.github/agents/go-source-documenter.agent.md b/.github/agents/go-source-documenter.agent.md index 06c6fda46..e626e6987 100644 --- a/.github/agents/go-source-documenter.agent.md +++ b/.github/agents/go-source-documenter.agent.md @@ -125,9 +125,12 @@ Rules from go.dev/doc/comment: #### 2. File Header Comment (multi-file packages) -For packages with multiple `.go` files, each file gets a header describing its scope. Place it BEFORE the `package` declaration: +For packages with multiple `.go` files, each file gets a header describing its scope. Place it BEFORE the `package` declaration. Every file, `doc.go` and the test files included, opens above it with the copyright and license header and a blank line; that header is not a doc comment, so leave it as it is ([Copyright and License Headers](../../docs/development/file-headers.md)): ```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // branches.go implements the MCP tool handlers for GitLab branch // operations: create, list, protect, and unprotect. // diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 63f0d9779..604345b43 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -32,6 +32,7 @@ gitlab-mcp-server/ │ ├── reproduce_release/ # Release binaries rebuilt from the tag and compared byte for byte (make check-reproducible, make check-repeatable) │ ├── audit_site_headers/ # The documentation site's security headers, judged after each deploy (make check-site-headers) │ ├── audit_dco/ # Every commit of a pull request signed off by its author, the Developer Certificate of Origin (make check-dco) +│ ├── audit_file_headers/ # Every source file opens with the copyright and license header; -fix writes it (make check-file-headers, make fix-file-headers) │ ├── audit_surface_quality/ # MCP surface metadata + output quality (-view; was audit_tools + audit_output) │ ├── audit_supply_chain/ # Release-configuration invariants (SHA-pinned uses:, Dependabot cooldowns, SECURITY.md, installers) │ ├── audit_tokens/ # Token overhead; -footprint, --compare-schemas (was audit_meta_schema); cl100k_base tokenizer (tokens.go) diff --git a/.github/instructions/go.instructions.md b/.github/instructions/go.instructions.md index 365489407..e05e4a4b5 100644 --- a/.github/instructions/go.instructions.md +++ b/.github/instructions/go.instructions.md @@ -44,7 +44,7 @@ Follow idiomatic Go practices and community standards when writing Go code. Thes - **BEFORE writing any code**, check what package name other `.go` files in the same directory use - Use the SAME package name as existing files in that directory - If it's a new directory, use the directory name as the package name - - Write **exactly one** `package ` line at the very top of the file + - Open the file with the copyright and license header (`// Copyright (c) 2026 José M. Requena Plens`, `// SPDX-License-Identifier: MIT`) and a blank line, then write **exactly one** `package ` line; `make fix-file-headers` writes the header and `make check-file-headers` fails a file without it (see [docs/development/file-headers.md](../../docs/development/file-headers.md)) - When using file creation or replacement tools: - **ALWAYS verify** the target file doesn't already have a `package` declaration before adding one - If replacing file content, include only ONE `package` declaration in the new content diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 81ee1acde..620303723 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -50,6 +50,7 @@ What a review checks and what a merge requires are in [Code Review](https://gith - [ ] Consolidated Go analysis passes on changed packages (or `make golangci-lint` / `make analyze`) - [ ] Code is formatted: `make analyze-fix` (runs configured `golangci-lint` formatters: `goimports`, `gofumpt`, and `gci`) - [ ] Follows idiomatic Go patterns and the conventions documented in `CLAUDE.md` / `.github/instructions/` +- [ ] Every new source file opens with the copyright and license header: `make check-file-headers` (`make fix-file-headers` writes it) ### Testing diff --git a/.github/skills/create-mcp-tool/SKILL.md b/.github/skills/create-mcp-tool/SKILL.md index 8d6ef58a6..b4a67db19 100644 --- a/.github/skills/create-mcp-tool/SKILL.md +++ b/.github/skills/create-mcp-tool/SKILL.md @@ -32,11 +32,19 @@ only: `merge_requests.go` and `merge_requests_test.go` in `package mergerequests Go's convention and the `stylecheck`/`revive` naming rules refuse underscores in a package identifier, and the directory follows the package. +Every file opens with the copyright and license header and a blank line, as in +the templates below, `doc.go` and the test files included; `make +check-file-headers` fails a file without it and `make fix-file-headers` writes +it ([Copyright and License Headers](../../../docs/development/file-headers.md)). + ## Step 1: Define Input/Output Structs In `{domain}.go`: ```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package {domain} import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" @@ -153,6 +161,9 @@ Error handling rules: In `action_specs.go`, define the canonical route metadata once. Meta-tools, dynamic find/execute, `gitlab://tools` resources, audits, and individual tool projection consume this spec. ```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package {domain} import ( @@ -209,6 +220,9 @@ Spec rules: In `markdown.go`: ```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package {domain} import ( @@ -285,6 +299,9 @@ Expected checks: In `{domain}_test.go`: ```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package {domain} import ( diff --git a/.github/skills/go-source-documentation/SKILL.md b/.github/skills/go-source-documentation/SKILL.md index 0253178f1..3d8c10b54 100644 --- a/.github/skills/go-source-documentation/SKILL.md +++ b/.github/skills/go-source-documentation/SKILL.md @@ -55,9 +55,12 @@ package tools ### Pattern 2: File Header Comment -For multi-file packages, each file gets a header describing its scope. The header goes immediately before the `package` declaration: +For multi-file packages, each file gets a header describing its scope. The header goes immediately before the `package` declaration. Above it, separated by a blank line, every file (`doc.go` and the test files included) opens with the copyright and license header, which is not a doc comment and is never edited into one ([Copyright and License Headers](../../../docs/development/file-headers.md)): ```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // branches.go implements MCP tool handlers for GitLab branch operations. // // It provides the following tools: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ebdaf7212..77b335fa4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -185,6 +185,13 @@ jobs: # the first run of this rule found twenty-five constants nothing reads. - name: Check no constant is left unread run: make check-dead-consts + # Every source file opens with the copyright statement and the SPDX + # identifier of the license (the OpenSSF Best Practices criteria + # copyright_per_file and license_per_file). The gate reads git's file + # list, which this job's checkout carries, and judges what is committed, + # so it is never deferred. + - name: Check every source file carries its copyright and license header + run: make check-file-headers # client-go takes the caller's context only as the gl.WithContext request # option and builds the request from context.Background() without it, # so a call that forgets it compiles, answers correctly and cannot be diff --git a/AGENTS.md b/AGENTS.md index 5f1eab975..87421a165 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -43,6 +43,13 @@ link to each for Claude Code. OpenCode wiring is per developer: `opencode.json` - **Conventional commits.** `feat:`, `fix:`, `docs:`, `test:`, `refactor:`, `chore:`. Use the `git-commit` skill (`.claude/skills/git-commit/`) for auto-detected type/scope. +- **A copyright and license header in every source file.** Each source + file opens with `Copyright (c) 2026 José M. Requena Plens` and + `SPDX-License-Identifier: MIT` as comments of its language, a Go file + with a blank line before its package clause or build constraint. + `make fix-file-headers` writes them into a new file and + `make check-file-headers` is the gate; which files carry them and where + is in `docs/development/file-headers.md`. - **Coverage target: maximum possible, 100% when feasible.** CI fails below 90% total coverage (`COVERAGE_MIN` in `.github/workflows/ci.yml`); in practice the team pushes per-package coverage to 100% @@ -69,7 +76,7 @@ make test # all unit tests, with coverage.out make coverage # writes coverage.html # Lint / analyze -make analyze # 31 steps: golangci-lint, govulncheck, markdownlint and the cmd/ audits and record checks +make analyze # 32 steps: golangci-lint, govulncheck, markdownlint and the cmd/ audits and record checks make analyze-fix # apply gofumpt/goimports/gci/markdownlint --fix make golangci-lint # Go-only gate golangci-lint run --build-tags e2e ./internal/tools/branches/ # one package diff --git a/CLAUDE.md b/CLAUDE.md index 763cdb188..b8174d5c1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -31,7 +31,7 @@ > branch before a push, and [CONTRIBUTING](CONTRIBUTING.md#developer-certificate-of-origin) > says what it certifies and how to sign off commits already made. -**This file is loaded into every session, so it holds the rules and an index, and the long-form references live in `docs/development/`**, read when a task needs them: [Repository Map](docs/development/repository-map.md) (the annotated tree of commands and packages), [Environment Variables and Flags](docs/development/configuration.md), [Test Infrastructure](docs/development/test-infrastructure.md), [Request Paths and Fine-Grained Grants](docs/development/request-paths.md) (R-PATH, R-PAGE and R-GRANT), [Adding or Changing a Limit](docs/development/adding-a-limit.md), [Release Process](docs/development/release-process.md), [Tier Gating](docs/development/tier-gating.md), [HTTP Mode Invariants](docs/development/http-invariants.md) and [Resource Subscriptions](docs/development/resource-subscriptions.md). Keep it that way: what a new section adds here is the rule and a link, and its explanation goes to the page that owns the topic. Claude Code warns at every start once this file passes a size limit that scales with the model's context window and never falls below 40,000 characters (150,000 for current models in a one-million-token window). +**This file is loaded into every session, so it holds the rules and an index, and the long-form references live in `docs/development/`**, read when a task needs them: [Repository Map](docs/development/repository-map.md) (the annotated tree of commands and packages), [Environment Variables and Flags](docs/development/configuration.md), [Test Infrastructure](docs/development/test-infrastructure.md), [Request Paths and Fine-Grained Grants](docs/development/request-paths.md) (R-PATH, R-PAGE and R-GRANT), [Adding or Changing a Limit](docs/development/adding-a-limit.md), [Release Process](docs/development/release-process.md), [Tier Gating](docs/development/tier-gating.md), [HTTP Mode Invariants](docs/development/http-invariants.md), [Resource Subscriptions](docs/development/resource-subscriptions.md) and [Copyright and License Headers](docs/development/file-headers.md). Keep it that way: what a new section adds here is the rule and a link, and its explanation goes to the page that owns the topic. Claude Code warns at every start once this file passes a size limit that scales with the model's context window and never falls below 40,000 characters (150,000 for current models in a one-million-token window). ## Project Overview @@ -61,7 +61,7 @@ | MCP Icons | 51 icons (50 domain + brand mark), each a 3-entry `[]mcp.Icon`: one SVG (base64 data URI, `Sizes: ["any"]`, `currentColor`) plus light/dark 16×16 lossless WebP fallbacks (`Theme`-tagged, `cmd/gen_icon_webp`) for clients that reject SVG. The brand mark is the generated "fan-out" (`cmd/gen_brand` → `brandmark_gen.go`), original artwork replacing the former tanuki | | Source files (tools) | 788 non-test Go files under `internal/tools/` | | Test files (tools) | 488 test files under `internal/tools/` | -| Go packages | 309 in the module (`go list ./...`); 336 directories hold tracked `.go` files, the twenty-seven more being what `go list` leaves out: twenty-six `testdata` fixture packages (the two stand-in programs, the coverage audit's planted trees, the closed-server audit's planted module, the stand-in module the SDK route reader's tests read and the platform module the condition measurement's discovery lists) and `test/e2e/modeleval/internal/provider`, whose every file sits behind a build tag. 182 under `internal/tools/...` (the root package plus 181 sub-packages) | +| Go packages | 311 in the module (`go list ./...`); 338 directories hold tracked `.go` files, the twenty-seven more being what `go list` leaves out: twenty-six `testdata` fixture packages (the two stand-in programs, the coverage audit's planted trees, the closed-server audit's planted module, the stand-in module the SDK route reader's tests read and the platform module the condition measurement's discovery lists) and `test/e2e/modeleval/internal/provider`, whose every file sits behind a build tag. 182 under `internal/tools/...` (the root package plus 181 sub-packages) | ### Orbit live tests @@ -93,6 +93,7 @@ gitlab-mcp-server/ │ ├── reproduce_release/ # Release binaries rebuilt from the tag and compared byte for byte (make check-reproducible, check-repeatable) │ ├── audit_site_headers/ # The documentation site's security headers, after each deploy (make check-site-headers) │ ├── audit_dco/ # Every commit of a pull request signed off by its author, the DCO (make check-dco) +│ ├── audit_file_headers/ # Every source file opens with the copyright and license header (make check-file-headers, fix-file-headers) │ ├── godoc_tool/ # Go doc auditor and fixer (make check-godocs) │ ├── audit_md_escaping/ # GitLab-authored values reaching Markdown unescaped (make check-md-escaping) │ ├── audit_metrics/ # Tool, resource and prompt metrics @@ -126,7 +127,7 @@ gitlab-mcp-server/ │ ├── gen_testing_docs/ # docs/development/testing/testing.md │ ├── gen_tool_reference/ # The site's per-domain tool reference (make gen-tool-reference) │ ├── gen_third_party_notices/ # THIRD_PARTY_NOTICES at release time -│ └── internal/ # Helpers the commands share (actionrequests, sdkroutes, actionids, apilive, graphqldocs, goprogram, sourcegate, mcpsurface, provenance, ...) +│ └── internal/ # Helpers the commands share (actionrequests, sdkroutes, actionids, apilive, fileheader, graphqldocs, goprogram, sourcegate, mcpsurface, provenance, ...) ├── internal/ │ ├── cachehints/ # SEP-2549 cache hints on MCP results │ ├── capguard/ # Methods answered kept in step with capabilities declared @@ -192,6 +193,13 @@ declaration and leave a file that does not parse. Shell commands stay right for running, searching and generating; a script is justified only for a bulk mechanical rewrite across many files, and the result must be verified to build. +**Every source file opens with the copyright and license header**, the two lines +`cmd/internal/fileheader` spells, as comments of its language: a new file is written +with them (`make fix-file-headers` adds them), a generator that writes source emits +them itself, and a file somebody else wrote is never stamped. `make check-file-headers` +is the gate, and [Copyright and License Headers](docs/development/file-headers.md) +says which files carry them and where. + ## Key Development Patterns ### Adding a New MCP Tool diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a5f04f10a..b9ec5f8a4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -161,6 +161,7 @@ GitHub signs off a commit made in its web interface, such as an applied review s - [ ] All tests pass: `go test ./... -count=1` - [ ] Static analysis is clean: `make analyze` (run `make analyze-fix` first to apply supported Go and Markdown fixes) - [ ] New tools have tests, and total coverage stays at or above the 90% CI enforces +- [ ] Every new source file opens with the [copyright and license header](#copyright-and-license-headers): `make check-file-headers`, or `make fix-file-headers` to write it - [ ] Documentation is updated where the change shows: the site page for user-facing behavior (English and Spanish), `docs/development/` for contributor-facing changes (see [Documentation](#documentation)) - [ ] Commit messages follow conventional commits - [ ] Every commit is signed off by its author (`git commit -s`), which certifies the [Developer Certificate of Origin](#developer-certificate-of-origin); `make check-dco` says which are not @@ -258,6 +259,17 @@ internal/tools/ └── markdown.go # Markdown formatters (self-registered via init()) ``` +### Copyright and License Headers + +Every source file opens with these two lines, written as comments of its language: + +```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT +``` + +A shebang, an encoding declaration, a Dockerfile parser directive or a CSS `@charset` rule stays above them, and an Astro component carries them inside its frontmatter. `make fix-file-headers` writes them into a new file, `make check-file-headers` fails a file without them, and a generator that writes source writes them itself. A file somebody else wrote keeps its own notice and is not stamped with this one. [Copyright and License Headers](docs/development/file-headers.md) lists the files and where each kind carries the lines. + ### Repository Tooling Tooling this repository runs, its auditors, generators and release steps, is a Go command under `cmd/`, sharing what it needs through `cmd/internal/`, or under `test/e2e/` for the end-to-end orchestration. A Go command runs natively on every platform a contributor uses, is tested with the rest of the module, and needs no interpreter or package installed at run time in CI, so new tooling is written as one. diff --git a/Makefile b/Makefile index b9805117b..f20a748de 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ audit-discovery audit-discovery-check audit-e2e-gaps audit-e2e-coverage e2e-go-coverage check-e2e-static audit-gateway-chars check-gateway-chars check-test-file-names audit-test-subtests check-test-subtests check-supply-chain \ e2e-coverage-record e2e-coverage-record-ce e2e-coverage-record-ee e2e-coverage-record-render check-e2e-coverage-record check-e2e-coverage-page \ audit-md-escaping check-md-escaping \ - check-em-dash check-pr-description check-plan-untracked check-dco \ + check-em-dash check-pr-description check-plan-untracked check-dco check-file-headers fix-file-headers \ audit-action-ids check-action-ids \ audit-dead-consts check-dead-consts \ audit-sdk-context check-sdk-context \ @@ -1156,37 +1156,38 @@ analyze: echo "Go analysis packages: $(GO_ANALYSIS_PKGS)"; \ echo "Go analysis build tags: $(GO_ANALYSIS_TAGS)"; \ echo ""; \ - run_check "[1/31] golangci-lint config verify" golangci-lint config verify; \ - run_check "[2/31] golangci-lint fmt" golangci-lint fmt --diff; \ - run_check "[3/31] golangci-lint run" golangci-lint run --build-tags $(GO_ANALYSIS_TAGS) $(GO_ANALYSIS_PKGS); \ - run_check "[4/31] constants nothing reads" go run ./cmd/audit_dead_consts/ -check; \ - run_check "[5/31] govulncheck" govulncheck -tags $(GO_ANALYSIS_TAGS) $(GO_ANALYSIS_PKGS); \ - run_check "[6/31] markdownlint" npx markdownlint-cli2 "**/*.{md,mdx}" "#plan" "#node_modules"; \ - run_check "[7/31] test-goroutine aborts" go run ./cmd/audit_test_goroutines --check; \ - run_check "[8/31] case loops without subtests" go run ./cmd/audit_test_subtests --check; \ - run_check "[9/31] supply-chain policy" go run ./cmd/audit_supply_chain; \ - run_check "[10/31] Markdown escaping" go run ./cmd/audit_md_escaping --check $(MD_ESCAPING_ARGS); \ - run_check "[11/31] published action IDs" go run ./cmd/audit_action_ids/ -check -json ''; \ - run_check "[12/31] pinned GraphQL schema" go run ./cmd/gen_graphql_schema/ --check; \ - run_check "[13/31] GraphQL documents" go run ./cmd/audit_graphql_documents/; \ - run_check "[14/31] request paths (R-PATH)" go run ./cmd/audit_1to1/ -scope=paths -gaps-only; \ - run_check "[15/31] meta descriptions" go run ./cmd/audit_meta_descriptions/ -check; \ - run_check "[16/31] pinned live GitLab record" go run ./cmd/gen_api_live/ -check; \ - run_check "[17/31] GraphQL response shapes, ours and client-go's" $(MAKE) --no-print-directory check-graphql-shapes check-graphql-sdk-shapes; \ - run_check "[18/31] catalog-first invariants" go run ./cmd/audit_catalog_first/; \ - run_check "[19/31] e2e coverage (static)" go run ./cmd/audit_e2e_coverage/ -static; \ - run_check "[20/31] e2e coverage record" go run ./cmd/audit_e2e_coverage/ -check-record -check-record-page; \ - run_check "[21/31] MCP tool surface quality" go run ./cmd/audit_surface_quality/ -check; \ - run_check "[22/31] SDK calls carry the caller's context" go run ./cmd/audit_sdk_context/ -check; \ - run_check "[23/31] tenant policy declared once" go run ./cmd/audit_tenancy/ -check; \ - run_check "[24/31] recorded Orbit answers" go run ./cmd/gen_orbit_record/ -check; \ - run_check "[25/31] release binaries at module grain" go run ./cmd/audit_binary_vulns/; \ - run_check "[26/31] fine-grained derivation" $(MAKE) --no-print-directory check-action-grants-derivation; \ - run_check "[27/31] fine-grained permissions per action" $(MAKE) --no-print-directory check-action-grants; \ - run_check "[28/31] fine-grained grants (R-GRANT)" go run ./cmd/audit_1to1/ -scope=grants -gaps-only; \ - run_check "[29/31] parameter requiredness (R-INPUT)" go run ./cmd/audit_1to1/ -scope=required -gaps-only; \ - run_check "[30/31] httptest servers closed while their address is used" go run ./cmd/audit_test_closed_servers/ -check; \ - run_check "[31/31] Go doc comments" go run ./cmd/godoc_tool/ audit --fail-on-findings; \ + run_check "[1/32] golangci-lint config verify" golangci-lint config verify; \ + run_check "[2/32] golangci-lint fmt" golangci-lint fmt --diff; \ + run_check "[3/32] golangci-lint run" golangci-lint run --build-tags $(GO_ANALYSIS_TAGS) $(GO_ANALYSIS_PKGS); \ + run_check "[4/32] constants nothing reads" go run ./cmd/audit_dead_consts/ -check; \ + run_check "[5/32] govulncheck" govulncheck -tags $(GO_ANALYSIS_TAGS) $(GO_ANALYSIS_PKGS); \ + run_check "[6/32] markdownlint" npx markdownlint-cli2 "**/*.{md,mdx}" "#plan" "#node_modules"; \ + run_check "[7/32] test-goroutine aborts" go run ./cmd/audit_test_goroutines --check; \ + run_check "[8/32] case loops without subtests" go run ./cmd/audit_test_subtests --check; \ + run_check "[9/32] supply-chain policy" go run ./cmd/audit_supply_chain; \ + run_check "[10/32] Markdown escaping" go run ./cmd/audit_md_escaping --check $(MD_ESCAPING_ARGS); \ + run_check "[11/32] published action IDs" go run ./cmd/audit_action_ids/ -check -json ''; \ + run_check "[12/32] pinned GraphQL schema" go run ./cmd/gen_graphql_schema/ --check; \ + run_check "[13/32] GraphQL documents" go run ./cmd/audit_graphql_documents/; \ + run_check "[14/32] request paths (R-PATH)" go run ./cmd/audit_1to1/ -scope=paths -gaps-only; \ + run_check "[15/32] meta descriptions" go run ./cmd/audit_meta_descriptions/ -check; \ + run_check "[16/32] pinned live GitLab record" go run ./cmd/gen_api_live/ -check; \ + run_check "[17/32] GraphQL response shapes, ours and client-go's" $(MAKE) --no-print-directory check-graphql-shapes check-graphql-sdk-shapes; \ + run_check "[18/32] catalog-first invariants" go run ./cmd/audit_catalog_first/; \ + run_check "[19/32] e2e coverage (static)" go run ./cmd/audit_e2e_coverage/ -static; \ + run_check "[20/32] e2e coverage record" go run ./cmd/audit_e2e_coverage/ -check-record -check-record-page; \ + run_check "[21/32] MCP tool surface quality" go run ./cmd/audit_surface_quality/ -check; \ + run_check "[22/32] SDK calls carry the caller's context" go run ./cmd/audit_sdk_context/ -check; \ + run_check "[23/32] tenant policy declared once" go run ./cmd/audit_tenancy/ -check; \ + run_check "[24/32] recorded Orbit answers" go run ./cmd/gen_orbit_record/ -check; \ + run_check "[25/32] release binaries at module grain" go run ./cmd/audit_binary_vulns/; \ + run_check "[26/32] fine-grained derivation" $(MAKE) --no-print-directory check-action-grants-derivation; \ + run_check "[27/32] fine-grained permissions per action" $(MAKE) --no-print-directory check-action-grants; \ + run_check "[28/32] fine-grained grants (R-GRANT)" go run ./cmd/audit_1to1/ -scope=grants -gaps-only; \ + run_check "[29/32] parameter requiredness (R-INPUT)" go run ./cmd/audit_1to1/ -scope=required -gaps-only; \ + run_check "[30/32] httptest servers closed while their address is used" go run ./cmd/audit_test_closed_servers/ -check; \ + run_check "[31/32] Go doc comments" go run ./cmd/godoc_tool/ audit --fail-on-findings; \ + run_check "[32/32] copyright and license headers" go run ./cmd/audit_file_headers/; \ echo "============================================================"; \ if [ "$$analysis_status" -ne 0 ]; then \ echo "Analysis failed. Review findings above."; \ @@ -2613,6 +2614,22 @@ DCO_HEAD ?= HEAD check-dco: go run ./cmd/audit_dco/ -base "$(DCO_BASE)" -head "$(DCO_HEAD)" -opened-by "$(DCO_OPENED_BY)" $(DCO_FLAGS) +## check-file-headers: fail when a source file of the repository (the files +## git holds and the untracked ones it would add) does not open with the +## copyright and license header cmd/internal/fileheader spells, or carries +## another copyright or license notice. It reads git's file list, so it runs in +## a checkout. Step 32 of make analyze and a CI gate. +check-file-headers: + go run ./cmd/audit_file_headers/ + +## fix-file-headers: write the header into every source file that does not +## open with it and carries no other notice, after a shebang, an encoding +## declaration, a Dockerfile parser directive or a CSS @charset rule, and +## inside an Astro component's frontmatter. A file with another notice is left +## for a hand edit. +fix-file-headers: + go run ./cmd/audit_file_headers/ -fix + ## check-plan-untracked: fail when git tracks a file under plan/, a working area ## .gitignore excludes, so a file there is tracked only if it was force-added. ## It reads the index, so a file untracked with git rm --cached passes before diff --git a/cmd/audit_file_headers/doc.go b/cmd/audit_file_headers/doc.go new file mode 100644 index 000000000..a6f74746b --- /dev/null +++ b/cmd/audit_file_headers/doc.go @@ -0,0 +1,99 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +// Command audit_file_headers holds every source file of this repository to +// the two lines it opens with: the copyright statement and the SPDX +// identifier of the license, the ones cmd/internal/fileheader spells. +// +// audit_file_headers [-dir ] [-fix] +// +// It is the gate behind the OpenSSF Best Practices criteria copyright_per_file +// and license_per_file, which ask every source file to name its copyright +// holder and its license, the second in the SPDX form near the file's top. +// +// # Which files +// +// The files git holds in its index and the untracked ones it would add, read +// with git ls-files from -dir. The list is git's and not a walk of the tree, +// because the question is which files the repository publishes, and git +// answers it exactly: a walk would read what .gitignore keeps out of the +// repository (plan/, dist/, site/node_modules and its thousands of files +// somebody else wrote) unless it named each of them again, and the name rule +// of internal/sourcewalk, which leaves every dot-directory out, would leave +// out the scripts under .github/scripts that are this repository's own. Files +// of a checkout nested in the tree are not listed, which is what +// internal/sourcewalk's marker rule answers for a walk. The command therefore +// runs in a checkout, not in a copy of the tree without its .git. +// +// Of those, it judges the source files: Go (testdata included), shell, +// PowerShell, Python, Ruby, jq, JavaScript and TypeScript in each of their +// extensions, CSS, Astro components, Makefiles and the Dockerfile. +// Documentation, data and configuration (Markdown, MDX, JSON, YAML and the +// workflows written in it, TOML, SVG and images) are not source and are not +// judged. A path whose file the working tree no longer has, a symbolic link +// and a nested checkout's directory are skipped. +// +// # Where the header goes +// +// The two lines are written as comments of the file's language: line +// comments in Go, JavaScript, TypeScript and the frontmatter of an Astro +// component, hash comments in the scripts, the jq programs, the Makefile and +// the Dockerfile, and a block comment per line in CSS. They are the file's +// first lines, after what has to stay above them to keep working: +// +// - a shebang, which the kernel reads only as the first line; +// - in Python and Ruby, an encoding declaration on the first or second +// line, the only lines either reads one from; +// - a Dockerfile's parser directives, which BuildKit stops reading at the +// first comment; +// - a stylesheet's @charset rule, honored only as the file's first bytes; +// - the fence that opens an Astro component's frontmatter, so the header is +// a comment of the component's script and not text of the page. +// +// In a Go file the header comes before any build constraint, as in the Go +// project's own files, and a blank line keeps it apart from what follows: +// without it the header would be read as the package's doc comment, which +// cmd/godoc_tool refuses, or would join the "Code generated" comment of a +// generated file. +// +// # What fails +// +// A file fails when its header is not those two lines, in that order, exactly +// there. It also fails at every line that carries a copyright or license +// notice other than that header, which is any comment line whose text opens +// with the word "Copyright" or with an SPDX tag ("SPDX-License-Identifier:", +// "SPDX-FileCopyrightText:"): a second copy of the header, a header written +// below the package doc comment, and the notice of a file somebody else +// wrote. The word has to end there, so the doc comment of an identifier that +// starts with it, such as fileheader.CopyrightStatement, is not a notice. A +// comment that mentions a copyright inside its text is not a notice either, +// nor is a line of code, a string on it included. Each line is read alone, +// without the syntax of the file around it, so a line of a multi-line string +// or a heredoc that opens with a comment marker is read as a comment. The +// rule errs towards reporting: a line of this repository's own that it reads +// as a notice is reworded, since a notice the rule missed would be a file +// somebody else wrote stamped with this one. +// +// # The fix mode +// +// -fix writes the header into every file that does not open with it and +// carries no other notice, followed by a blank line unless the file has one +// there already, keeping every other byte and the file's mode. An Astro +// component without a frontmatter is given one around the header. A file with +// another notice is never rewritten: one this repository did not write keeps +// its own notice and is not stamped with this one, and one it did is moved to +// a single header at its top by hand. +// +// The fix mode is how the header reached every file the first time, as a +// mechanical rewrite verified by the build, the tests and the linters +// afterwards. A generated file carries the header because its generator +// writes it, and the gate then holds the generator to that as it holds any +// file. +// +// # Exit codes +// +// 0 when every source file opens with the header, or -fix wrote it into every +// one that did not; 1 when a file still fails or could not be listed, stated, +// read or written (the finding on stdout with how to fix it, the error on +// stderr); 2 for arguments it cannot use. +package main diff --git a/cmd/audit_file_headers/files.go b/cmd/audit_file_headers/files.go new file mode 100644 index 000000000..95b1d7d38 --- /dev/null +++ b/cmd/audit_file_headers/files.go @@ -0,0 +1,60 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package main + +import ( + "bytes" + "context" + "fmt" + "os" + "os/exec" + "slices" + "strings" +) + +// Seams over the filesystem calls a run makes, so a test can drive the +// failures a filesystem the tests own never produces for a root user: a file +// that cannot be stated, read or rewritten. +var ( + lstat = os.Lstat + readFile = os.ReadFile + writeFile = os.WriteFile +) + +// listFiles returns the slash-separated paths, relative to dir, of the files +// of the repository at dir: the ones in git's index and the untracked ones +// git would add, which leaves out what .gitignore and the repository's other +// exclude files name and the files of any checkout nested in the tree. The +// list is sorted, since git prints the untracked files before the others. +// +// A path in the index whose file the working tree no longer has, and a path +// that is a symbolic link or a nested checkout's directory, are listed too; +// the caller skips what is not a regular file. +// +// git is resolved to an absolute path first, which is how every other command +// here runs a tool it did not build (cmd/gen_orbit_record): the lookup is the +// one exec would do, decided here rather than by whatever PATH holds when the +// command starts. +func listFiles(ctx context.Context, dir string) ([]string, error) { + bin, err := exec.LookPath("git") + if err != nil { + return nil, fmt.Errorf("find git: %w", err) + } + // #nosec G204 G702 -- the program is the absolute path just resolved, with fixed arguments and the directory this command was given + cmd := exec.CommandContext(ctx, bin, "-C", dir, "ls-files", "-z", "--cached", "--others", "--exclude-standard", "--deduplicate") + var stderr bytes.Buffer + cmd.Stderr = &stderr + out, err := cmd.Output() + if err != nil { + return nil, fmt.Errorf("git ls-files: %w: %s", err, strings.TrimSpace(stderr.String())) + } + var names []string + for name := range strings.SplitSeq(string(out), "\x00") { + if name != "" { + names = append(names, name) + } + } + slices.Sort(names) + return names, nil +} diff --git a/cmd/audit_file_headers/files_test.go b/cmd/audit_file_headers/files_test.go new file mode 100644 index 000000000..60b38810f --- /dev/null +++ b/cmd/audit_file_headers/files_test.go @@ -0,0 +1,161 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package main + +import ( + "bytes" + "context" + "os" + "os/exec" + "path/filepath" + "slices" + "strings" + "testing" +) + +// isolateGit points every git the test runs, the command's own included, at +// an empty global configuration, no system one and an empty user +// configuration directory, so no ignore file, attributes file, hook or +// template of the machine's or the user's reaches a fixture. The directory is +// needed beside the empty configuration because git reads the ignore and +// attributes files in it by default, without any configuration naming them. +func isolateGit(t *testing.T) { + t.Helper() + + global := filepath.Join(t.TempDir(), "gitconfig") + if err := os.WriteFile(global, nil, 0o600); err != nil { + t.Fatal(err) + } + t.Setenv("GIT_CONFIG_GLOBAL", global) + t.Setenv("GIT_CONFIG_NOSYSTEM", "1") + t.Setenv("XDG_CONFIG_HOME", t.TempDir()) +} + +// gitFixture runs git in dir on behalf of a test and fails the test when git +// does. +func gitFixture(t *testing.T, dir string, args ...string) { + t.Helper() + + cmd := exec.CommandContext(context.Background(), "git", args...) + cmd.Dir = dir + var stderr bytes.Buffer + cmd.Stderr = &stderr + if err := cmd.Run(); err != nil { + t.Fatalf("git %s: %v\n%s", strings.Join(args, " "), err, stderr.String()) + } +} + +// newRepository returns a fresh repository holding files, each at its +// slash-separated path with its content, none of them added to the index. +func newRepository(t *testing.T, files map[string]string) string { + t.Helper() + + isolateGit(t) + dir := t.TempDir() + gitFixture(t, dir, "init", "--quiet") + writeFiles(t, dir, files) + return dir +} + +// writeFiles writes each file under dir, creating its directories. +func writeFiles(t *testing.T, dir string, files map[string]string) { + t.Helper() + + for name, content := range files { + path := filepath.Join(dir, filepath.FromSlash(name)) + if err := os.MkdirAll(filepath.Dir(path), 0o750); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(path, []byte(content), 0o600); err != nil { + t.Fatal(err) + } + } +} + +// TestListFiles_Repository_ListsWhatGitHoldsAndWouldAdd verifies the files a +// run judges: the ones in git's index and the untracked ones git would add, +// sorted as one list although git prints the untracked ones first, and not +// the ones .gitignore excludes or the files of a checkout nested inside the +// tree, which git names as the directory alone. +func TestListFiles_Repository_ListsWhatGitHoldsAndWouldAdd(t *testing.T) { + dir := newRepository(t, map[string]string{ + ".gitignore": "dist/\n*.tmp\n", + "b/tracked.go": "package b\n", + "a/untracked.sh": "echo a\n", + "dist/built.js": "a\n", + "scratch.tmp": "a\n", + ".github/scripts/x.sh": "echo x\n", + }) + gitFixture(t, dir, "add", ".gitignore", "b/tracked.go") + nested := filepath.Join(dir, "nested") + if err := os.MkdirAll(nested, 0o750); err != nil { + t.Fatal(err) + } + gitFixture(t, nested, "init", "--quiet") + writeFiles(t, nested, map[string]string{"inner.go": "package inner\n"}) + + got, err := listFiles(context.Background(), dir) + if err != nil { + t.Fatalf("listFiles() error = %v", err) + } + want := []string{".github/scripts/x.sh", ".gitignore", "a/untracked.sh", "b/tracked.go", "nested/"} + if !slices.Equal(got, want) { + t.Errorf("listFiles() = %q, want %q", got, want) + } +} + +// TestListFiles_UserIgnoreFile_DoesNotReachTheFixture verifies the ignore +// file git reads by default from the user's configuration directory, which +// no global configuration names and which an empty one therefore does not +// turn off, stays away from a fixture: a contributor whose own ignore file +// names a kind of file the tests plant gets the answer everybody else gets. +func TestListFiles_UserIgnoreFile_DoesNotReachTheFixture(t *testing.T) { + user := t.TempDir() + writeFiles(t, user, map[string]string{"git/ignore": "*.sh\n"}) + t.Setenv("XDG_CONFIG_HOME", user) + dir := newRepository(t, map[string]string{"a.sh": "echo a\n", "b.go": "package b\n"}) + + got, err := listFiles(context.Background(), dir) + if err != nil { + t.Fatalf("listFiles() error = %v", err) + } + if want := []string{"a.sh", "b.go"}; !slices.Equal(got, want) { + t.Errorf("listFiles() = %q, want %q", got, want) + } +} + +// TestListFiles_EmptyRepository_ListsNothing verifies a repository with no +// files is an empty list rather than one empty name. +func TestListFiles_EmptyRepository_ListsNothing(t *testing.T) { + got, err := listFiles(context.Background(), newRepository(t, nil)) + if err != nil { + t.Fatalf("listFiles() error = %v", err) + } + if len(got) != 0 { + t.Errorf("listFiles() = %q, want nothing", got) + } +} + +// TestListFiles_NotARepository_SaysWhatGitSaid verifies a directory git +// cannot read as a repository is an error carrying git's own reason. +func TestListFiles_NotARepository_SaysWhatGitSaid(t *testing.T) { + isolateGit(t) + dir := t.TempDir() + t.Setenv("GIT_CEILING_DIRECTORIES", filepath.Dir(dir)) + _, err := listFiles(context.Background(), dir) + if err == nil || !strings.Contains(err.Error(), "not a git repository") { + t.Errorf("listFiles() error = %v, want git's reason", err) + } +} + +// TestListFiles_NoGitOnPath_IsTheLookupsFailure verifies that git is found on +// PATH before it is run, and that a PATH holding none is reported as the +// lookup's failure rather than as a git that ran and refused. +func TestListFiles_NoGitOnPath_IsTheLookupsFailure(t *testing.T) { + t.Setenv("PATH", t.TempDir()) + + if _, err := listFiles(context.Background(), t.TempDir()); err == nil || !strings.HasPrefix(err.Error(), "find git: ") { + t.Errorf("listFiles() with no git on PATH = %v, want the lookup's failure", err) + } +} diff --git a/cmd/audit_file_headers/header.go b/cmd/audit_file_headers/header.go new file mode 100644 index 000000000..23c43efac --- /dev/null +++ b/cmd/audit_file_headers/header.go @@ -0,0 +1,225 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package main + +import ( + "path" + "regexp" + "slices" + "strings" + "unicode" + "unicode/utf8" + + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" +) + +// kind is how one sort of source file carries the header: the text each of +// its two comment lines opens and closes with, how many of the file's first +// lines have to stay above it, and whether it lives inside a frontmatter +// fence, which a file without one is given. +type kind struct { + open, close string + preamble func(lines []string) int + fenced bool +} + +// fence opens and closes an Astro component's frontmatter, the one part of +// the file whose comments are not rendered into the page. +const fence = "---" + +// The kinds, by the comment syntax and the preamble each one keeps above the +// header. +var ( + goKind = kind{open: "// ", preamble: noPreamble} + scriptKind = kind{open: "# ", preamble: shebang} + encodedKind = kind{open: "# ", preamble: shebangAndEncoding} + dockerfileKind = kind{open: "# ", preamble: parserDirectives} + javascriptKind = kind{open: "// ", preamble: shebang} + cssKind = kind{open: "/* ", close: " */", preamble: charset} + astroKind = kind{open: "// ", preamble: frontmatter, fenced: true} +) + +// kindsByName are the source files a base name alone identifies. +var kindsByName = map[string]kind{ + "Makefile": scriptKind, + "Dockerfile": dockerfileKind, +} + +// kindsByExtension are the source files their extension identifies. +var kindsByExtension = map[string]kind{ + ".go": goKind, + ".sh": scriptKind, + ".bash": scriptKind, + ".ps1": scriptKind, + ".psm1": scriptKind, + ".mk": scriptKind, + ".jq": scriptKind, + ".py": encodedKind, + ".rb": encodedKind, + ".js": javascriptKind, + ".mjs": javascriptKind, + ".cjs": javascriptKind, + ".jsx": javascriptKind, + ".ts": javascriptKind, + ".mts": javascriptKind, + ".cts": javascriptKind, + ".tsx": javascriptKind, + ".css": cssKind, + ".astro": astroKind, +} + +// kindOf returns the kind of the file at the slash-separated path name, and +// false for a file the rule does not judge: documentation, data, +// configuration and anything else that is not source. +func kindOf(name string) (kind, bool) { + base := path.Base(name) + if k, ok := kindsByName[base]; ok { + return k, true + } + k, ok := kindsByExtension[path.Ext(base)] + return k, ok +} + +// header returns the two lines of the header in the kind's comment syntax. +func (k kind) header() []string { + return []string{k.open + fileheader.CopyrightStatement + k.close, k.open + fileheader.LicenseStatement + k.close} +} + +// noPreamble keeps nothing above the header: a Go file opens with it, above +// any build constraint, as the Go project's own files do. +func noPreamble([]string) int { + return 0 +} + +// shebang keeps an interpreter line above the header, since the kernel reads +// it only as a file's first line. +func shebang(lines []string) int { + if strings.HasPrefix(lines[0], "#!") { + return 1 + } + return 0 +} + +// encoding is the declaration of a source encoding that Python (PEP 263) and +// Ruby read only on a file's first or second line. +var encoding = regexp.MustCompile(`^[ \t\f]*#.*?coding[:=]`) + +// shebangAndEncoding keeps an interpreter line and an encoding declaration +// above the header, the declaration only where it is still read. +func shebangAndEncoding(lines []string) int { + kept := shebang(lines) + for i := kept; i < 2 && i < len(lines); i++ { + if encoding.MatchString(lines[i]) { + return i + 1 + } + } + return kept +} + +// directive is a Dockerfile parser directive, which BuildKit reads only above +// the file's first comment, blank line or instruction. +var directive = regexp.MustCompile(`(?i)^#\s*(syntax|escape|check)\s*=`) + +// parserDirectives keeps a Dockerfile's parser directives above the header. +func parserDirectives(lines []string) int { + kept := 0 + for kept < len(lines) && directive.MatchString(lines[kept]) { + kept++ + } + return kept +} + +// charset keeps a stylesheet's @charset rule above the header, since a +// browser honors it only as the file's first bytes. +func charset(lines []string) int { + if strings.HasPrefix(lines[0], "@charset ") { + return 1 + } + return 0 +} + +// frontmatter keeps the fence that opens an Astro component's frontmatter +// above the header, so the header is a comment of the frontmatter's script +// and not text of the page. +func frontmatter(lines []string) int { + if lines[0] == fence { + return 1 + } + return 0 +} + +// verdict is what the header rule finds in one file: whether the header is +// missing from where its kind puts it, and the lines, counted from one, that +// carry a copyright or license notice other than that header. +type verdict struct { + missing bool + notices []int +} + +// judge holds the content of a file of kind k to the header rule. The header +// counts only as its two lines, in order, exactly where k puts them, and for +// an Astro component only inside a frontmatter. Every other comment line +// opening with a copyright or license statement is a notice, a copy of the +// header out of place included. +func judge(k kind, content string) verdict { + lines := strings.Split(content, "\n") + at := k.preamble(lines) + header := k.header() + present := (!k.fenced || at != 0) && at+1 < len(lines) && lines[at] == header[0] && lines[at+1] == header[1] + v := verdict{missing: !present} + for i, line := range lines { + if present && (i == at || i == at+1) { + continue + } + if isNotice(line) { + v.notices = append(v.notices, i+1) + } + } + return v +} + +// fix returns content with the header written where k puts it: after the +// preamble, followed by a blank line unless the file already has one there, +// and for an Astro component without a frontmatter inside a new one. Every +// byte of content is kept, a missing final newline included. It is called +// for a file judge found missing the header and carrying no other notice. +func fix(k kind, content string) string { + lines := strings.Split(content, "\n") + at := k.preamble(lines) + block := k.header() + if k.fenced && at == 0 { + block = slices.Concat([]string{fence}, block, []string{fence}) + } else if at < len(lines) && lines[at] != "" { + block = append(block, "") + } + return strings.Join(slices.Concat(lines[:at], block, lines[at:]), "\n") +} + +// commentOpeners are what a comment line opens with in the kinds above: a +// line comment, a hash comment, a block comment and the asterisk a block +// comment's continuation lines carry. +var commentOpeners = []string{"//", "#", "/*", "*"} + +// isNotice reports whether line is a comment whose text opens with the word +// "Copyright" or with an SPDX tag, which is what a notice looks like in every +// comment syntax the rule reads. The word has to end there, so a doc comment +// opening with an identifier that merely starts with it is not a notice; nor +// is a comment quoting one inside its text, or a line of code, a string on it +// included. The line is read alone, without the file's syntax around it, so a +// line of a multi-line string or a heredoc that opens with a comment marker is +// read as a comment. +func isNotice(line string) bool { + text := strings.TrimSpace(line) + for _, opener := range commentOpeners { + if rest, ok := strings.CutPrefix(text, opener); ok { + rest = strings.TrimSpace(rest) + if after, found := strings.CutPrefix(rest, "Copyright"); found { + next, _ := utf8.DecodeRuneInString(after) + return !unicode.IsLetter(next) && !unicode.IsDigit(next) && next != '_' + } + return strings.HasPrefix(rest, "SPDX-") + } + } + return false +} diff --git a/cmd/audit_file_headers/header_test.go b/cmd/audit_file_headers/header_test.go new file mode 100644 index 000000000..9ab5ba948 --- /dev/null +++ b/cmd/audit_file_headers/header_test.go @@ -0,0 +1,275 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package main + +import ( + "slices" + "testing" + + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" +) + +// The header as each comment syntax spells it, one line at a time, with the +// newline that ends each line. +const ( + slashC = "// " + fileheader.CopyrightStatement + "\n" + slashL = "// " + fileheader.LicenseStatement + "\n" + hashC = "# " + fileheader.CopyrightStatement + "\n" + hashL = "# " + fileheader.LicenseStatement + "\n" + blockC = "/* " + fileheader.CopyrightStatement + " */\n" + blockL = "/* " + fileheader.LicenseStatement + " */\n" +) + +// mustKind returns the kind of name, failing the test when name is not a +// source file. +func mustKind(t *testing.T, name string) kind { + t.Helper() + k, ok := kindOf(name) + if !ok { + t.Fatalf("kindOf(%q) is not a source file", name) + } + return k +} + +// TestKindOf_SourceFiles_SpellTheHeaderInTheirCommentSyntax verifies which +// files the rule judges, by base name and by extension, and the comment +// syntax each one's header is written in. +func TestKindOf_SourceFiles_SpellTheHeaderInTheirCommentSyntax(t *testing.T) { + tests := []struct { + name string + want []string + }{ + {name: "cmd/server/main.go", want: []string{slashC, slashL}}, + {name: "scripts/install.sh", want: []string{hashC, hashL}}, + {name: "scripts/run.bash", want: []string{hashC, hashL}}, + {name: "scripts/build_pypi.py", want: []string{hashC, hashL}}, + {name: "cmd/gen_api_live/introspect.rb", want: []string{hashC, hashL}}, + {name: "scripts/install.ps1", want: []string{hashC, hashL}}, + {name: "scripts/Module.psm1", want: []string{hashC, hashL}}, + {name: "Makefile", want: []string{hashC, hashL}}, + {name: "site/Makefile", want: []string{hashC, hashL}}, + {name: "build/rules.mk", want: []string{hashC, hashL}}, + {name: "mcpb/platform.jq", want: []string{hashC, hashL}}, + {name: "Dockerfile", want: []string{hashC, hashL}}, + {name: "npm/gitlab-mcp-server/cli.js", want: []string{slashC, slashL}}, + {name: "scripts/build-npm.mjs", want: []string{slashC, slashL}}, + {name: "a/config.cjs", want: []string{slashC, slashL}}, + {name: "site/src/routeData.ts", want: []string{slashC, slashL}}, + {name: "a/module.mts", want: []string{slashC, slashL}}, + {name: "a/module.cts", want: []string{slashC, slashL}}, + {name: "a/View.jsx", want: []string{slashC, slashL}}, + {name: "a/View.tsx", want: []string{slashC, slashL}}, + {name: "site/src/styles/theme.css", want: []string{blockC, blockL}}, + {name: "site/src/components/Hero.astro", want: []string{slashC, slashL}}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := mustKind(t, tt.name).header() + want := []string{tt.want[0][:len(tt.want[0])-1], tt.want[1][:len(tt.want[1])-1]} + if !slices.Equal(got, want) { + t.Errorf("header() = %q, want %q", got, want) + } + }) + } +} + +// TestKindOf_OtherFiles_AreNotJudged verifies that documentation, data, +// configuration and binary files are outside the rule, and that a base name +// is matched whole. +func TestKindOf_OtherFiles_AreNotJudged(t *testing.T) { + for _, name := range []string{ + "README.md", "site/src/content/docs/index.mdx", "go.mod", "go.sum", ".github/workflows/ci.yml", + "server.json", "LICENSE", "VERSION", "site/public/favicon.svg", "cmd/x/testdata/want.go.golden", + "Makefile.orig", "OldDockerfile", "docs/notes.txt", "internal/toolutil/icons/brand.webp", + } { + t.Run(name, func(t *testing.T) { + if _, ok := kindOf(name); ok { + t.Errorf("kindOf(%q) is a source file, want it outside the rule", name) + } + }) + } +} + +// TestJudge_HeaderWhereTheKindPutsIt_Passes verifies the header is found +// where each kind puts it: first, after a shebang, after an encoding +// declaration, after Dockerfile parser directives, after a CSS @charset and +// inside an Astro component's frontmatter, including at the end of a file +// with no trailing newline. +func TestJudge_HeaderWhereTheKindPutsIt_Passes(t *testing.T) { + tests := []struct { + name, path, content string + }{ + {name: "go", path: "a.go", content: slashC + slashL + "\npackage a\n"}, + {name: "go above a build constraint", path: "a.go", content: slashC + slashL + "\n//go:build e2e\n\npackage a\n"}, + {name: "go without a trailing newline", path: "a.go", content: slashC + slashL[:len(slashL)-1]}, + {name: "shell after its shebang", path: "a.sh", content: "#!/bin/sh\n" + hashC + hashL + "\necho a\n"}, + {name: "makefile", path: "Makefile", content: hashC + hashL + "\nall:\n"}, + {name: "jq after its shebang", path: "a.jq", content: "#!/usr/bin/jq -f\n" + hashC + hashL + "\n.name\n"}, + {name: "python after shebang and encoding", path: "a.py", content: "#!/usr/bin/env python3\n# -*- coding: latin-1 -*-\n" + hashC + hashL}, + {name: "python after an encoding on the first line", path: "a.py", content: "# vim: set fileencoding=utf-8 :\n" + hashC + hashL}, + {name: "ruby after an encoding", path: "a.rb", content: "# encoding: utf-8\n" + hashC + hashL}, + {name: "dockerfile after its parser directives", path: "Dockerfile", content: "# syntax=docker/dockerfile:1\n# Escape=`\n#check=skip=all\n" + hashC + hashL + "\nFROM scratch\n"}, + {name: "javascript after its shebang", path: "a.mjs", content: "#!/usr/bin/env node\n" + slashC + slashL}, + {name: "css after @charset", path: "a.css", content: "@charset \"UTF-8\";\n" + blockC + blockL + "\n.a {}\n"}, + {name: "astro inside the frontmatter", path: "a.astro", content: "---\n" + slashC + slashL + "---\n

a

\n"}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := judge(mustKind(t, tt.path), tt.content) + if got.missing || len(got.notices) != 0 { + t.Errorf("judge() = %+v, want the header found and no notice", got) + } + }) + } +} + +// TestJudge_HeaderAbsentOrOutOfPlace_IsMissing verifies the header counts only +// as the two lines, in order, exactly where the kind puts it. +func TestJudge_HeaderAbsentOrOutOfPlace_IsMissing(t *testing.T) { + tests := []struct { + name, path, content string + notices []int + }{ + {name: "empty file", path: "a.go", content: ""}, + {name: "no header", path: "a.go", content: "package a\n"}, + {name: "copyright alone at the end of the file", path: "a.go", content: slashC[:len(slashC)-1], notices: []int{1}}, + {name: "license line missing", path: "a.go", content: slashC + "\npackage a\n", notices: []int{1}}, + {name: "lines swapped", path: "a.go", content: slashL + slashC + "\npackage a\n", notices: []int{1, 2}}, + {name: "below the package doc comment", path: "a.go", content: "// Package a.\n" + slashC + slashL + "package a\n", notices: []int{2, 3}}, + {name: "wrong syntax for the kind", path: "a.sh", content: slashC + slashL, notices: []int{1, 2}}, + {name: "after the script's first command", path: "a.sh", content: "#!/bin/sh\necho a\n" + hashC + hashL, notices: []int{3, 4}}, + {name: "astro without frontmatter", path: "a.astro", content: slashC + slashL + "

a

\n", notices: []int{1, 2}}, + {name: "astro after the frontmatter", path: "a.astro", content: "---\n---\n" + slashC + slashL, notices: []int{3, 4}}, + {name: "css after a comment", path: "a.css", content: "/* theme */\n" + blockC + blockL, notices: []int{2, 3}}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := judge(mustKind(t, tt.path), tt.content) + if !got.missing { + t.Errorf("judge() = %+v, want the header missing", got) + } + if !slices.Equal(got.notices, tt.notices) { + t.Errorf("judge() notices = %v, want %v", got.notices, tt.notices) + } + }) + } +} + +// TestJudge_AnotherNotice_IsReportedByLine verifies a file carrying a notice +// other than the header is reported at every line that carries one, whether +// the header is there or not, so neither a file somebody else wrote nor a +// second copy of the header goes unseen. +func TestJudge_AnotherNotice_IsReportedByLine(t *testing.T) { + tests := []struct { + name, path, content string + missing bool + notices []int + }{ + {name: "third-party go file", path: "a.go", content: "// Copyright 2009 The Go Authors. All rights reserved.\n\npackage a\n", missing: true, notices: []int{1}}, + {name: "second copy of the header", path: "a.go", content: slashC + slashL + "\npackage a\n\n" + slashC, notices: []int{6}}, + {name: "another license beside the header", path: "a.py", content: hashC + hashL + "# SPDX-License-Identifier: Apache-2.0\n", notices: []int{3}}, + {name: "REUSE copyright text", path: "a.css", content: blockC + blockL + "/* SPDX-FileCopyrightText: 2020 Somebody */\n", notices: []int{3}}, + {name: "block comment continuation", path: "a.ts", content: slashC + slashL + "/**\n * Copyright (c) Somebody\n */\n", notices: []int{4}}, + {name: "indented line comment", path: "a.go", content: slashC + slashL + "\nfunc f() {\n\t// Copyright notice\n}\n", notices: []int{5}}, + {name: "a line of a multi-line string read as a comment", path: "a.go", content: slashC + slashL + "\nconst s = `\n// Copyright 2020 Somebody\n`\n", notices: []int{5}}, + {name: "a line of a heredoc read as a comment", path: "a.sh", content: hashC + hashL + "\ncat <<'EOF'\n# SPDX-License-Identifier: Apache-2.0\nEOF\n", notices: []int{5}}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := judge(mustKind(t, tt.path), tt.content) + if got.missing != tt.missing || !slices.Equal(got.notices, tt.notices) { + t.Errorf("judge() = %+v, want missing %v and notices %v", got, tt.missing, tt.notices) + } + }) + } +} + +// TestIsNotice_OnlyACommentOpeningWithTheStatement verifies what counts as a +// notice: a comment line whose text opens with "Copyright" or with an SPDX +// tag, and nothing that merely mentions either, quotes a comment or is not a +// comment at all. +func TestIsNotice_OnlyACommentOpeningWithTheStatement(t *testing.T) { + tests := []struct { + line string + want bool + }{ + {line: "// Copyright (c) 2026 Somebody", want: true}, + {line: "#Copyright Somebody", want: true}, + {line: " # SPDX-License-Identifier: MIT", want: true}, + {line: "/* Copyright */", want: true}, + {line: " * SPDX-FileCopyrightText: Somebody", want: true}, + {line: "//Copyright", want: true}, + {line: "// Copyright", want: true}, + {line: "// Copyright, all rights reserved", want: true}, + {line: "// CopyrightStatement is the statement every file carries.", want: false}, + {line: "// Copyright_holder is a name.", want: false}, + {line: "// Copyright2026 is a name.", want: false}, + {line: "// Copyrighted material", want: false}, + {line: "// The Copyright line opens every file.", want: false}, + {line: "// copyright notices are kept", want: false}, + {line: "//\t// Copyright (c) 2026 Somebody", want: false}, + {line: "Copyright (c) 2019 Somebody", want: false}, + {line: `const c = "// Copyright"`, want: false}, + {line: "", want: false}, + {line: "//", want: false}, + } + for _, tt := range tests { + t.Run(tt.line, func(t *testing.T) { + if got := isNotice(tt.line); got != tt.want { + t.Errorf("isNotice(%q) = %v, want %v", tt.line, got, tt.want) + } + }) + } +} + +// TestFix_WritesTheHeaderWhereTheKindPutsIt verifies what the fix writes into +// each kind of file: the two lines where the kind puts them, a blank line +// between them and what follows unless one is there already, an Astro +// frontmatter when the component has none, and everything else kept byte for +// byte, a missing trailing newline included. +func TestFix_WritesTheHeaderWhereTheKindPutsIt(t *testing.T) { + tests := []struct { + name, path, content, want string + }{ + {name: "go package clause", path: "a.go", content: "package a\n", want: fileheader.Go + "package a\n"}, + {name: "go build constraint", path: "a.go", content: "//go:build e2e\n\npackage a\n", want: fileheader.Go + "//go:build e2e\n\npackage a\n"}, + {name: "go package doc comment", path: "a.go", content: "// Package a does.\npackage a\n", want: fileheader.Go + "// Package a does.\npackage a\n"}, + {name: "go opening with a blank line", path: "a.go", content: "\npackage a\n", want: slashC + slashL + "\npackage a\n"}, + {name: "go generated", path: "a.go", content: "// Code generated by x; DO NOT EDIT.\n\npackage a\n", want: fileheader.Go + "// Code generated by x; DO NOT EDIT.\n\npackage a\n"}, + {name: "empty file", path: "a.py", content: "", want: hashC + hashL}, + {name: "shell script", path: "a.sh", content: "#!/bin/sh\necho a\n", want: "#!/bin/sh\n" + hashC + hashL + "\necho a\n"}, + {name: "shebang alone", path: "a.sh", content: "#!/bin/sh\n", want: "#!/bin/sh\n" + hashC + hashL}, + {name: "shebang without a newline", path: "a.sh", content: "#!/bin/sh", want: "#!/bin/sh\n" + hashC + hashL[:len(hashL)-1]}, + {name: "makefile", path: "Makefile", content: ".PHONY: all\n", want: hashC + hashL + "\n.PHONY: all\n"}, + {name: "jq program", path: "a.jq", content: "# Derives a manifest.\n.name\n", want: hashC + hashL + "\n# Derives a manifest.\n.name\n"}, + {name: "python shebang and encoding", path: "a.py", content: "#!/usr/bin/env python3\n# coding: utf-8\n\"\"\"Doc.\"\"\"\n", want: "#!/usr/bin/env python3\n# coding: utf-8\n" + hashC + hashL + "\n\"\"\"Doc.\"\"\"\n"}, + {name: "python encoding without a shebang", path: "a.py", content: "# -*- coding: utf-8 -*-\nimport os\n", want: "# -*- coding: utf-8 -*-\n" + hashC + hashL + "\nimport os\n"}, + {name: "python encoding on the second line after a comment", path: "a.py", content: "# a\n# coding: latin-1\nimport os\n", want: "# a\n# coding: latin-1\n" + hashC + hashL + "\nimport os\n"}, + {name: "python encoding on the third line is a comment", path: "a.py", content: "#!/usr/bin/env python3\n# a\n# coding: utf-8\n", want: "#!/usr/bin/env python3\n" + hashC + hashL + "\n# a\n# coding: utf-8\n"}, + {name: "dockerfile directives", path: "Dockerfile", content: "# syntax=docker/dockerfile:1\n# escape=\\\n\n# Build stage\nFROM scratch\n", want: "# syntax=docker/dockerfile:1\n# escape=\\\n" + hashC + hashL + "\n# Build stage\nFROM scratch\n"}, + {name: "dockerfile of directives alone", path: "Dockerfile", content: "# syntax=docker/dockerfile:1", want: "# syntax=docker/dockerfile:1\n" + hashC + hashL[:len(hashL)-1]}, + {name: "dockerfile without directives", path: "Dockerfile", content: "# Build stage\nFROM scratch\n", want: hashC + hashL + "\n# Build stage\nFROM scratch\n"}, + {name: "powershell help", path: "a.ps1", content: "#!/usr/bin/env pwsh\n<#\n.SYNOPSIS\n#>\n", want: "#!/usr/bin/env pwsh\n" + hashC + hashL + "\n<#\n.SYNOPSIS\n#>\n"}, + {name: "javascript shebang", path: "cli.js", content: "#!/usr/bin/env node\n// cli.js runs.\n", want: "#!/usr/bin/env node\n" + slashC + slashL + "\n// cli.js runs.\n"}, + {name: "typescript", path: "a.ts", content: "import a from \"a\";\n", want: slashC + slashL + "\nimport a from \"a\";\n"}, + {name: "css", path: "a.css", content: "/* theme */\n.a {}\n", want: blockC + blockL + "\n/* theme */\n.a {}\n"}, + {name: "css charset", path: "a.css", content: "@charset \"UTF-8\";\n.a {}\n", want: "@charset \"UTF-8\";\n" + blockC + blockL + "\n.a {}\n"}, + {name: "astro frontmatter", path: "a.astro", content: "---\nconst a = 1;\n---\n

{a}

\n", want: "---\n" + slashC + slashL + "\nconst a = 1;\n---\n

{a}

\n"}, + {name: "astro empty frontmatter", path: "a.astro", content: "---\n---\n

a

\n", want: "---\n" + slashC + slashL + "\n---\n

a

\n"}, + {name: "astro without frontmatter", path: "a.astro", content: "

a

\n", want: "---\n" + slashC + slashL + "---\n

a

\n"}, + {name: "astro empty file", path: "a.astro", content: "", want: "---\n" + slashC + slashL + "---\n"}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + k := mustKind(t, tt.path) + got := fix(k, tt.content) + if got != tt.want { + t.Fatalf("fix() = %q, want %q", got, tt.want) + } + if v := judge(k, got); v.missing || len(v.notices) != 0 { + t.Errorf("judge(fix()) = %+v, want what the fix wrote to pass", v) + } + }) + } +} diff --git a/cmd/audit_file_headers/main.go b/cmd/audit_file_headers/main.go new file mode 100644 index 000000000..1846d36ed --- /dev/null +++ b/cmd/audit_file_headers/main.go @@ -0,0 +1,150 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package main + +import ( + "context" + "errors" + "flag" + "fmt" + "io" + "io/fs" + "os" + "path/filepath" + + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" +) + +// toolName is how every message this command prints names its source. +const toolName = "audit_file_headers" + +// The findings a run reports, after the file's path and, for a notice, its +// line. +const ( + missingMessage = "does not open with the copyright and license header" + noticeMessage = "carries a copyright or license notice that is not the header at its top" +) + +// remedy is what a failing run prints after the count, with the two lines of +// the header in place of its verbs. +const remedy = ` +Every source file opens with these two lines, written as comments of its +language, after a shebang, an encoding declaration, a Dockerfile parser +directive or a CSS @charset rule, and inside an Astro component's +frontmatter: + + %s + %s + +make fix-file-headers writes them into every file reported as not opening +with them. A file reported for another notice is left as it is: a file this +repository did not write keeps its own notice and is not stamped with this +one, and one it did write carries the header once, at its top, which is a +change to make by hand. +` + +// osExit is a seam over os.Exit, so a test can observe the exit code main +// passes on without ending the test process. +var osExit = os.Exit + +func main() { + osExit(runMain(context.Background(), os.Args[1:], os.Stdout, os.Stderr)) +} + +// runMain parses the command line, judges every source file of the +// repository and, under -fix, writes the header into each file missing it +// that carries no other notice. It prints a line per finding and per file +// written, then a summary, and returns 2 for a usage error, 1 when a file +// still fails or could not be listed, read or written, and 0 otherwise. +func runMain(ctx context.Context, args []string, stdout, stderr io.Writer) int { + flags := flag.NewFlagSet(toolName, flag.ContinueOnError) + flags.SetOutput(stderr) + dir := flags.String("dir", ".", "the repository whose source files are judged") + fixMode := flags.Bool("fix", false, "write the header into every file that does not open with it and carries no other notice") + if err := flags.Parse(args); err != nil { + return 2 + } + if flags.NArg() > 0 { + _, _ = fmt.Fprintf(stderr, "%s: takes no arguments, and was given %q; name the repository with -dir\n", toolName, flags.Args()) + return 2 + } + names, err := listFiles(ctx, *dir) + if err != nil { + _, _ = fmt.Fprintf(stderr, "%s: could not list the files of %s: %v; the list is git's, so run this in a checkout\n", toolName, *dir, err) + return 1 + } + outcomes := map[outcome]int{} + for _, name := range names { + if k, ok := kindOf(name); ok { + outcomes[checkFile(filepath.Join(*dir, filepath.FromSlash(name)), name, k, *fixMode, stdout, stderr)]++ + } + } + judged := outcomes[passed] + outcomes[failed] + outcomes[written] + if outcomes[failed] > 0 { + _, _ = fmt.Fprintf(stdout, "file headers: %d of %d source files fail\n", outcomes[failed], judged) + _, _ = fmt.Fprintf(stdout, remedy, fileheader.CopyrightStatement, fileheader.LicenseStatement) + return 1 + } + _, _ = fmt.Fprintf(stdout, "file headers: %d source files, every one opening with the copyright and license header", judged) + if outcomes[written] > 0 { + _, _ = fmt.Fprintf(stdout, ", %d of them written by this run", outcomes[written]) + } + _, _ = fmt.Fprintln(stdout) + return 0 +} + +// outcome is what became of one source file in a run. +type outcome int + +// The outcomes a source file can have. A file skipped is not counted as +// judged. +const ( + // skipped is a path whose working tree holds no regular file: one deleted + // since it was added, a symbolic link or a nested checkout's directory. + skipped outcome = iota + // passed opens with the header and carries no other notice. + passed + // failed still fails, or could not be stated, read or written. + failed + // written lacked the header alone, and -fix wrote it. + written +) + +// checkFile judges the source file of kind k at path, which the report calls +// name, and under fixMode writes the header into it when the header is all it +// lacks. It prints each finding and each write on stdout, an error on stderr, +// and returns what became of the file. +func checkFile(path, name string, k kind, fixMode bool, stdout, stderr io.Writer) outcome { + info, err := lstat(path) + if errors.Is(err, fs.ErrNotExist) || (err == nil && !info.Mode().IsRegular()) { + return skipped + } + var data []byte + if err == nil { + data, err = readFile(path) + } + if err != nil { + _, _ = fmt.Fprintf(stderr, "%s: %s: %v\n", toolName, name, err) + return failed + } + v := judge(k, string(data)) + if !v.missing && len(v.notices) == 0 { + return passed + } + if fixMode && len(v.notices) == 0 { + if err = writeFile(path, []byte(fix(k, string(data))), info.Mode().Perm()); err != nil { + _, _ = fmt.Fprintf(stderr, "%s: %s: %v\n", toolName, name, err) + return failed + } + _, _ = fmt.Fprintf(stdout, "%s: header written\n", name) + return written + } + if v.missing { + _, _ = fmt.Fprintf(stdout, "%s: %s\n", name, missingMessage) + } + for _, line := range v.notices { + _, _ = fmt.Fprintf(stdout, "%s:%d: %s\n", name, line, noticeMessage) + } + return failed +} diff --git a/cmd/audit_file_headers/main_test.go b/cmd/audit_file_headers/main_test.go new file mode 100644 index 000000000..5515e3c7d --- /dev/null +++ b/cmd/audit_file_headers/main_test.go @@ -0,0 +1,420 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package main + +import ( + "bytes" + "context" + "errors" + "fmt" + "io/fs" + "os" + "path/filepath" + "runtime" + "strings" + "testing" + + yaml "go.yaml.in/yaml/v3" + + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" +) + +// runCase is one repository and command line, and what the run must do with +// them. setup builds the repository and returns it and the arguments after +// -dir; verify, when set, inspects the tree the run left. +type runCase struct { + name string + setup func(t *testing.T) (dir string, args []string) + wantCode int + wantStdout []string + notStdout []string + wantStderr string + verify func(t *testing.T, dir string) +} + +// check runs the case and reports every way the run departed from it: the +// exit code, each fragment stdout must hold and each it must not, and +// stderr, which must be empty or hold wantStderr. +func (c runCase) check(t *testing.T) { + t.Helper() + + dir, args := c.setup(t) + var stdout, stderr bytes.Buffer + code := runMain(context.Background(), append([]string{"-dir", dir}, args...), &stdout, &stderr) + if code != c.wantCode { + t.Errorf("runMain() = %d, want %d\nstdout:\n%s\nstderr:\n%s", code, c.wantCode, stdout.String(), stderr.String()) + } + for _, want := range c.wantStdout { + if !strings.Contains(stdout.String(), want) { + t.Errorf("stdout does not hold %q:\n%s", want, stdout.String()) + } + } + for _, unwanted := range c.notStdout { + if strings.Contains(stdout.String(), unwanted) { + t.Errorf("stdout holds %q:\n%s", unwanted, stdout.String()) + } + } + switch { + case c.wantStderr == "" && stderr.Len() != 0: + t.Errorf("stderr = %q, want it empty", stderr.String()) + case !strings.Contains(stderr.String(), c.wantStderr): + t.Errorf("stderr = %q, want it to hold %q", stderr.String(), c.wantStderr) + } + if c.verify != nil { + c.verify(t, dir) + } +} + +// readTree returns the content of the file at the slash-separated name +// under dir. +func readTree(t *testing.T, dir, name string) string { + t.Helper() + + data, err := os.ReadFile(filepath.Join(dir, filepath.FromSlash(name))) + if err != nil { + t.Fatal(err) + } + return string(data) +} + +// The lines a run prints, as the cases below look for them. +const ( + headed = slashC + slashL + "\npackage a\n" + thirdParty = "// Copyright 2009 The Go Authors. All rights reserved.\n\npackage x\n" + cleanSummary = "file headers: %d source files, every one opening with the copyright and license header" +) + +// summary spells the success line for n source files. +func summary(n int) string { + return fmt.Sprintf(cleanSummary, n) +} + +// TestRunMain_Repositories_JudgeEverySourceFile verifies a run end to end over +// real repositories: a clean tree passes, a planted file without the header +// fails with how to fix it, a file carrying another notice fails at its line, +// -fix writes the header and keeps each file's mode, a file with another +// notice is left as it was, and a file deleted from the working tree or a +// symbolic link is not judged. +func TestRunMain_Repositories_JudgeEverySourceFile(t *testing.T) { + tests := []runCase{ + { + name: "clean tree", + setup: func(t *testing.T) (string, []string) { + t.Helper() + return newRepository(t, map[string]string{ + "main.go": headed, + "scripts/run.sh": "#!/bin/sh\n" + hashC + hashL + "\necho a\n", + "Makefile": hashC + hashL + "\nall:\n", + "README.md": "# a\n", + }), nil + }, + wantStdout: []string{summary(3) + "\n"}, + }, + { + name: "planted file without the header", + setup: func(t *testing.T) (string, []string) { + t.Helper() + return newRepository(t, map[string]string{ + "main.go": headed, + "cmd/new/new.go": "package main\n", + }), nil + }, + wantCode: 1, + wantStdout: []string{ + "cmd/new/new.go: " + missingMessage + "\n", + "file headers: 1 of 2 source files fail\n", + " " + fileheader.CopyrightStatement + "\n " + fileheader.LicenseStatement + "\n", + "make fix-file-headers", + }, + verify: func(t *testing.T, dir string) { + t.Helper() + if got := readTree(t, dir, "cmd/new/new.go"); got != "package main\n" { + t.Errorf("cmd/new/new.go = %q, want it left as it was without -fix", got) + } + }, + }, + { + name: "file carrying another notice", + setup: func(t *testing.T) (string, []string) { + t.Helper() + return newRepository(t, map[string]string{"third/x.go": thirdParty}), nil + }, + wantCode: 1, + wantStdout: []string{ + "third/x.go: " + missingMessage + "\n", + "third/x.go:1: " + noticeMessage + "\n", + "file headers: 1 of 1 source files fail\n", + }, + }, + { + name: "header beside another notice", + setup: func(t *testing.T) (string, []string) { + t.Helper() + return newRepository(t, map[string]string{"a.go": headed + "\n// SPDX-License-Identifier: Apache-2.0\n"}), []string{"-fix"} + }, + wantCode: 1, + wantStdout: []string{"a.go:6: " + noticeMessage + "\n", "file headers: 1 of 1 source files fail\n"}, + notStdout: []string{missingMessage, "header written"}, + }, + { + name: "fix writes the header and keeps the mode", + setup: func(t *testing.T) (string, []string) { + t.Helper() + dir := newRepository(t, map[string]string{"a.go": "package a\n", "run.sh": "#!/bin/sh\necho a\n"}) + if err := os.Chmod(filepath.Join(dir, "run.sh"), 0o750); err != nil { //#nosec G302 -- an executable fixture script, so the run is seen keeping a mode the fixtures do not otherwise carry + t.Fatal(err) + } + return dir, []string{"-fix"} + }, + wantStdout: []string{"a.go: header written\n", "run.sh: header written\n", summary(2) + ", 2 of them written by this run\n"}, + verify: func(t *testing.T, dir string) { + t.Helper() + if got := readTree(t, dir, "a.go"); got != fileheader.Go+"package a\n" { + t.Errorf("a.go = %q", got) + } + if got, want := readTree(t, dir, "run.sh"), "#!/bin/sh\n"+hashC+hashL+"\necho a\n"; got != want { + t.Errorf("run.sh = %q, want %q", got, want) + } + info, err := os.Stat(filepath.Join(dir, "run.sh")) + if err != nil { + t.Fatal(err) + } + // Windows keeps no permission bits: os.Chmod only sets or clears + // the read-only attribute, and a writable file stats as 0666. + want := os.FileMode(0o750) + if runtime.GOOS == "windows" { + want = 0o666 + } + if info.Mode().Perm() != want { + t.Errorf("run.sh mode = %v, want %v kept", info.Mode().Perm(), want) + } + }, + }, + { + name: "fix leaves a file carrying another notice", + setup: func(t *testing.T) (string, []string) { + t.Helper() + return newRepository(t, map[string]string{"a.go": "package a\n", "third/x.go": thirdParty}), []string{"-fix"} + }, + wantCode: 1, + wantStdout: []string{"a.go: header written\n", "third/x.go:1: " + noticeMessage + "\n", "file headers: 1 of 2 source files fail\n"}, + verify: func(t *testing.T, dir string) { + t.Helper() + if got := readTree(t, dir, "third/x.go"); got != thirdParty { + t.Errorf("third/x.go = %q, want it left as it was", got) + } + }, + }, + { + name: "fix on a clean tree writes nothing", + setup: func(t *testing.T) (string, []string) { + t.Helper() + return newRepository(t, map[string]string{"main.go": headed}), []string{"-fix"} + }, + wantStdout: []string{summary(1) + "\n"}, + verify: func(t *testing.T, dir string) { + t.Helper() + if got := readTree(t, dir, "main.go"); got != headed { + t.Errorf("main.go = %q, want it unchanged", got) + } + }, + }, + { + name: "file deleted from the working tree and symbolic link", + setup: func(t *testing.T) (string, []string) { + t.Helper() + dir := newRepository(t, map[string]string{"main.go": headed, "gone.go": "package a\n", "target.txt": "package a\n"}) + gitFixture(t, dir, "add", "gone.go") + if err := os.Remove(filepath.Join(dir, "gone.go")); err != nil { + t.Fatal(err) + } + if err := os.Symlink("target.txt", filepath.Join(dir, "link.go")); err != nil { + t.Fatal(err) + } + return dir, nil + }, + wantStdout: []string{summary(1) + "\n"}, + }, + { + name: "not a repository", + setup: func(t *testing.T) (string, []string) { + t.Helper() + isolateGit(t) + dir := t.TempDir() + t.Setenv("GIT_CEILING_DIRECTORIES", filepath.Dir(dir)) + return dir, nil + }, + wantCode: 1, + wantStderr: "audit_file_headers: could not list the files of ", + }, + } + for _, tt := range tests { + t.Run(tt.name, tt.check) + } +} + +// TestRunMain_FilesystemErrors_FailTheRunAndNameTheFile verifies a file that +// cannot be stated, read or rewritten fails the run with the reason on +// stderr, while the rest of the tree is still judged. The run's user can read +// anything the tests create when it is root, so the seams stand in for the +// filesystem. +func TestRunMain_FilesystemErrors_FailTheRunAndNameTheFile(t *testing.T) { + failOn := func(name string) error { + if filepath.Base(name) == "bad.go" { + return errors.New("planted failure") + } + return nil + } + tests := []struct { + name string + args []string + install func() + }{ + {name: "lstat", install: func() { + lstat = func(name string) (fs.FileInfo, error) { + if err := failOn(name); err != nil { + return nil, err + } + return os.Lstat(name) + } + }}, + {name: "read", install: func() { + readFile = func(name string) ([]byte, error) { + if err := failOn(name); err != nil { + return nil, err + } + return os.ReadFile(name) + } + }}, + {name: "write", args: []string{"-fix"}, install: func() { + writeFile = func(name string, data []byte, perm fs.FileMode) error { + if err := failOn(name); err != nil { + return err + } + return os.WriteFile(name, data, perm) + } + }}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Cleanup(func() { lstat, readFile, writeFile = os.Lstat, os.ReadFile, os.WriteFile }) + tt.install() + runCase{ + setup: func(t *testing.T) (string, []string) { + t.Helper() + return newRepository(t, map[string]string{"bad.go": "package a\n", "main.go": headed}), tt.args + }, + wantCode: 1, + wantStdout: []string{"file headers: 1 of 2 source files fail\n"}, + wantStderr: "bad.go: planted failure", + }.check(t) + }) + } +} + +// TestRunMain_Arguments_RefuseWhatTheyCannotUse verifies an unknown flag and +// a positional argument end the run with the usage status before anything is +// read. +func TestRunMain_Arguments_RefuseWhatTheyCannotUse(t *testing.T) { + tests := []struct { + name, wantStderr string + args []string + }{ + {name: "unknown flag", args: []string{"-no-such-flag"}, wantStderr: "flag provided but not defined"}, + {name: "positional argument", args: []string{"main.go"}, wantStderr: "audit_file_headers: takes no arguments"}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + var stdout, stderr bytes.Buffer + if code := runMain(context.Background(), tt.args, &stdout, &stderr); code != 2 { + t.Errorf("runMain() = %d, want 2", code) + } + if !strings.Contains(stderr.String(), tt.wantStderr) { + t.Errorf("stderr = %q, want it to hold %q", stderr.String(), tt.wantStderr) + } + if stdout.Len() != 0 { + t.Errorf("stdout = %q, want nothing", stdout.String()) + } + }) + } +} + +// TestMain_UnknownFlag_ExitsWithTheUsageStatus verifies main hands the status +// runMain returns to the process. +func TestMain_UnknownFlag_ExitsWithTheUsageStatus(t *testing.T) { + savedArgs, savedExit := os.Args, osExit + t.Cleanup(func() { os.Args, osExit = savedArgs, savedExit }) + os.Args = []string{toolName, "-no-such-flag"} + got := -1 + osExit = func(code int) { got = code } + main() + if got != 2 { + t.Errorf("main() exit = %d, want 2", got) + } +} + +// readRepositoryFile returns a file of this repository, which the contracts +// below hold to the command. +func readRepositoryFile(t *testing.T, name string) string { + t.Helper() + + data, err := os.ReadFile(filepath.Join("..", "..", filepath.FromSlash(name))) + if err != nil { + t.Fatal(err) + } + return string(data) +} + +// TestMakefile_FileHeaderTargets_RunTheCommand holds the make targets to the +// command: check-file-headers runs the gate, fix-file-headers its fix mode, +// and make analyze runs the gate as its last step, with every step numbered +// out of the new total. +func TestMakefile_FileHeaderTargets_RunTheCommand(t *testing.T) { + makefile := readRepositoryFile(t, "Makefile") + tests := []struct{ name, want string }{ + {name: "check", want: "\ncheck-file-headers:\n\tgo run ./cmd/audit_file_headers/\n"}, + {name: "fix", want: "\nfix-file-headers:\n\tgo run ./cmd/audit_file_headers/ -fix\n"}, + {name: "analyze", want: "\trun_check \"[32/32] copyright and license headers\" go run ./cmd/audit_file_headers/; \\\n"}, + {name: "first step renumbered", want: "\trun_check \"[1/32] golangci-lint config verify\""}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if !strings.Contains(makefile, tt.want) { + t.Errorf("Makefile does not hold %q", tt.want) + } + }) + } + if strings.Contains(makefile, "/31] ") { + t.Error("Makefile still numbers an analyze step out of 31") + } +} + +// TestCIWorkflow_GeneratedJob_ChecksTheFileHeaders holds ci.yml to running +// the gate on every push and pull request, in the job that already holds the +// tree's other source rules. +func TestCIWorkflow_GeneratedJob_ChecksTheFileHeaders(t *testing.T) { + var workflow struct { + Jobs map[string]struct { + If string `yaml:"if"` + Steps []struct { + If string `yaml:"if"` + Run string `yaml:"run"` + } `yaml:"steps"` + } `yaml:"jobs"` + } + if err := yaml.Unmarshal([]byte(readRepositoryFile(t, ".github/workflows/ci.yml")), &workflow); err != nil { + t.Fatal(err) + } + job, ok := workflow.Jobs["generated"] + if !ok { + t.Fatal("ci.yml has no generated job") + } + ran := false + for _, step := range job.Steps { + ran = ran || (step.Run == "make check-file-headers" && step.If == "") + } + if job.If != "" || !ran { + t.Errorf("ci.yml's generated job (if %q) does not run make check-file-headers unconditionally", job.If) + } +} diff --git a/cmd/gen_action_catalog_manifest/main.go b/cmd/gen_action_catalog_manifest/main.go index 8b5b99e5d..5e5f77093 100644 --- a/cmd/gen_action_catalog_manifest/main.go +++ b/cmd/gen_action_catalog_manifest/main.go @@ -12,6 +12,7 @@ import ( "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/auditshared" "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/docgen" + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" "github.com/jmrplens/gitlab-mcp-server/v3/internal/cmdutil" ) @@ -104,6 +105,7 @@ func run(root, sourceDir, outputPath string, check bool) error { func generateManifest(builders []string) ([]byte, error) { var buffer bytes.Buffer + buffer.WriteString(fileheader.Go) buffer.WriteString("// Code generated by cmd/gen_action_catalog_manifest; DO NOT EDIT.\n\n") buffer.WriteString("package tools\n\n") buffer.WriteString("func actionSpecGroupBuilders() []actionSpecGroupBuilder {\n") diff --git a/cmd/gen_action_catalog_manifest/main_test.go b/cmd/gen_action_catalog_manifest/main_test.go index f4125c2e6..809b9bbe4 100644 --- a/cmd/gen_action_catalog_manifest/main_test.go +++ b/cmd/gen_action_catalog_manifest/main_test.go @@ -20,6 +20,7 @@ import ( "testing" "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/auditshared" + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" ) // builderFixtureSource is the one builder file every command-level fixture @@ -107,6 +108,21 @@ func TestGenerateManifest_IsDeterministic(t *testing.T) { } } +// TestGenerateManifest_OpensWithTheFileHeader verifies the manifest opens with +// the copyright and license header every source file carries, then the +// generated-code marker Go's tools read, so the file this command rewrites +// passes cmd/audit_file_headers without a hand edit. +func TestGenerateManifest_OpensWithTheFileHeader(t *testing.T) { + content, err := generateManifest([]string{"buildAccessActionSpecs"}) + if err != nil { + t.Fatalf("generateManifest() error = %v", err) + } + want := fileheader.Go + "// Code generated by cmd/gen_action_catalog_manifest; DO NOT EDIT.\n\npackage tools\n" + if got := string(content); !strings.HasPrefix(got, want) { + t.Errorf("generateManifest() opens with %q, want %q", got[:min(len(got), len(want))], want) + } +} + // TestGenerateManifest_PackageClause_NamesTheDirectoryItIsWrittenInto verifies // the rendered manifest declares the package of the directory the default // output path lands in. Nothing joins those two literals otherwise: the clause diff --git a/cmd/gen_action_grants/table_go.go b/cmd/gen_action_grants/table_go.go index aa2344389..600c6c427 100644 --- a/cmd/gen_action_grants/table_go.go +++ b/cmd/gen_action_grants/table_go.go @@ -7,6 +7,7 @@ import ( "strconv" "strings" + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" "github.com/jmrplens/gitlab-mcp-server/v3/internal/cmdutil" "github.com/jmrplens/gitlab-mcp-server/v3/internal/finegrained" ) @@ -14,8 +15,9 @@ import ( // tablePath is the generated table the server compiles in. const tablePath = "internal/tools/actiongrants/table_gen.go" -// tableHeader opens the file. The first line is the form Go's tools read as -// "generated", so linters and reviewers skip it. +// tableHeader opens the file after the header every source file carries. Its +// first line is the form Go's tools read as "generated", so linters and +// reviewers skip it. const tableHeader = `// Code generated by cmd/gen_action_grants; DO NOT EDIT. package actiongrants @@ -74,6 +76,7 @@ var ( // field added to a finegrained type leaves an older table compiling. func renderTable(table *finegrained.Table) []byte { var b bytes.Buffer + b.WriteString(fileheader.Go) b.WriteString(tableHeader) fmt.Fprintf(&b, "Version: %q,\nBucket: %q,\n", table.Version, table.Bucket) writeStrings(&b, "Permissions", table.Permissions) diff --git a/cmd/gen_action_grants/table_go_test.go b/cmd/gen_action_grants/table_go_test.go index c3d162a46..75eceebab 100644 --- a/cmd/gen_action_grants/table_go_test.go +++ b/cmd/gen_action_grants/table_go_test.go @@ -9,6 +9,7 @@ import ( "strings" "testing" + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" "github.com/jmrplens/gitlab-mcp-server/v3/internal/finegrained" ) @@ -53,7 +54,7 @@ func TestRenderTable_KeyedLiteralsOfEveryField(t *testing.T) { }}, }, } - want := tableHeader + ` Version: "19.4.1-ee", + want := fileheader.Go + tableHeader + ` Version: "19.4.1-ee", Bucket: "19.4", Permissions: []string{ "read_a", @@ -99,6 +100,17 @@ func TestRenderTable_KeyedLiteralsOfEveryField(t *testing.T) { } } +// TestRenderTable_OpensWithTheFileHeader verifies the table opens with the +// copyright and license header every source file carries, then the +// generated-code marker Go's tools read, so the file this command rewrites +// passes cmd/audit_file_headers without a hand edit. +func TestRenderTable_OpensWithTheFileHeader(t *testing.T) { + want := fileheader.Go + "// Code generated by cmd/gen_action_grants; DO NOT EDIT.\n\npackage actiongrants\n" + if got := string(renderTable(&finegrained.Table{})); !strings.HasPrefix(got, want) { + t.Errorf("renderTable opens with %q, want %q", got[:min(len(got), len(want))], want) + } +} + // TestConstantOf_AValueWithNoConstant_Panics verifies a cause or an effect the // writer does not name stops the run rather than being written as a value no // constant spells. diff --git a/cmd/gen_action_grants/table_stub.go.txt b/cmd/gen_action_grants/table_stub.go.txt index fc719e011..b6a6a55fd 100644 --- a/cmd/gen_action_grants/table_stub.go.txt +++ b/cmd/gen_action_grants/table_stub.go.txt @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Stand-in for table_gen.go while cmd/gen_action_grants runs. // // The generator builds the catalog through internal/tools, which links the diff --git a/cmd/gen_brand/main.go b/cmd/gen_brand/main.go index f5d00d7bb..03fa5d0d3 100644 --- a/cmd/gen_brand/main.go +++ b/cmd/gen_brand/main.go @@ -12,6 +12,7 @@ import ( "strings" "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/docgen" + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" ) // Palette: the "circuit violet" identity on the GitHub neutral ramp, chosen @@ -131,9 +132,10 @@ func brandMark24() string { return fmt.Sprintf(`%s`, body.String()) } -// brandMarkGo renders the generated Go source carrying the in-binary mark. +// brandMarkGo renders the generated Go source carrying the in-binary mark, +// opening with the header every source file carries. func brandMarkGo() string { - return fmt.Sprintf(`// Code generated by cmd/gen_brand; DO NOT EDIT. + return fileheader.Go + fmt.Sprintf(`// Code generated by cmd/gen_brand; DO NOT EDIT. package toolutil diff --git a/cmd/gen_brand/main_test.go b/cmd/gen_brand/main_test.go index cad50c91e..12e62bc16 100644 --- a/cmd/gen_brand/main_test.go +++ b/cmd/gen_brand/main_test.go @@ -16,6 +16,7 @@ import ( "testing" "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/docgen" + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" ) // TestAssets_EverySVGIsWellFormedXML verifies each emitted SVG (and the @@ -400,6 +401,17 @@ func TestBrandMark24_IsTheCanonicalGeometryScaled(t *testing.T) { } } +// TestBrandMarkGo_OpensWithTheFileHeader verifies the generated Go source opens +// with the copyright and license header every source file carries, then the +// generated-code marker Go's tools read, so the file this command rewrites +// passes cmd/audit_file_headers without a hand edit. +func TestBrandMarkGo_OpensWithTheFileHeader(t *testing.T) { + want := fileheader.Go + "// Code generated by cmd/gen_brand; DO NOT EDIT.\n\npackage toolutil\n" + if got := brandMarkGo(); !strings.HasPrefix(got, want) { + t.Errorf("brandMarkGo() opens with %q, want %q", got[:min(len(got), len(want))], want) + } +} + // TestRun_Check_NamesEveryStaleAsset verifies the check pass reports all the // assets that drifted rather than the first one it meets. The exit code alone // is the same either way, so a run that stopped at the first would send a diff --git a/cmd/godoc_tool/docgo.go b/cmd/godoc_tool/docgo.go index 05f69c2d4..4b2870dc9 100644 --- a/cmd/godoc_tool/docgo.go +++ b/cmd/godoc_tool/docgo.go @@ -15,6 +15,7 @@ import ( "path/filepath" "strings" + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" "github.com/jmrplens/gitlab-mcp-server/v3/internal/sourcewalk" ) @@ -132,7 +133,9 @@ func (h *packageDocHolder) moveToDocGo(dir string) error { return fmt.Errorf("%s: package comment does not sit above the package clause", h.path) } - docGo := append(append([]byte{}, h.src[docStart:docEnd]...), []byte("\npackage "+h.file.Name.Name+"\n")...) + // A new doc.go opens with the header every source file carries, which + // the holder keeps above where its comment was. + docGo := append(append([]byte(fileheader.Go), h.src[docStart:docEnd]...), []byte("\npackage "+h.file.Name.Name+"\n")...) docGo, err := formatSource(docGo) if err != nil { return fmt.Errorf("format doc.go for %s: %w", dir, err) diff --git a/cmd/godoc_tool/docgo_test.go b/cmd/godoc_tool/docgo_test.go index 56146e22c..fcfef8078 100644 --- a/cmd/godoc_tool/docgo_test.go +++ b/cmd/godoc_tool/docgo_test.go @@ -10,6 +10,8 @@ import ( "path/filepath" "strings" "testing" + + "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/fileheader" ) // buildHolder parses src as a package file and returns the holder moveToDocGo @@ -36,7 +38,8 @@ func readFixtureFile(t *testing.T, dir, name string) string { // TestMovePackageDoc_MovesTheCommentIntoDocGo verifies the mechanical move: // the package comment lands verbatim in a new doc.go above its own package -// clause, the file it came from keeps its build constraint and loses only the +// clause, below the copyright and license header every source file opens +// with, the file it came from keeps its build constraint and loses only the // comment, and the audit is satisfied afterwards. func TestMovePackageDoc_MovesTheCommentIntoDocGo(t *testing.T) { pkg := writePackageFixture(t, "sample", map[string]string{ @@ -48,7 +51,7 @@ func TestMovePackageDoc_MovesTheCommentIntoDocGo(t *testing.T) { t.Fatalf("movePackageDoc() error = %v", err) } - if got, want := readFixtureFile(t, pkg.Dir, "doc.go"), "// Package sample provides a fixture.\n//\n// It has a second paragraph.\npackage sample\n"; got != want { + if got, want := readFixtureFile(t, pkg.Dir, "doc.go"), fileheader.Go+"// Package sample provides a fixture.\n//\n// It has a second paragraph.\npackage sample\n"; got != want { t.Errorf("doc.go = %q, want %q", got, want) } if got, want := readFixtureFile(t, pkg.Dir, "sample.go"), "//go:build linux\n\npackage sample\n\n// Exported is documented.\nfunc Exported() {}\n"; got != want { @@ -170,7 +173,7 @@ func TestMovePackageDoc_SkipsFilesOnceTheHolderIsFound(t *testing.T) { t.Errorf("movePackageDoc() error = %v", err) } }) - if got, want := readFixtureFile(t, pkg.Dir, "doc.go"), "// Package sample is documented here.\npackage sample\n"; got != want { + if got, want := readFixtureFile(t, pkg.Dir, "doc.go"), fileheader.Go+"// Package sample is documented here.\npackage sample\n"; got != want { t.Errorf("doc.go = %q, want %q", got, want) } if got := readFixtureFile(t, pkg.Dir, "zzz.go"); got != second { @@ -193,7 +196,7 @@ func TestMovePackageDoc_PassesOverFilesThatAreNotGoSource(t *testing.T) { t.Errorf("movePackageDoc() error = %v", err) } }) - if got, want := readFixtureFile(t, pkg.Dir, "doc.go"), "// Package sample provides a fixture.\npackage sample\n"; got != want { + if got, want := readFixtureFile(t, pkg.Dir, "doc.go"), fileheader.Go+"// Package sample provides a fixture.\npackage sample\n"; got != want { t.Errorf("doc.go = %q, want %q", got, want) } if got := readFixtureFile(t, pkg.Dir, "README.md"); got != readme { @@ -258,7 +261,7 @@ func TestMoveToDocGo_BoundsAreTheSlicesItTakes(t *testing.T) { t.Errorf("moveToDocGo() error = %v", err) } }) - if got, want := readFixtureFile(t, dir, "doc.go"), "/* Package sample is documented. */\npackage sample\n"; got != want { + if got, want := readFixtureFile(t, dir, "doc.go"), fileheader.Go+"/* Package sample is documented. */\npackage sample\n"; got != want { t.Errorf("doc.go = %q, want %q", got, want) } if got, want := readFixtureFile(t, dir, "sample.go"), "package sample\n"; got != want { @@ -275,7 +278,7 @@ func TestMoveToDocGo_BoundsAreTheSlicesItTakes(t *testing.T) { t.Errorf("moveToDocGo() error = %v", err) } }) - if got, want := readFixtureFile(t, dir, "doc.go"), src; got != want { + if got, want := readFixtureFile(t, dir, "doc.go"), fileheader.Go+src; got != want { t.Errorf("doc.go = %q, want %q", got, want) } }) diff --git a/cmd/internal/fileheader/doc.go b/cmd/internal/fileheader/doc.go new file mode 100644 index 000000000..5137a1f0a --- /dev/null +++ b/cmd/internal/fileheader/doc.go @@ -0,0 +1,21 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +// Package fileheader holds the two lines every source file of this repository +// opens with: the copyright statement, naming the maintainer LICENSE names as +// the holder, and the SPDX identifier of the license LICENSE grants. +// +// They live here, rather than in the gate that holds the tree to them, because +// a generated file carries them too and its generator is what writes them: +// cmd/gen_action_catalog_manifest, cmd/gen_action_grants and cmd/gen_brand +// each open the Go file they emit with [Go], and cmd/audit_file_headers judges +// every file, generated or written by hand, against the same constants. A +// header spelled once for the generators and once for the gate would drift, +// and the gate would then fail on a file the generator had just rewritten. +// +// The year is the one LICENSE carries, and it is the same in every file: the +// lines are a notice for the project, not a record of when each file was +// written. Changing the holder or the year is a change to these constants, to +// LICENSE, and to every file the fix mode of cmd/audit_file_headers rewrites +// from them. +package fileheader diff --git a/cmd/internal/fileheader/fileheader.go b/cmd/internal/fileheader/fileheader.go new file mode 100644 index 000000000..3dabf1dee --- /dev/null +++ b/cmd/internal/fileheader/fileheader.go @@ -0,0 +1,20 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package fileheader + +// CopyrightStatement is the copyright statement every source file carries, +// without the comment marker its language puts in front of it. +const CopyrightStatement = "Copyright (c) 2026 José M. Requena Plens" + +// LicenseStatement is the license statement every source file carries, in +// the form SPDX defines for naming a file's license in a comment near its +// top, without the comment marker. +const LicenseStatement = "SPDX-License-Identifier: MIT" + +// Go is how a Go source file opens: the two statements as line comments, then +// the blank line that keeps them apart from what follows. Without it a header +// directly above the package clause would be read as the package's doc +// comment, and one directly above a "Code generated" line would join that +// comment group. +const Go = "// " + CopyrightStatement + "\n// " + LicenseStatement + "\n\n" diff --git a/cmd/internal/fileheader/fileheader_test.go b/cmd/internal/fileheader/fileheader_test.go new file mode 100644 index 000000000..68df1c6db --- /dev/null +++ b/cmd/internal/fileheader/fileheader_test.go @@ -0,0 +1,49 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +package fileheader + +import ( + "go/parser" + "go/token" + "strings" + "testing" +) + +// TestGo_ParsesAsAFileCommentAndNotAsThePackageDoc verifies that a Go file +// opened with [Go] keeps the header out of the package's doc comment, both +// above the package clause and above a "Code generated" line, and that the +// header is the file's first comment group, carrying both statements. +func TestGo_ParsesAsAFileCommentAndNotAsThePackageDoc(t *testing.T) { + tests := []struct { + name string + body string + wantDoc string + }{ + {name: "package clause", body: "package demo\n", wantDoc: ""}, + {name: "package doc comment", body: "// Package demo is a demo.\npackage demo\n", wantDoc: "Package demo is a demo.\n"}, + {name: "generated marker", body: "// Code generated by a test; DO NOT EDIT.\n\npackage demo\n", wantDoc: ""}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + file, err := parser.ParseFile(token.NewFileSet(), "demo.go", Go+tt.body, parser.ParseComments) + if err != nil { + t.Fatalf("ParseFile() error = %v", err) + } + if got := file.Doc.Text(); got != tt.wantDoc { + t.Errorf("package doc = %q, want %q", got, tt.wantDoc) + } + if got, want := file.Comments[0].Text(), CopyrightStatement+"\n"+LicenseStatement+"\n"; got != want { + t.Errorf("first comment group = %q, want %q", got, want) + } + }) + } +} + +// TestGo_EndsWithTheBlankLine verifies the header ends with the one blank line +// that separates it from what follows, and with no more. +func TestGo_EndsWithTheBlankLine(t *testing.T) { + if !strings.HasSuffix(Go, "\n\n") || strings.HasSuffix(Go, "\n\n\n") { + t.Errorf("Go = %q, want it to end with exactly one blank line", Go) + } +} diff --git a/docs/development/README.md b/docs/development/README.md index dc1cbc8ee..9acc57e76 100644 --- a/docs/development/README.md +++ b/docs/development/README.md @@ -34,6 +34,7 @@ testing reference live in subfolders here. | [Dynamic Search Ranker](dynamic-search-ranker.md) | How `gitlab_find_action` ranks and matches queries | | [Command-Line Utilities](cmd-utilities.md) | The `cmd/` developer tools (generators and auditors) | | [Static Analysis](static-analysis.md) | The golangci-lint, govulncheck, and markdownlint gates | +| [Copyright and License Headers](file-headers.md) | The two lines every source file opens with, where each kind carries them, and how generated files get them | | [Godoc Compliance](godoc.md) | The godoc audit workflow for packages, symbols, and tests | | [Token Footprint](token-footprint.md) | Token accounting across tiers, surfaces, and schema modes | | [Resource Hot Spots](resource-hot-spots.md) | What a pooled credential costs in memory, what is shared, and what remains | diff --git a/docs/development/cmd-utilities.md b/docs/development/cmd-utilities.md index c92659327..966d0027e 100644 --- a/docs/development/cmd-utilities.md +++ b/docs/development/cmd-utilities.md @@ -48,6 +48,7 @@ Repository tooling is a Go command under `cmd/`, sharing what it needs through ` | `reproduce_release` | Release & supply-chain audits | Rebuilds every binary a release published from its tag and compares each with the published one byte for byte, or builds every release target of a tree twice and compares the two builds | `make check-reproducible`, `make check-repeatable` | | `audit_site_headers` | Release & supply-chain audits | Fetches the documentation site and judges the four security headers hardened_site names: losing one the site serves fails, one still waiting for the maintainer's Cloudflare rule is reported with the value to set | `make check-site-headers`, the `headers` job of `pages.yml` | | `audit_dco` | Release & supply-chain audits | Holds every commit a pull request brings to the Developer Certificate of Origin: each needs a `Signed-off-by` trailer naming its author; a merge that brings no change of its own is not judged, and a declared bot's commits are exempt in the pull requests it opens | `make check-dco`, the `dco` job of `ci.yml` | +| `audit_file_headers` | Release & supply-chain audits | Holds every source file git holds or would add to the copyright and license header it opens with, after a shebang, an encoding declaration, a Dockerfile parser directive or a CSS `@charset` rule, and inside an Astro component's frontmatter; another copyright or license notice fails at its line; `-fix` writes the header into a file missing it | `make check-file-headers`, `make fix-file-headers` | | `gen_action_catalog_manifest` | Generators | Generates the ActionSpec group-builder manifest | `make gen-action-catalog-manifest` | | `gen_lhm_manifest` | Generators | Generates the tools/prompts/resources arrays in `lhm.plugin.json` (LobeHub Marketplace) | `make gen-lhm-manifest` | | `gen_llms` | Generators | Generates `llms.txt` and `llms-full.txt` | `make gen-llms` | @@ -1878,6 +1879,35 @@ go run ./cmd/audit_dco/ -base -head -opened-by 'dependabot - `make check-dco`: judges `DCO_BASE..DCO_HEAD`, `origin/main..HEAD` by default, with `DCO_OPENED_BY` as `-opened-by` and `DCO_FLAGS` passed on. It reads git and nothing else, so it runs before a push; `make analyze` does not run it, since its answer depends on the branch rather than the tree. The `dco` job of `ci.yml` runs it on every pull request with the event's base and head commits, the login that opened it and `DCO_FLAGS=-annotate`, and skips itself on a push to `main`, which the `checks` job counts as a pass. +### audit_file_headers + +Holds every source file of the repository to the two lines it opens with, the copyright statement and the SPDX identifier of the license, as `cmd/internal/fileheader` spells them. What the header is, where each kind of file carries it, which files are source and how a generated file gets it are on [Copyright and License Headers](file-headers.md); this section is the command. + +The files are the ones git holds in its index and the untracked ones it would add, read with `git ls-files` from `-dir`, so the command runs in a checkout and not in a copy of the tree without its `.git`. A file fails when its header is not the two lines, in order, where its kind puts them, and at every comment line that carries another copyright or license notice. `-fix` writes the header into each file that fails only for the first reason, and never rewrites a file carrying another notice. + +#### Usage + +```bash +go run ./cmd/audit_file_headers/ +go run ./cmd/audit_file_headers/ -fix +``` + +#### Flags + +| Flag | Type | Default | Description | +| ------ | -------- | ------- | --------------------------------------------------------------------------------------- | +| `-dir` | `string` | `.` | The repository whose source files are judged | +| `-fix` | `bool` | `false` | Write the header into every file that does not open with it and carries no other notice | + +#### Output + +One line per finding, in path order: `: does not open with the copyright and license header`, and `:: carries a copyright or license notice that is not the header at its top` for every line carrying another notice. Under `-fix`, `: header written` for each file rewritten. Then `file headers: N of M source files fail` with the two lines and how to fix each finding, or `file headers: M source files, every one opening with the copyright and license header`, followed by `, N of them written by this run` after a fix. Exit `0` when every source file opens with the header, `1` when one still fails or could not be listed, stated, read or written (the finding on stdout, the error on stderr), and `2` for arguments it cannot use. + +#### Make targets + +- `make check-file-headers`: the gate. Step 32 of `make analyze`, and a step of the `generated` job of `ci.yml`, which runs on every pull request and every push to `main`. +- `make fix-file-headers`: the fix mode, for a new file or after the header changes. + ## Generators ### gen_action_catalog_manifest @@ -2903,6 +2933,7 @@ The following utilities expose a verification mode (`--check` or `-check`, or an | `check-image-vulns` | `audit_image_vulns` | No fixable HIGH or CRITICAL advisory the declaration table does not accept affects an Alpine package of the image, and every declaration matches and is current (needs Docker, so not run in CI) | Non-zero on an undeclared finding, a stale, expired or malformed declaration, or a report or database it cannot vouch for | | `check-site-headers` | `audit_site_headers` | The documentation site still sends every security header declared required, with a value that is not permissive (needs the network, so not run in CI; `pages.yml` runs it after each deploy) | Non-zero on a required header missing or permissive, or a page that could not be judged; a pending header only warns | | `check-dco` | `audit_dco` | Every commit of the branch, or in CI of the pull request, carries a `Signed-off-by` trailer naming its author (the `dco` job of `ci.yml`, on pull requests only) | Non-zero on a commit without its author's sign-off, or a range git could not read | +| `check-file-headers` | `audit_file_headers` | Every source file git holds or would add opens with the copyright and license header, and carries no other copyright or license notice | Non-zero on a file without the header or with another notice, or a file list git could not give | | `check-test-goroutines` | `audit_test_goroutines` | No `testing.T` abort is made off the test goroutine | Non-zero if any abort site exists | | `check-test-subtests` | `audit_test_subtests` | No case loop asserts without a `t.Run` subtest | Non-zero if any site remains | | `check-closed-servers` | `audit_test_closed_servers -check` | No `httptest` server is closed while its address is still used later in the function, and every entry of its declaration table excuses one | Non-zero on a finding, a stale or unknown declaration, or a hidden file that imports `net/http/httptest` | diff --git a/docs/development/file-headers.md b/docs/development/file-headers.md new file mode 100644 index 000000000..4c33a236b --- /dev/null +++ b/docs/development/file-headers.md @@ -0,0 +1,74 @@ +# Copyright and License Headers + +**Every source file of this repository opens with two lines naming its copyright holder and its license**, and a gate fails a file that does not. This page says what the lines are, which files carry them and where, how a generated file gets them, and what to do with a file this repository did not write. + +> **Diátaxis type**: Reference · **Audience**: 🛠️ Contributors & maintainers + +## The two lines + +```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT +``` + +The first is the copyright statement, naming the holder [LICENSE](../../LICENSE) names; the second names the license LICENSE grants in the form [SPDX](https://spdx.dev/learn/handling-license-info/) defines for a comment near the top of a file. They answer the OpenSSF Best Practices criteria `copyright_per_file` and `license_per_file`, which ask every source file to say both, so that a file copied out of the repository still says whose it is and under what terms. + +The year is the one LICENSE carries and it is the same in every file: the lines are a notice for the project, not a record of when each file was written. Both are constants in `cmd/internal/fileheader`, `CopyrightStatement` and `LicenseStatement`, beside `Go`, the form a Go file opens with. + +## Which files + +The files git holds in its index and the untracked ones it would add, so what `.gitignore` keeps out of the repository (`plan/`, `dist/`, `site/node_modules`) is never judged. Of those, the source files: + +| Kind | Files | Comment | Kept above the header | +| --------------------------- | -------------------------------------------------------------------- | --------- | ----------------------------------------------------- | +| Go | `*.go`, `testdata` included | `//` | nothing: the header comes before any build constraint | +| Shell, PowerShell, jq, Make | `*.sh`, `*.bash`, `*.ps1`, `*.psm1`, `*.jq`, `*.mk`, `Makefile` | `#` | a shebang | +| Python, Ruby | `*.py`, `*.rb` | `#` | a shebang, and an encoding declaration on line 1 or 2 | +| Dockerfile | `Dockerfile` | `#` | the parser directives (`syntax`, `escape`, `check`) | +| JavaScript, TypeScript | `*.js`, `*.mjs`, `*.cjs`, `*.jsx`, `*.ts`, `*.mts`, `*.cts`, `*.tsx` | `//` | a shebang | +| CSS | `*.css` | `/* … */` | a `@charset` rule | +| Astro | `*.astro` | `//` | the `---` fence that opens the frontmatter | + +What stays above the header is what stops working anywhere else: the kernel reads a shebang only as a file's first line, Python and Ruby read an encoding declaration only on the first two, BuildKit stops reading parser directives at the first comment, a browser honors `@charset` only as a stylesheet's first bytes, and a comment in an Astro component's template would be rendered into the page, so the header lives in its frontmatter. + +Documentation, data and configuration are not source and carry no header: Markdown and MDX, JSON, YAML (the workflows included), TOML, the pinned GraphQL schema, plain text, SVG and the images. Neither do symbolic links, which git lists but which point at a file judged in its own right. + +A Go file looks like this, a blank line keeping the header apart from what follows: + +```go +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + +//go:build e2e + +// Package harness is the one route from a test to a server. +package harness +``` + +Without the blank line the header would be read as the package's doc comment, which `cmd/godoc_tool` refuses, or would join the `// Code generated … DO NOT EDIT.` comment of a generated file, which Go's tools still find but a reader would not expect. + +## The gate and the fix + +`make check-file-headers` (`cmd/audit_file_headers`) fails on a source file that does not open with the two lines where its kind puts them, and at every comment line carrying another copyright or license notice: a comment whose text opens with the word `Copyright` or with an SPDX tag, such as a second copy of the header or one written below the package doc comment. The word has to end there, so a doc comment opening with an identifier such as `CopyrightStatement` is not a notice, while one opening with the word itself is, and is reworded. Each line is read alone, without the syntax of the file around it, so a line of a multi-line string or a heredoc that opens with a comment marker is read as a comment too. It is step 32 of `make analyze` and a step of the `generated` job of `ci.yml`, which runs on every pull request and every push to `main`. It reads git's file list, so it runs in a checkout rather than in a copy of the tree without its `.git`. + +`make fix-file-headers` writes the header into every file that does not open with it and carries no other notice, after what its kind keeps above it and followed by a blank line, keeping every other byte and the file's mode. That is how a new file gets it, though writing the two lines by hand is as good. The command's flags and output are in the [command reference](cmd-utilities.md#audit_file_headers). + +## Generated files + +A generated file carries the header because its generator writes it, never by an edit of the output: `cmd/gen_action_catalog_manifest`, `cmd/gen_action_grants` and `cmd/gen_brand` open the Go file each writes with `fileheader.Go`, before the `// Code generated` line, and each has a test holding it there (`TestGenerateManifest_OpensWithTheFileHeader`, `TestRenderTable_OpensWithTheFileHeader`, `TestBrandMarkGo_OpensWithTheFileHeader`). A new generator that writes source does the same; the gate fails its output otherwise, the first time it is regenerated. + +The other generators write documentation and data (the tool reference, the `llms*.txt` files, JSON records, SVG and WebP assets), which carry no header. + +## A file this repository did not write + +None is in the tree today: the module vendors nothing and the site's dependencies stay in `site/node_modules`, which git ignores. A file somebody else wrote keeps the notice it came with, so the gate never stamps this project's header on it: its own notice fails the gate at its line, and the fix mode leaves the file alone. Bringing one in is therefore a change to the gate as well, declaring that file with the reason it is kept as it came, in the change that adds it. + +## Changing the holder or the year + +The header is the two constants of `cmd/internal/fileheader`, LICENSE, and the two lines in every file. A change to the constants makes every existing header a notice other than the new one, which the fix mode does not rewrite, so the change is a bulk rewrite of those two lines across the tree, verified with `make check-file-headers` and the build, in the same pull request as the constants and LICENSE. + +## How the header reached every file + +The commit that added it to the tree was made by the fix mode, over the files as they stood on the branch it was made on, with one edit by hand: `cmd/audit_test_closed_servers` pins the line of every finding in its planted module, and the header moves each of them three lines down. Everything else the header would have broken or left pointing at the wrong line was changed in the commit before it, the one that adds the gate, so that making the rewrite again does not lose it: the help of `scripts/setup-orbit-fixtures.sh`, which printed a fixed range of the script's own lines and now prints its usage comment by pattern; three quoted compiler messages that name a line, in the testing README, `upstream-bugs.md` and `scripts/coverage-conditions.sh`; a comment in the end-to-end suite that named a line of `internal/tools/catalog_filter.go` and now names the declaration; and the header of `cmd/gen_action_grants/table_stub.go.txt`, the Go source the action grants generator compiles in its output's place, under a `.txt` name the gate does not read. + +Three lines inserted at the top of a file conflict only with a change to that file's first lines, so the rewrite conflicts with few pull requests. What it asks of every one of them is the header in each source file it adds, which the gate fails without and `make fix-file-headers` writes. It lands by being made again on `main` as it is at that moment rather than rebased, because made again it is exactly the fix mode's output over that tree, with no conflict to resolve and no file `main` added since left without the header: the commit with the gate rebased as usual, then `make fix-file-headers`, then the positions in `cmd/audit_test_closed_servers` moved again, which `go test ./cmd/audit_test_closed_servers/` names, as `go test ./...` would name any other test that counts the lines of a file. It is meant to land with no other stack open, and a pull request still open at that moment that adds a source file fails the gate until `make fix-file-headers` gives that file its header. diff --git a/docs/development/repository-map.md b/docs/development/repository-map.md index 24ea8c785..b57cc1601 100644 --- a/docs/development/repository-map.md +++ b/docs/development/repository-map.md @@ -29,6 +29,7 @@ gitlab-mcp-server/ │ ├── audit_image_vulns/ # Holds the image's Alpine packages to Trivy's vulnerability database, from one Trivy report per platform of the two smoke images the release's docker job scans between the smoke test and the push: a fixable HIGH or CRITICAL advisory fails unless `declarations.go` accepts it under `fix-not-yet-adoptable` (a base image package, with the day the alpine bump can land) or `not-affected`, a declaration past its day, or one that accepts nothing in a run of both platforms, fails too, and a report or database it cannot vouch for is refused; the binary's findings are printed and left to check-binary-vulns. Standard library only, since the job holds the push (make check-image-vulns, needs Docker; the weekly `image-vulns.yml` scans `latest`) │ ├── audit_site_headers/ # Fetches the documentation site after a deploy and judges the four security headers the OpenSSF Best Practices criterion hardened_site names, read from the live responses since Cloudflare sets them all: losing one the site serves fails, and one still waiting for the maintainer's Cloudflare rule is reported with the value to set (make check-site-headers, the headers job of pages.yml) │ ├── audit_dco/ # Holds every commit a pull request brings, between the base and the head its event names, to the Developer Certificate of Origin: each needs a Signed-off-by trailer naming its author, read as git reads trailers; a merge of two parents that brings no change of its own (git show --remerge-diff prints nothing for it) is not judged, every other merge is, and a declared bot's commits are exempt in a pull request that bot opened (make check-dco, the dco job of ci.yml) +│ ├── audit_file_headers/ # Holds every source file to the copyright and license header it opens with (`cmd/internal/fileheader`, see file-headers.md): the files git holds and the untracked ones it would add, read with `git ls-files` rather than a walk, since the list is what the repository publishes and the name rule of `internal/sourcewalk` would leave out `.github/scripts`; of those, Go, shell, PowerShell, Python, Ruby, jq, JavaScript and TypeScript, CSS, Astro, Makefiles and the Dockerfile, each with the header in its comment syntax after what has to stay above it (a shebang, an encoding declaration, a parser directive, a `@charset` rule, an Astro frontmatter fence). Another copyright or license notice fails at its line, so a file somebody else wrote is never stamped; `-fix` writes the header into a file that only lacks it (make check-file-headers, step 32 of make analyze and a step of ci.yml's generated job; make fix-file-headers) │ ├── reproduce_release/ # Rebuilds every binary a release published from a clone of its commit, with the configuration at that commit and the toolchain each published binary records, and compares each with the published one byte for byte, the universal darwin binary joined in the order the published one lists its slices; -twice builds every target of a tree twice, the second time with an empty build cache, offline and without git (make check-reproducible TAG=vX.Y.Z, the reproduce job of release.yml; make check-repeatable) │ ├── godoc_tool/ # Consolidated Go doc auditor + fixer (was audit_godocs + add_docs); `make check-godocs` gates package comments and exported symbols, and test functions stay a report (make audit-godocs-check) │ ├── audit_md_escaping/ # Fails when a Markdown formatter interpolates a GitLab-authored value into a table cell, heading, list item or link without EscapeMdTableCell/EscapeMdHeading/MdTitleLink, and when one lands inside a code fence the formatter wrote by hand rather than through MarkdownFencedBlock/MarkdownCodeFence; the fence context is decided by the writes before the hole rather than by its line, since a block opens on one line and closes on another; `Card.Markdown` and `CardTable.Row` are judged at the call site like `MarkdownTableRow`; `//gitlab:allow-unescaped : ` declares a value that needs none; the gate holds `internal/toolutil` to no unresolved value (make check-md-escaping). Two staged rules report without gating (`-contexts all,card,bool-time`, `make audit-md-escaping`): `card` lists every one-object card row written by hand instead of through `toolutil.Card`, and `bool-time` every flag or timestamp printed without BoolEmoji/FormatTime, excused by `//gitlab:allow-raw : ` @@ -63,7 +64,7 @@ gitlab-mcp-server/ │ ├── gen_testing_docs/ # Generates docs/development/testing/testing.md │ ├── gen_tool_reference/ # Writes the site's per-domain tool reference, one page per catalog group in English and Spanish under site/src/content/docs/reference/tools/ and its es/ twin: every action with its canonical ID, its meta-tool and individual tool (each held to the surface that registers it), its tier measured by building the catalog for self-managed and GitLab.com at Free, Premium and Ultimate, the scope a classic or OAuth token needs for it and what a fine-grained token needs (both read from the action grants table, the second in `cmd/internal/grantwords`' words with a link to the action's domain on the fine-grained permissions page; an action the table holds no classic scope for stops generation), its annotations, the description the dynamic surface serves, and its parameters with the tier each is served from. The overview and sample questions of each group are hand-written in domains.json, which has to name exactly the groups the catalog builds (make gen-tool-reference, make check-tool-reference) │ ├── gen_third_party_notices/ # Writes THIRD_PARTY_NOTICES at release time: the license, notice and patent texts of the Go standard library and of every module the release binaries link, read from each binary's own build information (`debug/buildinfo`, the list `go version -m` prints) and the module cache, merged across targets with a module only some targets link said so, plus the license files in the directory of every package a binary links and of each parent of one below its module root, listed per binary with `go list -deps` under the settings it records (issue 1137); refuses binaries of different builds, a target list other than `-targets`, a package listing that disagrees with a binary's build information in either direction, a module the cache lacks, one replaced by a local directory and one publishing no license file. GoReleaser runs it as the `third-party-notices` entry of `sboms`, after the builds and before `checksums.txt` is signed; the Dockerfile's builder runs it against the image's binary and `make mcpb` against the binaries it builds -│ └── internal/ # Helpers shared by the commands: actionrequests (which functions run when a catalog action is called and what they put on the wire: every `ActionSpec` construction resolved to its action name, its individual tool name and its handlers, joined to the catalog on the canonical ID, then walked with no depth bound through function literals, the function a route helper was handed, and package-level variable initializers, recording per body the GraphQL documents named, whether it reaches the GraphQL transport, and the client-go service methods it names; `cmd/audit_readonly_graphql` reads it and so does the fine-grained permission derivation of issue 952), sdkroutes (the one reader of which request each client-go service method sends, the verb and path of a REST method and the documents of a GraphQL one, keyed as actionrequests records them, following delegation into helpers with the constants a caller hands them and folding a legacy `NewRequest` path; R-PATH cuts its route views from it), actionids (the one reader of the canonical action IDs this repository publishes, and through `Catalogs` of the two catalog builds those IDs come from, and the one rule for spotting one inside prose: the catalog built at Ultimate for a self-managed instance and for GitLab.com together, the aliases that resolve to one of those IDs kept apart from the IDs themselves, and the test that decides which dotted token in a sentence is offered as an ID, which is that either half is one the catalog uses. Two gates ask the same question of two corpora, `cmd/audit_action_ids` of the source and `cmd/audit_doc_tool_names` of the documentation, and a spelling one accepts cannot be one the other refuses), apidocs (GitLab API doc fetcher, and the doc/api page listing R-PATH reads through it), apilive (the shape of the record a booted GitLab produces, and the one reader of it: entities keyed by their Ruby name, the routes indexed by the entity each renders, the tier a set of licensed features resolves to under the same highest-rank-wins rule the scanned record uses, and the translation to the OpenAPI record's own spelling so a reader holding one entity name can look up the other), auditshared, docgen (the one way a generated artifact is written and the one way a gate reports it stale: the write-or-check pair every generator calls, the containment the write happens under, the file mode that convention settled on, and the newline normalization two commands used to hold the same bytes to in their own copies; the managed-section replacement stays beside it and writes with the same mode, which never applies to the file it rewrites), graphqldocs (reads every raw GraphQL document out of the source, `.graphql` files included, and judges it against a schema for the two of its five callers that ask for that; `cmd/audit_readonly_graphql` takes the inventory and the one rule that says which of its documents carries a mutation, `DefinesMutation`, made of the same reading as `LooksLikeDocument` so no caller can judge a narrower set than the one it reads, `cmd/audit_graphql_shapes` takes it to name a document no decoder pairing of its own carries, and `cmd/gen_action_grants` reads client-go's documents through it as the requests a client-go method sends. `SDKDocuments` points the same walk at client-go's own module for R-PATH and for that derivation, with the environment a module-cache load needs and the rule that tells a template shell from sendable text, and `SDKDirectory` finds the client-go the module's go.mod requires. The walk renders a document written with holes in it wherever the call that fills them settles the text, a `fmt.Sprintf` format or a `text/template` whose set its package variables build, and says in `Assembly` why one stays a shell), graphqlintrospect (one introspection and SDL conversion for gen_graphql_schema and the live re-probe), grantwords (the one wording, in English and Spanish, of what a fine-grained token needs for an action, which the fine-grained permissions page and the per-domain tool reference both print, so one action reads one sentence on both), golist (the row shape the two commands that enumerate packages through `go list` ask for and parse back, and the GOROOT-joined `go` binary they run rather than a PATH lookup; each keeps its own patterns, tags, bound and runner. `audit_binary_vulns` (`go build`), `gen_third_party_notices` (`go env`, and `go list -deps` with a row format of its own, naming each package's module rather than its directory) and `measure_conditions` (`go list` under every release target, with rows naming the files each package builds) run that binary too), goprogram (the one go/packages front end for the eleven packages that type-check this repository's own source without NeedDeps, `audit_test_closed_servers` the latest of them: the load mode, the config, the overlay their fixtures need, the test variants five of them ask for and the build tags three of them pass, the environment the two loads of somebody else's module state (the document inventory's and the client-go run of `cmd/audit_graphql_shapes`), the rule that a package which did not type-check stops the run, and the facts of a load several gates read alike: the synthesized test executable told from source, the package a test variant is, a package and a file named the way the repository names them below a root made absolute before the load, and the files a build constraint hid that could hold what a gate looks for), mcpsurface (the one reader of the served surface: the per-surface listings, the offline stub client, the served-schema chain and the memo behind them), orbitrecord (the committed record of what GitLab.com's Orbit routes answered, its canonical form, the offline problems check and the key-tree diff, shared by `cmd/gen_orbit_record` and R-PATH), provenance (the age verdict the three commands that pin an external truth pass on their committed record, whose arithmetic two more read: the retrieval date's arithmetic, the default clock, the three ways a date fails, and the one staleness window with its one recorded reason, which is stated there and nowhere else; each command keeps its own Source type, floor, identity checks and dialect), requestinventory (the committed record of what this server sends GitLab, and the one definition of which catalog actions it covers), sourcegate (the scaffolding the source gates `audit_test_closed_servers`, `audit_sdk_context`, `audit_dead_consts` and `audit_tenancy` share above the load: the command line with its `-dir`, `-check` and `-v` and its exit codes, the exit seam their tests replace, the declaration table with its stale and unknown-category rules and the verdict a report embeds, and the `Type.Method` spelling every declaration key uses; each gate keeps its scanner, its findings, its report's words and its declarations), testsource (one "is this a Go test" predicate, one test-name classifier and one walk policy for the four commands that read `_test.go` files, the not-our-source half of it delegated to `internal/sourcewalk`; discovery stays with each of them) +│ └── internal/ # Helpers shared by the commands: actionrequests (which functions run when a catalog action is called and what they put on the wire: every `ActionSpec` construction resolved to its action name, its individual tool name and its handlers, joined to the catalog on the canonical ID, then walked with no depth bound through function literals, the function a route helper was handed, and package-level variable initializers, recording per body the GraphQL documents named, whether it reaches the GraphQL transport, and the client-go service methods it names; `cmd/audit_readonly_graphql` reads it and so does the fine-grained permission derivation of issue 952), sdkroutes (the one reader of which request each client-go service method sends, the verb and path of a REST method and the documents of a GraphQL one, keyed as actionrequests records them, following delegation into helpers with the constants a caller hands them and folding a legacy `NewRequest` path; R-PATH cuts its route views from it), actionids (the one reader of the canonical action IDs this repository publishes, and through `Catalogs` of the two catalog builds those IDs come from, and the one rule for spotting one inside prose: the catalog built at Ultimate for a self-managed instance and for GitLab.com together, the aliases that resolve to one of those IDs kept apart from the IDs themselves, and the test that decides which dotted token in a sentence is offered as an ID, which is that either half is one the catalog uses. Two gates ask the same question of two corpora, `cmd/audit_action_ids` of the source and `cmd/audit_doc_tool_names` of the documentation, and a spelling one accepts cannot be one the other refuses), apidocs (GitLab API doc fetcher, and the doc/api page listing R-PATH reads through it), apilive (the shape of the record a booted GitLab produces, and the one reader of it: entities keyed by their Ruby name, the routes indexed by the entity each renders, the tier a set of licensed features resolves to under the same highest-rank-wins rule the scanned record uses, and the translation to the OpenAPI record's own spelling so a reader holding one entity name can look up the other), auditshared, docgen (the one way a generated artifact is written and the one way a gate reports it stale: the write-or-check pair every generator calls, the containment the write happens under, the file mode that convention settled on, and the newline normalization two commands used to hold the same bytes to in their own copies; the managed-section replacement stays beside it and writes with the same mode, which never applies to the file it rewrites), fileheader (the two lines every source file opens with, the copyright statement and the SPDX identifier of the license, and the Go form a generator opens the file it writes with; `cmd/gen_action_catalog_manifest`, `cmd/gen_action_grants`, `cmd/gen_brand` and `cmd/audit_file_headers` read the same constants, so the header a generator writes is the header the gate holds it to), graphqldocs (reads every raw GraphQL document out of the source, `.graphql` files included, and judges it against a schema for the two of its five callers that ask for that; `cmd/audit_readonly_graphql` takes the inventory and the one rule that says which of its documents carries a mutation, `DefinesMutation`, made of the same reading as `LooksLikeDocument` so no caller can judge a narrower set than the one it reads, `cmd/audit_graphql_shapes` takes it to name a document no decoder pairing of its own carries, and `cmd/gen_action_grants` reads client-go's documents through it as the requests a client-go method sends. `SDKDocuments` points the same walk at client-go's own module for R-PATH and for that derivation, with the environment a module-cache load needs and the rule that tells a template shell from sendable text, and `SDKDirectory` finds the client-go the module's go.mod requires. The walk renders a document written with holes in it wherever the call that fills them settles the text, a `fmt.Sprintf` format or a `text/template` whose set its package variables build, and says in `Assembly` why one stays a shell), graphqlintrospect (one introspection and SDL conversion for gen_graphql_schema and the live re-probe), grantwords (the one wording, in English and Spanish, of what a fine-grained token needs for an action, which the fine-grained permissions page and the per-domain tool reference both print, so one action reads one sentence on both), golist (the row shape the two commands that enumerate packages through `go list` ask for and parse back, and the GOROOT-joined `go` binary they run rather than a PATH lookup; each keeps its own patterns, tags, bound and runner. `audit_binary_vulns` (`go build`), `gen_third_party_notices` (`go env`, and `go list -deps` with a row format of its own, naming each package's module rather than its directory) and `measure_conditions` (`go list` under every release target, with rows naming the files each package builds) run that binary too), goprogram (the one go/packages front end for the eleven packages that type-check this repository's own source without NeedDeps, `audit_test_closed_servers` the latest of them: the load mode, the config, the overlay their fixtures need, the test variants five of them ask for and the build tags three of them pass, the environment the two loads of somebody else's module state (the document inventory's and the client-go run of `cmd/audit_graphql_shapes`), the rule that a package which did not type-check stops the run, and the facts of a load several gates read alike: the synthesized test executable told from source, the package a test variant is, a package and a file named the way the repository names them below a root made absolute before the load, and the files a build constraint hid that could hold what a gate looks for), mcpsurface (the one reader of the served surface: the per-surface listings, the offline stub client, the served-schema chain and the memo behind them), orbitrecord (the committed record of what GitLab.com's Orbit routes answered, its canonical form, the offline problems check and the key-tree diff, shared by `cmd/gen_orbit_record` and R-PATH), provenance (the age verdict the three commands that pin an external truth pass on their committed record, whose arithmetic two more read: the retrieval date's arithmetic, the default clock, the three ways a date fails, and the one staleness window with its one recorded reason, which is stated there and nowhere else; each command keeps its own Source type, floor, identity checks and dialect), requestinventory (the committed record of what this server sends GitLab, and the one definition of which catalog actions it covers), sourcegate (the scaffolding the source gates `audit_test_closed_servers`, `audit_sdk_context`, `audit_dead_consts` and `audit_tenancy` share above the load: the command line with its `-dir`, `-check` and `-v` and its exit codes, the exit seam their tests replace, the declaration table with its stale and unknown-category rules and the verdict a report embeds, and the `Type.Method` spelling every declaration key uses; each gate keeps its scanner, its findings, its report's words and its declarations), testsource (one "is this a Go test" predicate, one test-name classifier and one walk policy for the four commands that read `_test.go` files, the not-our-source half of it delegated to `internal/sourcewalk`; discovery stays with each of them) ├── internal/ │ ├── cachehints/ # SEP-2549 cache hints (ttlMs/cacheScope) on MCP results │ ├── capguard/ # Keeps the methods answered in step with the capabilities declared diff --git a/docs/development/static-analysis.md b/docs/development/static-analysis.md index 396f91269..a82561ba7 100644 --- a/docs/development/static-analysis.md +++ b/docs/development/static-analysis.md @@ -103,12 +103,12 @@ gotestsum --version ### Combined Targets -| Target | Description | -| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `make analyze` | Run, in order: `golangci-lint config verify`, `golangci-lint fmt --diff`, `golangci-lint run`, the unread-constant gate, `govulncheck`, `markdownlint`, the test-goroutine abort gate, the subtest gate, the supply-chain policy gate, the Markdown escaping gate, the published-action-ID gate, the pinned GraphQL schema, the GraphQL document gate, the request-path gate, the meta-description gate, the pinned GitLab API record, the GraphQL response-shape gate, the catalog-first gate, the static e2e coverage gate, the e2e coverage record, the MCP tool surface quality gate, the SDK context gate, the tenant policy gate, the recorded Orbit answers, the release binaries at module grain, the fine-grained derivation, the fine-grained permissions per action, the fine-grained grants (R-GRANT), parameter requiredness (R-INPUT), the closed-server gate and the Go doc comment gate | -| `make analyze-fix` | Apply auto-fixes with `golangci-lint fmt`, `golangci-lint run --fix`, and `markdownlint --fix` | -| `make analyze-report` | Generate a combined Markdown report at `dist/analysis/report.txt` | -| `make lint` | Backward-compatible alias for `make golangci-lint` | +| Target | Description | +| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `make analyze` | Run, in order: `golangci-lint config verify`, `golangci-lint fmt --diff`, `golangci-lint run`, the unread-constant gate, `govulncheck`, `markdownlint`, the test-goroutine abort gate, the subtest gate, the supply-chain policy gate, the Markdown escaping gate, the published-action-ID gate, the pinned GraphQL schema, the GraphQL document gate, the request-path gate, the meta-description gate, the pinned GitLab API record, the GraphQL response-shape gate, the catalog-first gate, the static e2e coverage gate, the e2e coverage record, the MCP tool surface quality gate, the SDK context gate, the tenant policy gate, the recorded Orbit answers, the release binaries at module grain, the fine-grained derivation, the fine-grained permissions per action, the fine-grained grants (R-GRANT), parameter requiredness (R-INPUT), the closed-server gate, the Go doc comment gate and the copyright and license header gate | +| `make analyze-fix` | Apply auto-fixes with `golangci-lint fmt`, `golangci-lint run --fix`, and `markdownlint --fix` | +| `make analyze-report` | Generate a combined Markdown report at `dist/analysis/report.txt` | +| `make lint` | Backward-compatible alias for `make golangci-lint` | ### Project Audit Targets @@ -161,6 +161,8 @@ gotestsum --version | `make audit-godocs` | Generate `dist/analysis/godoc.md` with package, exported symbol, and test documentation findings | | `make audit-godocs-check` | Run the same Godoc audit, test functions included, and fail if findings remain; not a gate while test functions without a conforming comment remain | | `make check-godocs` | Fail when a package comment is missing, malformed, doubled or outside `doc.go`, when an exported function, method, type or single-name const or var has no comment opening with its name, or when a const or var group of several exported names has no comment on the group and leaves a name without one, or with one that does not open with it; step 31 of `make analyze` and a step of CI's `generated` job | +| `make check-file-headers` | Fail when a source file does not open with the copyright line and `SPDX-License-Identifier: MIT` where its kind puts them, or carries another copyright or license notice; step 32 of `make analyze` and a step of CI's `generated` job ([Copyright and License Headers](file-headers.md)) | +| `make fix-file-headers` | Write the header into every source file that does not open with it and carries no other notice | ## Tool Details diff --git a/docs/development/testing/README.md b/docs/development/testing/README.md index 8dca8a7ef..cac59155c 100644 --- a/docs/development/testing/README.md +++ b/docs/development/testing/README.md @@ -232,7 +232,7 @@ left to test. **An external test package gobco cannot read is staged as well.** gobco resolves the `_test` package against the non-test files alone, so -`internal/tools/todos` died with `action_specs_test.go:49:27: undefined: +`internal/tools/todos` died with `action_specs_test.go:52:27: undefined: todos.PublishedActionIDs`, a name its `export_test.go` declares, before instrumenting anything. And it bridges that package to the instrumented one through an import of the package it finds in the directory, so diff --git a/docs/development/upstream-bugs.md b/docs/development/upstream-bugs.md index cd26c7bc3..5a5399d2c 100644 --- a/docs/development/upstream-bugs.md +++ b/docs/development/upstream-bugs.md @@ -16110,7 +16110,7 @@ the issue's minimal reproduction with Go 1.27.1, measured on 2026-10-08. symbol to a package's black box tests: a file of `package x`, compiled only into the test binary, that `x_test` reads. `go test` builds it and gobco cannot: on `internal/tools/todos` it dies with -`action_specs_test.go:49:27: undefined: todos.PublishedActionIDs` before it +`action_specs_test.go:52:27: undefined: todos.PublishedActionIDs` before it writes a single counter. **How we found it**: the condition gate, first on `internal/clientcompat` diff --git a/internal/tools/action_specs_manifest_gen.go b/internal/tools/action_specs_manifest_gen.go index 48b908a3d..1bf30afb5 100644 --- a/internal/tools/action_specs_manifest_gen.go +++ b/internal/tools/action_specs_manifest_gen.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Code generated by cmd/gen_action_catalog_manifest; DO NOT EDIT. package tools diff --git a/internal/tools/actiongrants/table_gen.go b/internal/tools/actiongrants/table_gen.go index 42d80967d..c1d6e5ba0 100644 --- a/internal/tools/actiongrants/table_gen.go +++ b/internal/tools/actiongrants/table_gen.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Code generated by cmd/gen_action_grants; DO NOT EDIT. package actiongrants diff --git a/internal/toolutil/brandmark_gen.go b/internal/toolutil/brandmark_gen.go index f33331178..27d0cbd9f 100644 --- a/internal/toolutil/brandmark_gen.go +++ b/internal/toolutil/brandmark_gen.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Code generated by cmd/gen_brand; DO NOT EDIT. package toolutil diff --git a/scripts/coverage-conditions.sh b/scripts/coverage-conditions.sh index b7cf21ef0..d79cf94b4 100755 --- a/scripts/coverage-conditions.sh +++ b/scripts/coverage-conditions.sh @@ -9,7 +9,7 @@ # function twice, once per platform, stops with a redeclaration panic before # anything is measured: # -# panic: probe_linux.go:5:6: peerStdinIsNull redeclared in this block +# panic: probe_linux.go:8:6: peerStdinIsNull redeclared in this block # # Three packages here are in that shape: cmd/server (peerStdinIsNull, # bindUnixSocket and isConnRefused, each declared once for Linux or Unix and @@ -68,7 +68,7 @@ # an export_test.go is for, is undefined there, and gobco panics before # anything is measured: # -# panic: action_specs_test.go:49:27: undefined: todos.PublishedActionIDs +# panic: action_specs_test.go:52:27: undefined: todos.PublishedActionIDs # # That was 27 packages here when the whole tree was first measured # (rillig/gobco#42, with the fix in review as rillig/gobco#43). The copy makes diff --git a/scripts/setup-orbit-fixtures.sh b/scripts/setup-orbit-fixtures.sh index be9b396b0..5b04aabb1 100755 --- a/scripts/setup-orbit-fixtures.sh +++ b/scripts/setup-orbit-fixtures.sh @@ -54,7 +54,9 @@ for arg in "$@"; do --mirror-cli) MIRROR_CLI=true ;; --skip-mirror) SKIP_MIRROR=true ;; -h|--help) - sed -n '2,44p' "$0" + # The usage comment, from its first line to the blank line that ends + # it, found by its text so that no line above it shifts what is shown. + sed -n '/^# setup-orbit-fixtures\.sh /,/^$/{/./p;}' "$0" exit 0 ;; *) echo "unknown flag: $arg" >&2; exit 2 ;; diff --git a/scripts/setup_orbit_fixtures_sh_test.py b/scripts/setup_orbit_fixtures_sh_test.py index 2fb136dd7..49dd2c3a2 100644 --- a/scripts/setup_orbit_fixtures_sh_test.py +++ b/scripts/setup_orbit_fixtures_sh_test.py @@ -13,6 +13,8 @@ shape of the default jmrp-oss/orbit-fixtures: the project lookup sent the namespace's own slash unencoded, which GitLab answers 404, so the script tried to create a project that already existed and stopped when GitLab refused it. +So is --help, which prints the script's usage comment and asks GitLab for +nothing. Each case runs the real script with a stand-in curl first on PATH. It logs every request as its method and path, answers each from a table of routes @@ -188,6 +190,17 @@ def test_a_nested_namespace_finds_its_existing_projects(self): self.assertEqual(self.requests("POST"), []) self.assertIn("project exists: jmrp-oss/orbit-fixtures/kg-fixtures (id=%d)" % KG_ID, result.stderr) + def test_help_prints_the_whole_usage_comment(self): + result = subprocess.run(["bash", SCRIPT, "--help"], env=self.env, capture_output=True, text=True, timeout=60) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + lines = result.stdout.splitlines() + self.assertTrue(lines[0].startswith("# setup-orbit-fixtures.sh "), lines[:3]) + self.assertTrue(lines[-1].endswith("Re-runs are safe."), lines[-3:]) + self.assertTrue(all(line.startswith("#") for line in lines), lines) + self.assertNotIn("Copyright", result.stdout) + self.assertNotIn("SPDX-License-Identifier", result.stdout) + self.assertEqual(self.requests("GET"), []) + if __name__ == "__main__": unittest.main() diff --git a/test/e2e/gitlab/common/mcp_exclusions_test.go b/test/e2e/gitlab/common/mcp_exclusions_test.go index 70dcefb3f..61ad35cbe 100644 --- a/test/e2e/gitlab/common/mcp_exclusions_test.go +++ b/test/e2e/gitlab/common/mcp_exclusions_test.go @@ -121,9 +121,9 @@ func TestExcludeTools_LeavesEverythingElseAlone(t *testing.T) { // model reading "unknown action, did you mean ..." concludes the server lacks // the capability rather than that something narrowed it. An action // --exclude-tools removed is the other way round: `ExcludedByName` is kept out -// of the withheld lists on purpose (internal/tools/catalog_filter.go:28), since -// naming it would leak the operator's configuration and contradict the -// exclusion that operator asked for. +// of the withheld lists on purpose (the doc comment of WithheldActions in +// internal/tools/catalog_filter.go), since naming it would leak the operator's +// configuration and contradict the exclusion that operator asked for. // // So the assertion here is that the refusal gives nothing away: it must not // name the exclusion, the tool, or the configuration. This is the scenario From ca76db6409b55278671e78042aae6b5356ce1fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20M=2E=20Requena=20Plens?= Date: Tue, 27 Oct 2026 02:22:11 +0100 Subject: [PATCH 3/3] chore: carry a copyright line and SPDX-License-Identifier: MIT in every source file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every source file of the repository now opens with "Copyright (c) 2026 José M. Requena Plens" and "SPDX-License-Identifier: MIT", as comments of its language, which answers the OpenSSF Best Practices criteria copyright_per_file and license_per_file. make fix-file-headers wrote the header into the 3419 files that lacked it: 3278 Go files (testdata included), 54 Python, 36 shell, 18 MJS, 13 Astro, 9 CSS, 5 TypeScript, and the Ruby, PowerShell, JavaScript and jq files, the Makefile and the Dockerfile. A shebang, the Dockerfile's syntax directive and each Astro component's frontmatter fence stay above it, and every other byte and every file mode is kept. The three generated Go files and the action grants stub carry it already, from the previous commit. One edit is by hand. cmd/audit_test_closed_servers pins the line of every finding in its planted module, which the header moves three lines down, so the 64 positions of plantedFindings and the three literals beside them move by three; each of the new values is what the audit reports. go build, go vet, the e2e build, the whole unit suite, the harness, HTTP and stdio transport suites, golangci-lint and its formatters over the tree, every step of make analyze, the Python script tests, the bundle manifests jq derives and the site's checks, build and lint pass over the rewritten tree, and make check-file-headers reports all 3432 source files carrying the header. Refs #1269 Signed-off-by: José M. Requena Plens --- .github/scripts/cosign-sign-retry.sh | 3 + .github/scripts/go-test-crash-aware.sh | 3 + .github/scripts/needs-verdict.sh | 3 + .github/scripts/referrers-fallback-repair.sh | 3 + Dockerfile | 2 + Makefile | 3 + cmd/audit_1to1/doc.go | 3 + cmd/audit_1to1/doc_validate.go | 3 + cmd/audit_1to1/doc_validate_test.go | 3 + cmd/audit_1to1/internal/actions/analyze.go | 3 + .../internal/actions/analyze_test.go | 3 + cmd/audit_1to1/internal/actions/doc.go | 3 + cmd/audit_1to1/internal/enums/analyze.go | 3 + cmd/audit_1to1/internal/enums/analyze_test.go | 3 + cmd/audit_1to1/internal/enums/doc.go | 3 + cmd/audit_1to1/internal/enums/exemptions.go | 3 + cmd/audit_1to1/internal/grants/actions.go | 3 + .../internal/grants/actions_test.go | 3 + cmd/audit_1to1/internal/grants/analyze.go | 3 + .../internal/grants/analyze_test.go | 3 + cmd/audit_1to1/internal/grants/classic.go | 3 + .../internal/grants/classic_test.go | 3 + cmd/audit_1to1/internal/grants/consistency.go | 3 + .../internal/grants/consistency_test.go | 3 + cmd/audit_1to1/internal/grants/doc.go | 3 + cmd/audit_1to1/internal/grants/e2e.go | 3 + cmd/audit_1to1/internal/grants/e2e_test.go | 3 + cmd/audit_1to1/internal/grants/inventory.go | 3 + .../internal/grants/inventory_test.go | 3 + cmd/audit_1to1/internal/grants/worklist.go | 3 + .../internal/grants/worklist_test.go | 3 + cmd/audit_1to1/internal/merge/doc.go | 3 + cmd/audit_1to1/internal/merge/merge.go | 3 + cmd/audit_1to1/internal/merge/merge_test.go | 3 + cmd/audit_1to1/internal/merge/types.go | 3 + cmd/audit_1to1/internal/metadata/analyze.go | 3 + .../internal/metadata/analyze_test.go | 3 + cmd/audit_1to1/internal/metadata/doc.go | 3 + cmd/audit_1to1/internal/paths/always_sent.go | 3 + .../internal/paths/always_sent_test.go | 3 + cmd/audit_1to1/internal/paths/analyze.go | 3 + cmd/audit_1to1/internal/paths/analyze_test.go | 3 + cmd/audit_1to1/internal/paths/declarations.go | 3 + cmd/audit_1to1/internal/paths/doc.go | 3 + cmd/audit_1to1/internal/paths/e2e_observed.go | 3 + .../internal/paths/e2e_observed_test.go | 3 + .../internal/paths/endpoint_declarations.go | 3 + .../paths/endpoint_declarations_test.go | 3 + cmd/audit_1to1/internal/paths/endpoints.go | 3 + .../internal/paths/endpoints_test.go | 3 + cmd/audit_1to1/internal/paths/identifiers.go | 3 + .../internal/paths/identifiers_test.go | 3 + cmd/audit_1to1/internal/paths/observed.go | 3 + .../internal/paths/observed_test.go | 3 + .../internal/paths/orbit_declarations.go | 3 + .../internal/paths/orbit_declarations_test.go | 3 + cmd/audit_1to1/internal/paths/orbit_kinds.go | 3 + .../internal/paths/orbit_kinds_test.go | 3 + cmd/audit_1to1/internal/paths/orbit_record.go | 3 + .../internal/paths/orbit_record_test.go | 3 + cmd/audit_1to1/internal/paths/pagination.go | 3 + .../internal/paths/pagination_declarations.go | 3 + .../paths/pagination_declarations_test.go | 3 + .../internal/paths/pagination_test.go | 3 + cmd/audit_1to1/internal/paths/published.go | 3 + .../internal/paths/published_test.go | 3 + .../internal/paths/scope_entities.go | 3 + .../internal/paths/scope_entities_test.go | 3 + cmd/audit_1to1/internal/paths/sdk_graphql.go | 3 + .../internal/paths/sdk_graphql_test.go | 3 + cmd/audit_1to1/internal/paths/sdk_options.go | 3 + .../internal/paths/sdk_options_test.go | 3 + cmd/audit_1to1/internal/paths/sdk_routes.go | 3 + .../internal/paths/sdk_routes_test.go | 3 + cmd/audit_1to1/internal/paths/sent.go | 3 + .../internal/paths/sent_declarations.go | 3 + .../internal/paths/sent_declarations_test.go | 3 + cmd/audit_1to1/internal/paths/sent_test.go | 3 + .../internal/paths/shape_declarations.go | 3 + .../internal/paths/shape_declarations_test.go | 3 + cmd/audit_1to1/internal/paths/shapes.go | 3 + cmd/audit_1to1/internal/paths/shapes_test.go | 3 + cmd/audit_1to1/internal/paths/typed_shapes.go | 3 + .../internal/paths/typed_shapes_test.go | 3 + cmd/audit_1to1/internal/required/analyze.go | 3 + .../internal/required/analyze_test.go | 3 + .../internal/required/declarations.go | 3 + .../internal/required/declarations_test.go | 3 + cmd/audit_1to1/internal/required/doc.go | 3 + cmd/audit_1to1/internal/required/place.go | 3 + .../internal/required/place_test.go | 3 + cmd/audit_1to1/internal/sdk/analyze.go | 3 + cmd/audit_1to1/internal/sdk/analyze_test.go | 3 + cmd/audit_1to1/internal/sdk/decisions.go | 3 + cmd/audit_1to1/internal/sdk/decisions_test.go | 3 + cmd/audit_1to1/internal/sdk/doc.go | 3 + cmd/audit_1to1/internal/sdk/graphql.go | 3 + cmd/audit_1to1/internal/sdk/graphql_test.go | 3 + cmd/audit_1to1/internal/sdk/services.go | 3 + cmd/audit_1to1/internal/sdk/services_test.go | 3 + cmd/audit_1to1/internal/shared/client_go.go | 3 + .../internal/shared/client_go_test.go | 3 + cmd/audit_1to1/internal/shared/doc.go | 3 + cmd/audit_1to1/internal/shared/shared.go | 3 + cmd/audit_1to1/internal/shared/shared_test.go | 3 + cmd/audit_1to1/internal/shared/tags.go | 3 + cmd/audit_1to1/internal/shared/tags_test.go | 3 + cmd/audit_1to1/internal/structs/analyze.go | 3 + .../internal/structs/analyze_test.go | 3 + cmd/audit_1to1/internal/structs/diff_run.go | 3 + .../internal/structs/diff_run_test.go | 3 + cmd/audit_1to1/internal/structs/doc.go | 3 + cmd/audit_1to1/internal/structs/pairings.go | 3 + .../internal/structs/pairings_test.go | 3 + .../internal/structs/projections.go | 3 + .../internal/structs/projections_test.go | 3 + cmd/audit_1to1/main.go | 3 + cmd/audit_1to1/main_test.go | 3 + cmd/audit_action_ids/declarations.go | 3 + cmd/audit_action_ids/declarations_test.go | 3 + cmd/audit_action_ids/doc.go | 3 + cmd/audit_action_ids/fix_hints.go | 3 + cmd/audit_action_ids/fix_hints_test.go | 3 + cmd/audit_action_ids/fold.go | 3 + cmd/audit_action_ids/fold_test.go | 3 + cmd/audit_action_ids/hints.go | 3 + cmd/audit_action_ids/hints_test.go | 3 + cmd/audit_action_ids/main.go | 3 + cmd/audit_action_ids/main_test.go | 3 + cmd/audit_action_ids/report.go | 3 + cmd/audit_action_ids/report_test.go | 3 + cmd/audit_action_ids/source.go | 3 + cmd/audit_action_ids/source_test.go | 3 + cmd/audit_action_ids/suite.go | 3 + cmd/audit_action_ids/suite_test.go | 3 + cmd/audit_binary_vulns/build.go | 3 + cmd/audit_binary_vulns/build_test.go | 3 + cmd/audit_binary_vulns/declarations.go | 3 + cmd/audit_binary_vulns/declarations_test.go | 3 + cmd/audit_binary_vulns/doc.go | 3 + cmd/audit_binary_vulns/goreleaser.go | 3 + cmd/audit_binary_vulns/goreleaser_test.go | 3 + cmd/audit_binary_vulns/main.go | 3 + cmd/audit_binary_vulns/main_test.go | 3 + cmd/audit_binary_vulns/report.go | 3 + cmd/audit_binary_vulns/report_test.go | 3 + cmd/audit_binary_vulns/scan.go | 3 + cmd/audit_binary_vulns/scan_test.go | 3 + cmd/audit_catalog_first/declarations.go | 3 + cmd/audit_catalog_first/doc.go | 3 + cmd/audit_catalog_first/main.go | 3 + cmd/audit_catalog_first/main_test.go | 3 + cmd/audit_catalog_first/orphan_specs.go | 3 + cmd/audit_catalog_first/orphan_specs_test.go | 3 + cmd/audit_dco/bots.go | 3 + cmd/audit_dco/bots_test.go | 3 + cmd/audit_dco/doc.go | 3 + cmd/audit_dco/git.go | 3 + cmd/audit_dco/git_test.go | 3 + cmd/audit_dco/main.go | 3 + cmd/audit_dco/main_test.go | 3 + cmd/audit_dco/report.go | 3 + cmd/audit_dco/report_test.go | 3 + cmd/audit_dco/signoff.go | 3 + cmd/audit_dco/signoff_test.go | 3 + cmd/audit_dead_consts/declarations.go | 3 + cmd/audit_dead_consts/declarations_test.go | 3 + cmd/audit_dead_consts/doc.go | 3 + cmd/audit_dead_consts/main.go | 3 + cmd/audit_dead_consts/main_test.go | 3 + cmd/audit_dead_consts/report.go | 3 + cmd/audit_dead_consts/report_test.go | 3 + cmd/audit_dead_consts/scan.go | 3 + cmd/audit_dead_consts/scan_test.go | 3 + cmd/audit_discovery_completeness/doc.go | 3 + cmd/audit_discovery_completeness/main.go | 3 + cmd/audit_discovery_completeness/main_test.go | 3 + cmd/audit_doc_tool_names/doc.go | 3 + cmd/audit_doc_tool_names/ids.go | 3 + cmd/audit_doc_tool_names/main.go | 3 + cmd/audit_doc_tool_names/main_test.go | 3 + cmd/audit_dynamic_aliases/doc.go | 3 + cmd/audit_dynamic_aliases/main.go | 3 + cmd/audit_dynamic_aliases/main_test.go | 3 + cmd/audit_e2e_coverage/baseline.go | 3 + cmd/audit_e2e_coverage/baseline_test.go | 3 + cmd/audit_e2e_coverage/catalog.go | 3 + cmd/audit_e2e_coverage/catalog_test.go | 3 + cmd/audit_e2e_coverage/check.go | 3 + cmd/audit_e2e_coverage/check_test.go | 3 + cmd/audit_e2e_coverage/classify.go | 3 + cmd/audit_e2e_coverage/classify_test.go | 3 + cmd/audit_e2e_coverage/doc.go | 3 + cmd/audit_e2e_coverage/exemptions.go | 3 + cmd/audit_e2e_coverage/exemptions_test.go | 3 + cmd/audit_e2e_coverage/fine_grained.go | 3 + cmd/audit_e2e_coverage/fine_grained_test.go | 3 + cmd/audit_e2e_coverage/main.go | 3 + cmd/audit_e2e_coverage/main_test.go | 3 + cmd/audit_e2e_coverage/portmap.go | 3 + cmd/audit_e2e_coverage/portmap_test.go | 3 + cmd/audit_e2e_coverage/records.go | 3 + cmd/audit_e2e_coverage/records_test.go | 3 + cmd/audit_e2e_coverage/release.go | 3 + cmd/audit_e2e_coverage/release_test.go | 3 + cmd/audit_e2e_coverage/report.go | 3 + cmd/audit_e2e_coverage/report_test.go | 3 + cmd/audit_e2e_coverage/results.go | 3 + cmd/audit_e2e_coverage/results_test.go | 3 + cmd/audit_e2e_coverage/runtime_record.go | 3 + .../runtime_record_check.go | 3 + .../runtime_record_check_test.go | 3 + cmd/audit_e2e_coverage/runtime_record_page.go | 3 + .../runtime_record_page_test.go | 3 + cmd/audit_e2e_coverage/runtime_record_test.go | 3 + cmd/audit_e2e_coverage/skip_declarations.go | 3 + .../skip_declarations_test.go | 3 + cmd/audit_e2e_coverage/skips.go | 3 + cmd/audit_e2e_coverage/skips_test.go | 3 + cmd/audit_e2e_coverage/static.go | 3 + cmd/audit_e2e_coverage/static_exports.go | 3 + cmd/audit_e2e_coverage/static_scan.go | 3 + cmd/audit_e2e_coverage/static_scan_test.go | 3 + cmd/audit_e2e_coverage/static_test.go | 3 + .../portmap/new/.hidden/hidden_test.go | 3 + .../testdata/portmap/new/common/helpers.go | 3 + .../portmap/new/common/issues_test.go | 3 + .../portmap/old/nested/nested_test.go | 3 + .../testdata/portmap/old/suite_test.go | 3 + .../testdata/static/internal/edition/tier.go | 3 + .../testdata/static/test/e2e/gitlab/ce/doc.go | 3 + .../static/test/e2e/gitlab/ce/planted_test.go | 3 + .../static/test/e2e/gitlab/common/doc.go | 3 + .../test/e2e/gitlab/common/planted_test.go | 3 + .../testdata/static/test/e2e/gitlab/ee/doc.go | 3 + .../static/test/e2e/gitlab/ee/planted_test.go | 3 + .../static/test/e2e/gitlab/legacy/doc.go | 3 + .../test/e2e/gitlab/legacy/planted_test.go | 3 + .../static/test/e2e/internal/e2ectl/main.go | 3 + .../static/test/e2e/internal/harness/doc.go | 3 + .../test/e2e/internal/harness/harness.go | 3 + .../test/e2e/internal/harness/harness_test.go | 3 + .../testdata/static/test/e2e/modeleval/doc.go | 3 + .../static/test/e2e/modeleval/model.go | 3 + cmd/audit_edition_tier/doc.go | 3 + cmd/audit_edition_tier/doc_map.go | 3 + cmd/audit_edition_tier/doc_map_data.go | 3 + cmd/audit_edition_tier/main.go | 3 + cmd/audit_edition_tier/main_test.go | 3 + cmd/audit_edition_tier/param_tiers.go | 3 + cmd/audit_edition_tier/param_tiers_test.go | 3 + cmd/audit_edition_tier/tier_exceptions.go | 3 + cmd/audit_gateway_chars/doc.go | 3 + cmd/audit_gateway_chars/main.go | 3 + cmd/audit_gateway_chars/main_test.go | 3 + cmd/audit_graphql_documents/doc.go | 3 + cmd/audit_graphql_documents/drift.go | 3 + cmd/audit_graphql_documents/drift_test.go | 3 + cmd/audit_graphql_documents/live.go | 3 + cmd/audit_graphql_documents/live_test.go | 3 + cmd/audit_graphql_documents/main.go | 3 + cmd/audit_graphql_documents/main_test.go | 3 + cmd/audit_graphql_shapes/doc.go | 3 + cmd/audit_graphql_shapes/main.go | 3 + cmd/audit_graphql_shapes/main_test.go | 3 + cmd/audit_graphql_shapes/sdk.go | 3 + cmd/audit_graphql_shapes/sdk_declarations.go | 3 + .../sdk_declarations_sent.go | 3 + .../sdk_declarations_test.go | 3 + cmd/audit_graphql_shapes/sdk_reach.go | 3 + cmd/audit_graphql_shapes/sdk_report.go | 3 + cmd/audit_graphql_shapes/sdk_test.go | 3 + cmd/audit_graphql_shapes/sent.go | 3 + cmd/audit_graphql_shapes/sent_declarations.go | 3 + .../sent_declarations_domains.go | 3 + .../sent_declarations_security.go | 3 + .../sent_declarations_test.go | 3 + cmd/audit_graphql_shapes/sent_report.go | 3 + cmd/audit_graphql_shapes/sent_report_test.go | 3 + cmd/audit_graphql_shapes/sent_test.go | 3 + cmd/audit_graphql_shapes/sent_uncovered.go | 3 + cmd/audit_graphql_shapes/shape.go | 3 + cmd/audit_graphql_shapes/sites.go | 3 + cmd/audit_graphql_shapes/sites_test.go | 3 + cmd/audit_image_vulns/database.go | 3 + cmd/audit_image_vulns/database_test.go | 3 + cmd/audit_image_vulns/declarations.go | 3 + cmd/audit_image_vulns/declarations_test.go | 3 + cmd/audit_image_vulns/doc.go | 3 + cmd/audit_image_vulns/doc_test.go | 3 + cmd/audit_image_vulns/judge.go | 3 + cmd/audit_image_vulns/judge_test.go | 3 + cmd/audit_image_vulns/main.go | 3 + cmd/audit_image_vulns/main_test.go | 3 + cmd/audit_image_vulns/report.go | 3 + cmd/audit_image_vulns/report_test.go | 3 + cmd/audit_install_buttons/doc.go | 3 + cmd/audit_install_buttons/main.go | 3 + cmd/audit_install_buttons/main_test.go | 3 + cmd/audit_md_escaping/audit.go | 3 + cmd/audit_md_escaping/audit_test.go | 3 + cmd/audit_md_escaping/card.go | 3 + cmd/audit_md_escaping/card_test.go | 3 + cmd/audit_md_escaping/classify.go | 3 + cmd/audit_md_escaping/classify_test.go | 3 + cmd/audit_md_escaping/context.go | 3 + cmd/audit_md_escaping/context_test.go | 3 + cmd/audit_md_escaping/directive.go | 3 + cmd/audit_md_escaping/directive_test.go | 3 + cmd/audit_md_escaping/doc.go | 3 + cmd/audit_md_escaping/expr.go | 3 + cmd/audit_md_escaping/expr_test.go | 3 + cmd/audit_md_escaping/fence.go | 3 + cmd/audit_md_escaping/fence_test.go | 3 + cmd/audit_md_escaping/format.go | 3 + cmd/audit_md_escaping/format_test.go | 3 + cmd/audit_md_escaping/main.go | 3 + cmd/audit_md_escaping/main_test.go | 3 + cmd/audit_md_escaping/program.go | 3 + cmd/audit_md_escaping/program_test.go | 3 + cmd/audit_md_escaping/raw.go | 3 + cmd/audit_md_escaping/raw_test.go | 3 + cmd/audit_md_escaping/report.go | 3 + cmd/audit_md_escaping/report_test.go | 3 + cmd/audit_md_escaping/sink.go | 3 + cmd/audit_md_escaping/sink_test.go | 3 + cmd/audit_meta_descriptions/doc.go | 3 + cmd/audit_meta_descriptions/main.go | 3 + cmd/audit_meta_descriptions/main_test.go | 3 + cmd/audit_metrics/doc.go | 3 + cmd/audit_metrics/main.go | 3 + cmd/audit_metrics/main_test.go | 3 + cmd/audit_metrics/site_stats.go | 3 + cmd/audit_metrics/site_stats_test.go | 3 + cmd/audit_readonly_graphql/audit.go | 3 + cmd/audit_readonly_graphql/audit_test.go | 3 + cmd/audit_readonly_graphql/doc.go | 3 + cmd/audit_readonly_graphql/document.go | 3 + cmd/audit_readonly_graphql/document_test.go | 3 + cmd/audit_readonly_graphql/main.go | 3 + cmd/audit_readonly_graphql/main_test.go | 3 + cmd/audit_sdk_context/declarations.go | 3 + cmd/audit_sdk_context/declarations_test.go | 3 + cmd/audit_sdk_context/doc.go | 3 + cmd/audit_sdk_context/main.go | 3 + cmd/audit_sdk_context/main_test.go | 3 + cmd/audit_sdk_context/report.go | 3 + cmd/audit_sdk_context/report_test.go | 3 + cmd/audit_sdk_context/scan.go | 3 + cmd/audit_sdk_context/scan_test.go | 3 + cmd/audit_site_headers/csp.go | 3 + cmd/audit_site_headers/csp_test.go | 3 + cmd/audit_site_headers/doc.go | 3 + cmd/audit_site_headers/fetch.go | 3 + cmd/audit_site_headers/fetch_test.go | 3 + cmd/audit_site_headers/headers.go | 3 + cmd/audit_site_headers/headers_test.go | 3 + cmd/audit_site_headers/main.go | 3 + cmd/audit_site_headers/main_test.go | 3 + cmd/audit_site_headers/report.go | 3 + cmd/audit_site_headers/report_test.go | 3 + cmd/audit_supply_chain/actions.go | 3 + cmd/audit_supply_chain/actions_test.go | 3 + cmd/audit_supply_chain/artifacts.go | 3 + cmd/audit_supply_chain/artifacts_test.go | 3 + cmd/audit_supply_chain/declarations.go | 3 + cmd/audit_supply_chain/doc.go | 3 + cmd/audit_supply_chain/gocommand.go | 3 + cmd/audit_supply_chain/gocommand_test.go | 3 + cmd/audit_supply_chain/goreleaser.go | 3 + cmd/audit_supply_chain/goreleaser_test.go | 3 + cmd/audit_supply_chain/main.go | 3 + cmd/audit_supply_chain/main_test.go | 3 + cmd/audit_supply_chain/make.go | 3 + cmd/audit_supply_chain/reach.go | 3 + cmd/audit_supply_chain/record.go | 3 + cmd/audit_supply_chain/record_test.go | 3 + cmd/audit_supply_chain/release_notes.go | 3 + cmd/audit_supply_chain/release_notes_test.go | 3 + cmd/audit_supply_chain/scripts.go | 3 + cmd/audit_supply_chain/scripts_test.go | 3 + cmd/audit_supply_chain/secrets.go | 3 + cmd/audit_surface_quality/constant_index.go | 3 + .../constant_index_test.go | 3 + cmd/audit_surface_quality/doc.go | 3 + cmd/audit_surface_quality/edition_tier.go | 3 + .../edition_tier_test.go | 3 + cmd/audit_surface_quality/main.go | 3 + cmd/audit_surface_quality/main_test.go | 3 + cmd/audit_surface_quality/metadata_audit.go | 3 + .../metadata_audit_test.go | 3 + .../metadata_register_meta.go | 3 + .../metadata_register_meta_test.go | 3 + cmd/audit_surface_quality/output_audit.go | 3 + .../output_audit_test.go | 3 + cmd/audit_surface_quality/root_combinators.go | 3 + .../root_combinators_test.go | 3 + cmd/audit_tenancy/alias.go | 3 + cmd/audit_tenancy/alias_test.go | 3 + cmd/audit_tenancy/arg.go | 3 + cmd/audit_tenancy/arg_test.go | 3 + cmd/audit_tenancy/charges.go | 3 + cmd/audit_tenancy/charges_test.go | 3 + cmd/audit_tenancy/compare.go | 3 + cmd/audit_tenancy/compare_test.go | 3 + cmd/audit_tenancy/config.go | 3 + cmd/audit_tenancy/config_test.go | 3 + cmd/audit_tenancy/declarations.go | 3 + cmd/audit_tenancy/declarations_test.go | 3 + cmd/audit_tenancy/doc.go | 3 + cmd/audit_tenancy/leaf.go | 3 + cmd/audit_tenancy/leaf_test.go | 3 + cmd/audit_tenancy/main.go | 3 + cmd/audit_tenancy/main_test.go | 3 + cmd/audit_tenancy/orphans.go | 3 + cmd/audit_tenancy/orphans_test.go | 3 + cmd/audit_tenancy/pin.go | 3 + cmd/audit_tenancy/pin_test.go | 3 + cmd/audit_tenancy/reason.go | 3 + cmd/audit_tenancy/reason_test.go | 3 + cmd/audit_tenancy/refs.go | 3 + cmd/audit_tenancy/refs_test.go | 3 + cmd/audit_tenancy/refusal.go | 3 + cmd/audit_tenancy/refusal_test.go | 3 + cmd/audit_tenancy/report.go | 3 + cmd/audit_tenancy/report_test.go | 3 + cmd/audit_tenancy/resolve.go | 3 + cmd/audit_tenancy/resolve_test.go | 3 + cmd/audit_tenancy/share.go | 3 + cmd/audit_tenancy/share_test.go | 3 + cmd/audit_tenancy/tripwire.go | 3 + cmd/audit_tenancy/tripwire_test.go | 3 + cmd/audit_tenancy/validate.go | 3 + cmd/audit_tenancy/validate_test.go | 3 + cmd/audit_test_closed_servers/declarations.go | 3 + .../declarations_test.go | 3 + cmd/audit_test_closed_servers/doc.go | 3 + cmd/audit_test_closed_servers/main.go | 3 + cmd/audit_test_closed_servers/main_test.go | 7 +- cmd/audit_test_closed_servers/report.go | 3 + cmd/audit_test_closed_servers/report_test.go | 3 + cmd/audit_test_closed_servers/scan.go | 3 + cmd/audit_test_closed_servers/scan_test.go | 133 +++++++++--------- .../testdata/planted/clean/clean_test.go | 3 + .../testdata/planted/clean/doc.go | 3 + .../planted/declared/declared_test.go | 3 + .../testdata/planted/declared/doc.go | 3 + .../testdata/planted/flagged/doc.go | 3 + .../testdata/planted/flagged/external_test.go | 3 + .../testdata/planted/flagged/flagged_test.go | 3 + .../testdata/planted/flagged/helpers.go | 3 + .../testdata/planted/hidden/doc.go | 3 + .../testdata/planted/hidden/hidden_test.go | 3 + .../testdata/planted/hidden/quiet_test.go | 3 + .../planted/tagged/collectore2e_test.go | 3 + .../testdata/planted/tagged/doc.go | 3 + .../testdata/planted/tagged/e2e_test.go | 3 + .../testdata/planted/tagged/httpe2e_test.go | 3 + .../testdata/planted/tagged/orbitlive_test.go | 3 + .../testdata/planted/tagged/stdioe2e_test.go | 3 + cmd/audit_test_closed_servers/values.go | 3 + cmd/audit_test_goroutines/doc.go | 3 + cmd/audit_test_goroutines/main.go | 3 + cmd/audit_test_goroutines/main_test.go | 3 + cmd/audit_test_names/doc.go | 3 + cmd/audit_test_names/files.go | 3 + cmd/audit_test_names/files_test.go | 3 + cmd/audit_test_names/main.go | 3 + cmd/audit_test_names/main_test.go | 3 + cmd/audit_test_subtests/doc.go | 3 + cmd/audit_test_subtests/main.go | 3 + cmd/audit_test_subtests/main_test.go | 3 + cmd/audit_tokens/doc.go | 3 + cmd/audit_tokens/main.go | 3 + cmd/audit_tokens/main_test.go | 3 + cmd/audit_tokens/model_facing.go | 3 + cmd/audit_tokens/model_facing_test.go | 3 + cmd/audit_tokens/tokens.go | 3 + cmd/audit_tokens/tokens_test.go | 3 + cmd/bench_resources/chart.go | 3 + cmd/bench_resources/chart_test.go | 3 + cmd/bench_resources/doc.go | 3 + cmd/bench_resources/fairness.go | 3 + cmd/bench_resources/fairness_result.go | 3 + cmd/bench_resources/fairness_result_test.go | 3 + cmd/bench_resources/fairness_run.go | 3 + cmd/bench_resources/fairness_run_test.go | 3 + cmd/bench_resources/fairness_test.go | 3 + cmd/bench_resources/figures.go | 3 + cmd/bench_resources/figures_test.go | 3 + cmd/bench_resources/held.go | 3 + cmd/bench_resources/held_test.go | 3 + cmd/bench_resources/host.go | 3 + cmd/bench_resources/host_test.go | 3 + cmd/bench_resources/main.go | 3 + cmd/bench_resources/main_test.go | 3 + cmd/bench_resources/matrix.go | 3 + cmd/bench_resources/matrix_test.go | 3 + cmd/bench_resources/presenter.go | 3 + cmd/bench_resources/presenter_test.go | 3 + cmd/bench_resources/proc_sample.go | 3 + cmd/bench_resources/proc_sample_test.go | 3 + cmd/bench_resources/profiles.go | 3 + cmd/bench_resources/profiles_test.go | 3 + cmd/bench_resources/render.go | 3 + cmd/bench_resources/render_test.go | 3 + cmd/bench_resources/result.go | 3 + cmd/bench_resources/result_test.go | 3 + cmd/bench_resources/rpc.go | 3 + cmd/bench_resources/rpc_test.go | 3 + cmd/bench_resources/run.go | 3 + cmd/bench_resources/run_test.go | 3 + cmd/bench_resources/series.go | 3 + cmd/bench_resources/series_test.go | 3 + cmd/bench_resources/sessions.go | 3 + cmd/bench_resources/sessions_test.go | 3 + cmd/bench_resources/stubs.go | 3 + cmd/bench_resources/stubs_test.go | 3 + cmd/bench_resources/target.go | 3 + cmd/bench_resources/target_test.go | 3 + cmd/bench_resources/testdata/standin/main.go | 3 + cmd/bench_resources/theme.go | 3 + cmd/bench_resources/theme_test.go | 3 + cmd/bench_resources/variant.go | 3 + cmd/bench_resources/variant_test.go | 3 + cmd/format_md_tables/doc.go | 3 + cmd/format_md_tables/main.go | 3 + cmd/format_md_tables/main_test.go | 3 + cmd/fuzz_targets/doc.go | 3 + cmd/fuzz_targets/main.go | 3 + cmd/fuzz_targets/main_test.go | 3 + cmd/fuzz_targets/targets.go | 3 + cmd/fuzz_targets/targets_test.go | 3 + cmd/gen_action_catalog_manifest/doc.go | 3 + cmd/gen_action_catalog_manifest/main.go | 3 + cmd/gen_action_catalog_manifest/main_test.go | 3 + cmd/gen_action_grants/classic_declarations.go | 3 + cmd/gen_action_grants/doc.go | 3 + cmd/gen_action_grants/gates.go | 3 + cmd/gen_action_grants/gates_test.go | 3 + cmd/gen_action_grants/grant_declarations.go | 3 + .../internal/derive/build.go | 3 + .../internal/derive/build_test.go | 3 + .../internal/derive/derive.go | 3 + .../internal/derive/derive_test.go | 3 + .../internal/derive/directive.go | 3 + cmd/gen_action_grants/internal/derive/doc.go | 3 + .../internal/derive/expand.go | 3 + .../internal/derive/expand_test.go | 3 + .../internal/derive/paths.go | 3 + .../internal/derive/rawpath.go | 3 + .../internal/derive/rawpath_test.go | 3 + .../internal/derive/request.go | 3 + cmd/gen_action_grants/internal/join/doc.go | 3 + .../internal/join/graphql.go | 3 + cmd/gen_action_grants/internal/join/rest.go | 3 + .../internal/join/rest_test.go | 3 + cmd/gen_action_grants/internal/join/table.go | 3 + .../internal/join/table_test.go | 3 + cmd/gen_action_grants/main.go | 3 + cmd/gen_action_grants/main_test.go | 3 + cmd/gen_action_grants/reference_md.go | 3 + cmd/gen_action_grants/reference_md_test.go | 3 + cmd/gen_action_grants/request_declarations.go | 3 + .../request_declarations_test.go | 3 + cmd/gen_action_grants/requests_json.go | 3 + cmd/gen_action_grants/requests_json_test.go | 3 + cmd/gen_action_grants/sdk.go | 3 + cmd/gen_action_grants/sdk_test.go | 3 + cmd/gen_action_grants/table_go.go | 3 + cmd/gen_action_grants/table_go_test.go | 3 + cmd/gen_api_live/authorization.go | 3 + cmd/gen_api_live/authorization_test.go | 3 + cmd/gen_api_live/doc.go | 3 + cmd/gen_api_live/introspect.rb | 3 + cmd/gen_api_live/main.go | 3 + cmd/gen_api_live/main_test.go | 3 + cmd/gen_api_live/script.go | 3 + cmd/gen_brand/doc.go | 3 + cmd/gen_brand/main.go | 3 + cmd/gen_brand/main_test.go | 3 + cmd/gen_graphql_schema/artifacts.go | 3 + cmd/gen_graphql_schema/artifacts_test.go | 3 + cmd/gen_graphql_schema/doc.go | 3 + cmd/gen_graphql_schema/main.go | 3 + cmd/gen_graphql_schema/main_test.go | 3 + cmd/gen_icon_webp/doc.go | 3 + cmd/gen_icon_webp/main.go | 3 + cmd/gen_icon_webp/main_test.go | 3 + cmd/gen_lhm_manifest/doc.go | 3 + cmd/gen_lhm_manifest/main.go | 3 + cmd/gen_lhm_manifest/main_test.go | 3 + cmd/gen_llms/doc.go | 3 + cmd/gen_llms/main.go | 3 + cmd/gen_llms/main_test.go | 3 + cmd/gen_model_corpus/doc.go | 3 + cmd/gen_model_corpus/main.go | 3 + cmd/gen_model_corpus/main_test.go | 3 + cmd/gen_model_results/cases.go | 3 + cmd/gen_model_results/cases_test.go | 3 + cmd/gen_model_results/compare.go | 3 + cmd/gen_model_results/compare_test.go | 3 + cmd/gen_model_results/doc.go | 3 + cmd/gen_model_results/dryrun.go | 3 + cmd/gen_model_results/dryrun_test.go | 3 + cmd/gen_model_results/legend.go | 3 + cmd/gen_model_results/legend_test.go | 3 + cmd/gen_model_results/main.go | 3 + cmd/gen_model_results/main_test.go | 3 + cmd/gen_model_results/mergeguard.go | 3 + cmd/gen_model_results/mergeguard_test.go | 3 + cmd/gen_model_results/record.go | 3 + cmd/gen_model_results/record_test.go | 3 + cmd/gen_model_results/refusals.go | 3 + cmd/gen_model_results/refusals_test.go | 3 + cmd/gen_model_results/render.go | 3 + cmd/gen_model_results/render_test.go | 3 + cmd/gen_orbit_record/calls.go | 3 + cmd/gen_orbit_record/calls_test.go | 3 + cmd/gen_orbit_record/committed.go | 3 + cmd/gen_orbit_record/committed_test.go | 3 + cmd/gen_orbit_record/doc.go | 3 + cmd/gen_orbit_record/main.go | 3 + cmd/gen_orbit_record/main_test.go | 3 + cmd/gen_orbit_record/recorder.go | 3 + cmd/gen_orbit_record/recorder_test.go | 3 + cmd/gen_orbit_record/shape.go | 3 + cmd/gen_orbit_record/shape_test.go | 3 + cmd/gen_request_inventory/coverage.go | 3 + cmd/gen_request_inventory/coverage_test.go | 3 + cmd/gen_request_inventory/doc.go | 3 + cmd/gen_request_inventory/inventory.go | 3 + cmd/gen_request_inventory/inventory_test.go | 3 + cmd/gen_request_inventory/main.go | 3 + cmd/gen_request_inventory/main_test.go | 3 + cmd/gen_testing_docs/doc.go | 3 + cmd/gen_testing_docs/main.go | 3 + cmd/gen_testing_docs/main_test.go | 3 + cmd/gen_third_party_notices/doc.go | 3 + cmd/gen_third_party_notices/main.go | 3 + cmd/gen_third_party_notices/main_test.go | 3 + cmd/gen_third_party_notices/notices.go | 3 + cmd/gen_third_party_notices/notices_test.go | 3 + cmd/gen_tool_reference/catalog.go | 3 + cmd/gen_tool_reference/catalog_test.go | 3 + cmd/gen_tool_reference/data.go | 3 + cmd/gen_tool_reference/data_test.go | 3 + cmd/gen_tool_reference/doc.go | 3 + cmd/gen_tool_reference/locale.go | 3 + cmd/gen_tool_reference/locale_test.go | 3 + cmd/gen_tool_reference/main.go | 3 + cmd/gen_tool_reference/main_test.go | 3 + cmd/gen_tool_reference/oauth.go | 3 + cmd/gen_tool_reference/oauth_test.go | 3 + cmd/gen_tool_reference/render.go | 3 + cmd/gen_tool_reference/render_test.go | 3 + cmd/gen_tool_reference/schema.go | 3 + cmd/gen_tool_reference/schema_test.go | 3 + cmd/godoc_tool/audit.go | 3 + cmd/godoc_tool/audit_test.go | 3 + cmd/godoc_tool/doc.go | 3 + cmd/godoc_tool/docgo.go | 3 + cmd/godoc_tool/docgo_test.go | 3 + cmd/godoc_tool/fix.go | 3 + cmd/godoc_tool/fix_test.go | 3 + cmd/godoc_tool/main.go | 3 + cmd/godoc_tool/main_test.go | 3 + cmd/internal/actionids/catalog.go | 3 + cmd/internal/actionids/catalog_test.go | 3 + cmd/internal/actionids/doc.go | 3 + .../actionrequests/actionfixture/doc.go | 3 + .../actionrequests/actionfixture/fixture.go | 3 + .../actionfixture/fixture_test.go | 3 + .../actionrequests/actionfixture/sources.go | 3 + cmd/internal/actionrequests/catalog.go | 3 + cmd/internal/actionrequests/catalog_test.go | 3 + cmd/internal/actionrequests/doc.go | 3 + cmd/internal/actionrequests/match.go | 3 + cmd/internal/actionrequests/match_test.go | 3 + cmd/internal/actionrequests/program.go | 3 + cmd/internal/actionrequests/program_test.go | 3 + cmd/internal/actionrequests/record.go | 3 + cmd/internal/actionrequests/record_test.go | 3 + cmd/internal/actionrequests/resolve.go | 3 + cmd/internal/actionrequests/resolve_test.go | 3 + cmd/internal/actionrequests/tool.go | 3 + cmd/internal/actionrequests/tool_test.go | 3 + cmd/internal/apidocs/api_docs.go | 3 + cmd/internal/apidocs/api_docs_test.go | 3 + cmd/internal/apidocs/areas.go | 3 + cmd/internal/apidocs/areas_test.go | 3 + cmd/internal/apidocs/doc.go | 3 + cmd/internal/apilive/authorization.go | 3 + cmd/internal/apilive/authorization_test.go | 3 + cmd/internal/apilive/doc.go | 3 + cmd/internal/apilive/join.go | 3 + cmd/internal/apilive/join_test.go | 3 + cmd/internal/apilive/live.go | 3 + cmd/internal/apilive/live_test.go | 3 + cmd/internal/apilive/routes.go | 3 + cmd/internal/apilive/routes_test.go | 3 + .../auditshared/actionspec_builders.go | 3 + .../auditshared/actionspec_builders_test.go | 3 + cmd/internal/auditshared/audit_shared.go | 3 + cmd/internal/auditshared/audit_shared_test.go | 3 + cmd/internal/auditshared/doc.go | 3 + cmd/internal/docgen/doc.go | 3 + cmd/internal/docgen/markdown_tables.go | 3 + cmd/internal/docgen/markdown_tables_test.go | 3 + cmd/internal/docgen/section.go | 3 + cmd/internal/docgen/section_test.go | 3 + cmd/internal/docgen/table.go | 3 + cmd/internal/docgen/table_test.go | 3 + cmd/internal/docgen/write.go | 3 + cmd/internal/docgen/write_test.go | 3 + cmd/internal/golist/doc.go | 3 + cmd/internal/golist/golist.go | 3 + cmd/internal/golist/golist_test.go | 3 + cmd/internal/goprogram/doc.go | 3 + cmd/internal/goprogram/ignored.go | 3 + cmd/internal/goprogram/ignored_test.go | 3 + cmd/internal/goprogram/load.go | 3 + cmd/internal/goprogram/load_test.go | 3 + cmd/internal/goprogram/naming.go | 3 + cmd/internal/goprogram/naming_test.go | 3 + cmd/internal/goprogram/variants.go | 3 + cmd/internal/goprogram/variants_test.go | 3 + cmd/internal/grantwords/doc.go | 3 + cmd/internal/grantwords/grantwords.go | 3 + cmd/internal/grantwords/grantwords_test.go | 3 + cmd/internal/graphqldocs/audit.go | 3 + cmd/internal/graphqldocs/audit_test.go | 3 + cmd/internal/graphqldocs/classify.go | 3 + cmd/internal/graphqldocs/classify_test.go | 3 + cmd/internal/graphqldocs/collect.go | 3 + cmd/internal/graphqldocs/collect_test.go | 3 + cmd/internal/graphqldocs/doc.go | 3 + cmd/internal/graphqldocs/render.go | 3 + cmd/internal/graphqldocs/render_test.go | 3 + cmd/internal/graphqldocs/sdk.go | 3 + cmd/internal/graphqldocs/sdk_test.go | 3 + cmd/internal/graphqlintrospect/credential.go | 3 + .../graphqlintrospect/credential_test.go | 3 + cmd/internal/graphqlintrospect/doc.go | 3 + cmd/internal/graphqlintrospect/export_test.go | 3 + cmd/internal/graphqlintrospect/introspect.go | 3 + .../graphqlintrospect/introspect_test.go | 3 + cmd/internal/graphqlintrospect/sdl.go | 3 + cmd/internal/graphqlintrospect/sdl_test.go | 3 + cmd/internal/mcpsurface/doc.go | 3 + cmd/internal/mcpsurface/surface.go | 3 + cmd/internal/mcpsurface/surface_test.go | 3 + cmd/internal/orbitrecord/doc.go | 3 + cmd/internal/orbitrecord/record.go | 3 + cmd/internal/orbitrecord/record_test.go | 3 + cmd/internal/provenance/age.go | 3 + cmd/internal/provenance/age_test.go | 3 + cmd/internal/provenance/doc.go | 3 + cmd/internal/requestinventory/coverage.go | 3 + .../requestinventory/coverage_test.go | 3 + cmd/internal/requestinventory/doc.go | 3 + cmd/internal/requestinventory/inventory.go | 3 + .../requestinventory/inventory_test.go | 3 + cmd/internal/sdkroutes/doc.go | 3 + cmd/internal/sdkroutes/documents.go | 3 + cmd/internal/sdkroutes/documents_test.go | 3 + cmd/internal/sdkroutes/eval.go | 3 + cmd/internal/sdkroutes/eval_test.go | 3 + cmd/internal/sdkroutes/parse.go | 3 + cmd/internal/sdkroutes/parse_test.go | 3 + cmd/internal/sdkroutes/sdkroutes.go | 3 + cmd/internal/sdkroutes/sdkroutes_test.go | 3 + .../sdkroutes/testdata/sdk/declarations.go | 3 + cmd/internal/sdkroutes/testdata/sdk/legacy.go | 3 + .../sdkroutes/testdata/sdk/methods.go | 3 + .../sdkroutes/testdata/sdk/methods_test.go | 3 + .../sdkroutes/testdata/sdk/subdir/nested.go | 3 + cmd/internal/sourcegate/command.go | 3 + cmd/internal/sourcegate/command_test.go | 3 + cmd/internal/sourcegate/declarations.go | 3 + cmd/internal/sourcegate/declarations_test.go | 3 + cmd/internal/sourcegate/doc.go | 3 + cmd/internal/sourcegate/syntax.go | 3 + cmd/internal/sourcegate/syntax_test.go | 3 + cmd/internal/testsource/doc.go | 3 + cmd/internal/testsource/testsource.go | 3 + cmd/internal/testsource/testsource_test.go | 3 + cmd/measure_conditions/discover.go | 3 + cmd/measure_conditions/discover_test.go | 3 + cmd/measure_conditions/doc.go | 3 + cmd/measure_conditions/main.go | 3 + cmd/measure_conditions/main_test.go | 3 + cmd/measure_conditions/measure.go | 3 + cmd/measure_conditions/measure_test.go | 3 + cmd/measure_conditions/measurement.go | 3 + cmd/measure_conditions/measurement_test.go | 3 + cmd/measure_conditions/plan.go | 3 + cmd/measure_conditions/plan_test.go | 3 + cmd/measure_conditions/record.go | 3 + cmd/measure_conditions/record_test.go | 3 + cmd/measure_conditions/summarize.go | 3 + cmd/measure_conditions/summarize_test.go | 3 + .../testdata/platforms/arch/arch.go | 3 + .../testdata/platforms/arch/arch_arm64.go | 3 + .../testdata/platforms/plain/plain.go | 3 + .../testdata/platforms/split/split.go | 3 + .../testdata/platforms/split/split_windows.go | 3 + .../testdata/platforms/tagged/tagged.go | 3 + .../testdata/platforms/tagged/tagged_race.go | 3 + .../testdata/platforms/testonly/probe.go | 3 + .../platforms/testonly/probe_unix_test.go | 3 + cmd/measure_conditions/tree.go | 3 + cmd/measure_conditions/tree_test.go | 3 + cmd/reproduce_release/build.go | 3 + cmd/reproduce_release/build_test.go | 3 + cmd/reproduce_release/buildinfo.go | 3 + cmd/reproduce_release/buildinfo_test.go | 3 + cmd/reproduce_release/checksums.go | 3 + cmd/reproduce_release/checksums_test.go | 3 + cmd/reproduce_release/doc.go | 3 + cmd/reproduce_release/git.go | 3 + cmd/reproduce_release/git_test.go | 3 + cmd/reproduce_release/goreleaser.go | 3 + cmd/reproduce_release/goreleaser_test.go | 3 + cmd/reproduce_release/main.go | 3 + cmd/reproduce_release/main_test.go | 3 + cmd/reproduce_release/recipe.go | 3 + cmd/reproduce_release/recipe_test.go | 3 + cmd/reproduce_release/repeat.go | 3 + cmd/reproduce_release/repeat_test.go | 3 + cmd/reproduce_release/report.go | 3 + cmd/reproduce_release/report_test.go | 3 + cmd/reproduce_release/reproduce.go | 3 + cmd/reproduce_release/reproduce_test.go | 3 + cmd/reproduce_release/universal.go | 3 + cmd/reproduce_release/universal_test.go | 3 + cmd/server/auth_blocks.go | 3 + cmd/server/auth_blocks_test.go | 3 + cmd/server/auth_gate.go | 3 + cmd/server/auth_gate_test.go | 3 + cmd/server/bearer_guard.go | 3 + cmd/server/bearer_guard_test.go | 3 + cmd/server/carrier.go | 3 + cmd/server/carrier_test.go | 3 + cmd/server/client_ip.go | 3 + cmd/server/client_ip_test.go | 3 + cmd/server/conn_refused_unix.go | 3 + cmd/server/conn_refused_windows.go | 3 + cmd/server/conn_refused_windows_test.go | 3 + cmd/server/credential.go | 3 + cmd/server/credential_test.go | 3 + cmd/server/descriptor_limit.go | 3 + cmd/server/descriptor_limit_other.go | 3 + cmd/server/descriptor_limit_test.go | 3 + cmd/server/discovery.go | 3 + cmd/server/discovery_card.go | 3 + cmd/server/discovery_card_test.go | 3 + cmd/server/discovery_rate.go | 3 + cmd/server/discovery_rate_test.go | 3 + cmd/server/discovery_test.go | 3 + cmd/server/doc.go | 3 + cmd/server/env_flags.go | 3 + cmd/server/env_flags_test.go | 3 + cmd/server/env_overlay.go | 3 + cmd/server/env_overlay_test.go | 3 + cmd/server/etag.go | 3 + cmd/server/etag_test.go | 3 + cmd/server/fine_grained.go | 3 + cmd/server/fine_grained_test.go | 3 + cmd/server/first_run.go | 3 + cmd/server/first_run_test.go | 3 + cmd/server/health.go | 3 + cmd/server/health_test.go | 3 + cmd/server/held.go | 3 + cmd/server/held_test.go | 3 + cmd/server/host_guard.go | 3 + cmd/server/host_guard_test.go | 3 + cmd/server/http_only_flags.go | 3 + cmd/server/http_only_flags_test.go | 3 + cmd/server/instructions.go | 3 + cmd/server/instructions_test.go | 3 + cmd/server/jsonrpc_id.go | 3 + cmd/server/jsonrpc_id_test.go | 3 + cmd/server/listen.go | 3 + cmd/server/listen_test.go | 3 + cmd/server/listen_unix_test.go | 3 + cmd/server/main.go | 3 + cmd/server/main_linux_test.go | 3 + cmd/server/main_norace_test.go | 3 + cmd/server/main_race_test.go | 3 + cmd/server/main_test.go | 3 + cmd/server/pool_metrics.go | 3 + cmd/server/pool_metrics_test.go | 3 + cmd/server/pprof.go | 3 + cmd/server/pprof_test.go | 3 + cmd/server/probe.go | 3 + cmd/server/probe_linux.go | 3 + cmd/server/probe_linux_test.go | 3 + cmd/server/probe_other.go | 3 + cmd/server/probe_test.go | 3 + cmd/server/readiness.go | 3 + cmd/server/readiness_test.go | 3 + cmd/server/recover.go | 3 + cmd/server/recover_test.go | 3 + cmd/server/refusal_log.go | 3 + cmd/server/refusal_log_test.go | 3 + cmd/server/sdk_log.go | 3 + cmd/server/sdk_log_test.go | 3 + cmd/server/session_owner.go | 3 + cmd/server/session_owner_test.go | 3 + cmd/server/sessions.go | 3 + cmd/server/sessions_test.go | 3 + cmd/server/shape.go | 3 + cmd/server/shape_test.go | 3 + cmd/server/shutdown.go | 3 + cmd/server/shutdown_test.go | 3 + cmd/server/socket_mode_unix.go | 3 + cmd/server/socket_mode_unix_test.go | 3 + cmd/server/socket_mode_windows.go | 3 + cmd/server/socket_mode_windows_test.go | 3 + cmd/server/stdio.go | 3 + cmd/server/stdio_test.go | 3 + cmd/server/subscriptions.go | 3 + cmd/server/subscriptions_test.go | 3 + cmd/server/telemetry.go | 3 + cmd/server/telemetry_identity.go | 3 + cmd/server/telemetry_identity_test.go | 3 + cmd/server/telemetry_test.go | 3 + cmd/server/testdata/peer/main.go | 3 + cmd/server/tls_reload.go | 3 + cmd/server/tls_reload_test.go | 3 + cmd/server/transport.go | 3 + cmd/server/transport_other_test.go | 3 + cmd/server/transport_test.go | 3 + cmd/server/transport_unix_test.go | 3 + cmd/server/version_refusal.go | 3 + cmd/server/version_refusal_test.go | 3 + internal/cachehints/cache_hints.go | 3 + internal/cachehints/cache_hints_test.go | 3 + internal/cachehints/doc.go | 3 + internal/capguard/cap_guard.go | 3 + internal/capguard/cap_guard_test.go | 3 + internal/capguard/doc.go | 3 + internal/clientcompat/client_compat.go | 3 + internal/clientcompat/client_compat_test.go | 3 + internal/clientcompat/doc.go | 3 + internal/clientcompat/export_test.go | 3 + internal/cmdutil/cmd_util.go | 3 + internal/cmdutil/cmd_util_test.go | 3 + internal/cmdutil/doc.go | 3 + internal/completions/completions.go | 3 + internal/completions/completions_test.go | 3 + internal/completions/doc.go | 3 + internal/completions/exclusion.go | 3 + internal/completions/exclusion_test.go | 3 + internal/completions/search.go | 3 + internal/completions/search_test.go | 3 + internal/config/config.go | 3 + internal/config/config_test.go | 3 + internal/config/doc.go | 3 + internal/config/env_file.go | 3 + internal/config/env_file_test.go | 3 + internal/config/env_name.go | 3 + internal/config/env_name_test.go | 3 + internal/config/http_overlay.go | 3 + internal/config/http_overlay_test.go | 3 + internal/edition/doc.go | 3 + internal/edition/tier.go | 3 + internal/edition/tier_test.go | 3 + internal/elicitation/doc.go | 3 + internal/elicitation/elicitation.go | 3 + internal/elicitation/elicitation_test.go | 3 + internal/elicitation/flow.go | 3 + internal/elicitation/flow_test.go | 3 + internal/elicitation/schemas.go | 3 + internal/elicitation/schemas_test.go | 3 + internal/elicitation/state.go | 3 + internal/elicitation/state_test.go | 3 + internal/finegrained/authority.go | 3 + internal/finegrained/authority_test.go | 3 + internal/finegrained/describe.go | 3 + internal/finegrained/describe_test.go | 3 + internal/finegrained/doc.go | 3 + internal/finegrained/evaluate.go | 3 + .../finegrained/evaluate_generated_test.go | 3 + internal/finegrained/evaluate_test.go | 3 + internal/finegrained/grant.go | 3 + internal/finegrained/grant_test.go | 3 + internal/finegrained/notes.go | 3 + internal/finegrained/notes_test.go | 3 + internal/finegrained/route.go | 3 + internal/finegrained/route_test.go | 3 + internal/finegrained/table.go | 3 + internal/finegrained/table_test.go | 3 + internal/finegrained/unconfirmed.go | 3 + internal/finegrained/unconfirmed_test.go | 3 + internal/finegrained/withheld.go | 3 + internal/finegrained/withheld_test.go | 3 + internal/freshness/doc.go | 3 + internal/freshness/freshness.go | 3 + internal/freshness/freshness_test.go | 3 + internal/gatewaycompat/doc.go | 3 + internal/gatewaycompat/export_test.go | 3 + internal/gatewaycompat/middleware.go | 3 + internal/gatewaycompat/middleware_test.go | 3 + internal/gatewaycompat/parse.go | 3 + internal/gatewaycompat/parse_test.go | 3 + internal/gatewaycompat/schema.go | 3 + internal/gatewaycompat/schema_test.go | 3 + internal/gitlab/authority.go | 3 + internal/gitlab/authority_test.go | 3 + internal/gitlab/capture.go | 3 + internal/gitlab/capture_test.go | 3 + internal/gitlab/client.go | 3 + internal/gitlab/client_test.go | 3 + internal/gitlab/context.go | 3 + internal/gitlab/context_test.go | 3 + internal/gitlab/credential_refusal.go | 3 + internal/gitlab/credential_refusal_test.go | 3 + internal/gitlab/destination.go | 3 + internal/gitlab/destination_test.go | 3 + internal/gitlab/doc.go | 3 + internal/gitlab/grant.go | 3 + internal/gitlab/grant_test.go | 3 + internal/gitlab/granular_refusal.go | 3 + internal/gitlab/granular_refusal_test.go | 3 + internal/gitlab/membership_tier.go | 3 + internal/gitlab/membership_tier_test.go | 3 + internal/gitlab/redirect.go | 3 + internal/gitlab/redirect_test.go | 3 + internal/gitlab/response_limit.go | 3 + internal/gitlab/response_limit_test.go | 3 + internal/gitlab/retry.go | 3 + internal/gitlab/retry_test.go | 3 + internal/gitlab/scopes.go | 3 + internal/gitlab/scopes_test.go | 3 + internal/gitlab/unbound.go | 3 + internal/gitlab/unbound_test.go | 3 + internal/graphqlschema/doc.go | 3 + internal/graphqlschema/schema.go | 3 + internal/graphqlschema/schema_test.go | 3 + internal/graphqlschema/source.go | 3 + internal/graphqlschema/source_test.go | 3 + internal/mcpotel/attributes.go | 3 + internal/mcpotel/attributes_test.go | 3 + internal/mcpotel/auth_blocks.go | 3 + internal/mcpotel/auth_blocks_test.go | 3 + internal/mcpotel/carrier.go | 3 + internal/mcpotel/carrier_test.go | 3 + internal/mcpotel/doc.go | 3 + internal/mcpotel/http_server.go | 3 + internal/mcpotel/http_server_test.go | 3 + internal/mcpotel/identity.go | 3 + internal/mcpotel/identity_test.go | 3 + internal/mcpotel/middleware.go | 3 + internal/mcpotel/middleware_test.go | 3 + internal/mcpotel/outcome.go | 3 + internal/mcpotel/outcome_test.go | 3 + internal/mcpotel/pool.go | 3 + internal/mcpotel/pool_test.go | 3 + internal/mcpotel/protocol.go | 3 + internal/mcpotel/protocol_test.go | 3 + internal/mcpotel/round_tripper.go | 3 + internal/mcpotel/round_tripper_test.go | 3 + internal/mcpotel/sending.go | 3 + internal/mcpotel/sending_test.go | 3 + internal/mcpotel/session.go | 3 + internal/mcpotel/session_test.go | 3 + internal/oauth/cache.go | 3 + internal/oauth/cache_test.go | 3 + internal/oauth/doc.go | 3 + internal/oauth/metadata.go | 3 + internal/oauth/metadata_test.go | 3 + internal/oauth/rejected.go | 3 + internal/oauth/rejected_test.go | 3 + internal/oauth/verifier.go | 3 + internal/oauth/verifier_test.go | 3 + internal/progress/doc.go | 3 + internal/progress/progress.go | 3 + internal/progress/progress_test.go | 3 + internal/prompts/doc.go | 3 + internal/prompts/exclusion.go | 3 + internal/prompts/exclusion_test.go | 3 + internal/prompts/prompt_analytics.go | 3 + internal/prompts/prompt_analytics_test.go | 3 + internal/prompts/prompt_audit.go | 3 + internal/prompts/prompt_audit_test.go | 3 + internal/prompts/prompt_cross_project.go | 3 + internal/prompts/prompt_cross_project_test.go | 3 + internal/prompts/prompt_git_workflow.go | 3 + internal/prompts/prompt_git_workflow_test.go | 3 + internal/prompts/prompt_helpers.go | 3 + internal/prompts/prompt_helpers_test.go | 3 + internal/prompts/prompt_milestone_label.go | 3 + .../prompts/prompt_milestone_label_test.go | 3 + internal/prompts/prompt_project_reports.go | 3 + .../prompts/prompt_project_reports_test.go | 3 + internal/prompts/prompt_team.go | 3 + internal/prompts/prompt_team_test.go | 3 + internal/prompts/prompts.go | 3 + internal/prompts/prompts_test.go | 3 + internal/prompts/untrusted.go | 3 + internal/prompts/untrusted_test.go | 3 + internal/resources/doc.go | 3 + internal/resources/exclusion.go | 3 + internal/resources/exclusion_test.go | 3 + internal/resources/registrar.go | 3 + internal/resources/registrar_test.go | 3 + internal/resources/resources.go | 3 + internal/resources/resources_test.go | 3 + internal/resources/tool_manifest.go | 3 + internal/resources/tool_manifest_test.go | 3 + internal/resources/workflow_guides.go | 3 + internal/resources/workflow_guides_test.go | 3 + internal/serverpool/distinct_token_budget.go | 3 + .../serverpool/distinct_token_budget_test.go | 3 + internal/serverpool/doc.go | 3 + internal/serverpool/pool.go | 3 + internal/serverpool/pool_test.go | 3 + internal/serverpool/rate_limit.go | 3 + internal/serverpool/rate_limit_test.go | 3 + internal/serverpool/token.go | 3 + internal/serverpool/token_test.go | 3 + internal/sourcewalk/doc.go | 3 + internal/sourcewalk/sourcewalk.go | 3 + internal/sourcewalk/sourcewalk_test.go | 3 + internal/subscriptions/doc.go | 3 + internal/subscriptions/kind.go | 3 + .../subscriptions/kind_integration_test.go | 3 + internal/subscriptions/kind_test.go | 3 + internal/subscriptions/manager.go | 3 + internal/subscriptions/manager_test.go | 3 + internal/subscriptions/read_error.go | 3 + internal/subscriptions/read_error_test.go | 3 + internal/subscriptions/state.go | 3 + internal/subscriptions/state_test.go | 3 + internal/subscriptions/tracing.go | 3 + internal/subscriptions/tracing_test.go | 3 + internal/telemetry/boundary.go | 3 + internal/telemetry/boundary_test.go | 3 + internal/telemetry/cardinality.go | 3 + internal/telemetry/cardinality_test.go | 3 + internal/telemetry/diagnostics.go | 3 + internal/telemetry/diagnostics_test.go | 3 + internal/telemetry/doc.go | 3 + internal/telemetry/exporters.go | 3 + internal/telemetry/exporters_test.go | 3 + internal/telemetry/identity.go | 3 + internal/telemetry/identity_test.go | 3 + internal/telemetry/insecure.go | 3 + internal/telemetry/insecure_test.go | 3 + internal/telemetry/keyring.go | 3 + internal/telemetry/keyring_test.go | 3 + internal/telemetry/pseudonym.go | 3 + internal/telemetry/pseudonym_test.go | 3 + internal/telemetry/resource.go | 3 + internal/telemetry/resource_test.go | 3 + internal/telemetry/slog_handler.go | 3 + internal/telemetry/slog_handler_test.go | 3 + internal/telemetry/telemetry.go | 3 + internal/telemetry/telemetry_test.go | 3 + internal/tenancy/budget.go | 3 + internal/tenancy/budget_test.go | 3 + internal/tenancy/busy.go | 3 + internal/tenancy/busy_test.go | 3 + internal/tenancy/channels.go | 3 + internal/tenancy/channels_integration_test.go | 3 + internal/tenancy/channels_test.go | 3 + internal/tenancy/codes.go | 3 + internal/tenancy/codes_test.go | 3 + internal/tenancy/decision.go | 3 + internal/tenancy/decision_test.go | 3 + internal/tenancy/decisions.go | 3 + internal/tenancy/decisions_admit.go | 3 + internal/tenancy/decisions_allow.go | 3 + internal/tenancy/decisions_authorize.go | 3 + internal/tenancy/decisions_end.go | 3 + internal/tenancy/decisions_identify.go | 3 + internal/tenancy/decisions_request.go | 3 + internal/tenancy/decisions_test.go | 3 + internal/tenancy/doc.go | 3 + internal/tenancy/doc_test.go | 3 + internal/tenancy/failures.go | 3 + internal/tenancy/failures_test.go | 3 + internal/tenancy/grants.go | 3 + internal/tenancy/grants_test.go | 3 + internal/tenancy/key.go | 3 + internal/tenancy/key_test.go | 3 + internal/tenancy/meter.go | 3 + internal/tenancy/meter_test.go | 3 + internal/tenancy/validate.go | 3 + internal/tenancy/validate_test.go | 3 + internal/tenancy/values.go | 3 + internal/tenancy/values_test.go | 3 + internal/testutil/captured.go | 3 + internal/testutil/captured_test.go | 3 + internal/testutil/doc.go | 3 + internal/testutil/e2ecalls/doc.go | 3 + internal/testutil/e2ecalls/reader.go | 3 + internal/testutil/e2ecalls/reader_test.go | 3 + internal/testutil/e2ecalls/record.go | 3 + internal/testutil/e2ecalls/record_test.go | 3 + internal/testutil/e2ecalls/writer.go | 3 + internal/testutil/e2ecalls/writer_test.go | 3 + internal/testutil/e2erelease/doc.go | 3 + internal/testutil/e2erelease/release.go | 3 + internal/testutil/e2erelease/release_test.go | 3 + internal/testutil/embed_assert.go | 3 + internal/testutil/embed_assert_test.go | 3 + internal/testutil/fixture.go | 3 + internal/testutil/fixture_test.go | 3 + internal/testutil/gfm.go | 3 + internal/testutil/gfm_test.go | 3 + internal/testutil/graphql.go | 3 + internal/testutil/graphql_complexity.go | 3 + internal/testutil/graphql_complexity_test.go | 3 + internal/testutil/graphql_test.go | 3 + internal/testutil/graphql_validation.go | 3 + internal/testutil/graphql_validation_test.go | 3 + internal/testutil/helpers.go | 3 + internal/testutil/helpers_test.go | 3 + internal/testutil/hints/doc.go | 3 + internal/testutil/hints/hints.go | 3 + internal/testutil/hints/hints_test.go | 3 + internal/testutil/keyset.go | 3 + internal/testutil/keyset_test.go | 3 + internal/testutil/legacy_client.go | 3 + .../testutil/legacy_client_external_test.go | 3 + internal/testutil/legacy_client_test.go | 3 + internal/testutil/modelcorpus/access.go | 3 + internal/testutil/modelcorpus/access_test.go | 3 + internal/testutil/modelcorpus/contract.go | 3 + .../testutil/modelcorpus/contract_test.go | 3 + internal/testutil/modelcorpus/declarations.go | 3 + .../testutil/modelcorpus/declarations_test.go | 3 + internal/testutil/modelcorpus/destructive.go | 3 + internal/testutil/modelcorpus/doc.go | 3 + .../modelcorpus/licensed_destructive.go | 3 + .../testutil/modelcorpus/licensed_mutating.go | 3 + .../testutil/modelcorpus/licensed_read.go | 3 + internal/testutil/modelcorpus/mutating.go | 3 + internal/testutil/modelcorpus/read.go | 3 + internal/testutil/modelcorpus/recipes.go | 3 + internal/testutil/modelcorpus/recipes_test.go | 3 + internal/testutil/modelcorpus/retired.go | 3 + internal/testutil/modelcorpus/retired_test.go | 3 + internal/testutil/modelcorpus/types.go | 3 + internal/testutil/modelcorpus/types_test.go | 3 + internal/testutil/modelrecord/doc.go | 3 + internal/testutil/modelrecord/reader.go | 3 + internal/testutil/modelrecord/reader_test.go | 3 + internal/testutil/modelrecord/record.go | 3 + internal/testutil/modelrecord/record_test.go | 3 + internal/testutil/modelrecord/validate.go | 3 + .../testutil/modelrecord/validate_test.go | 3 + internal/testutil/modelrecord/writer.go | 3 + internal/testutil/modelrecord/writer_test.go | 3 + internal/testutil/modelscore/aggregate.go | 3 + .../testutil/modelscore/aggregate_test.go | 3 + internal/testutil/modelscore/args.go | 3 + internal/testutil/modelscore/args_test.go | 3 + internal/testutil/modelscore/attempt.go | 3 + internal/testutil/modelscore/attempt_test.go | 3 + internal/testutil/modelscore/doc.go | 3 + internal/testutil/modelscore/events.go | 3 + internal/testutil/modelscore/events_test.go | 3 + internal/testutil/modelscore/match.go | 3 + internal/testutil/modelscore/match_test.go | 3 + internal/testutil/modelscore/outcome.go | 3 + internal/testutil/modelscore/outcome_test.go | 3 + internal/testutil/multipart.go | 3 + internal/testutil/multipart_test.go | 3 + internal/testutil/netfixture/dead_endpoint.go | 3 + .../testutil/netfixture/dead_endpoint_test.go | 3 + internal/testutil/netfixture/doc.go | 3 + .../testutil/netfixture/stoppable_server.go | 3 + .../netfixture/stoppable_server_test.go | 3 + internal/testutil/query_recorder.go | 3 + internal/testutil/query_recorder_test.go | 3 + internal/testutil/request_inventory.go | 3 + internal/testutil/request_inventory_test.go | 3 + internal/testutil/request_shape.go | 3 + internal/testutil/request_shape_test.go | 3 + internal/testutil/serialtypecheck/doc.go | 3 + .../testutil/serialtypecheck/export_test.go | 3 + internal/testutil/serialtypecheck/norace.go | 3 + internal/testutil/serialtypecheck/race.go | 3 + .../serialtypecheck/serialtypecheck.go | 3 + .../serialtypecheck/serialtypecheck_test.go | 3 + internal/testutil/shardio/doc.go | 3 + internal/testutil/shardio/envelope.go | 3 + internal/testutil/shardio/envelope_test.go | 3 + internal/testutil/shardio/reader.go | 3 + internal/testutil/shardio/reader_test.go | 3 + internal/testutil/shardio/shardio.go | 3 + internal/testutil/shardio/shardio_test.go | 3 + internal/testutil/shardio/writer.go | 3 + internal/testutil/shardio/writer_test.go | 3 + internal/testutil/temp_dir.go | 3 + internal/testutil/temp_dir_test.go | 3 + internal/testutil/write_recorder.go | 3 + internal/testutil/write_recorder_test.go | 3 + .../tools/accessrequests/access_requests.go | 3 + .../accessrequests/access_requests_test.go | 3 + internal/tools/accessrequests/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../tools/accessrequests/action_specs_test.go | 3 + internal/tools/accessrequests/doc.go | 3 + internal/tools/accessrequests/export_test.go | 3 + internal/tools/accessrequests/markdown.go | 3 + internal/tools/accesstokens/accesstokens.go | 3 + .../tools/accesstokens/accesstokens_test.go | 3 + internal/tools/accesstokens/action_specs.go | 3 + .../tools/accesstokens/action_specs_test.go | 3 + internal/tools/accesstokens/doc.go | 3 + internal/tools/accesstokens/markdown.go | 3 + internal/tools/achievements/achievements.go | 3 + .../tools/achievements/achievements_test.go | 3 + internal/tools/achievements/action_specs.go | 3 + .../tools/achievements/action_specs_test.go | 3 + internal/tools/achievements/doc.go | 3 + internal/tools/achievements/markdown.go | 3 + internal/tools/achievements/markdown_test.go | 3 + internal/tools/action_catalog.go | 3 + internal/tools/action_catalog_test.go | 3 + internal/tools/action_specs.go | 3 + internal/tools/action_specs_test.go | 3 + internal/tools/actioncatalog/action_spec.go | 3 + .../tools/actioncatalog/action_spec_test.go | 3 + internal/tools/actioncatalog/catalog.go | 3 + internal/tools/actioncatalog/catalog_test.go | 3 + internal/tools/actioncatalog/classic.go | 3 + internal/tools/actioncatalog/classic_test.go | 3 + internal/tools/actioncatalog/doc.go | 3 + internal/tools/actioncatalog/exclusion.go | 3 + .../tools/actioncatalog/exclusion_test.go | 3 + internal/tools/actioncatalog/group_spec.go | 3 + .../tools/actioncatalog/group_spec_test.go | 3 + .../tools/actioncatalog/required_params.go | 3 + .../actioncatalog/required_params_test.go | 3 + internal/tools/actioncatalog/see_also.go | 3 + internal/tools/actioncatalog/see_also_test.go | 3 + .../tools/actioncatalog/surface_tool_spec.go | 3 + .../actioncatalog/surface_tool_spec_test.go | 3 + internal/tools/actioncatalog/tier.go | 3 + internal/tools/actioncompat/action_aliases.go | 3 + .../tools/actioncompat/action_aliases_test.go | 3 + internal/tools/actioncompat/apply.go | 3 + internal/tools/actioncompat/apply_test.go | 3 + internal/tools/actioncompat/doc.go | 3 + .../tools/actioncompat/parameter_aliases.go | 3 + .../actioncompat/parameter_aliases_test.go | 3 + internal/tools/actiongrants/actiongrants.go | 3 + .../tools/actiongrants/actiongrants_test.go | 3 + internal/tools/actiongrants/doc.go | 3 + internal/tools/adminspecs/action_specs.go | 3 + .../tools/adminspecs/action_specs_test.go | 3 + internal/tools/adminspecs/doc.go | 3 + .../tools/alertmanagement/alert_management.go | 3 + .../alertmanagement/alert_management_test.go | 3 + internal/tools/alertmanagement/doc.go | 3 + internal/tools/alertmanagement/markdown.go | 3 + .../tools/alertmanagement/markdown_test.go | 3 + internal/tools/appearance/appearance.go | 3 + internal/tools/appearance/appearance_test.go | 3 + internal/tools/appearance/doc.go | 3 + internal/tools/appearance/markdown.go | 3 + internal/tools/applications/applications.go | 3 + .../tools/applications/applications_test.go | 3 + internal/tools/applications/doc.go | 3 + internal/tools/applications/markdown.go | 3 + .../tools/appstatistics/app_statistics.go | 3 + .../appstatistics/app_statistics_test.go | 3 + internal/tools/appstatistics/doc.go | 3 + internal/tools/appstatistics/markdown.go | 3 + internal/tools/attestations/action_specs.go | 3 + .../tools/attestations/action_specs_test.go | 3 + internal/tools/attestations/attestations.go | 3 + .../tools/attestations/attestations_test.go | 3 + internal/tools/attestations/doc.go | 3 + internal/tools/attestations/markdown.go | 3 + internal/tools/auditevents/action_specs.go | 3 + .../tools/auditevents/action_specs_test.go | 3 + internal/tools/auditevents/audit_events.go | 3 + .../tools/auditevents/audit_events_test.go | 3 + internal/tools/auditevents/doc.go | 3 + internal/tools/auditevents/markdown.go | 3 + internal/tools/avatar/action_specs.go | 3 + internal/tools/avatar/avatar.go | 3 + internal/tools/avatar/avatar_test.go | 3 + internal/tools/avatar/doc.go | 3 + internal/tools/avatar/markdown.go | 3 + internal/tools/awardemoji/action_specs.go | 3 + .../tools/awardemoji/action_specs_test.go | 3 + internal/tools/awardemoji/award_emoji.go | 3 + internal/tools/awardemoji/award_emoji_test.go | 3 + internal/tools/awardemoji/doc.go | 3 + internal/tools/awardemoji/markdown.go | 3 + internal/tools/awardemoji/sent_shapes.go | 3 + internal/tools/awardemoji/sent_shapes_test.go | 3 + internal/tools/badges/action_specs.go | 3 + internal/tools/badges/action_specs_test.go | 3 + internal/tools/badges/badges.go | 3 + internal/tools/badges/badges_test.go | 3 + internal/tools/badges/doc.go | 3 + internal/tools/badges/markdown.go | 3 + internal/tools/badges/markdown_test.go | 3 + internal/tools/boards/action_specs.go | 3 + internal/tools/boards/action_specs_test.go | 3 + internal/tools/boards/boards.go | 3 + internal/tools/boards/boards_test.go | 3 + internal/tools/boards/doc.go | 3 + internal/tools/boards/markdown.go | 3 + internal/tools/boards/shapes.go | 3 + internal/tools/branches/action_specs.go | 3 + internal/tools/branches/branches.go | 3 + internal/tools/branches/branches_test.go | 3 + internal/tools/branches/doc.go | 3 + internal/tools/branches/markdown.go | 3 + internal/tools/branches/shapes.go | 3 + internal/tools/branchrules/action_specs.go | 3 + internal/tools/branchrules/branch_rules.go | 3 + .../tools/branchrules/branch_rules_test.go | 3 + internal/tools/branchrules/doc.go | 3 + internal/tools/branchrules/markdown.go | 3 + .../tools/broadcastmessages/action_specs.go | 3 + .../broadcastmessages/broadcast_messages.go | 3 + .../broadcast_messages_test.go | 3 + internal/tools/broadcastmessages/doc.go | 3 + internal/tools/broadcastmessages/markdown.go | 3 + internal/tools/bulkimports/bulk_imports.go | 3 + .../tools/bulkimports/bulk_imports_test.go | 3 + internal/tools/bulkimports/doc.go | 3 + internal/tools/bulkimports/markdown.go | 3 + internal/tools/catalog_filter.go | 3 + internal/tools/catalog_filter_test.go | 3 + internal/tools/catalog_group_metadata.go | 3 + internal/tools/catalog_group_metadata_test.go | 3 + internal/tools/catalog_identity.go | 3 + internal/tools/catalog_identity_test.go | 3 + internal/tools/cicatalog/action_specs.go | 3 + internal/tools/cicatalog/action_specs_test.go | 3 + internal/tools/cicatalog/ci_catalog.go | 3 + internal/tools/cicatalog/ci_catalog_test.go | 3 + internal/tools/cicatalog/doc.go | 3 + internal/tools/cicatalog/export_test.go | 3 + internal/tools/cicatalog/markdown.go | 3 + internal/tools/cilint/action_specs.go | 3 + internal/tools/cilint/ci_lint.go | 3 + internal/tools/cilint/ci_lint_test.go | 3 + internal/tools/cilint/doc.go | 3 + internal/tools/cilint/markdown.go | 3 + internal/tools/civariables/action_specs.go | 3 + .../tools/civariables/action_specs_test.go | 3 + internal/tools/civariables/ci_variables.go | 3 + .../tools/civariables/ci_variables_test.go | 3 + internal/tools/civariables/doc.go | 3 + internal/tools/civariables/markdown.go | 3 + .../tools/ciyamltemplates/action_specs.go | 3 + .../ciyamltemplates/ci_yaml_templates.go | 3 + .../ciyamltemplates/ci_yaml_templates_test.go | 3 + internal/tools/ciyamltemplates/doc.go | 3 + internal/tools/ciyamltemplates/markdown.go | 3 + internal/tools/clusteragents/action_ids.go | 3 + .../tools/clusteragents/action_ids_test.go | 3 + .../tools/clusteragents/cluster_agents.go | 3 + .../clusteragents/cluster_agents_test.go | 3 + internal/tools/clusteragents/doc.go | 3 + internal/tools/clusteragents/export_test.go | 3 + internal/tools/clusteragents/markdown.go | 3 + internal/tools/clusteragents/markdown_test.go | 3 + .../tools/commitdiscussions/action_specs.go | 3 + .../commitdiscussions/action_specs_test.go | 3 + .../commitdiscussions/commit_discussions.go | 3 + .../commit_discussions_test.go | 3 + internal/tools/commitdiscussions/doc.go | 3 + internal/tools/commitdiscussions/markdown.go | 3 + internal/tools/commitdiscussions/shapes.go | 3 + .../tools/commitdiscussions/shapes_test.go | 3 + internal/tools/commits/action_ids.go | 3 + internal/tools/commits/action_ids_test.go | 3 + internal/tools/commits/action_specs.go | 3 + internal/tools/commits/action_specs_test.go | 3 + internal/tools/commits/commits.go | 3 + internal/tools/commits/commits_test.go | 3 + internal/tools/commits/doc.go | 3 + internal/tools/commits/export_test.go | 3 + internal/tools/commits/markdown.go | 3 + .../tools/compliancepolicy/action_specs.go | 3 + .../compliancepolicy/compliance_policy.go | 3 + .../compliance_policy_test.go | 3 + internal/tools/compliancepolicy/doc.go | 3 + internal/tools/compliancepolicy/markdown.go | 3 + .../tools/containerregistry/action_specs.go | 3 + .../containerregistry/action_specs_test.go | 3 + .../containerregistry/container_registry.go | 3 + .../container_registry_test.go | 3 + internal/tools/containerregistry/doc.go | 3 + internal/tools/containerregistry/markdown.go | 3 + .../containerregistry/protection_rules.go | 3 + .../protection_rules_test.go | 3 + .../containerregistry/tag_protection_rules.go | 3 + .../tag_protection_rules_test.go | 3 + .../tools/customattributes/action_specs.go | 3 + .../customattributes/custom_attributes.go | 3 + .../custom_attributes_test.go | 3 + internal/tools/customattributes/doc.go | 3 + internal/tools/customattributes/markdown.go | 3 + internal/tools/customemoji/action_specs.go | 3 + .../tools/customemoji/action_specs_test.go | 3 + internal/tools/customemoji/custom_emoji.go | 3 + .../tools/customemoji/custom_emoji_test.go | 3 + internal/tools/customemoji/doc.go | 3 + internal/tools/customemoji/markdown.go | 3 + internal/tools/customemoji/markdown_test.go | 3 + internal/tools/dbmigrations/db_migrations.go | 3 + .../tools/dbmigrations/db_migrations_test.go | 3 + internal/tools/dbmigrations/doc.go | 3 + internal/tools/dbmigrations/markdown.go | 3 + internal/tools/dependencies/action_specs.go | 3 + .../dependencies/action_specs_catalog_test.go | 3 + .../tools/dependencies/action_specs_test.go | 3 + internal/tools/dependencies/dependencies.go | 3 + .../tools/dependencies/dependencies_test.go | 3 + internal/tools/dependencies/doc.go | 3 + internal/tools/dependencies/markdown.go | 3 + internal/tools/dependencies/markdown_test.go | 3 + .../tools/dependencyfirewall/action_specs.go | 3 + .../dependencyfirewall/action_specs_test.go | 3 + .../dependencyfirewall/dependency_firewall.go | 3 + .../dependency_firewall_test.go | 3 + internal/tools/dependencyfirewall/doc.go | 3 + internal/tools/dependencyfirewall/markdown.go | 3 + .../tools/dependencyfirewall/markdown_test.go | 3 + .../tools/dependencyproxy/dependency_proxy.go | 3 + .../dependencyproxy/dependency_proxy_test.go | 3 + internal/tools/dependencyproxy/doc.go | 3 + internal/tools/deploykeys/action_specs.go | 3 + .../deploykeys/action_specs_catalog_test.go | 3 + .../tools/deploykeys/action_specs_test.go | 3 + internal/tools/deploykeys/deploy_keys.go | 3 + internal/tools/deploykeys/deploy_keys_test.go | 3 + internal/tools/deploykeys/doc.go | 3 + internal/tools/deploykeys/markdown.go | 3 + .../deploymentmergerequests/action_ids.go | 3 + .../action_ids_test.go | 3 + .../deploymentmergerequests/action_specs.go | 3 + .../deployment_merge_requests.go | 3 + .../deployment_merge_requests_test.go | 3 + internal/tools/deploymentmergerequests/doc.go | 3 + .../deploymentmergerequests/export_test.go | 3 + .../tools/deploymentmergerequests/markdown.go | 3 + .../tools/deploymentmergerequests/shapes.go | 3 + internal/tools/deployments/action_specs.go | 3 + .../deployments/action_specs_catalog_test.go | 3 + .../tools/deployments/action_specs_test.go | 3 + internal/tools/deployments/deployments.go | 3 + .../tools/deployments/deployments_test.go | 3 + internal/tools/deployments/doc.go | 3 + internal/tools/deployments/export_test.go | 3 + internal/tools/deployments/markdown.go | 3 + internal/tools/deployments/shapes.go | 3 + internal/tools/deploytokens/action_specs.go | 3 + .../tools/deploytokens/action_specs_test.go | 3 + internal/tools/deploytokens/deploy_tokens.go | 3 + .../tools/deploytokens/deploy_tokens_test.go | 3 + internal/tools/deploytokens/doc.go | 3 + internal/tools/deploytokens/markdown.go | 3 + internal/tools/doc.go | 3 + .../tools/dockerfiletemplates/action_specs.go | 3 + .../dockerfiletemplates/action_specs_test.go | 3 + internal/tools/dockerfiletemplates/doc.go | 3 + .../dockerfile_templates.go | 3 + .../dockerfile_templates_test.go | 3 + .../tools/dockerfiletemplates/export_test.go | 3 + .../tools/dockerfiletemplates/markdown.go | 3 + internal/tools/dorametrics/action_specs.go | 3 + .../tools/dorametrics/action_specs_test.go | 3 + internal/tools/dorametrics/doc.go | 3 + internal/tools/dorametrics/dora_metrics.go | 3 + .../tools/dorametrics/dora_metrics_test.go | 3 + internal/tools/dorametrics/markdown.go | 3 + internal/tools/dynamic/alias_audit.go | 3 + internal/tools/dynamic/alias_audit_test.go | 3 + internal/tools/dynamic/doc.go | 3 + internal/tools/dynamic/example.go | 3 + internal/tools/dynamic/example_test.go | 3 + internal/tools/dynamic/fuzzy.go | 3 + internal/tools/dynamic/fuzzy_test.go | 3 + internal/tools/dynamic/metrics.go | 3 + internal/tools/dynamic/metrics_test.go | 3 + internal/tools/dynamic/ranking.go | 3 + internal/tools/dynamic/ranking_test.go | 3 + internal/tools/dynamic/register.go | 3 + internal/tools/dynamic/register_test.go | 3 + internal/tools/dynamic/search_index.go | 3 + internal/tools/dynamic/search_index_test.go | 3 + internal/tools/dynamic/standalone.go | 3 + internal/tools/dynamic/standalone_test.go | 3 + internal/tools/dynamic/surface_specs.go | 3 + internal/tools/dynamic/surface_specs_test.go | 3 + internal/tools/dynamiccatalog/doc.go | 3 + .../tools/dynamiccatalog/dynamic_catalog.go | 3 + .../dynamiccatalog/dynamic_catalog_test.go | 3 + .../tools/elicitationtools/action_specs.go | 3 + .../elicitationtools/action_specs_test.go | 3 + internal/tools/elicitationtools/doc.go | 3 + .../elicitationtools/elicitation_tools.go | 3 + .../elicitation_tools_test.go | 3 + .../tools/enterpriseusers/action_specs.go | 3 + .../enterpriseusers/action_specs_test.go | 3 + internal/tools/enterpriseusers/doc.go | 3 + .../tools/enterpriseusers/enterprise_users.go | 3 + .../enterpriseusers/enterprise_users_test.go | 3 + internal/tools/enterpriseusers/markdown.go | 3 + .../tools/enterpriseusers/markdown_test.go | 3 + internal/tools/environments/action_specs.go | 3 + .../tools/environments/action_specs_test.go | 3 + internal/tools/environments/doc.go | 3 + internal/tools/environments/environments.go | 3 + .../tools/environments/environments_test.go | 3 + internal/tools/environments/markdown.go | 3 + internal/tools/environments/shapes.go | 3 + .../tools/epicdiscussions/action_specs.go | 3 + .../epicdiscussions/action_specs_test.go | 3 + internal/tools/epicdiscussions/doc.go | 3 + .../tools/epicdiscussions/epic_discussions.go | 3 + .../epicdiscussions/epic_discussions_test.go | 3 + internal/tools/epicdiscussions/markdown.go | 3 + internal/tools/epicissues/action_specs.go | 3 + .../tools/epicissues/action_specs_test.go | 3 + internal/tools/epicissues/doc.go | 3 + internal/tools/epicissues/epic_issues.go | 3 + internal/tools/epicissues/epic_issues_test.go | 3 + internal/tools/epicissues/markdown.go | 3 + internal/tools/epicnotes/action_specs.go | 3 + internal/tools/epicnotes/action_specs_test.go | 3 + internal/tools/epicnotes/doc.go | 3 + internal/tools/epicnotes/epic_notes.go | 3 + internal/tools/epicnotes/epic_notes_test.go | 3 + internal/tools/epicnotes/markdown.go | 3 + internal/tools/epicnotes/shapes.go | 3 + internal/tools/epics/action_specs.go | 3 + .../tools/epics/action_specs_catalog_test.go | 3 + internal/tools/epics/action_specs_test.go | 3 + internal/tools/epics/doc.go | 3 + internal/tools/epics/epics.go | 3 + internal/tools/epics/epics_test.go | 3 + internal/tools/epics/markdown.go | 3 + internal/tools/epicworkitems/doc.go | 3 + internal/tools/epicworkitems/work_items.go | 3 + .../tools/epicworkitems/work_items_test.go | 3 + internal/tools/errortracking/doc.go | 3 + .../tools/errortracking/error_tracking.go | 3 + .../errortracking/error_tracking_test.go | 3 + internal/tools/errortracking/markdown.go | 3 + internal/tools/errortracking/markdown_test.go | 3 + internal/tools/events/action_specs.go | 3 + internal/tools/events/action_specs_test.go | 3 + internal/tools/events/doc.go | 3 + internal/tools/events/events.go | 3 + internal/tools/events/events_test.go | 3 + internal/tools/events/markdown.go | 3 + .../externalstatuschecks/action_specs.go | 3 + .../externalstatuschecks/action_specs_test.go | 3 + internal/tools/externalstatuschecks/doc.go | 3 + .../external_status_checks.go | 3 + .../external_status_checks_test.go | 3 + .../tools/externalstatuschecks/markdown.go | 3 + .../externalstatuschecks/markdown_test.go | 3 + internal/tools/featureflags/action_specs.go | 3 + .../featureflags/action_specs_catalog_test.go | 3 + .../tools/featureflags/action_specs_test.go | 3 + internal/tools/featureflags/doc.go | 3 + internal/tools/featureflags/export_test.go | 3 + internal/tools/featureflags/feature_flags.go | 3 + .../tools/featureflags/feature_flags_test.go | 3 + internal/tools/featureflags/markdown.go | 3 + internal/tools/featureflags/markdown_test.go | 3 + internal/tools/features/action_specs.go | 3 + internal/tools/features/action_specs_test.go | 3 + internal/tools/features/doc.go | 3 + internal/tools/features/features.go | 3 + internal/tools/features/features_test.go | 3 + internal/tools/features/markdown.go | 3 + internal/tools/ffuserlists/action_specs.go | 3 + .../tools/ffuserlists/action_specs_test.go | 3 + internal/tools/ffuserlists/doc.go | 3 + internal/tools/ffuserlists/ff_user_lists.go | 3 + .../tools/ffuserlists/ff_user_lists_test.go | 3 + internal/tools/ffuserlists/markdown.go | 3 + internal/tools/ffuserlists/markdown_test.go | 3 + internal/tools/files/action_specs.go | 3 + internal/tools/files/action_specs_test.go | 3 + internal/tools/files/doc.go | 3 + internal/tools/files/files.go | 3 + internal/tools/files/files_test.go | 3 + internal/tools/files/markdown.go | 3 + internal/tools/freezeperiods/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../tools/freezeperiods/action_specs_test.go | 3 + internal/tools/freezeperiods/doc.go | 3 + .../tools/freezeperiods/freeze_periods.go | 3 + .../freezeperiods/freeze_periods_test.go | 3 + internal/tools/freezeperiods/markdown.go | 3 + internal/tools/geo/action_specs.go | 3 + internal/tools/geo/action_specs_test.go | 3 + internal/tools/geo/doc.go | 3 + internal/tools/geo/geo.go | 3 + internal/tools/geo/geo_test.go | 3 + internal/tools/geo/markdown.go | 3 + internal/tools/geo/sent_shapes.go | 3 + internal/tools/geo/sent_shapes_test.go | 3 + .../tools/gitignoretemplates/action_specs.go | 3 + .../gitignoretemplates/action_specs_test.go | 3 + internal/tools/gitignoretemplates/doc.go | 3 + .../gitignoretemplates/gitignore_templates.go | 3 + .../gitignore_templates_test.go | 3 + internal/tools/gitignoretemplates/markdown.go | 3 + internal/tools/groupanalytics/action_specs.go | 3 + .../tools/groupanalytics/action_specs_test.go | 3 + internal/tools/groupanalytics/doc.go | 3 + .../tools/groupanalytics/group_analytics.go | 3 + .../groupanalytics/group_analytics_test.go | 3 + internal/tools/groupanalytics/markdown.go | 3 + internal/tools/groupboards/action_specs.go | 3 + .../tools/groupboards/action_specs_test.go | 3 + internal/tools/groupboards/doc.go | 3 + internal/tools/groupboards/group_boards.go | 3 + .../tools/groupboards/group_boards_test.go | 3 + internal/tools/groupboards/markdown.go | 3 + internal/tools/groupboards/shapes.go | 3 + .../tools/groupcredentials/action_specs.go | 3 + .../groupcredentials/action_specs_test.go | 3 + internal/tools/groupcredentials/doc.go | 3 + .../groupcredentials/group_credentials.go | 3 + .../group_credentials_test.go | 3 + internal/tools/groupcredentials/markdown.go | 3 + .../tools/groupcredentials/markdown_test.go | 3 + .../tools/groupepicboards/action_specs.go | 3 + .../groupepicboards/action_specs_test.go | 3 + internal/tools/groupepicboards/doc.go | 3 + .../groupepicboards/group_epic_boards.go | 3 + .../groupepicboards/group_epic_boards_test.go | 3 + internal/tools/groupepicboards/markdown.go | 3 + internal/tools/groupepicboards/shapes.go | 3 + internal/tools/groupepicboards/shapes_test.go | 3 + .../tools/groupimportexport/action_specs.go | 3 + .../groupimportexport/action_specs_test.go | 3 + internal/tools/groupimportexport/doc.go | 3 + .../tools/groupimportexport/export_test.go | 3 + .../groupimportexport/group_import_export.go | 3 + .../group_import_export_test.go | 3 + internal/tools/groupimportexport/markdown.go | 3 + .../tools/groupimportexport/markdown_test.go | 3 + .../tools/groupiterations/action_specs.go | 3 + internal/tools/groupiterations/doc.go | 3 + .../tools/groupiterations/group_iterations.go | 3 + .../groupiterations/group_iterations_test.go | 3 + internal/tools/groupiterations/markdown.go | 3 + internal/tools/grouplabels/action_specs.go | 3 + .../grouplabels/action_specs_catalog_test.go | 3 + .../tools/grouplabels/action_specs_test.go | 3 + internal/tools/grouplabels/doc.go | 3 + internal/tools/grouplabels/group_labels.go | 3 + .../tools/grouplabels/group_labels_test.go | 3 + internal/tools/grouplabels/markdown.go | 3 + internal/tools/groupldap/action_specs.go | 3 + internal/tools/groupldap/action_specs_test.go | 3 + internal/tools/groupldap/doc.go | 3 + internal/tools/groupldap/group_ldap.go | 3 + internal/tools/groupldap/group_ldap_test.go | 3 + internal/tools/groupldap/markdown.go | 3 + .../groupmarkdownuploads/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../groupmarkdownuploads/action_specs_test.go | 3 + internal/tools/groupmarkdownuploads/doc.go | 3 + .../group_markdown_uploads.go | 3 + .../group_markdown_uploads_test.go | 3 + .../tools/groupmarkdownuploads/markdown.go | 3 + .../groupmarkdownuploads/markdown_test.go | 3 + internal/tools/groupmembers/action_specs.go | 3 + .../groupmembers/action_specs_catalog_test.go | 3 + .../tools/groupmembers/action_specs_test.go | 3 + internal/tools/groupmembers/doc.go | 3 + internal/tools/groupmembers/export_test.go | 3 + internal/tools/groupmembers/group_members.go | 3 + .../tools/groupmembers/group_members_test.go | 3 + internal/tools/groupmembers/markdown.go | 3 + internal/tools/groupmembers/markdown_test.go | 3 + .../tools/groupmilestones/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../groupmilestones/action_specs_test.go | 3 + internal/tools/groupmilestones/doc.go | 3 + .../tools/groupmilestones/group_milestones.go | 3 + .../groupmilestones/group_milestones_test.go | 3 + internal/tools/groupmilestones/markdown.go | 3 + .../groupprotectedbranches/action_specs.go | 3 + .../action_specs_test.go | 3 + internal/tools/groupprotectedbranches/doc.go | 3 + .../group_protected_branches.go | 3 + .../group_protected_branches_test.go | 3 + .../tools/groupprotectedbranches/markdown.go | 3 + .../tools/groupprotectedenvs/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../groupprotectedenvs/action_specs_test.go | 3 + internal/tools/groupprotectedenvs/doc.go | 3 + .../group_protected_envs.go | 3 + .../group_protected_envs_test.go | 3 + internal/tools/groupprotectedenvs/markdown.go | 3 + .../grouprelationsexport/action_specs.go | 3 + .../grouprelationsexport/action_specs_test.go | 3 + internal/tools/grouprelationsexport/doc.go | 3 + .../group_relations_export.go | 3 + .../group_relations_export_test.go | 3 + .../tools/grouprelationsexport/markdown.go | 3 + .../grouprelationsexport/markdown_test.go | 3 + internal/tools/groupreleases/action_specs.go | 3 + .../tools/groupreleases/action_specs_test.go | 3 + internal/tools/groupreleases/doc.go | 3 + .../tools/groupreleases/group_releases.go | 3 + .../groupreleases/group_releases_test.go | 3 + internal/tools/groupreleases/markdown.go | 3 + internal/tools/groupreleases/markdown_test.go | 3 + internal/tools/groupreleases/shapes.go | 3 + internal/tools/groups/action_specs.go | 3 + .../tools/groups/action_specs_catalog_test.go | 3 + internal/tools/groups/action_specs_test.go | 3 + internal/tools/groups/avatar.go | 3 + internal/tools/groups/avatar_test.go | 3 + internal/tools/groups/doc.go | 3 + internal/tools/groups/groups.go | 3 + internal/tools/groups/groups_test.go | 3 + internal/tools/groups/hooks.go | 3 + internal/tools/groups/hooks_test.go | 3 + internal/tools/groups/markdown.go | 3 + internal/tools/groups/markdown_test.go | 3 + internal/tools/groups/provisioned_users.go | 3 + .../tools/groups/provisioned_users_test.go | 3 + internal/tools/groups/push_rules.go | 3 + internal/tools/groups/push_rules_test.go | 3 + internal/tools/groups/sharing.go | 3 + internal/tools/groups/sharing_test.go | 3 + internal/tools/groups/transfer.go | 3 + internal/tools/groups/transfer_test.go | 3 + internal/tools/groupsaml/action_specs.go | 3 + internal/tools/groupsaml/action_specs_test.go | 3 + internal/tools/groupsaml/doc.go | 3 + internal/tools/groupsaml/group_saml.go | 3 + internal/tools/groupsaml/group_saml_test.go | 3 + internal/tools/groupsaml/markdown.go | 3 + internal/tools/groupsaml/markdown_test.go | 3 + internal/tools/groupscim/action_specs.go | 3 + internal/tools/groupscim/action_specs_test.go | 3 + internal/tools/groupscim/doc.go | 3 + internal/tools/groupscim/group_scim.go | 3 + internal/tools/groupscim/group_scim_test.go | 3 + internal/tools/groupscim/markdown.go | 3 + internal/tools/groupscim/markdown_test.go | 3 + .../groupserviceaccounts/action_specs.go | 3 + .../groupserviceaccounts/action_specs_test.go | 3 + internal/tools/groupserviceaccounts/doc.go | 3 + .../group_service_accounts.go | 3 + .../group_service_accounts_test.go | 3 + .../tools/groupserviceaccounts/markdown.go | 3 + internal/tools/groupsshcerts/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../tools/groupsshcerts/action_specs_test.go | 3 + internal/tools/groupsshcerts/doc.go | 3 + internal/tools/groupsshcerts/export_test.go | 3 + .../tools/groupsshcerts/group_ssh_certs.go | 3 + .../groupsshcerts/group_ssh_certs_test.go | 3 + internal/tools/groupsshcerts/markdown.go | 3 + internal/tools/groupsshcerts/markdown_test.go | 3 + .../tools/groupstoragemoves/action_specs.go | 3 + .../groupstoragemoves/action_specs_test.go | 3 + internal/tools/groupstoragemoves/doc.go | 3 + .../groupstoragemoves/group_storage_moves.go | 3 + .../group_storage_moves_test.go | 3 + internal/tools/groupstoragemoves/markdown.go | 3 + internal/tools/groupvariables/action_ids.go | 3 + .../tools/groupvariables/action_ids_test.go | 3 + internal/tools/groupvariables/action_specs.go | 3 + .../tools/groupvariables/action_specs_test.go | 3 + internal/tools/groupvariables/doc.go | 3 + internal/tools/groupvariables/export_test.go | 3 + .../tools/groupvariables/group_variables.go | 3 + .../groupvariables/group_variables_test.go | 3 + internal/tools/groupvariables/markdown.go | 3 + internal/tools/groupwikis/action_specs.go | 3 + .../tools/groupwikis/action_specs_test.go | 3 + internal/tools/groupwikis/doc.go | 3 + internal/tools/groupwikis/group_wikis.go | 3 + internal/tools/groupwikis/group_wikis_test.go | 3 + internal/tools/groupwikis/markdown.go | 3 + internal/tools/groupwikis/markdown_test.go | 3 + internal/tools/health/action_specs.go | 3 + internal/tools/health/doc.go | 3 + internal/tools/health/health.go | 3 + internal/tools/health/health_test.go | 3 + internal/tools/health/markdown.go | 3 + .../tools/impersonationtokens/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../impersonationtokens/action_specs_test.go | 3 + internal/tools/impersonationtokens/doc.go | 3 + .../impersonation_tokens.go | 3 + .../impersonation_tokens_test.go | 3 + .../tools/impersonationtokens/markdown.go | 3 + internal/tools/importservice/doc.go | 3 + .../tools/importservice/import_service.go | 3 + .../importservice/import_service_test.go | 3 + internal/tools/individual_catalog.go | 3 + internal/tools/individual_catalog_test.go | 3 + .../tools/instancevariables/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../instancevariables/action_specs_test.go | 3 + internal/tools/instancevariables/doc.go | 3 + .../instancevariables/instance_variables.go | 3 + .../instance_variables_test.go | 3 + internal/tools/instancevariables/markdown.go | 3 + internal/tools/integrations/action_specs.go | 3 + .../tools/integrations/action_specs_test.go | 3 + internal/tools/integrations/doc.go | 3 + internal/tools/integrations/group_datadog.go | 3 + .../tools/integrations/group_datadog_test.go | 3 + .../tools/integrations/group_integration.go | 3 + .../integrations/group_integration_test.go | 3 + internal/tools/integrations/integrations.go | 3 + .../tools/integrations/integrations_test.go | 3 + internal/tools/integrations/markdown.go | 3 + internal/tools/integrations/markdown_test.go | 3 + .../tools/integrations/set_integration.go | 3 + .../integrations/set_integration_test.go | 3 + internal/tools/integrations/set_jira.go | 3 + internal/tools/invites/action_specs.go | 3 + internal/tools/invites/action_specs_test.go | 3 + internal/tools/invites/doc.go | 3 + internal/tools/invites/invites.go | 3 + internal/tools/invites/invites_test.go | 3 + internal/tools/invites/markdown.go | 3 + .../tools/issuediscussions/action_specs.go | 3 + .../issuediscussions/action_specs_test.go | 3 + internal/tools/issuediscussions/doc.go | 3 + .../issuediscussions/issue_discussions.go | 3 + .../issue_discussions_test.go | 3 + internal/tools/issuediscussions/markdown.go | 3 + internal/tools/issuelinks/action_specs.go | 3 + .../tools/issuelinks/action_specs_test.go | 3 + internal/tools/issuelinks/doc.go | 3 + internal/tools/issuelinks/issue_links.go | 3 + internal/tools/issuelinks/issue_links_test.go | 3 + internal/tools/issuelinks/markdown.go | 3 + internal/tools/issuelinks/sent_shapes.go | 3 + internal/tools/issuelinks/sent_shapes_test.go | 3 + internal/tools/issuelinks/shapes.go | 3 + internal/tools/issuelinks/shapes_test.go | 3 + internal/tools/issuenotes/action_specs.go | 3 + .../tools/issuenotes/action_specs_test.go | 3 + internal/tools/issuenotes/doc.go | 3 + internal/tools/issuenotes/issue_notes.go | 3 + internal/tools/issuenotes/issue_notes_test.go | 3 + internal/tools/issuenotes/markdown.go | 3 + internal/tools/issues/action_specs.go | 3 + .../tools/issues/action_specs_catalog_test.go | 3 + internal/tools/issues/action_specs_test.go | 3 + internal/tools/issues/doc.go | 3 + internal/tools/issues/export_test.go | 3 + internal/tools/issues/issues.go | 3 + internal/tools/issues/issues_test.go | 3 + internal/tools/issues/markdown.go | 3 + internal/tools/issues/shapes.go | 3 + .../tools/issuestatistics/action_specs.go | 3 + internal/tools/issuestatistics/doc.go | 3 + .../tools/issuestatistics/issue_statistics.go | 3 + .../issue_statistics_catalog_test.go | 3 + .../issuestatistics/issue_statistics_test.go | 3 + internal/tools/issuestatistics/markdown.go | 3 + internal/tools/iterationdata/doc.go | 3 + .../tools/iterationdata/iteration_data.go | 3 + .../iterationdata/iteration_data_test.go | 3 + internal/tools/iterationdata/markdown.go | 3 + internal/tools/jobs/action_specs.go | 3 + .../tools/jobs/action_specs_catalog_test.go | 3 + internal/tools/jobs/action_specs_test.go | 3 + internal/tools/jobs/doc.go | 3 + internal/tools/jobs/export_test.go | 3 + internal/tools/jobs/jobs.go | 3 + internal/tools/jobs/jobs_norace_test.go | 3 + internal/tools/jobs/jobs_race_test.go | 3 + internal/tools/jobs/jobs_test.go | 3 + internal/tools/jobs/markdown.go | 3 + internal/tools/jobs/shapes.go | 3 + internal/tools/jobs/shapes_test.go | 3 + internal/tools/jobs/wait.go | 3 + internal/tools/jobs/wait_test.go | 3 + internal/tools/jobtokenscope/action_specs.go | 3 + .../tools/jobtokenscope/action_specs_test.go | 3 + internal/tools/jobtokenscope/doc.go | 3 + .../tools/jobtokenscope/job_token_scope.go | 3 + .../jobtokenscope/job_token_scope_test.go | 3 + internal/tools/jobtokenscope/markdown.go | 3 + internal/tools/keys/action_specs.go | 3 + internal/tools/keys/action_specs_test.go | 3 + internal/tools/keys/doc.go | 3 + internal/tools/keys/keys.go | 3 + internal/tools/keys/keys_catalog_test.go | 3 + internal/tools/keys/keys_test.go | 3 + internal/tools/keys/markdown.go | 3 + internal/tools/labeldata/doc.go | 3 + internal/tools/labeldata/label_data.go | 3 + internal/tools/labeldata/label_data_test.go | 3 + internal/tools/labels/action_specs.go | 3 + internal/tools/labels/action_specs_test.go | 3 + internal/tools/labels/doc.go | 3 + internal/tools/labels/export_test.go | 3 + internal/tools/labels/labels.go | 3 + internal/tools/labels/labels_test.go | 3 + internal/tools/labels/markdown.go | 3 + internal/tools/license/doc.go | 3 + internal/tools/license/license.go | 3 + internal/tools/license/license_test.go | 3 + internal/tools/license/markdown.go | 3 + .../tools/licensetemplates/action_specs.go | 3 + .../licensetemplates/action_specs_test.go | 3 + internal/tools/licensetemplates/doc.go | 3 + .../licensetemplates/license_templates.go | 3 + .../license_templates_test.go | 3 + internal/tools/licensetemplates/markdown.go | 3 + internal/tools/markdown.go | 3 + internal/tools/markdown/action_specs.go | 3 + internal/tools/markdown/doc.go | 3 + internal/tools/markdown/markdown.go | 3 + internal/tools/markdown/markdown_test.go | 3 + internal/tools/markdown_test.go | 3 + internal/tools/memberroles/action_specs.go | 3 + .../tools/memberroles/action_specs_test.go | 3 + internal/tools/memberroles/doc.go | 3 + internal/tools/memberroles/markdown.go | 3 + internal/tools/memberroles/markdown_test.go | 3 + internal/tools/memberroles/member_roles.go | 3 + .../tools/memberroles/member_roles_test.go | 3 + internal/tools/memberroles/sent_shapes.go | 3 + .../tools/memberroles/sent_shapes_test.go | 3 + internal/tools/members/action_specs.go | 3 + .../members/action_specs_catalog_test.go | 3 + internal/tools/members/action_specs_test.go | 3 + internal/tools/members/doc.go | 3 + internal/tools/members/markdown.go | 3 + internal/tools/members/members.go | 3 + internal/tools/members/members_test.go | 3 + internal/tools/mergerequests/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../tools/mergerequests/action_specs_test.go | 3 + internal/tools/mergerequests/doc.go | 3 + internal/tools/mergerequests/markdown.go | 3 + internal/tools/mergerequests/markdown_test.go | 3 + .../tools/mergerequests/merge_requests.go | 3 + .../mergerequests/merge_requests_test.go | 3 + internal/tools/mergerequests/shapes.go | 3 + internal/tools/mergerequests/shapes_test.go | 3 + internal/tools/mergetrains/action_specs.go | 3 + .../tools/mergetrains/action_specs_test.go | 3 + internal/tools/mergetrains/doc.go | 3 + internal/tools/mergetrains/markdown.go | 3 + internal/tools/mergetrains/merge_trains.go | 3 + .../tools/mergetrains/merge_trains_test.go | 3 + internal/tools/meta_catalog.go | 3 + internal/tools/meta_catalog_test.go | 3 + internal/tools/meta_tool.go | 3 + internal/tools/meta_tool_test.go | 3 + internal/tools/metadata/doc.go | 3 + internal/tools/metadata/markdown.go | 3 + internal/tools/metadata/metadata.go | 3 + internal/tools/metadata/metadata_test.go | 3 + internal/tools/milestones/action_specs.go | 3 + .../tools/milestones/action_specs_test.go | 3 + internal/tools/milestones/doc.go | 3 + internal/tools/milestones/markdown.go | 3 + internal/tools/milestones/milestones.go | 3 + internal/tools/milestones/milestones_test.go | 3 + internal/tools/modelregistry/action_specs.go | 3 + .../tools/modelregistry/action_specs_test.go | 3 + internal/tools/modelregistry/doc.go | 3 + internal/tools/modelregistry/markdown.go | 3 + internal/tools/modelregistry/markdown_test.go | 3 + .../tools/modelregistry/model_registry.go | 3 + .../modelregistry/model_registry_test.go | 3 + internal/tools/mrapprovals/action_specs.go | 3 + .../tools/mrapprovals/action_specs_test.go | 3 + internal/tools/mrapprovals/doc.go | 3 + internal/tools/mrapprovals/markdown.go | 3 + internal/tools/mrapprovals/mr_approvals.go | 3 + .../tools/mrapprovals/mr_approvals_test.go | 3 + internal/tools/mrapprovals/shapes.go | 3 + internal/tools/mrapprovals/shapes_test.go | 3 + .../tools/mrapprovalsettings/action_ids.go | 3 + .../mrapprovalsettings/action_ids_test.go | 3 + .../tools/mrapprovalsettings/action_specs.go | 3 + .../mrapprovalsettings/action_specs_test.go | 3 + internal/tools/mrapprovalsettings/doc.go | 3 + .../tools/mrapprovalsettings/export_test.go | 3 + internal/tools/mrapprovalsettings/markdown.go | 3 + .../mr_approval_settings.go | 3 + .../mr_approval_settings_test.go | 3 + internal/tools/mrchanges/action_specs.go | 3 + internal/tools/mrchanges/doc.go | 3 + internal/tools/mrchanges/markdown.go | 3 + internal/tools/mrchanges/mr_changes.go | 3 + internal/tools/mrchanges/mr_changes_test.go | 3 + .../tools/mrcontextcommits/action_specs.go | 3 + .../mrcontextcommits/action_specs_test.go | 3 + internal/tools/mrcontextcommits/doc.go | 3 + .../tools/mrcontextcommits/export_test.go | 3 + internal/tools/mrcontextcommits/markdown.go | 3 + .../mrcontextcommits/mr_context_commits.go | 3 + .../mr_context_commits_test.go | 3 + internal/tools/mrdiscussions/action_specs.go | 3 + internal/tools/mrdiscussions/doc.go | 3 + internal/tools/mrdiscussions/markdown.go | 3 + .../tools/mrdiscussions/mr_discussions.go | 3 + .../mrdiscussions/mr_discussions_test.go | 3 + internal/tools/mrdraftnotes/action_specs.go | 3 + .../mrdraftnotes/action_specs_catalog_test.go | 3 + .../tools/mrdraftnotes/action_specs_test.go | 3 + internal/tools/mrdraftnotes/doc.go | 3 + internal/tools/mrdraftnotes/markdown.go | 3 + internal/tools/mrdraftnotes/mr_draft_notes.go | 3 + .../tools/mrdraftnotes/mr_draft_notes_test.go | 3 + internal/tools/mrnotes/action_specs.go | 3 + .../mrnotes/action_specs_catalog_test.go | 3 + internal/tools/mrnotes/action_specs_test.go | 3 + internal/tools/mrnotes/doc.go | 3 + internal/tools/mrnotes/export_test.go | 3 + internal/tools/mrnotes/markdown.go | 3 + internal/tools/mrnotes/mr_notes.go | 3 + internal/tools/mrnotes/mr_notes_test.go | 3 + internal/tools/namespaces/action_specs.go | 3 + .../tools/namespaces/action_specs_test.go | 3 + internal/tools/namespaces/doc.go | 3 + internal/tools/namespaces/markdown.go | 3 + internal/tools/namespaces/namespaces.go | 3 + internal/tools/namespaces/namespaces_test.go | 3 + internal/tools/notifications/action_specs.go | 3 + .../tools/notifications/action_specs_test.go | 3 + internal/tools/notifications/doc.go | 3 + internal/tools/notifications/markdown.go | 3 + internal/tools/notifications/notifications.go | 3 + .../tools/notifications/notifications_test.go | 3 + internal/tools/orbit/action_specs.go | 3 + internal/tools/orbit/action_specs_test.go | 3 + internal/tools/orbit/doc.go | 3 + internal/tools/orbit/markdown.go | 3 + internal/tools/orbit/markdown_test.go | 3 + internal/tools/orbit/orbit.go | 3 + internal/tools/orbit/orbit_test.go | 3 + internal/tools/packages/action_specs.go | 3 + internal/tools/packages/action_specs_test.go | 3 + internal/tools/packages/doc.go | 3 + internal/tools/packages/markdown.go | 3 + internal/tools/packages/markdown_test.go | 3 + internal/tools/packages/packages.go | 3 + internal/tools/packages/packages_composite.go | 3 + .../tools/packages/packages_composite_test.go | 3 + internal/tools/packages/packages_stream.go | 3 + .../tools/packages/packages_stream_test.go | 3 + .../packages/packages_stream_unix_test.go | 3 + internal/tools/packages/packages_test.go | 3 + internal/tools/pages/action_specs.go | 3 + internal/tools/pages/action_specs_test.go | 3 + internal/tools/pages/doc.go | 3 + internal/tools/pages/markdown.go | 3 + internal/tools/pages/pages.go | 3 + internal/tools/pages/pages_test.go | 3 + internal/tools/pipelines/action_specs.go | 3 + internal/tools/pipelines/action_specs_test.go | 3 + internal/tools/pipelines/doc.go | 3 + internal/tools/pipelines/latest.go | 3 + internal/tools/pipelines/latest_test.go | 3 + internal/tools/pipelines/markdown.go | 3 + internal/tools/pipelines/pipelines.go | 3 + internal/tools/pipelines/pipelines_test.go | 3 + internal/tools/pipelines/sent_shapes.go | 3 + internal/tools/pipelines/sent_shapes_test.go | 3 + internal/tools/pipelines/shapes.go | 3 + internal/tools/pipelines/wait.go | 3 + internal/tools/pipelines/wait_test.go | 3 + .../tools/pipelineschedules/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../pipelineschedules/action_specs_test.go | 3 + internal/tools/pipelineschedules/doc.go | 3 + .../tools/pipelineschedules/export_test.go | 3 + internal/tools/pipelineschedules/markdown.go | 3 + .../pipelineschedules/pipeline_schedules.go | 3 + .../pipeline_schedules_test.go | 3 + internal/tools/pipelineschedules/shapes.go | 3 + .../tools/pipelinetriggers/action_specs.go | 3 + .../pipelinetriggers/action_specs_test.go | 3 + internal/tools/pipelinetriggers/doc.go | 3 + internal/tools/pipelinetriggers/markdown.go | 3 + .../pipelinetriggers/pipeline_triggers.go | 3 + .../pipeline_triggers_test.go | 3 + internal/tools/pipelinetriggers/shapes.go | 3 + internal/tools/planlimits/doc.go | 3 + internal/tools/planlimits/markdown.go | 3 + internal/tools/planlimits/plan_limits.go | 3 + internal/tools/planlimits/plan_limits_test.go | 3 + internal/tools/planlimits/sent_shapes.go | 3 + internal/tools/projectaliases/action_specs.go | 3 + .../tools/projectaliases/action_specs_test.go | 3 + internal/tools/projectaliases/doc.go | 3 + internal/tools/projectaliases/markdown.go | 3 + .../tools/projectaliases/project_aliases.go | 3 + .../projectaliases/project_aliases_test.go | 3 + .../tools/projectdiscovery/action_specs.go | 3 + internal/tools/projectdiscovery/doc.go | 3 + internal/tools/projectdiscovery/markdown.go | 3 + .../projectdiscovery/project_discovery.go | 3 + .../project_discovery_test.go | 3 + .../tools/projectimportexport/action_specs.go | 3 + .../projectimportexport/action_specs_test.go | 3 + internal/tools/projectimportexport/doc.go | 3 + .../tools/projectimportexport/markdown.go | 3 + .../project_import_export.go | 3 + .../project_import_export_test.go | 3 + .../tools/projectiterations/action_specs.go | 3 + .../projectiterations/action_specs_test.go | 3 + internal/tools/projectiterations/doc.go | 3 + .../tools/projectiterations/export_test.go | 3 + internal/tools/projectiterations/markdown.go | 3 + .../projectiterations/project_iterations.go | 3 + .../project_iterations_test.go | 3 + internal/tools/projectmirrors/action_specs.go | 3 + .../tools/projectmirrors/action_specs_test.go | 3 + internal/tools/projectmirrors/doc.go | 3 + internal/tools/projectmirrors/markdown.go | 3 + .../tools/projectmirrors/project_mirrors.go | 3 + .../projectmirrors/project_mirrors_test.go | 3 + internal/tools/projects/action_specs.go | 3 + .../projects/action_specs_catalog_test.go | 3 + internal/tools/projects/action_specs_test.go | 3 + internal/tools/projects/approvals.go | 3 + internal/tools/projects/approvals_test.go | 3 + internal/tools/projects/doc.go | 3 + internal/tools/projects/markdown.go | 3 + internal/tools/projects/mirroring.go | 3 + internal/tools/projects/mirroring_test.go | 3 + internal/tools/projects/projects.go | 3 + internal/tools/projects/projects_test.go | 3 + internal/tools/projects/pull_mirror_guard.go | 3 + .../tools/projects/pull_mirror_guard_test.go | 3 + internal/tools/projects/shapes.go | 3 + internal/tools/projects/shapes_test.go | 3 + .../tools/projects/target_branch_rules.go | 3 + .../projects/target_branch_rules_test.go | 3 + internal/tools/projects/transfer.go | 3 + internal/tools/projects/transfer_test.go | 3 + .../projectserviceaccounts/action_specs.go | 3 + .../action_specs_test.go | 3 + internal/tools/projectserviceaccounts/doc.go | 3 + .../tools/projectserviceaccounts/markdown.go | 3 + .../project_service_accounts.go | 3 + .../project_service_accounts_test.go | 3 + .../tools/projectstatistics/action_specs.go | 3 + .../projectstatistics/action_specs_test.go | 3 + internal/tools/projectstatistics/doc.go | 3 + internal/tools/projectstatistics/markdown.go | 3 + .../projectstatistics/project_statistics.go | 3 + .../project_statistics_test.go | 3 + .../tools/projectstoragemoves/action_specs.go | 3 + .../projectstoragemoves/action_specs_test.go | 3 + internal/tools/projectstoragemoves/doc.go | 3 + .../tools/projectstoragemoves/markdown.go | 3 + .../project_storage_moves.go | 3 + .../project_storage_moves_test.go | 3 + .../tools/projecttemplates/action_specs.go | 3 + internal/tools/projecttemplates/doc.go | 3 + internal/tools/projecttemplates/markdown.go | 3 + .../projecttemplates/project_templates.go | 3 + .../project_templates_test.go | 3 + internal/tools/protectedenvdata/doc.go | 3 + internal/tools/protectedenvdata/markdown.go | 3 + .../tools/protectedenvdata/markdown_test.go | 3 + .../protectedenvdata/protected_env_data.go | 3 + .../protected_env_data_test.go | 3 + internal/tools/protectedenvs/action_specs.go | 3 + .../tools/protectedenvs/action_specs_test.go | 3 + internal/tools/protectedenvs/doc.go | 3 + internal/tools/protectedenvs/markdown.go | 3 + .../tools/protectedenvs/protected_envs.go | 3 + .../protectedenvs/protected_envs_test.go | 3 + .../tools/protectedpackages/action_specs.go | 3 + .../protectedpackages/action_specs_test.go | 3 + internal/tools/protectedpackages/doc.go | 3 + internal/tools/protectedpackages/markdown.go | 3 + .../protectedpackages/protected_packages.go | 3 + .../protected_packages_test.go | 3 + internal/tools/register.go | 3 + internal/tools/register_mcp_meta.go | 3 + internal/tools/register_mcp_meta_test.go | 3 + internal/tools/register_meta.go | 3 + internal/tools/register_meta_test.go | 3 + internal/tools/register_test.go | 3 + internal/tools/releaselinks/action_specs.go | 3 + .../tools/releaselinks/action_specs_test.go | 3 + internal/tools/releaselinks/doc.go | 3 + internal/tools/releaselinks/markdown.go | 3 + internal/tools/releaselinks/release_links.go | 3 + .../tools/releaselinks/release_links_test.go | 3 + internal/tools/releases/action_specs.go | 3 + internal/tools/releases/action_specs_test.go | 3 + internal/tools/releases/doc.go | 3 + internal/tools/releases/markdown.go | 3 + internal/tools/releases/releases.go | 3 + internal/tools/releases/releases_test.go | 3 + internal/tools/releases/shapes.go | 3 + internal/tools/repository/action_specs.go | 3 + .../tools/repository/action_specs_test.go | 3 + internal/tools/repository/doc.go | 3 + internal/tools/repository/markdown.go | 3 + internal/tools/repository/repository.go | 3 + internal/tools/repository/repository_test.go | 3 + .../repositorysubmodules/action_specs.go | 3 + .../repositorysubmodules/action_specs_test.go | 3 + internal/tools/repositorysubmodules/doc.go | 3 + internal/tools/repositorysubmodules/list.go | 3 + .../tools/repositorysubmodules/list_test.go | 3 + .../tools/repositorysubmodules/markdown.go | 3 + .../repositorysubmodules/markdown_test.go | 3 + internal/tools/repositorysubmodules/read.go | 3 + .../tools/repositorysubmodules/read_test.go | 3 + .../repository_submodules.go | 3 + .../repository_submodules_test.go | 3 + internal/tools/resourceevents/action_specs.go | 3 + .../action_specs_catalog_test.go | 3 + .../tools/resourceevents/action_specs_test.go | 3 + internal/tools/resourceevents/doc.go | 3 + internal/tools/resourceevents/export_test.go | 3 + internal/tools/resourceevents/markdown.go | 3 + .../tools/resourceevents/resource_events.go | 3 + .../resourceevents/resource_events_test.go | 3 + internal/tools/resourceevents/shapes.go | 3 + internal/tools/resourceevents/shapes_test.go | 3 + internal/tools/resourcegroups/action_specs.go | 3 + internal/tools/resourcegroups/doc.go | 3 + internal/tools/resourcegroups/markdown.go | 3 + .../tools/resourcegroups/resource_groups.go | 3 + .../resourcegroups/resource_groups_test.go | 3 + internal/tools/resourcegroups/sent_shapes.go | 3 + .../tools/runnercontrollers/action_specs.go | 3 + .../runnercontrollers/action_specs_test.go | 3 + internal/tools/runnercontrollers/doc.go | 3 + internal/tools/runnercontrollers/markdown.go | 3 + .../runnercontrollers/runner_controllers.go | 3 + .../runner_controllers_test.go | 3 + .../runnercontrollerscopes/action_specs.go | 3 + .../action_specs_test.go | 3 + internal/tools/runnercontrollerscopes/doc.go | 3 + .../tools/runnercontrollerscopes/markdown.go | 3 + .../runner_controller_scopes.go | 3 + .../runner_controller_scopes_test.go | 3 + .../runnercontrollertokens/action_specs.go | 3 + .../action_specs_test.go | 3 + internal/tools/runnercontrollertokens/doc.go | 3 + .../tools/runnercontrollertokens/markdown.go | 3 + .../runner_controller_tokens.go | 3 + .../runner_controller_tokens_test.go | 3 + internal/tools/runners/action_specs.go | 3 + internal/tools/runners/action_specs_test.go | 3 + internal/tools/runners/doc.go | 3 + internal/tools/runners/markdown.go | 3 + internal/tools/runners/runners.go | 3 + internal/tools/runners/runners_test.go | 3 + internal/tools/safe_mode.go | 3 + internal/tools/safe_mode_test.go | 3 + internal/tools/scope_filter.go | 3 + internal/tools/scope_filter_test.go | 3 + internal/tools/search/action_specs.go | 3 + internal/tools/search/action_specs_test.go | 3 + internal/tools/search/doc.go | 3 + internal/tools/search/markdown.go | 3 + internal/tools/search/markdown_test.go | 3 + internal/tools/search/routes.go | 3 + internal/tools/search/search.go | 3 + internal/tools/search/search_params.go | 3 + internal/tools/search/search_params_test.go | 3 + internal/tools/search/search_test.go | 3 + internal/tools/search/snippet_window.go | 3 + internal/tools/search/snippet_window_test.go | 3 + internal/tools/securefiles/doc.go | 3 + internal/tools/securefiles/markdown.go | 3 + internal/tools/securefiles/secure_files.go | 3 + .../tools/securefiles/secure_files_test.go | 3 + .../tools/securityattributes/action_specs.go | 3 + internal/tools/securityattributes/doc.go | 3 + internal/tools/securityattributes/markdown.go | 3 + .../securityattributes/security_attributes.go | 3 + .../security_attributes_test.go | 3 + .../tools/securitycategories/action_specs.go | 3 + internal/tools/securitycategories/doc.go | 3 + internal/tools/securitycategories/markdown.go | 3 + .../securitycategories/security_categories.go | 3 + .../security_categories_test.go | 3 + .../tools/securityfindings/action_specs.go | 3 + internal/tools/securityfindings/doc.go | 3 + internal/tools/securityfindings/markdown.go | 3 + .../securityfindings/security_findings.go | 3 + .../security_findings_test.go | 3 + .../securityscanprofiles/action_specs.go | 3 + internal/tools/securityscanprofiles/doc.go | 3 + .../tools/securityscanprofiles/markdown.go | 3 + .../security_scan_profiles.go | 3 + .../security_scan_profiles_test.go | 3 + .../tools/securitysettings/action_specs.go | 3 + .../securitysettings/action_specs_test.go | 3 + internal/tools/securitysettings/doc.go | 3 + internal/tools/securitysettings/markdown.go | 3 + .../tools/securitysettings/markdown_test.go | 3 + .../securitysettings/security_settings.go | 3 + .../security_settings_test.go | 3 + internal/tools/settings/doc.go | 3 + internal/tools/settings/markdown.go | 3 + internal/tools/settings/settings.go | 3 + internal/tools/settings/settings_test.go | 3 + internal/tools/shared_catalog.go | 3 + internal/tools/shared_catalog_test.go | 3 + internal/tools/sidekiq/doc.go | 3 + internal/tools/sidekiq/markdown.go | 3 + internal/tools/sidekiq/sidekiq.go | 3 + internal/tools/sidekiq/sidekiq_test.go | 3 + .../tools/snippetdiscussions/action_specs.go | 3 + .../snippetdiscussions/action_specs_test.go | 3 + internal/tools/snippetdiscussions/doc.go | 3 + internal/tools/snippetdiscussions/markdown.go | 3 + .../snippetdiscussions/snippet_discussions.go | 3 + .../snippet_discussions_test.go | 3 + internal/tools/snippetnotes/action_specs.go | 3 + .../tools/snippetnotes/action_specs_test.go | 3 + internal/tools/snippetnotes/doc.go | 3 + internal/tools/snippetnotes/markdown.go | 3 + internal/tools/snippetnotes/snippet_notes.go | 3 + .../tools/snippetnotes/snippet_notes_test.go | 3 + internal/tools/snippets/action_specs.go | 3 + internal/tools/snippets/action_specs_test.go | 3 + internal/tools/snippets/doc.go | 3 + internal/tools/snippets/input_schema.go | 3 + internal/tools/snippets/markdown.go | 3 + internal/tools/snippets/project_snippets.go | 3 + .../tools/snippets/project_snippets_test.go | 3 + internal/tools/snippets/snippets.go | 3 + internal/tools/snippets/snippets_test.go | 3 + .../tools/snippetstoragemoves/action_specs.go | 3 + .../snippetstoragemoves/action_specs_test.go | 3 + internal/tools/snippetstoragemoves/doc.go | 3 + .../tools/snippetstoragemoves/markdown.go | 3 + .../snippet_storage_moves.go | 3 + .../snippet_storage_moves_test.go | 3 + internal/tools/surface_tools.go | 3 + internal/tools/surface_tools_test.go | 3 + internal/tools/surfaces/doc.go | 3 + internal/tools/surfaces/surface_tools.go | 3 + internal/tools/surfaces/surface_tools_test.go | 3 + internal/tools/systemhooks/doc.go | 3 + internal/tools/systemhooks/markdown.go | 3 + internal/tools/systemhooks/markdown_test.go | 3 + internal/tools/systemhooks/system_hooks.go | 3 + .../tools/systemhooks/system_hooks_test.go | 3 + internal/tools/tags/action_specs.go | 3 + internal/tools/tags/action_specs_test.go | 3 + internal/tools/tags/doc.go | 3 + internal/tools/tags/markdown.go | 3 + internal/tools/tags/tags.go | 3 + internal/tools/tags/tags_test.go | 3 + internal/tools/terraformstates/doc.go | 3 + internal/tools/terraformstates/markdown.go | 3 + .../tools/terraformstates/terraform_states.go | 3 + .../terraformstates/terraform_states_test.go | 3 + internal/tools/todos/action_specs.go | 3 + internal/tools/todos/action_specs_test.go | 3 + internal/tools/todos/doc.go | 3 + internal/tools/todos/export_test.go | 3 + internal/tools/todos/markdown.go | 3 + internal/tools/todos/markdown_test.go | 3 + internal/tools/todos/shapes.go | 3 + internal/tools/todos/todos.go | 3 + internal/tools/todos/todos_test.go | 3 + internal/tools/toolvisibility/doc.go | 3 + internal/tools/toolvisibility/fine_grained.go | 3 + .../tools/toolvisibility/fine_grained_test.go | 3 + internal/tools/toolvisibility/visibility.go | 3 + .../tools/toolvisibility/visibility_test.go | 3 + internal/tools/topics/doc.go | 3 + internal/tools/topics/markdown.go | 3 + internal/tools/topics/markdown_test.go | 3 + internal/tools/topics/topics.go | 3 + internal/tools/topics/topics_test.go | 3 + internal/tools/uploads/action_specs.go | 3 + .../uploads/action_specs_catalog_test.go | 3 + internal/tools/uploads/action_specs_test.go | 3 + internal/tools/uploads/doc.go | 3 + internal/tools/uploads/markdown.go | 3 + internal/tools/uploads/uploads.go | 3 + internal/tools/uploads/uploads_test.go | 3 + internal/tools/usagedata/doc.go | 3 + internal/tools/usagedata/markdown.go | 3 + internal/tools/usagedata/usage_data.go | 3 + internal/tools/usagedata/usage_data_test.go | 3 + internal/tools/useremails/action_specs.go | 3 + .../tools/useremails/action_specs_test.go | 3 + internal/tools/useremails/doc.go | 3 + internal/tools/useremails/markdown.go | 3 + internal/tools/useremails/user_emails.go | 3 + internal/tools/useremails/user_emails_test.go | 3 + internal/tools/usergpgkeys/action_specs.go | 3 + .../tools/usergpgkeys/action_specs_test.go | 3 + internal/tools/usergpgkeys/doc.go | 3 + internal/tools/usergpgkeys/markdown.go | 3 + internal/tools/usergpgkeys/user_gpg_keys.go | 3 + .../tools/usergpgkeys/user_gpg_keys_test.go | 3 + internal/tools/users/action_specs.go | 3 + internal/tools/users/action_specs_test.go | 3 + internal/tools/users/doc.go | 3 + internal/tools/users/markdown.go | 3 + internal/tools/users/user_admin.go | 3 + internal/tools/users/user_admin_test.go | 3 + internal/tools/users/user_crud.go | 3 + internal/tools/users/user_crud_test.go | 3 + internal/tools/users/user_misc.go | 3 + internal/tools/users/user_misc_test.go | 3 + internal/tools/users/user_service_accounts.go | 3 + .../tools/users/user_service_accounts_test.go | 3 + internal/tools/users/user_ssh_keys.go | 3 + internal/tools/users/user_ssh_keys_test.go | 3 + internal/tools/users/users.go | 3 + internal/tools/users/users_test.go | 3 + .../tools/vulnerabilities/action_specs.go | 3 + .../vulnerabilities/action_specs_test.go | 3 + internal/tools/vulnerabilities/doc.go | 3 + internal/tools/vulnerabilities/markdown.go | 3 + internal/tools/vulnerabilities/mutations.go | 3 + internal/tools/vulnerabilities/summary.go | 3 + .../tools/vulnerabilities/summary_test.go | 3 + .../tools/vulnerabilities/vulnerabilities.go | 3 + .../vulnerabilities/vulnerabilities_test.go | 3 + internal/tools/waitpoll/doc.go | 3 + internal/tools/waitpoll/transfer_failure.go | 3 + .../tools/waitpoll/transfer_failure_test.go | 3 + internal/tools/waitpoll/until.go | 3 + internal/tools/waitpoll/until_test.go | 3 + internal/tools/waitpoll/wait_poll.go | 3 + internal/tools/waitpoll/wait_poll_test.go | 3 + internal/tools/wikis/action_specs.go | 3 + internal/tools/wikis/action_specs_test.go | 3 + internal/tools/wikis/doc.go | 3 + internal/tools/wikis/markdown.go | 3 + internal/tools/wikis/wikis.go | 3 + internal/tools/wikis/wikis_test.go | 3 + internal/tools/workitems/action_specs.go | 3 + .../workitems/action_specs_catalog_test.go | 3 + internal/tools/workitems/action_specs_test.go | 3 + internal/tools/workitems/clear_guard.go | 3 + internal/tools/workitems/clear_guard_test.go | 3 + internal/tools/workitems/doc.go | 3 + internal/tools/workitems/export_test.go | 3 + internal/tools/workitems/markdown.go | 3 + internal/tools/workitems/markdown_test.go | 3 + internal/tools/workitems/work_items.go | 3 + internal/tools/workitems/work_items_test.go | 3 + .../tools/workitemsavedviews/action_specs.go | 3 + .../workitemsavedviews/action_specs_test.go | 3 + internal/tools/workitemsavedviews/doc.go | 3 + internal/tools/workitemsavedviews/filters.go | 3 + .../tools/workitemsavedviews/filters_test.go | 3 + internal/tools/workitemsavedviews/markdown.go | 3 + .../tools/workitemsavedviews/markdown_test.go | 3 + .../work_item_saved_views.go | 3 + .../work_item_saved_views_test.go | 3 + internal/toolutil/access_level.go | 3 + internal/toolutil/access_level_test.go | 3 + internal/toolutil/action_meta.go | 3 + internal/toolutil/action_meta_test.go | 3 + internal/toolutil/action_schema_override.go | 3 + .../toolutil/action_schema_override_test.go | 3 + internal/toolutil/action_spec.go | 3 + internal/toolutil/action_spec_individual.go | 3 + .../toolutil/action_spec_individual_test.go | 3 + internal/toolutil/action_spec_test.go | 3 + internal/toolutil/action_timeout.go | 3 + internal/toolutil/action_timeout_test.go | 3 + internal/toolutil/annotations.go | 3 + internal/toolutil/annotations_test.go | 3 + internal/toolutil/approver_ids.go | 3 + internal/toolutil/approver_ids_test.go | 3 + internal/toolutil/board_markdown.go | 3 + internal/toolutil/board_markdown_test.go | 3 + internal/toolutil/board_shapes.go | 3 + internal/toolutil/board_shapes_test.go | 3 + internal/toolutil/card.go | 3 + internal/toolutil/card_test.go | 3 + internal/toolutil/collection_shape.go | 3 + internal/toolutil/collection_shape_test.go | 3 + internal/toolutil/confirm.go | 3 + internal/toolutil/confirm_test.go | 3 + internal/toolutil/constants.go | 3 + internal/toolutil/diff.go | 3 + internal/toolutil/diff_position.go | 3 + internal/toolutil/diff_position_test.go | 3 + internal/toolutil/diff_test.go | 3 + internal/toolutil/discussion_guidance.go | 3 + internal/toolutil/discussion_guidance_test.go | 3 + internal/toolutil/doc.go | 3 + internal/toolutil/download_ceiling.go | 3 + internal/toolutil/download_ceiling_test.go | 3 + internal/toolutil/download_output.go | 3 + internal/toolutil/download_output_other.go | 3 + internal/toolutil/download_output_test.go | 3 + internal/toolutil/download_output_unix.go | 3 + .../toolutil/download_output_unix_test.go | 3 + internal/toolutil/embed.go | 3 + internal/toolutil/embed_template.go | 3 + internal/toolutil/embed_template_test.go | 3 + internal/toolutil/embed_test.go | 3 + internal/toolutil/environment_access.go | 3 + internal/toolutil/environment_access_test.go | 3 + internal/toolutil/errors.go | 3 + internal/toolutil/errors_test.go | 3 + internal/toolutil/file_source.go | 3 + internal/toolutil/file_source_test.go | 3 + internal/toolutil/file_utils.go | 3 + internal/toolutil/file_utils_other.go | 3 + internal/toolutil/file_utils_test.go | 3 + internal/toolutil/file_utils_unix.go | 3 + internal/toolutil/file_utils_unix_test.go | 3 + internal/toolutil/fine_grained.go | 3 + internal/toolutil/fine_grained_test.go | 3 + internal/toolutil/graphql.go | 3 + internal/toolutil/graphql_note_mutation.go | 3 + .../toolutil/graphql_note_mutation_test.go | 3 + internal/toolutil/graphql_test.go | 3 + internal/toolutil/hints.go | 3 + internal/toolutil/hints_test.go | 3 + internal/toolutil/icons.go | 3 + internal/toolutil/icons_test.go | 3 + internal/toolutil/identity.go | 3 + internal/toolutil/identity_test.go | 3 + internal/toolutil/instance_url.go | 3 + internal/toolutil/instance_url_test.go | 3 + internal/toolutil/issue_shapes.go | 3 + internal/toolutil/issue_shapes_test.go | 3 + internal/toolutil/json_body.go | 3 + internal/toolutil/json_body_test.go | 3 + internal/toolutil/label_markdown.go | 3 + internal/toolutil/label_markdown_test.go | 3 + internal/toolutil/logging.go | 3 + internal/toolutil/logging_test.go | 3 + internal/toolutil/markdown.go | 3 + internal/toolutil/markdown_test.go | 3 + internal/toolutil/md_registry.go | 3 + internal/toolutil/md_registry_test.go | 3 + internal/toolutil/member_capture.go | 3 + internal/toolutil/member_capture_test.go | 3 + internal/toolutil/member_shapes.go | 3 + internal/toolutil/member_shapes_test.go | 3 + internal/toolutil/meta_schema.go | 3 + internal/toolutil/meta_schema_test.go | 3 + internal/toolutil/meta_tool.go | 3 + internal/toolutil/meta_tool_test.go | 3 + internal/toolutil/moved_project.go | 3 + internal/toolutil/moved_project_test.go | 3 + internal/toolutil/mr_shapes.go | 3 + internal/toolutil/mr_shapes_test.go | 3 + internal/toolutil/names.go | 3 + internal/toolutil/names_test.go | 3 + internal/toolutil/not_found.go | 3 + internal/toolutil/not_found_test.go | 3 + internal/toolutil/note_capture.go | 3 + internal/toolutil/note_capture_test.go | 3 + internal/toolutil/note_shapes.go | 3 + internal/toolutil/note_shapes_test.go | 3 + internal/toolutil/once_map.go | 3 + internal/toolutil/once_map_test.go | 3 + internal/toolutil/output.go | 3 + internal/toolutil/output_test.go | 3 + internal/toolutil/pagination.go | 3 + internal/toolutil/pagination_test.go | 3 + internal/toolutil/pipeline_inputs.go | 3 + internal/toolutil/pipeline_inputs_test.go | 3 + internal/toolutil/pipeline_shapes.go | 3 + internal/toolutil/pipeline_shapes_test.go | 3 + internal/toolutil/polling.go | 3 + internal/toolutil/polling_test.go | 3 + internal/toolutil/rate_limit.go | 3 + internal/toolutil/rate_limit_test.go | 3 + internal/toolutil/release_shapes.go | 3 + internal/toolutil/release_shapes_test.go | 3 + internal/toolutil/result_type.go | 3 + internal/toolutil/result_type_test.go | 3 + internal/toolutil/rpc_code.go | 3 + internal/toolutil/rpc_code_test.go | 3 + internal/toolutil/safe_mode.go | 3 + internal/toolutil/safe_mode_test.go | 3 + internal/toolutil/schema_compile.go | 3 + internal/toolutil/schema_compile_test.go | 3 + internal/toolutil/schema_lockdown.go | 3 + internal/toolutil/schema_lockdown_test.go | 3 + internal/toolutil/schema_middleware.go | 3 + internal/toolutil/schema_middleware_test.go | 3 + internal/toolutil/schema_pagination.go | 3 + internal/toolutil/schema_pagination_test.go | 3 + internal/toolutil/schema_share.go | 3 + internal/toolutil/schema_share_test.go | 3 + internal/toolutil/schema_type_overrides.go | 3 + .../toolutil/schema_type_overrides_test.go | 3 + internal/toolutil/sent_shapes.go | 3 + internal/toolutil/sent_shapes_test.go | 3 + internal/toolutil/served_input_schema.go | 3 + internal/toolutil/served_input_schema_test.go | 3 + internal/toolutil/string_or_int.go | 3 + internal/toolutil/string_or_int_test.go | 3 + internal/toolutil/surface_tool.go | 3 + internal/toolutil/surface_tool_test.go | 3 + internal/toolutil/template_markdown.go | 3 + internal/toolutil/template_markdown_test.go | 3 + internal/toolutil/text.go | 3 + internal/toolutil/text_test.go | 3 + internal/toolutil/time_helpers.go | 3 + internal/toolutil/time_helpers_test.go | 3 + internal/toolutil/tool_listing.go | 3 + internal/toolutil/tool_listing_test.go | 3 + internal/toolutil/unconfirmed_write.go | 3 + internal/toolutil/unconfirmed_write_test.go | 3 + internal/toolutil/url_redact.go | 3 + internal/toolutil/url_redact_test.go | 3 + internal/toolutil/user_id_filter.go | 3 + internal/toolutil/user_id_filter_test.go | 3 + internal/toolutil/user_shapes.go | 3 + internal/toolutil/user_shapes_test.go | 3 + internal/toolutil/vulnerability_shapes.go | 3 + .../toolutil/vulnerability_shapes_test.go | 3 + internal/toolutil/work_item_widgets.go | 3 + internal/toolutil/work_item_widgets_test.go | 3 + mcpb/linux/launch.sh | 3 + mcpb/platform.jq | 3 + npm/gitlab-mcp-server/cli.js | 3 + scripts/build-mcpb.sh | 3 + scripts/build-npm.mjs | 3 + scripts/build_mcpb_sh_test.py | 3 + scripts/build_nuget.py | 3 + scripts/build_pypi.py | 3 + scripts/check-doc-links.mjs | 2 + scripts/check-em-dash.sh | 3 + scripts/check-openplugin.sh | 3 + scripts/check-spec-conditions.sh | 3 + scripts/check_doc_links_test.py | 3 + scripts/check_elf_interp.py | 3 + scripts/check_elf_interp_test.py | 3 + scripts/check_em_dash_sh_test.py | 3 + scripts/check_spec_conditions_sh_test.py | 3 + scripts/coverage-conditions.sh | 3 + scripts/coverage-mutants.sh | 3 + scripts/coverage_conditions_sh_test.py | 3 + scripts/coverage_mutants_sh_test.py | 3 + scripts/e2e_docker_images_test.py | 3 + scripts/e2e_fixture_addresses_test.py | 3 + scripts/e2e_gitlab_exceptions_test.py | 3 + scripts/e2e_release_gate_test.py | 3 + scripts/e2e_skip_gate_test.py | 3 + scripts/ensure-playwright-chromium.sh | 3 + scripts/ensure_playwright_chromium_sh_test.py | 3 + scripts/fetch-release-assets.sh | 3 + scripts/fetch_release_assets_sh_test.py | 3 + scripts/install.ps1 | 3 + scripts/install.sh | 3 + scripts/install_sh_test.py | 3 + scripts/mcpb_launch_sh_test.py | 3 + scripts/mcpb_manifest_test.py | 3 + scripts/npm_cli_js_test.py | 3 + scripts/packaging_checksums_test.py | 3 + scripts/publish-npm.sh | 3 + scripts/publish-nuget.sh | 3 + scripts/publish-pypi.sh | 3 + scripts/publish_npm_sh_test.py | 3 + scripts/publish_pypi_sh_test.py | 3 + scripts/release-order.sh | 3 + scripts/release_order_sh_test.py | 3 + scripts/setup-orbit-fixtures.sh | 3 + scripts/setup_orbit_fixtures_sh_test.py | 3 + scripts/site_check_i18n_code_test.py | 3 + scripts/site_normalize_html_test.py | 3 + scripts/site_version_token_test.py | 3 + scripts/smoke-test-image.sh | 3 + scripts/smoke_test_image_sh_test.py | 3 + scripts/sonar-scan.sh | 3 + scripts/update-homebrew-tap.sh | 3 + scripts/update-server-json-sha.sh | 3 + scripts/update_homebrew_tap_sh_test.py | 3 + scripts/update_server_json_sha_sh_test.py | 3 + scripts/validate-npm.mjs | 3 + scripts/validate-server-json-packages.sh | 3 + scripts/validate_npm_test.py | 3 + scripts/validate_nuget.py | 3 + scripts/validate_nuget_test.py | 3 + scripts/validate_pypi.py | 3 + scripts/validate_pypi_test.py | 3 + .../validate_server_json_packages_sh_test.py | 3 + scripts/verify_published_packages.py | 3 + scripts/verify_published_packages_test.py | 3 + site/astro.config.mjs | 3 + site/eslint.config.mjs | 3 + site/scripts/add-sitemap-lastmod.mjs | 3 + site/scripts/check-chips.mjs | 3 + site/scripts/check-contrast.mjs | 3 + site/scripts/check-facts.mjs | 3 + site/scripts/check-headings-labels.mjs | 3 + site/scripts/check-i18n-code.mjs | 3 + site/scripts/check-i18n-parity.mjs | 3 + site/scripts/check-version-token.mjs | 3 + site/scripts/gen-llms.mjs | 3 + site/scripts/normalize-html.mjs | 3 + site/scripts/version-literals.mjs | 3 + site/src/components/ChartPair.astro | 3 + site/src/components/FAQ.astro | 3 + site/src/components/Footer.astro | 3 + site/src/components/Head.astro | 3 + site/src/components/Header.astro | 3 + site/src/components/Hero.astro | 3 + site/src/components/PageTitle.astro | 3 + site/src/components/SiteTitle.astro | 3 + site/src/components/ThemeToggle.astro | 3 + site/src/components/docs/Fact.astro | 3 + site/src/components/docs/Facts.astro | 3 + site/src/components/docs/PageChips.astro | 3 + site/src/components/home/Home.astro | 3 + site/src/content.config.ts | 3 + site/src/data/home.ts | 3 + site/src/lib/version-token.mjs | 3 + site/src/lib/wide-tables.mjs | 3 + site/src/routeData.ts | 3 + site/src/styles/custom.css | 3 + site/src/styles/facts.css | 3 + site/src/styles/home.css | 3 + site/src/styles/page-chips.css | 3 + site/src/styles/sidebar.css | 3 + site/src/styles/splash-menu.css | 3 + site/src/styles/tables.css | 3 + site/src/styles/theme.css | 3 + site/src/styles/typography.css | 3 + site/src/utils/faq.ts | 3 + site/types/starlight-i18n.d.ts | 3 + test/e2e/collector/acceptance_test.go | 3 + test/e2e/collector/client_span_test.go | 3 + test/e2e/collector/collector_test.go | 3 + test/e2e/collector/configurations_test.go | 3 + test/e2e/collector/coverage_test.go | 3 + test/e2e/collector/doc.go | 3 + test/e2e/collector/documented_test.go | 3 + test/e2e/collector/example_test.go | 3 + test/e2e/collector/first_call_test.go | 3 + test/e2e/collector/grpc_test.go | 3 + test/e2e/collector/harness_norace_test.go | 3 + test/e2e/collector/harness_race_test.go | 3 + test/e2e/collector/harness_test.go | 3 + test/e2e/collector/inventory_test.go | 3 + test/e2e/collector/propagation_test.go | 3 + test/e2e/collector/protective_test.go | 3 + test/e2e/collector/redaction_test.go | 3 + test/e2e/collector/signals_test.go | 3 + test/e2e/collector/stateful_test.go | 3 + test/e2e/collector/surfaces_test.go | 3 + test/e2e/gitlab/ce/actions_b5_test.go | 3 + .../e2e/gitlab/ce/auth_throttle_probe_test.go | 3 + test/e2e/gitlab/ce/doc.go | 3 + test/e2e/gitlab/ce/license_test.go | 3 + test/e2e/gitlab/ce/main_test.go | 3 + test/e2e/gitlab/ce/search_test.go | 3 + test/e2e/gitlab/common/accessrequests_test.go | 3 + test/e2e/gitlab/common/accesstokens_test.go | 3 + test/e2e/gitlab/common/achievements_test.go | 3 + test/e2e/gitlab/common/actions_B6_test.go | 3 + test/e2e/gitlab/common/actions_b1_test.go | 3 + test/e2e/gitlab/common/actions_b2_test.go | 3 + test/e2e/gitlab/common/actions_b3_test.go | 3 + test/e2e/gitlab/common/actions_b4_test.go | 3 + test/e2e/gitlab/common/actions_b5_test.go | 3 + .../gitlab/common/actions_b7_group_test.go | 3 + .../gitlab/common/actions_b7_issue_test.go | 3 + test/e2e/gitlab/common/actions_b7_mr_test.go | 3 + test/e2e/gitlab/common/actions_test.go | 3 + test/e2e/gitlab/common/admin_imports_test.go | 3 + test/e2e/gitlab/common/admin_project_test.go | 3 + test/e2e/gitlab/common/admin_settings_test.go | 3 + .../gitlab/common/admission_minimum_test.go | 3 + test/e2e/gitlab/common/awardemoji_test.go | 3 + .../common/b7_commit_create_error_test.go | 3 + .../e2e/gitlab/common/b7_group_badges_test.go | 3 + .../e2e/gitlab/common/b7_group_labels_test.go | 3 + .../gitlab/common/b7_group_members_test.go | 3 + .../gitlab/common/b7_group_milestones_test.go | 3 + .../e2e/gitlab/common/b7_group_search_test.go | 3 + .../e2e/gitlab/common/b7_issue_events_test.go | 3 + test/e2e/gitlab/common/b7_issue_moves_test.go | 3 + .../gitlab/common/b7_issue_noteemoji_test.go | 3 + test/e2e/gitlab/common/b7_issue_reads_test.go | 3 + .../gitlab/common/b7_issue_relations_test.go | 3 + .../gitlab/common/b7_issue_safemode_test.go | 3 + .../common/b7_issue_subscriptions_test.go | 3 + .../common/b7_issue_timetracking_test.go | 3 + .../e2e/gitlab/common/b7_mr_automerge_test.go | 3 + test/e2e/gitlab/common/b7_mr_emoji_test.go | 3 + test/e2e/gitlab/common/b7_mr_events_test.go | 3 + .../e2e/gitlab/common/b7_mr_relations_test.go | 3 + test/e2e/gitlab/common/b7_mr_scope_test.go | 3 + .../gitlab/common/b7_mr_subscription_test.go | 3 + .../gitlab/common/b7_mr_timetracking_test.go | 3 + test/e2e/gitlab/common/badges_test.go | 3 + test/e2e/gitlab/common/boards_test.go | 3 + test/e2e/gitlab/common/branches_test.go | 3 + test/e2e/gitlab/common/ci_runner_test.go | 3 + test/e2e/gitlab/common/cilint_test.go | 3 + test/e2e/gitlab/common/civariables_test.go | 3 + test/e2e/gitlab/common/clusteragents_test.go | 3 + .../gitlab/common/commitdiscussions_test.go | 3 + test/e2e/gitlab/common/commits_test.go | 3 + test/e2e/gitlab/common/customemoji_test.go | 3 + .../gitlab/common/deploykeys_instance_test.go | 3 + test/e2e/gitlab/common/deploykeys_test.go | 3 + test/e2e/gitlab/common/deployments_test.go | 3 + test/e2e/gitlab/common/deploytokens_test.go | 3 + test/e2e/gitlab/common/doc.go | 3 + .../common/environments_lifecycle_test.go | 3 + test/e2e/gitlab/common/environments_test.go | 3 + test/e2e/gitlab/common/events_test.go | 3 + .../gitlab/common/featureflagextras_test.go | 3 + test/e2e/gitlab/common/files_test.go | 3 + .../gitlab/common/fine_grained_tokens_test.go | 3 + test/e2e/gitlab/common/freezeperiods_test.go | 3 + test/e2e/gitlab/common/groupboards_test.go | 3 + test/e2e/gitlab/common/groupextras_test.go | 3 + .../gitlab/common/groupimportexport_test.go | 3 + test/e2e/gitlab/common/grouplabels_test.go | 3 + .../common/groupmarkdownuploads_test.go | 3 + test/e2e/gitlab/common/groupmembers_test.go | 3 + .../e2e/gitlab/common/groupmilestones_test.go | 3 + test/e2e/gitlab/common/groupreads_test.go | 3 + .../common/grouprelationsexport_test.go | 3 + test/e2e/gitlab/common/groupreleases_test.go | 3 + test/e2e/gitlab/common/groups_test.go | 3 + .../common/groupserviceaccounts_test.go | 3 + test/e2e/gitlab/common/groupvariables_test.go | 3 + test/e2e/gitlab/common/helpers_test.go | 3 + .../gitlab/common/impersonationtokens_test.go | 3 + .../gitlab/common/instance_variables_test.go | 3 + test/e2e/gitlab/common/invites_test.go | 3 + .../gitlab/common/issuediscussions_test.go | 3 + test/e2e/gitlab/common/issuelinks_test.go | 3 + test/e2e/gitlab/common/issuenotes_test.go | 3 + .../gitlab/common/issues_lifecycle_test.go | 3 + test/e2e/gitlab/common/issues_test.go | 3 + test/e2e/gitlab/common/jobs_test.go | 3 + .../gitlab/common/keyset_pagination_test.go | 3 + test/e2e/gitlab/common/labels_test.go | 3 + test/e2e/gitlab/common/main_test.go | 3 + .../e2e/gitlab/common/mcp_annotations_test.go | 3 + .../common/mcp_capability_surface_test.go | 3 + .../e2e/gitlab/common/mcp_completions_test.go | 3 + .../gitlab/common/mcp_confirm_guard_test.go | 3 + .../common/mcp_discover_project_test.go | 3 + .../gitlab/common/mcp_dispatch_alias_test.go | 3 + .../gitlab/common/mcp_dynamic_find_test.go | 3 + .../common/mcp_elicitation_policies_test.go | 3 + .../e2e/gitlab/common/mcp_elicitation_test.go | 3 + test/e2e/gitlab/common/mcp_exclusions_test.go | 3 + .../gitlab/common/mcp_http_transport_test.go | 3 + test/e2e/gitlab/common/mcp_manifest_test.go | 3 + test/e2e/gitlab/common/mcp_modes_test.go | 3 + test/e2e/gitlab/common/mcp_progress_test.go | 3 + test/e2e/gitlab/common/mcp_prompts_test.go | 3 + .../common/mcp_record_vocabulary_test.go | 3 + test/e2e/gitlab/common/mcp_resources_test.go | 3 + test/e2e/gitlab/common/mcp_schema_test.go | 3 + .../gitlab/common/mcp_scopes_read_api_test.go | 3 + test/e2e/gitlab/common/mcp_scopes_test.go | 3 + test/e2e/gitlab/common/mcp_server_test.go | 3 + .../common/mcp_subscription_delivery_test.go | 3 + .../gitlab/common/mcp_subscriptions_test.go | 3 + test/e2e/gitlab/common/mcp_tier_pin_test.go | 3 + test/e2e/gitlab/common/mcp_tiers_test.go | 3 + test/e2e/gitlab/common/mcp_wait_test.go | 3 + .../common/mergerequests_approval_test.go | 3 + .../common/mergerequests_extras_test.go | 3 + .../common/mergerequests_lifecycle_test.go | 3 + test/e2e/gitlab/common/mergerequests_test.go | 3 + test/e2e/gitlab/common/milestones_test.go | 3 + test/e2e/gitlab/common/misc_extras_test.go | 3 + test/e2e/gitlab/common/misc_test.go | 3 + test/e2e/gitlab/common/modelregistry_test.go | 3 + test/e2e/gitlab/common/moved_project_test.go | 3 + .../gitlab/common/mrreview_changes_test.go | 3 + .../common/mrreview_discussions_test.go | 3 + .../gitlab/common/mrreview_draftnotes_test.go | 3 + test/e2e/gitlab/common/mrreview_notes_test.go | 3 + test/e2e/gitlab/common/namespaces_test.go | 3 + test/e2e/gitlab/common/notifications_test.go | 3 + test/e2e/gitlab/common/packages_test.go | 3 + test/e2e/gitlab/common/pages_test.go | 3 + .../gitlab/common/pipelines_latest_test.go | 3 + .../gitlab/common/pipelines_lifecycle_test.go | 3 + test/e2e/gitlab/common/pipelines_test.go | 3 + .../gitlab/common/pipelineschedules_test.go | 3 + .../gitlab/common/pipelinetriggers_test.go | 3 + test/e2e/gitlab/common/previews_sweep_test.go | 3 + test/e2e/gitlab/common/projectcore_test.go | 3 + test/e2e/gitlab/common/projectextras_test.go | 3 + test/e2e/gitlab/common/projecthooks_test.go | 3 + .../gitlab/common/projectimportexport_test.go | 3 + .../gitlab/common/projectintegrations_test.go | 3 + test/e2e/gitlab/common/projectlabels_test.go | 3 + test/e2e/gitlab/common/projectmembers_test.go | 3 + .../gitlab/common/projectmilestones_test.go | 3 + test/e2e/gitlab/common/projectmirrors_test.go | 3 + test/e2e/gitlab/common/projects_test.go | 3 + .../common/projectserviceaccounts_test.go | 3 + .../gitlab/common/projectstoragemoves_test.go | 3 + test/e2e/gitlab/common/projectuploads_test.go | 3 + test/e2e/gitlab/common/reads_sweep_test.go | 3 + test/e2e/gitlab/common/releases_test.go | 3 + test/e2e/gitlab/common/repository_test.go | 3 + test/e2e/gitlab/common/resourcegroups_test.go | 3 + .../gitlab/common/runners_lifecycle_test.go | 3 + test/e2e/gitlab/common/runners_test.go | 3 + test/e2e/gitlab/common/search_test.go | 3 + .../gitlab/common/snippetdiscussions_test.go | 3 + test/e2e/gitlab/common/snippetnotes_test.go | 3 + .../gitlab/common/snippets_lifecycle_test.go | 3 + .../gitlab/common/snippets_project_test.go | 3 + test/e2e/gitlab/common/snippets_test.go | 3 + .../gitlab/common/snippetstoragemoves_test.go | 3 + test/e2e/gitlab/common/tags_test.go | 3 + test/e2e/gitlab/common/templates_test.go | 3 + test/e2e/gitlab/common/todos_test.go | 3 + test/e2e/gitlab/common/update_clears_test.go | 3 + test/e2e/gitlab/common/uploads_test.go | 3 + test/e2e/gitlab/common/useraccount_test.go | 3 + test/e2e/gitlab/common/useradmin_test.go | 3 + test/e2e/gitlab/common/useremails_test.go | 3 + test/e2e/gitlab/common/usergpgkeys_test.go | 3 + test/e2e/gitlab/common/userprojects_test.go | 3 + test/e2e/gitlab/common/users_test.go | 3 + test/e2e/gitlab/common/usersshkeys_test.go | 3 + test/e2e/gitlab/common/wikis_test.go | 3 + test/e2e/gitlab/common/workitems_test.go | 3 + .../gitlab/common/workitemsavedviews_test.go | 3 + test/e2e/gitlab/ee/actions_test.go | 3 + test/e2e/gitlab/ee/attestations_test.go | 3 + test/e2e/gitlab/ee/auditevents_test.go | 3 + test/e2e/gitlab/ee/boards_test.go | 3 + test/e2e/gitlab/ee/compliancepolicy_test.go | 3 + test/e2e/gitlab/ee/dependencies_test.go | 3 + test/e2e/gitlab/ee/dependencyfirewall_test.go | 3 + test/e2e/gitlab/ee/doc.go | 3 + test/e2e/gitlab/ee/dorametrics_test.go | 3 + test/e2e/gitlab/ee/enterpriseusers_test.go | 3 + test/e2e/gitlab/ee/epics_test.go | 3 + .../gitlab/ee/externalstatuschecks_test.go | 3 + .../gitlab/ee/fine_grained_graphql_test.go | 3 + test/e2e/gitlab/ee/geo_test.go | 3 + test/e2e/gitlab/ee/groupboards_test.go | 3 + test/e2e/gitlab/ee/groupcredentials_test.go | 3 + test/e2e/gitlab/ee/grouphooks_test.go | 3 + test/e2e/gitlab/ee/groupiterations_test.go | 3 + test/e2e/gitlab/ee/groupldap_test.go | 3 + test/e2e/gitlab/ee/groupmembers_test.go | 3 + test/e2e/gitlab/ee/groupmilestones_test.go | 3 + .../gitlab/ee/groupprotectedbranches_test.go | 3 + test/e2e/gitlab/ee/groupprotectedenvs_test.go | 3 + test/e2e/gitlab/ee/grouppushrules_test.go | 3 + test/e2e/gitlab/ee/groups_test.go | 3 + test/e2e/gitlab/ee/groupsaml_test.go | 3 + test/e2e/gitlab/ee/groupscim_test.go | 3 + test/e2e/gitlab/ee/groupsshcerts_test.go | 3 + test/e2e/gitlab/ee/groupstoragemoves_test.go | 3 + test/e2e/gitlab/ee/groupwikis_test.go | 3 + test/e2e/gitlab/ee/helpers_test.go | 3 + test/e2e/gitlab/ee/integrations_test.go | 3 + test/e2e/gitlab/ee/issues_test.go | 3 + test/e2e/gitlab/ee/license_test.go | 3 + test/e2e/gitlab/ee/main_test.go | 3 + test/e2e/gitlab/ee/memberroles_test.go | 3 + test/e2e/gitlab/ee/mergerequests_test.go | 3 + test/e2e/gitlab/ee/mergetrains_test.go | 3 + test/e2e/gitlab/ee/orbit_test.go | 3 + test/e2e/gitlab/ee/projectaliases_test.go | 3 + test/e2e/gitlab/ee/projectmilestones_test.go | 3 + test/e2e/gitlab/ee/projects_test.go | 3 + test/e2e/gitlab/ee/protectedenvs_test.go | 3 + test/e2e/gitlab/ee/pushrules_test.go | 3 + test/e2e/gitlab/ee/runnercontrollers_test.go | 3 + test/e2e/gitlab/ee/securityattributes_test.go | 3 + test/e2e/gitlab/ee/securitycategories_test.go | 3 + .../gitlab/ee/securityscanprofiles_test.go | 3 + test/e2e/gitlab/ee/vulnerabilities_test.go | 3 + test/e2e/http/abandoned_test.go | 3 + test/e2e/http/balancer_test.go | 3 + test/e2e/http/client_compat_test.go | 3 + test/e2e/http/collector_auth_test.go | 3 + test/e2e/http/collector_http_span_test.go | 3 + test/e2e/http/collector_logs_test.go | 3 + test/e2e/http/collector_privacy_test.go | 3 + test/e2e/http/collector_route_test.go | 3 + test/e2e/http/collector_surfaces_test.go | 3 + test/e2e/http/collector_test.go | 3 + test/e2e/http/coverage_test.go | 3 + test/e2e/http/cross_origin_test.go | 3 + test/e2e/http/discovery_rate_test.go | 3 + test/e2e/http/discovery_test.go | 3 + test/e2e/http/doc.go | 3 + test/e2e/http/exclusion_test.go | 3 + test/e2e/http/fine_grained_test.go | 3 + test/e2e/http/gate_test.go | 3 + test/e2e/http/gateway_test.go | 3 + test/e2e/http/harness_norace_test.go | 3 + test/e2e/http/harness_race_test.go | 3 + test/e2e/http/harness_test.go | 3 + test/e2e/http/health_test.go | 3 + test/e2e/http/heap_test.go | 3 + test/e2e/http/held_test.go | 3 + test/e2e/http/limits_test.go | 3 + test/e2e/http/listener_test.go | 3 + test/e2e/http/local_path_test.go | 3 + test/e2e/http/negative_flags_test.go | 3 + test/e2e/http/oauth_test.go | 3 + test/e2e/http/probe_test.go | 3 + test/e2e/http/proxy_test.go | 3 + test/e2e/http/readiness_test.go | 3 + test/e2e/http/redirect_test.go | 3 + test/e2e/http/result_type_test.go | 3 + test/e2e/http/retry_later_test.go | 3 + test/e2e/http/robustness_test.go | 3 + test/e2e/http/session_not_found_test.go | 3 + test/e2e/http/sessions_test.go | 3 + test/e2e/http/shared_server_test.go | 3 + test/e2e/http/shutdown_test.go | 3 + test/e2e/http/subscriptions_test.go | 3 + test/e2e/http/telemetry_test.go | 3 + test/e2e/http/terminate_unix_test.go | 3 + test/e2e/http/terminate_windows_test.go | 3 + test/e2e/http/tool_results_test.go | 3 + test/e2e/http/upload_limit_test.go | 3 + test/e2e/http/zero_settings_test.go | 3 + test/e2e/internal/fixture/access_token.go | 3 + .../e2e/internal/fixture/access_token_test.go | 3 + test/e2e/internal/fixture/alert.go | 3 + test/e2e/internal/fixture/alert_test.go | 3 + test/e2e/internal/fixture/assignment.go | 3 + test/e2e/internal/fixture/assignment_test.go | 3 + test/e2e/internal/fixture/audit_event.go | 3 + test/e2e/internal/fixture/audit_event_test.go | 3 + test/e2e/internal/fixture/award_emoji.go | 3 + test/e2e/internal/fixture/award_emoji_test.go | 3 + test/e2e/internal/fixture/badge.go | 3 + test/e2e/internal/fixture/badge_test.go | 3 + test/e2e/internal/fixture/board.go | 3 + test/e2e/internal/fixture/board_test.go | 3 + .../e2e/internal/fixture/broadcast_message.go | 3 + .../fixture/broadcast_message_test.go | 3 + test/e2e/internal/fixture/ci_variable.go | 3 + test/e2e/internal/fixture/ci_variable_test.go | 3 + test/e2e/internal/fixture/client_access.go | 3 + .../internal/fixture/client_access_test.go | 3 + test/e2e/internal/fixture/custom_emoji.go | 3 + .../e2e/internal/fixture/custom_emoji_test.go | 3 + test/e2e/internal/fixture/deploy_key.go | 3 + test/e2e/internal/fixture/deploy_key_test.go | 3 + test/e2e/internal/fixture/deploy_token.go | 3 + .../e2e/internal/fixture/deploy_token_test.go | 3 + test/e2e/internal/fixture/deployment.go | 3 + test/e2e/internal/fixture/deployment_test.go | 3 + test/e2e/internal/fixture/discussion.go | 3 + test/e2e/internal/fixture/discussion_test.go | 3 + test/e2e/internal/fixture/doc.go | 3 + test/e2e/internal/fixture/draft_note.go | 3 + test/e2e/internal/fixture/draft_note_test.go | 3 + test/e2e/internal/fixture/epic.go | 3 + test/e2e/internal/fixture/epic_test.go | 3 + .../internal/fixture/external_status_check.go | 3 + .../fixture/external_status_check_test.go | 3 + test/e2e/internal/fixture/facts.go | 3 + test/e2e/internal/fixture/facts_test.go | 3 + test/e2e/internal/fixture/failed_job.go | 3 + test/e2e/internal/fixture/failed_job_test.go | 3 + test/e2e/internal/fixture/feature.go | 3 + test/e2e/internal/fixture/feature_flag.go | 3 + .../e2e/internal/fixture/feature_flag_test.go | 3 + test/e2e/internal/fixture/feature_test.go | 3 + .../internal/fixture/fine_grained_token.go | 3 + .../fixture/fine_grained_token_test.go | 3 + test/e2e/internal/fixture/geo.go | 3 + test/e2e/internal/fixture/geo_test.go | 3 + test/e2e/internal/fixture/gpg.go | 3 + test/e2e/internal/fixture/gpg_test.go | 3 + test/e2e/internal/fixture/group.go | 3 + test/e2e/internal/fixture/group_credential.go | 3 + .../internal/fixture/group_credential_test.go | 3 + test/e2e/internal/fixture/group_protection.go | 3 + .../internal/fixture/group_protection_test.go | 3 + test/e2e/internal/fixture/group_test.go | 3 + test/e2e/internal/fixture/group_tracker.go | 3 + .../internal/fixture/group_tracker_test.go | 3 + test/e2e/internal/fixture/hook.go | 3 + test/e2e/internal/fixture/hook_test.go | 3 + test/e2e/internal/fixture/issue.go | 3 + test/e2e/internal/fixture/iteration.go | 3 + test/e2e/internal/fixture/iteration_test.go | 3 + test/e2e/internal/fixture/job_token_scope.go | 3 + .../internal/fixture/job_token_scope_test.go | 3 + test/e2e/internal/fixture/license.go | 3 + test/e2e/internal/fixture/license_test.go | 3 + test/e2e/internal/fixture/member.go | 3 + test/e2e/internal/fixture/member_test.go | 3 + test/e2e/internal/fixture/merge_request.go | 3 + .../internal/fixture/merge_request_test.go | 3 + test/e2e/internal/fixture/merge_train.go | 3 + test/e2e/internal/fixture/mergeable_mr.go | 3 + .../e2e/internal/fixture/mergeable_mr_test.go | 3 + test/e2e/internal/fixture/mirror.go | 3 + test/e2e/internal/fixture/mirror_test.go | 3 + test/e2e/internal/fixture/network.go | 3 + test/e2e/internal/fixture/network_test.go | 3 + test/e2e/internal/fixture/npm_package.go | 3 + test/e2e/internal/fixture/npm_package_test.go | 3 + test/e2e/internal/fixture/orphans_test.go | 3 + test/e2e/internal/fixture/package_release.go | 3 + .../internal/fixture/package_release_test.go | 3 + test/e2e/internal/fixture/pipeline.go | 3 + .../e2e/internal/fixture/pipeline_schedule.go | 3 + .../fixture/pipeline_schedule_test.go | 3 + test/e2e/internal/fixture/pipeline_test.go | 3 + test/e2e/internal/fixture/pipeline_trigger.go | 3 + .../internal/fixture/pipeline_trigger_test.go | 3 + test/e2e/internal/fixture/probe.go | 3 + test/e2e/internal/fixture/probe_test.go | 3 + test/e2e/internal/fixture/project.go | 3 + test/e2e/internal/fixture/project_alias.go | 3 + .../internal/fixture/project_alias_test.go | 3 + test/e2e/internal/fixture/project_snippet.go | 3 + .../internal/fixture/project_snippet_test.go | 3 + test/e2e/internal/fixture/project_test.go | 3 + test/e2e/internal/fixture/protected_env.go | 3 + .../internal/fixture/protected_env_test.go | 3 + test/e2e/internal/fixture/push_rule.go | 3 + test/e2e/internal/fixture/push_rule_test.go | 3 + test/e2e/internal/fixture/release.go | 3 + test/e2e/internal/fixture/release_test.go | 3 + test/e2e/internal/fixture/repository.go | 3 + test/e2e/internal/fixture/repository_test.go | 3 + test/e2e/internal/fixture/retry.go | 3 + test/e2e/internal/fixture/retry_test.go | 3 + test/e2e/internal/fixture/runner.go | 3 + test/e2e/internal/fixture/runner_test.go | 3 + test/e2e/internal/fixture/seeds.go | 3 + test/e2e/internal/fixture/seeds_test.go | 3 + test/e2e/internal/fixture/service_account.go | 3 + .../internal/fixture/service_account_test.go | 3 + test/e2e/internal/fixture/snippet.go | 3 + test/e2e/internal/fixture/snippet_test.go | 3 + test/e2e/internal/fixture/sources_test.go | 3 + test/e2e/internal/fixture/stub_test.go | 3 + test/e2e/internal/fixture/sweep.go | 3 + test/e2e/internal/fixture/sweep_test.go | 3 + test/e2e/internal/fixture/tag.go | 3 + test/e2e/internal/fixture/tag_test.go | 3 + test/e2e/internal/fixture/terraform.go | 3 + test/e2e/internal/fixture/terraform_test.go | 3 + test/e2e/internal/fixture/transport.go | 3 + test/e2e/internal/fixture/transport_test.go | 3 + test/e2e/internal/fixture/user.go | 3 + test/e2e/internal/fixture/user_test.go | 3 + test/e2e/internal/fixture/vulnerability.go | 3 + .../internal/fixture/vulnerability_test.go | 3 + test/e2e/internal/fixture/wiki.go | 3 + test/e2e/internal/fixture/wiki_test.go | 3 + test/e2e/internal/fixture/world.go | 3 + test/e2e/internal/fixture/world_extras.go | 3 + .../e2e/internal/fixture/world_extras_test.go | 3 + test/e2e/internal/fixture/world_test.go | 3 + test/e2e/internal/harness/access.go | 3 + test/e2e/internal/harness/access_test.go | 3 + test/e2e/internal/harness/admission.go | 3 + test/e2e/internal/harness/admission_test.go | 3 + test/e2e/internal/harness/call.go | 3 + test/e2e/internal/harness/call_test.go | 3 + test/e2e/internal/harness/coverage.go | 3 + test/e2e/internal/harness/coverage_test.go | 3 + test/e2e/internal/harness/doc.go | 3 + test/e2e/internal/harness/env.go | 3 + test/e2e/internal/harness/env_test.go | 3 + test/e2e/internal/harness/main.go | 3 + test/e2e/internal/harness/main_test.go | 3 + test/e2e/internal/harness/model.go | 3 + test/e2e/internal/harness/model_test.go | 3 + test/e2e/internal/harness/names.go | 3 + test/e2e/internal/harness/names_test.go | 3 + test/e2e/internal/harness/needs.go | 3 + test/e2e/internal/harness/needs_test.go | 3 + test/e2e/internal/harness/otlp.go | 3 + test/e2e/internal/harness/otlp_test.go | 3 + test/e2e/internal/harness/poll.go | 3 + test/e2e/internal/harness/poll_test.go | 3 + test/e2e/internal/harness/project.go | 3 + test/e2e/internal/harness/project_test.go | 3 + test/e2e/internal/harness/record.go | 3 + test/e2e/internal/harness/record_test.go | 3 + test/e2e/internal/harness/runtime.go | 3 + test/e2e/internal/harness/runtime_test.go | 3 + test/e2e/internal/harness/served.go | 3 + test/e2e/internal/harness/served_test.go | 3 + test/e2e/internal/harness/server.go | 3 + test/e2e/internal/harness/server_norace.go | 3 + test/e2e/internal/harness/server_race.go | 3 + test/e2e/internal/harness/server_test.go | 3 + test/e2e/internal/harness/session.go | 3 + test/e2e/internal/harness/session_test.go | 3 + test/e2e/internal/harness/sources_test.go | 3 + test/e2e/internal/harness/surfaces.go | 3 + test/e2e/internal/harness/surfaces_test.go | 3 + test/e2e/internal/harness/verbs.go | 3 + test/e2e/internal/harness/verbs_test.go | 3 + test/e2e/modeleval/call.go | 3 + test/e2e/modeleval/call_test.go | 3 + test/e2e/modeleval/config.go | 3 + test/e2e/modeleval/config_test.go | 3 + test/e2e/modeleval/contract_probe_test.go | 3 + test/e2e/modeleval/doc.go | 3 + .../modeleval/internal/provider/anthropic.go | 3 + .../internal/provider/anthropic_test.go | 3 + .../e2e/modeleval/internal/provider/digest.go | 3 + .../internal/provider/digest_test.go | 3 + test/e2e/modeleval/internal/provider/doc.go | 3 + test/e2e/modeleval/internal/provider/fake.go | 3 + .../modeleval/internal/provider/fake_test.go | 3 + .../e2e/modeleval/internal/provider/google.go | 3 + .../internal/provider/google_test.go | 3 + .../e2e/modeleval/internal/provider/openai.go | 3 + .../internal/provider/openai_test.go | 3 + .../e2e/modeleval/internal/provider/prices.go | 3 + .../internal/provider/prices_test.go | 3 + .../modeleval/internal/provider/provider.go | 3 + .../internal/provider/provider_test.go | 3 + test/e2e/modeleval/internal/provider/spec.go | 3 + .../modeleval/internal/provider/spec_test.go | 3 + test/e2e/modeleval/loop.go | 3 + test/e2e/modeleval/loop_test.go | 3 + test/e2e/modeleval/main_test.go | 3 + test/e2e/modeleval/record.go | 3 + test/e2e/modeleval/record_test.go | 3 + test/e2e/modeleval/run_test.go | 3 + test/e2e/modeleval/session.go | 3 + test/e2e/modeleval/session_test.go | 3 + test/e2e/modeleval/slice.go | 3 + test/e2e/modeleval/slice_test.go | 3 + test/e2e/modeleval/stimulus.go | 3 + test/e2e/modeleval/stimulus_test.go | 3 + test/e2e/modeleval/worlds.go | 3 + test/e2e/modeleval/worlds_test.go | 3 + test/e2e/orbit/doc.go | 3 + test/e2e/orbit/live_test.go | 3 + test/e2e/scripts/audit-command.sh | 3 + test/e2e/scripts/docker-images.sh | 3 + .../e2e/scripts/enterprise-activation-code.sh | 3 + test/e2e/scripts/fixture-addresses.sh | 3 + test/e2e/scripts/gitlab-exceptions.sh | 3 + test/e2e/scripts/register-runner.sh | 3 + test/e2e/scripts/release-gate.sh | 3 + test/e2e/scripts/run-docker-e2e.sh | 3 + test/e2e/scripts/setup-bitbucket.sh | 3 + test/e2e/scripts/setup-gitlab.sh | 3 + test/e2e/scripts/skip-gate.sh | 3 + test/e2e/scripts/wait-for-gitlab.sh | 3 + test/e2e/stdio/client_compat_test.go | 3 + test/e2e/stdio/coverage_test.go | 3 + test/e2e/stdio/doc.go | 3 + .../elicitation_declared_version_test.go | 3 + test/e2e/stdio/env_file_flag_test.go | 3 + test/e2e/stdio/env_file_test.go | 3 + test/e2e/stdio/gateway_compat_test.go | 3 + test/e2e/stdio/harness_norace_test.go | 3 + test/e2e/stdio/harness_race_test.go | 3 + test/e2e/stdio/harness_test.go | 3 + test/e2e/stdio/http_only_flags_test.go | 3 + test/e2e/stdio/listen_end_test.go | 3 + test/e2e/stdio/local_path_test.go | 3 + test/e2e/stdio/rate_limit_test.go | 3 + test/e2e/stdio/readiness_test.go | 3 + test/e2e/stdio/resources_test.go | 3 + test/e2e/stdio/retired_env_test.go | 3 + test/e2e/stdio/retry_later_test.go | 3 + test/e2e/stdio/revalidate_interval_test.go | 3 + test/e2e/stdio/shutdown_test.go | 3 + test/e2e/stdio/telemetry_test.go | 3 + test/e2e/stdio/terminate_unix_test.go | 3 + test/e2e/stdio/terminate_windows_test.go | 3 + test/e2e/stdio/token_scope_test.go | 3 + test/e2e/stdio/transport_test.go | 3 + test/e2e/stdio/upload_limit_test.go | 3 + test/e2e/stdio/yolo_mode_test.go | 3 + test/e2e/stdio/zero_settings_test.go | 3 + .../orbit/kg-fixtures/src/acme/__init__.py | 3 + .../kg-fixtures/src/acme/orders/__init__.py | 3 + .../kg-fixtures/src/acme/orders/__main__.py | 3 + .../orbit/kg-fixtures/src/acme/orders/cli.py | 3 + .../src/acme/orders/fulfillment.py | 3 + .../kg-fixtures/src/acme/orders/models.py | 3 + .../kg-fixtures/src/acme/orders/pricing.py | 3 + .../kg-fixtures/tests/test_fulfillment.py | 3 + .../orbit/kg-fixtures/tests/test_pricing.py | 3 + .../security-fixtures/src/acme/__init__.py | 3 + .../src/acme/orders/__init__.py | 3 + .../security-fixtures/src/acme/orders/auth.py | 3 + .../src/acme/orders/legacy_db.py | 3 + .../security-fixtures/tests/test_smoke.py | 3 + 3419 files changed, 10322 insertions(+), 67 deletions(-) diff --git a/.github/scripts/cosign-sign-retry.sh b/.github/scripts/cosign-sign-retry.sh index 063d9cbdc..3d1740ef3 100755 --- a/.github/scripts/cosign-sign-retry.sh +++ b/.github/scripts/cosign-sign-retry.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Sign a container image with cosign, retrying transient OIDC failures. # # Keyless signing resolves its identity token from the ambient GitHub OIDC diff --git a/.github/scripts/go-test-crash-aware.sh b/.github/scripts/go-test-crash-aware.sh index b7678e19d..2e1ca5c24 100755 --- a/.github/scripts/go-test-crash-aware.sh +++ b/.github/scripts/go-test-crash-aware.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # go-test-crash-aware.sh — run a test suite through gotestsum and tell a Go # runtime crash apart from a failing test. # diff --git a/.github/scripts/needs-verdict.sh b/.github/scripts/needs-verdict.sh index bd02fb21e..2299e16c0 100755 --- a/.github/scripts/needs-verdict.sh +++ b/.github/scripts/needs-verdict.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Decide a fan-in job's verdict from the results of the jobs it needs. # # Reads RESULTS, the JSON of the `needs` context, and prints one line per job. diff --git a/.github/scripts/referrers-fallback-repair.sh b/.github/scripts/referrers-fallback-repair.sh index a31203d3a..7891a29b9 100755 --- a/.github/scripts/referrers-fallback-repair.sh +++ b/.github/scripts/referrers-fallback-repair.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Make the referrers fallback tag say what the referrers it lists are. # # A registry without the OCI referrers API (ghcr.io answers 404 on diff --git a/Dockerfile b/Dockerfile index 449dbd7e9..50340a420 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ # syntax=docker/dockerfile:1.28.0@sha256:bb22d9815c728170f72750f4e5b0d672e06176142e1d602c7e66c050100b7e5b +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT # --- Build stage --- FROM --platform=$BUILDPLATFORM golang:1.27.3-alpine3.24@sha256:f2c872bcee949b7be9c490efd02b48a8a2fbf947cdf533f1c58525ec9d8170fd AS builder diff --git a/Makefile b/Makefile index f20a748de..e6ae3e371 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,6 @@ +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + .PHONY: build build-all build-linux-amd64 build-linux-arm64 build-windows-amd64 build-windows-arm64 build-darwin-amd64 build-darwin-arm64 \ run brand brand-check brand-rasters ensure-mcp-publisher mcp-publisher-version test test-short test-race coverage-conditions coverage-conditions-tree coverage-mutants test-pkg test-integration test-e2e test-e2e-harness test-e2e-http test-e2e-stdio test-e2e-collector ensure-gotestsum test-e2e-docker test-e2e-docker-enterprise test-e2e-gitlab-com \ e2e-server-binary test-e2e-ce test-e2e-ee test-e2e-gitlab e2e-clean-orphans \ diff --git a/cmd/audit_1to1/doc.go b/cmd/audit_1to1/doc.go index 77c68356b..6f28cd7d7 100644 --- a/cmd/audit_1to1/doc.go +++ b/cmd/audit_1to1/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_1to1 is the consolidated 1:1 SDK↔API parity audit. It combines // the four gap streams — struct field mapping (R-INPUT/R-OUTPUT), action // coverage (R-ACTION), discovery metadata (R-META), and enum values (R-ENUM) — diff --git a/cmd/audit_1to1/doc_validate.go b/cmd/audit_1to1/doc_validate.go index 8ec68731a..f00804c54 100644 --- a/cmd/audit_1to1/doc_validate.go +++ b/cmd/audit_1to1/doc_validate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // doc_validate.go implements the -validate-docs mode: it cross-checks the // `doc/api/.md` citations that justify the 1:1 adjudication tables against // the live GitLab API reference docs (via internal/apidocs). The official API diff --git a/cmd/audit_1to1/doc_validate_test.go b/cmd/audit_1to1/doc_validate_test.go index c76d698b8..aba3d7be6 100644 --- a/cmd/audit_1to1/doc_validate_test.go +++ b/cmd/audit_1to1/doc_validate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_1to1/internal/actions/analyze.go b/cmd/audit_1to1/internal/actions/analyze.go index a57c5644d..fb3cc1b14 100644 --- a/cmd/audit_1to1/internal/actions/analyze.go +++ b/cmd/audit_1to1/internal/actions/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actions import ( diff --git a/cmd/audit_1to1/internal/actions/analyze_test.go b/cmd/audit_1to1/internal/actions/analyze_test.go index 95501515f..5aaec8d2f 100644 --- a/cmd/audit_1to1/internal/actions/analyze_test.go +++ b/cmd/audit_1to1/internal/actions/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actions import ( diff --git a/cmd/audit_1to1/internal/actions/doc.go b/cmd/audit_1to1/internal/actions/doc.go index 857fe6478..01a3ab2ed 100644 --- a/cmd/audit_1to1/internal/actions/doc.go +++ b/cmd/audit_1to1/internal/actions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package actions reports client-go SDK endpoints that no MCP // action invokes (R-ACTION). For every package under internal/tools it resolves, // with full Go type information, each call site of the form diff --git a/cmd/audit_1to1/internal/enums/analyze.go b/cmd/audit_1to1/internal/enums/analyze.go index 1d68940e0..b8d064f61 100644 --- a/cmd/audit_1to1/internal/enums/analyze.go +++ b/cmd/audit_1to1/internal/enums/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package enums import ( diff --git a/cmd/audit_1to1/internal/enums/analyze_test.go b/cmd/audit_1to1/internal/enums/analyze_test.go index 86a3e5a88..f6f76051a 100644 --- a/cmd/audit_1to1/internal/enums/analyze_test.go +++ b/cmd/audit_1to1/internal/enums/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package enums tests the enum value rule (R-ENUM): that every field of a // client-go enum type an action exposes offers exactly the values the SDK // declares. The end-to-end cases run against a throwaway module carrying a diff --git a/cmd/audit_1to1/internal/enums/doc.go b/cmd/audit_1to1/internal/enums/doc.go index feee82b2f..b0f01bbfa 100644 --- a/cmd/audit_1to1/internal/enums/doc.go +++ b/cmd/audit_1to1/internal/enums/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package enums holds the 1:1 audit rule for enumerated values (R-ENUM). // // The struct rule (R-INPUT/R-OUTPUT) asks whether every SDK field has an MCP diff --git a/cmd/audit_1to1/internal/enums/exemptions.go b/cmd/audit_1to1/internal/enums/exemptions.go index 12d125b2e..2b5a41bed 100644 --- a/cmd/audit_1to1/internal/enums/exemptions.go +++ b/cmd/audit_1to1/internal/enums/exemptions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package enums import "maps" diff --git a/cmd/audit_1to1/internal/grants/actions.go b/cmd/audit_1to1/internal/grants/actions.go index 6ff711af9..ab82c8508 100644 --- a/cmd/audit_1to1/internal/grants/actions.go +++ b/cmd/audit_1to1/internal/grants/actions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/actions_test.go b/cmd/audit_1to1/internal/grants/actions_test.go index 44beae25f..0acfa8c44 100644 --- a/cmd/audit_1to1/internal/grants/actions_test.go +++ b/cmd/audit_1to1/internal/grants/actions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/analyze.go b/cmd/audit_1to1/internal/grants/analyze.go index 63100f00c..8cf193d2b 100644 --- a/cmd/audit_1to1/internal/grants/analyze.go +++ b/cmd/audit_1to1/internal/grants/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/analyze_test.go b/cmd/audit_1to1/internal/grants/analyze_test.go index 31aabd8d1..778353f98 100644 --- a/cmd/audit_1to1/internal/grants/analyze_test.go +++ b/cmd/audit_1to1/internal/grants/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/classic.go b/cmd/audit_1to1/internal/grants/classic.go index a0358b4d2..9c1572790 100644 --- a/cmd/audit_1to1/internal/grants/classic.go +++ b/cmd/audit_1to1/internal/grants/classic.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/classic_test.go b/cmd/audit_1to1/internal/grants/classic_test.go index 3912b5adb..b8d9c6a8c 100644 --- a/cmd/audit_1to1/internal/grants/classic_test.go +++ b/cmd/audit_1to1/internal/grants/classic_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/consistency.go b/cmd/audit_1to1/internal/grants/consistency.go index 0fed3a42d..7a8dc1189 100644 --- a/cmd/audit_1to1/internal/grants/consistency.go +++ b/cmd/audit_1to1/internal/grants/consistency.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/consistency_test.go b/cmd/audit_1to1/internal/grants/consistency_test.go index f6a96ee30..55c02cf37 100644 --- a/cmd/audit_1to1/internal/grants/consistency_test.go +++ b/cmd/audit_1to1/internal/grants/consistency_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/doc.go b/cmd/audit_1to1/internal/grants/doc.go index 1593ffeb0..63cae5941 100644 --- a/cmd/audit_1to1/internal/grants/doc.go +++ b/cmd/audit_1to1/internal/grants/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package grants is R-GRANT, the dimension of the 1:1 audit that says what a // fine-grained personal access token needs for each action this server offers // (issue 952). diff --git a/cmd/audit_1to1/internal/grants/e2e.go b/cmd/audit_1to1/internal/grants/e2e.go index 1ed2cc51c..0dcc93bd4 100644 --- a/cmd/audit_1to1/internal/grants/e2e.go +++ b/cmd/audit_1to1/internal/grants/e2e.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/e2e_test.go b/cmd/audit_1to1/internal/grants/e2e_test.go index 43f456934..5fea9adad 100644 --- a/cmd/audit_1to1/internal/grants/e2e_test.go +++ b/cmd/audit_1to1/internal/grants/e2e_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/inventory.go b/cmd/audit_1to1/internal/grants/inventory.go index 00ce3466a..8cf1d169e 100644 --- a/cmd/audit_1to1/internal/grants/inventory.go +++ b/cmd/audit_1to1/internal/grants/inventory.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/inventory_test.go b/cmd/audit_1to1/internal/grants/inventory_test.go index 9a45feed0..4402db248 100644 --- a/cmd/audit_1to1/internal/grants/inventory_test.go +++ b/cmd/audit_1to1/internal/grants/inventory_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/worklist.go b/cmd/audit_1to1/internal/grants/worklist.go index 457b95678..e75f47f7d 100644 --- a/cmd/audit_1to1/internal/grants/worklist.go +++ b/cmd/audit_1to1/internal/grants/worklist.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/grants/worklist_test.go b/cmd/audit_1to1/internal/grants/worklist_test.go index 69ff1d383..9699ea931 100644 --- a/cmd/audit_1to1/internal/grants/worklist_test.go +++ b/cmd/audit_1to1/internal/grants/worklist_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grants import ( diff --git a/cmd/audit_1to1/internal/merge/doc.go b/cmd/audit_1to1/internal/merge/doc.go index 1c20fb765..9a56b237e 100644 --- a/cmd/audit_1to1/internal/merge/doc.go +++ b/cmd/audit_1to1/internal/merge/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package merge combines the four 1:1-audit gap reports — struct // completeness (R-INPUT/R-OUTPUT), action coverage (R-ACTION), metadata // completeness (R-META), and enum values (R-ENUM) — into a single per-package diff --git a/cmd/audit_1to1/internal/merge/merge.go b/cmd/audit_1to1/internal/merge/merge.go index 7ba116822..e4c72151b 100644 --- a/cmd/audit_1to1/internal/merge/merge.go +++ b/cmd/audit_1to1/internal/merge/merge.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package merge import ( diff --git a/cmd/audit_1to1/internal/merge/merge_test.go b/cmd/audit_1to1/internal/merge/merge_test.go index bdf879cd0..be01e9f43 100644 --- a/cmd/audit_1to1/internal/merge/merge_test.go +++ b/cmd/audit_1to1/internal/merge/merge_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package merge import ( diff --git a/cmd/audit_1to1/internal/merge/types.go b/cmd/audit_1to1/internal/merge/types.go index a70c598b3..83a6684aa 100644 --- a/cmd/audit_1to1/internal/merge/types.go +++ b/cmd/audit_1to1/internal/merge/types.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package merge import "encoding/json" diff --git a/cmd/audit_1to1/internal/metadata/analyze.go b/cmd/audit_1to1/internal/metadata/analyze.go index cf2a6f81b..f65bca57a 100644 --- a/cmd/audit_1to1/internal/metadata/analyze.go +++ b/cmd/audit_1to1/internal/metadata/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package metadata import ( diff --git a/cmd/audit_1to1/internal/metadata/analyze_test.go b/cmd/audit_1to1/internal/metadata/analyze_test.go index 9de997aad..eeda1ae1e 100644 --- a/cmd/audit_1to1/internal/metadata/analyze_test.go +++ b/cmd/audit_1to1/internal/metadata/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package metadata import ( diff --git a/cmd/audit_1to1/internal/metadata/doc.go b/cmd/audit_1to1/internal/metadata/doc.go index a2750b714..0bb8be94f 100644 --- a/cmd/audit_1to1/internal/metadata/doc.go +++ b/cmd/audit_1to1/internal/metadata/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package metadata reports discovery-metadata gaps (R-META) // across the canonical ActionSpec catalog. For every action it flags: // diff --git a/cmd/audit_1to1/internal/paths/always_sent.go b/cmd/audit_1to1/internal/paths/always_sent.go index a4218f87c..f6c687429 100644 --- a/cmd/audit_1to1/internal/paths/always_sent.go +++ b/cmd/audit_1to1/internal/paths/always_sent.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/always_sent_test.go b/cmd/audit_1to1/internal/paths/always_sent_test.go index 239ba4ad4..4110b8c53 100644 --- a/cmd/audit_1to1/internal/paths/always_sent_test.go +++ b/cmd/audit_1to1/internal/paths/always_sent_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/analyze.go b/cmd/audit_1to1/internal/paths/analyze.go index ed8adbc6b..d658c5dc3 100644 --- a/cmd/audit_1to1/internal/paths/analyze.go +++ b/cmd/audit_1to1/internal/paths/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/analyze_test.go b/cmd/audit_1to1/internal/paths/analyze_test.go index 06438cf04..b31961352 100644 --- a/cmd/audit_1to1/internal/paths/analyze_test.go +++ b/cmd/audit_1to1/internal/paths/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/declarations.go b/cmd/audit_1to1/internal/paths/declarations.go index e5b0bd395..ff477a664 100644 --- a/cmd/audit_1to1/internal/paths/declarations.go +++ b/cmd/audit_1to1/internal/paths/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths // silentOwnerDeclaration records why a package the catalog names as owning diff --git a/cmd/audit_1to1/internal/paths/doc.go b/cmd/audit_1to1/internal/paths/doc.go index 745d0a88b..669477c0b 100644 --- a/cmd/audit_1to1/internal/paths/doc.go +++ b/cmd/audit_1to1/internal/paths/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package paths holds the 1:1 audit rule about the request an action actually // issues (R-PATH). // diff --git a/cmd/audit_1to1/internal/paths/e2e_observed.go b/cmd/audit_1to1/internal/paths/e2e_observed.go index 0a2a8306d..accb8fe80 100644 --- a/cmd/audit_1to1/internal/paths/e2e_observed.go +++ b/cmd/audit_1to1/internal/paths/e2e_observed.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/e2e_observed_test.go b/cmd/audit_1to1/internal/paths/e2e_observed_test.go index 8b0b5644d..a70e55231 100644 --- a/cmd/audit_1to1/internal/paths/e2e_observed_test.go +++ b/cmd/audit_1to1/internal/paths/e2e_observed_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/endpoint_declarations.go b/cmd/audit_1to1/internal/paths/endpoint_declarations.go index 35adca579..1aebad91f 100644 --- a/cmd/audit_1to1/internal/paths/endpoint_declarations.go +++ b/cmd/audit_1to1/internal/paths/endpoint_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/endpoint_declarations_test.go b/cmd/audit_1to1/internal/paths/endpoint_declarations_test.go index 97a624da7..13b31dee5 100644 --- a/cmd/audit_1to1/internal/paths/endpoint_declarations_test.go +++ b/cmd/audit_1to1/internal/paths/endpoint_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/endpoints.go b/cmd/audit_1to1/internal/paths/endpoints.go index d1026a70b..355faec28 100644 --- a/cmd/audit_1to1/internal/paths/endpoints.go +++ b/cmd/audit_1to1/internal/paths/endpoints.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/endpoints_test.go b/cmd/audit_1to1/internal/paths/endpoints_test.go index 0c8bfde37..3986f307a 100644 --- a/cmd/audit_1to1/internal/paths/endpoints_test.go +++ b/cmd/audit_1to1/internal/paths/endpoints_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/identifiers.go b/cmd/audit_1to1/internal/paths/identifiers.go index eee336bf3..f945e39f2 100644 --- a/cmd/audit_1to1/internal/paths/identifiers.go +++ b/cmd/audit_1to1/internal/paths/identifiers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/identifiers_test.go b/cmd/audit_1to1/internal/paths/identifiers_test.go index 969ca7bd0..ca0393e1b 100644 --- a/cmd/audit_1to1/internal/paths/identifiers_test.go +++ b/cmd/audit_1to1/internal/paths/identifiers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/observed.go b/cmd/audit_1to1/internal/paths/observed.go index cbbdb5d01..77a41611b 100644 --- a/cmd/audit_1to1/internal/paths/observed.go +++ b/cmd/audit_1to1/internal/paths/observed.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/observed_test.go b/cmd/audit_1to1/internal/paths/observed_test.go index dea178290..99982c5b7 100644 --- a/cmd/audit_1to1/internal/paths/observed_test.go +++ b/cmd/audit_1to1/internal/paths/observed_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/orbit_declarations.go b/cmd/audit_1to1/internal/paths/orbit_declarations.go index ade12bd88..27447bcad 100644 --- a/cmd/audit_1to1/internal/paths/orbit_declarations.go +++ b/cmd/audit_1to1/internal/paths/orbit_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import "sort" diff --git a/cmd/audit_1to1/internal/paths/orbit_declarations_test.go b/cmd/audit_1to1/internal/paths/orbit_declarations_test.go index 43a5e5447..fc8ac70e5 100644 --- a/cmd/audit_1to1/internal/paths/orbit_declarations_test.go +++ b/cmd/audit_1to1/internal/paths/orbit_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/orbit_kinds.go b/cmd/audit_1to1/internal/paths/orbit_kinds.go index b6867d730..a66ee0768 100644 --- a/cmd/audit_1to1/internal/paths/orbit_kinds.go +++ b/cmd/audit_1to1/internal/paths/orbit_kinds.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/orbit_kinds_test.go b/cmd/audit_1to1/internal/paths/orbit_kinds_test.go index d4768fb74..749866521 100644 --- a/cmd/audit_1to1/internal/paths/orbit_kinds_test.go +++ b/cmd/audit_1to1/internal/paths/orbit_kinds_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/orbit_record.go b/cmd/audit_1to1/internal/paths/orbit_record.go index b8d9bb131..9c7f69b87 100644 --- a/cmd/audit_1to1/internal/paths/orbit_record.go +++ b/cmd/audit_1to1/internal/paths/orbit_record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/orbit_record_test.go b/cmd/audit_1to1/internal/paths/orbit_record_test.go index a962b806c..41cbf24c5 100644 --- a/cmd/audit_1to1/internal/paths/orbit_record_test.go +++ b/cmd/audit_1to1/internal/paths/orbit_record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/pagination.go b/cmd/audit_1to1/internal/paths/pagination.go index d9717ccab..6bf4c7c6b 100644 --- a/cmd/audit_1to1/internal/paths/pagination.go +++ b/cmd/audit_1to1/internal/paths/pagination.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/pagination_declarations.go b/cmd/audit_1to1/internal/paths/pagination_declarations.go index 945e485c6..35b00a308 100644 --- a/cmd/audit_1to1/internal/paths/pagination_declarations.go +++ b/cmd/audit_1to1/internal/paths/pagination_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import "sort" diff --git a/cmd/audit_1to1/internal/paths/pagination_declarations_test.go b/cmd/audit_1to1/internal/paths/pagination_declarations_test.go index e4eaafd7a..42b9ddd2d 100644 --- a/cmd/audit_1to1/internal/paths/pagination_declarations_test.go +++ b/cmd/audit_1to1/internal/paths/pagination_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/pagination_test.go b/cmd/audit_1to1/internal/paths/pagination_test.go index ba8260afd..3793fbf4d 100644 --- a/cmd/audit_1to1/internal/paths/pagination_test.go +++ b/cmd/audit_1to1/internal/paths/pagination_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/published.go b/cmd/audit_1to1/internal/paths/published.go index 23ee7986d..31123a6d8 100644 --- a/cmd/audit_1to1/internal/paths/published.go +++ b/cmd/audit_1to1/internal/paths/published.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/published_test.go b/cmd/audit_1to1/internal/paths/published_test.go index d7da3504d..ab89b30d5 100644 --- a/cmd/audit_1to1/internal/paths/published_test.go +++ b/cmd/audit_1to1/internal/paths/published_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/scope_entities.go b/cmd/audit_1to1/internal/paths/scope_entities.go index 3aed438ff..a2b8fc375 100644 --- a/cmd/audit_1to1/internal/paths/scope_entities.go +++ b/cmd/audit_1to1/internal/paths/scope_entities.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/scope_entities_test.go b/cmd/audit_1to1/internal/paths/scope_entities_test.go index 04331810d..2ddad76b0 100644 --- a/cmd/audit_1to1/internal/paths/scope_entities_test.go +++ b/cmd/audit_1to1/internal/paths/scope_entities_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sdk_graphql.go b/cmd/audit_1to1/internal/paths/sdk_graphql.go index 08ab8e91f..48c5df4e3 100644 --- a/cmd/audit_1to1/internal/paths/sdk_graphql.go +++ b/cmd/audit_1to1/internal/paths/sdk_graphql.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sdk_graphql_test.go b/cmd/audit_1to1/internal/paths/sdk_graphql_test.go index ac0a261d8..b66af068c 100644 --- a/cmd/audit_1to1/internal/paths/sdk_graphql_test.go +++ b/cmd/audit_1to1/internal/paths/sdk_graphql_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sdk_options.go b/cmd/audit_1to1/internal/paths/sdk_options.go index e212afce7..084dfe654 100644 --- a/cmd/audit_1to1/internal/paths/sdk_options.go +++ b/cmd/audit_1to1/internal/paths/sdk_options.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sdk_options_test.go b/cmd/audit_1to1/internal/paths/sdk_options_test.go index 831e934ec..b4e479a3b 100644 --- a/cmd/audit_1to1/internal/paths/sdk_options_test.go +++ b/cmd/audit_1to1/internal/paths/sdk_options_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sdk_routes.go b/cmd/audit_1to1/internal/paths/sdk_routes.go index bb3f0ab79..5a64d07f1 100644 --- a/cmd/audit_1to1/internal/paths/sdk_routes.go +++ b/cmd/audit_1to1/internal/paths/sdk_routes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sdk_routes_test.go b/cmd/audit_1to1/internal/paths/sdk_routes_test.go index ef9ed32c0..9afa1bbdc 100644 --- a/cmd/audit_1to1/internal/paths/sdk_routes_test.go +++ b/cmd/audit_1to1/internal/paths/sdk_routes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sent.go b/cmd/audit_1to1/internal/paths/sent.go index 2c69fe842..fb440533c 100644 --- a/cmd/audit_1to1/internal/paths/sent.go +++ b/cmd/audit_1to1/internal/paths/sent.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sent_declarations.go b/cmd/audit_1to1/internal/paths/sent_declarations.go index 256225a4f..b82148a62 100644 --- a/cmd/audit_1to1/internal/paths/sent_declarations.go +++ b/cmd/audit_1to1/internal/paths/sent_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sent_declarations_test.go b/cmd/audit_1to1/internal/paths/sent_declarations_test.go index 863301c1f..58c0f66ac 100644 --- a/cmd/audit_1to1/internal/paths/sent_declarations_test.go +++ b/cmd/audit_1to1/internal/paths/sent_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/sent_test.go b/cmd/audit_1to1/internal/paths/sent_test.go index 11afda296..1194ab7f9 100644 --- a/cmd/audit_1to1/internal/paths/sent_test.go +++ b/cmd/audit_1to1/internal/paths/sent_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/shape_declarations.go b/cmd/audit_1to1/internal/paths/shape_declarations.go index 514d73c3a..27336c929 100644 --- a/cmd/audit_1to1/internal/paths/shape_declarations.go +++ b/cmd/audit_1to1/internal/paths/shape_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import "sort" diff --git a/cmd/audit_1to1/internal/paths/shape_declarations_test.go b/cmd/audit_1to1/internal/paths/shape_declarations_test.go index 751ad44f1..7b8591062 100644 --- a/cmd/audit_1to1/internal/paths/shape_declarations_test.go +++ b/cmd/audit_1to1/internal/paths/shape_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/shapes.go b/cmd/audit_1to1/internal/paths/shapes.go index a798db0a2..79209e28a 100644 --- a/cmd/audit_1to1/internal/paths/shapes.go +++ b/cmd/audit_1to1/internal/paths/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/shapes_test.go b/cmd/audit_1to1/internal/paths/shapes_test.go index 6ec5978a9..063c0c4c8 100644 --- a/cmd/audit_1to1/internal/paths/shapes_test.go +++ b/cmd/audit_1to1/internal/paths/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/typed_shapes.go b/cmd/audit_1to1/internal/paths/typed_shapes.go index 2b3b4f814..1427f1fac 100644 --- a/cmd/audit_1to1/internal/paths/typed_shapes.go +++ b/cmd/audit_1to1/internal/paths/typed_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/paths/typed_shapes_test.go b/cmd/audit_1to1/internal/paths/typed_shapes_test.go index 1caea3dfa..e4f538eee 100644 --- a/cmd/audit_1to1/internal/paths/typed_shapes_test.go +++ b/cmd/audit_1to1/internal/paths/typed_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package paths import ( diff --git a/cmd/audit_1to1/internal/required/analyze.go b/cmd/audit_1to1/internal/required/analyze.go index 4a36726bc..b8809c3ed 100644 --- a/cmd/audit_1to1/internal/required/analyze.go +++ b/cmd/audit_1to1/internal/required/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package required import ( diff --git a/cmd/audit_1to1/internal/required/analyze_test.go b/cmd/audit_1to1/internal/required/analyze_test.go index 4d5db8108..5a7f5c6b2 100644 --- a/cmd/audit_1to1/internal/required/analyze_test.go +++ b/cmd/audit_1to1/internal/required/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package required import ( diff --git a/cmd/audit_1to1/internal/required/declarations.go b/cmd/audit_1to1/internal/required/declarations.go index f34fbb760..021353eae 100644 --- a/cmd/audit_1to1/internal/required/declarations.go +++ b/cmd/audit_1to1/internal/required/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package required import "fmt" diff --git a/cmd/audit_1to1/internal/required/declarations_test.go b/cmd/audit_1to1/internal/required/declarations_test.go index f9857cace..996acec18 100644 --- a/cmd/audit_1to1/internal/required/declarations_test.go +++ b/cmd/audit_1to1/internal/required/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package required import ( diff --git a/cmd/audit_1to1/internal/required/doc.go b/cmd/audit_1to1/internal/required/doc.go index 04933c115..ceebcd390 100644 --- a/cmd/audit_1to1/internal/required/doc.go +++ b/cmd/audit_1to1/internal/required/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package required is the requiredness rule of R-INPUT: every parameter an // action's input schema requires, held to what GitLab requires of the // parameter it is sent as (issue 1100). diff --git a/cmd/audit_1to1/internal/required/place.go b/cmd/audit_1to1/internal/required/place.go index d34b0c71b..a60869ac6 100644 --- a/cmd/audit_1to1/internal/required/place.go +++ b/cmd/audit_1to1/internal/required/place.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package required import ( diff --git a/cmd/audit_1to1/internal/required/place_test.go b/cmd/audit_1to1/internal/required/place_test.go index 4f4f2463a..00be40322 100644 --- a/cmd/audit_1to1/internal/required/place_test.go +++ b/cmd/audit_1to1/internal/required/place_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package required import ( diff --git a/cmd/audit_1to1/internal/sdk/analyze.go b/cmd/audit_1to1/internal/sdk/analyze.go index ac7fdfac8..678837287 100644 --- a/cmd/audit_1to1/internal/sdk/analyze.go +++ b/cmd/audit_1to1/internal/sdk/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdk import ( diff --git a/cmd/audit_1to1/internal/sdk/analyze_test.go b/cmd/audit_1to1/internal/sdk/analyze_test.go index ce9054e14..920b1e42b 100644 --- a/cmd/audit_1to1/internal/sdk/analyze_test.go +++ b/cmd/audit_1to1/internal/sdk/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package sdk tests the two SDK-sourced audit rules: that every client-go // service is either called or declared, and that every raw-GraphQL operation // whose wrapper exists carries a decision. The end-to-end cases run against a diff --git a/cmd/audit_1to1/internal/sdk/decisions.go b/cmd/audit_1to1/internal/sdk/decisions.go index ecd807285..d6e9925d5 100644 --- a/cmd/audit_1to1/internal/sdk/decisions.go +++ b/cmd/audit_1to1/internal/sdk/decisions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdk // Service declaration categories. The first two mirror the vocabulary diff --git a/cmd/audit_1to1/internal/sdk/decisions_test.go b/cmd/audit_1to1/internal/sdk/decisions_test.go index 1888c3cab..56fe25a5c 100644 --- a/cmd/audit_1to1/internal/sdk/decisions_test.go +++ b/cmd/audit_1to1/internal/sdk/decisions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the two human-maintained adjudication tables. They check the shape // an entry must have, not the judgement it records: a category from the agreed // vocabulary, a reason long enough to be evidence rather than a shrug, and keys diff --git a/cmd/audit_1to1/internal/sdk/doc.go b/cmd/audit_1to1/internal/sdk/doc.go index fc4739e37..a69ff6760 100644 --- a/cmd/audit_1to1/internal/sdk/doc.go +++ b/cmd/audit_1to1/internal/sdk/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package sdk holds the two 1:1 audit rules whose universe comes from the SDK // rather than from this repository's own call sites (R-SERVICE, R-GRAPHQL). // diff --git a/cmd/audit_1to1/internal/sdk/graphql.go b/cmd/audit_1to1/internal/sdk/graphql.go index a9ee87a0a..981fade50 100644 --- a/cmd/audit_1to1/internal/sdk/graphql.go +++ b/cmd/audit_1to1/internal/sdk/graphql.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdk import ( diff --git a/cmd/audit_1to1/internal/sdk/graphql_test.go b/cmd/audit_1to1/internal/sdk/graphql_test.go index 82e130a57..9f7f83113 100644 --- a/cmd/audit_1to1/internal/sdk/graphql_test.go +++ b/cmd/audit_1to1/internal/sdk/graphql_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Unit tests for the raw-GraphQL rule: how a declaration is named, how a // package resolves to a service, and how sites become adjudicated operations. diff --git a/cmd/audit_1to1/internal/sdk/services.go b/cmd/audit_1to1/internal/sdk/services.go index d7c069dd2..0dc115a4e 100644 --- a/cmd/audit_1to1/internal/sdk/services.go +++ b/cmd/audit_1to1/internal/sdk/services.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdk import ( diff --git a/cmd/audit_1to1/internal/sdk/services_test.go b/cmd/audit_1to1/internal/sdk/services_test.go index 614b2f36e..dcc852609 100644 --- a/cmd/audit_1to1/internal/sdk/services_test.go +++ b/cmd/audit_1to1/internal/sdk/services_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Unit tests for the service universe: how a Client struct field becomes a // service entry, how a status is assigned, and when a declaration goes stale. diff --git a/cmd/audit_1to1/internal/shared/client_go.go b/cmd/audit_1to1/internal/shared/client_go.go index 58b336dc4..2cc658f96 100644 --- a/cmd/audit_1to1/internal/shared/client_go.go +++ b/cmd/audit_1to1/internal/shared/client_go.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shared import ( diff --git a/cmd/audit_1to1/internal/shared/client_go_test.go b/cmd/audit_1to1/internal/shared/client_go_test.go index 649f30ec3..8b23e39a1 100644 --- a/cmd/audit_1to1/internal/shared/client_go_test.go +++ b/cmd/audit_1to1/internal/shared/client_go_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the client-go type resolution the audit scopes share: which // receiver is a service interface, which method is a REST endpoint, and how a // package path reduces to a domain name. diff --git a/cmd/audit_1to1/internal/shared/doc.go b/cmd/audit_1to1/internal/shared/doc.go index 58ad80a10..8af702c2a 100644 --- a/cmd/audit_1to1/internal/shared/doc.go +++ b/cmd/audit_1to1/internal/shared/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package shared holds constants and helpers used across multiple audit_1to1 // sub-packages so they cannot drift. package shared diff --git a/cmd/audit_1to1/internal/shared/shared.go b/cmd/audit_1to1/internal/shared/shared.go index 74dc8b0ea..8d7816be8 100644 --- a/cmd/audit_1to1/internal/shared/shared.go +++ b/cmd/audit_1to1/internal/shared/shared.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shared import ( diff --git a/cmd/audit_1to1/internal/shared/shared_test.go b/cmd/audit_1to1/internal/shared/shared_test.go index ccb4ed248..dddc39575 100644 --- a/cmd/audit_1to1/internal/shared/shared_test.go +++ b/cmd/audit_1to1/internal/shared/shared_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package shared tests the memoized typed-package loader the structs and // actions analyzers share, against small throwaway modules so the tests // state exactly which packages resolve and which errors abort a run. diff --git a/cmd/audit_1to1/internal/shared/tags.go b/cmd/audit_1to1/internal/shared/tags.go index cf3b2f19d..41431fc8d 100644 --- a/cmd/audit_1to1/internal/shared/tags.go +++ b/cmd/audit_1to1/internal/shared/tags.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shared import ( diff --git a/cmd/audit_1to1/internal/shared/tags_test.go b/cmd/audit_1to1/internal/shared/tags_test.go index 3cb2e0789..4fab7a3f8 100644 --- a/cmd/audit_1to1/internal/shared/tags_test.go +++ b/cmd/audit_1to1/internal/shared/tags_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shared import ( diff --git a/cmd/audit_1to1/internal/structs/analyze.go b/cmd/audit_1to1/internal/structs/analyze.go index bf445ee41..bf71e3713 100644 --- a/cmd/audit_1to1/internal/structs/analyze.go +++ b/cmd/audit_1to1/internal/structs/analyze.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/internal/structs/analyze_test.go b/cmd/audit_1to1/internal/structs/analyze_test.go index c2189d28c..1ac0a919a 100644 --- a/cmd/audit_1to1/internal/structs/analyze_test.go +++ b/cmd/audit_1to1/internal/structs/analyze_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/internal/structs/diff_run.go b/cmd/audit_1to1/internal/structs/diff_run.go index fe3b06003..114402a0b 100644 --- a/cmd/audit_1to1/internal/structs/diff_run.go +++ b/cmd/audit_1to1/internal/structs/diff_run.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/internal/structs/diff_run_test.go b/cmd/audit_1to1/internal/structs/diff_run_test.go index 9c54cb152..9f187f894 100644 --- a/cmd/audit_1to1/internal/structs/diff_run_test.go +++ b/cmd/audit_1to1/internal/structs/diff_run_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/internal/structs/doc.go b/cmd/audit_1to1/internal/structs/doc.go index 58672cfca..37efecd9c 100644 --- a/cmd/audit_1to1/internal/structs/doc.go +++ b/cmd/audit_1to1/internal/structs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package structs verifies the 1:1 field mapping between the // MCP tool input/output structs and the client-go SDK Options/result structs // they wrap. diff --git a/cmd/audit_1to1/internal/structs/pairings.go b/cmd/audit_1to1/internal/structs/pairings.go index 473caf717..6dfd0b620 100644 --- a/cmd/audit_1to1/internal/structs/pairings.go +++ b/cmd/audit_1to1/internal/structs/pairings.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/internal/structs/pairings_test.go b/cmd/audit_1to1/internal/structs/pairings_test.go index d37f75804..bbd73c8c4 100644 --- a/cmd/audit_1to1/internal/structs/pairings_test.go +++ b/cmd/audit_1to1/internal/structs/pairings_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/internal/structs/projections.go b/cmd/audit_1to1/internal/structs/projections.go index ecd9eae3c..d67ff5024 100644 --- a/cmd/audit_1to1/internal/structs/projections.go +++ b/cmd/audit_1to1/internal/structs/projections.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/internal/structs/projections_test.go b/cmd/audit_1to1/internal/structs/projections_test.go index d33d66b9b..3f2d5800f 100644 --- a/cmd/audit_1to1/internal/structs/projections_test.go +++ b/cmd/audit_1to1/internal/structs/projections_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package structs import ( diff --git a/cmd/audit_1to1/main.go b/cmd/audit_1to1/main.go index c6f2c55fb..aadb06482 100644 --- a/cmd/audit_1to1/main.go +++ b/cmd/audit_1to1/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_1to1/main_test.go b/cmd/audit_1to1/main_test.go index 6eb8a559e..be4df4a19 100644 --- a/cmd/audit_1to1/main_test.go +++ b/cmd/audit_1to1/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/declarations.go b/cmd/audit_action_ids/declarations.go index 242758ed5..765ce3061 100644 --- a/cmd/audit_action_ids/declarations.go +++ b/cmd/audit_action_ids/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/declarations_test.go b/cmd/audit_action_ids/declarations_test.go index b70923f71..0e51a212f 100644 --- a/cmd/audit_action_ids/declarations_test.go +++ b/cmd/audit_action_ids/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/doc.go b/cmd/audit_action_ids/doc.go index db141e51d..96f4ab932 100644 --- a/cmd/audit_action_ids/doc.go +++ b/cmd/audit_action_ids/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_action_ids holds every canonical action ID this repository // publishes to a model against the IDs the catalog really builds. // diff --git a/cmd/audit_action_ids/fix_hints.go b/cmd/audit_action_ids/fix_hints.go index 08829ae13..f939c9757 100644 --- a/cmd/audit_action_ids/fix_hints.go +++ b/cmd/audit_action_ids/fix_hints.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/fix_hints_test.go b/cmd/audit_action_ids/fix_hints_test.go index aae67f001..61ebea8a6 100644 --- a/cmd/audit_action_ids/fix_hints_test.go +++ b/cmd/audit_action_ids/fix_hints_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/fold.go b/cmd/audit_action_ids/fold.go index f5292d1e3..d1bb67ede 100644 --- a/cmd/audit_action_ids/fold.go +++ b/cmd/audit_action_ids/fold.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/fold_test.go b/cmd/audit_action_ids/fold_test.go index e7cd4f220..0426049d4 100644 --- a/cmd/audit_action_ids/fold_test.go +++ b/cmd/audit_action_ids/fold_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/hints.go b/cmd/audit_action_ids/hints.go index 975f3d841..f0fea58b3 100644 --- a/cmd/audit_action_ids/hints.go +++ b/cmd/audit_action_ids/hints.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/hints_test.go b/cmd/audit_action_ids/hints_test.go index b068fc9cd..d8b768de5 100644 --- a/cmd/audit_action_ids/hints_test.go +++ b/cmd/audit_action_ids/hints_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/main.go b/cmd/audit_action_ids/main.go index 0674048e3..2016d8879 100644 --- a/cmd/audit_action_ids/main.go +++ b/cmd/audit_action_ids/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/main_test.go b/cmd/audit_action_ids/main_test.go index 0abff1ee0..c81999ec3 100644 --- a/cmd/audit_action_ids/main_test.go +++ b/cmd/audit_action_ids/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/report.go b/cmd/audit_action_ids/report.go index 20c2e438b..053372eed 100644 --- a/cmd/audit_action_ids/report.go +++ b/cmd/audit_action_ids/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/report_test.go b/cmd/audit_action_ids/report_test.go index 03e9f5977..fdb62a5f7 100644 --- a/cmd/audit_action_ids/report_test.go +++ b/cmd/audit_action_ids/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/source.go b/cmd/audit_action_ids/source.go index ef2f74b0e..e302bdc47 100644 --- a/cmd/audit_action_ids/source.go +++ b/cmd/audit_action_ids/source.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/source_test.go b/cmd/audit_action_ids/source_test.go index f8eeeda88..d8a48924c 100644 --- a/cmd/audit_action_ids/source_test.go +++ b/cmd/audit_action_ids/source_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/suite.go b/cmd/audit_action_ids/suite.go index c1cfef698..af74d5c33 100644 --- a/cmd/audit_action_ids/suite.go +++ b/cmd/audit_action_ids/suite.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_action_ids/suite_test.go b/cmd/audit_action_ids/suite_test.go index ad4710988..b3800afef 100644 --- a/cmd/audit_action_ids/suite_test.go +++ b/cmd/audit_action_ids/suite_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_binary_vulns/build.go b/cmd/audit_binary_vulns/build.go index fb7a564ea..2522f8672 100644 --- a/cmd/audit_binary_vulns/build.go +++ b/cmd/audit_binary_vulns/build.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_binary_vulns/build_test.go b/cmd/audit_binary_vulns/build_test.go index c54e73bc8..9b496d9ef 100644 --- a/cmd/audit_binary_vulns/build_test.go +++ b/cmd/audit_binary_vulns/build_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // build_test.go covers how each release target is built: from the entry's // main package, with its env and flags, for the target's platform. package main diff --git a/cmd/audit_binary_vulns/declarations.go b/cmd/audit_binary_vulns/declarations.go index 97973dce5..88523855f 100644 --- a/cmd/audit_binary_vulns/declarations.go +++ b/cmd/audit_binary_vulns/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_binary_vulns/declarations_test.go b/cmd/audit_binary_vulns/declarations_test.go index a0a43d733..934601753 100644 --- a/cmd/audit_binary_vulns/declarations_test.go +++ b/cmd/audit_binary_vulns/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // declarations_test.go holds the declaration table to what an entry has to // say, and the validation to every way an entry can fail to say it. package main diff --git a/cmd/audit_binary_vulns/doc.go b/cmd/audit_binary_vulns/doc.go index 049514289..c5d0eb1a2 100644 --- a/cmd/audit_binary_vulns/doc.go +++ b/cmd/audit_binary_vulns/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_binary_vulns builds every binary the release publishes and // holds each one to the vulnerability database at module grain, which is how // every scanner that reads a shipped binary or its SBOM judges it. diff --git a/cmd/audit_binary_vulns/goreleaser.go b/cmd/audit_binary_vulns/goreleaser.go index e20f5a07b..fdb78fc4b 100644 --- a/cmd/audit_binary_vulns/goreleaser.go +++ b/cmd/audit_binary_vulns/goreleaser.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_binary_vulns/goreleaser_test.go b/cmd/audit_binary_vulns/goreleaser_test.go index 3be0ac926..8afe4ddd1 100644 --- a/cmd/audit_binary_vulns/goreleaser_test.go +++ b/cmd/audit_binary_vulns/goreleaser_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // goreleaser_test.go covers how the release targets are read out of a // GoReleaser configuration, the repository's own included. package main diff --git a/cmd/audit_binary_vulns/main.go b/cmd/audit_binary_vulns/main.go index 13dbae62b..d0ced3bbd 100644 --- a/cmd/audit_binary_vulns/main.go +++ b/cmd/audit_binary_vulns/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_binary_vulns/main_test.go b/cmd/audit_binary_vulns/main_test.go index c1e11accc..05f68cf3c 100644 --- a/cmd/audit_binary_vulns/main_test.go +++ b/cmd/audit_binary_vulns/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go drives the command end to end: the release configuration read, // every target built, every binary scanned against a database the test wrote, // and the exit code the gate turns on. diff --git a/cmd/audit_binary_vulns/report.go b/cmd/audit_binary_vulns/report.go index ee86b2b6c..b797a88d4 100644 --- a/cmd/audit_binary_vulns/report.go +++ b/cmd/audit_binary_vulns/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_binary_vulns/report_test.go b/cmd/audit_binary_vulns/report_test.go index ff58180fb..632c907bb 100644 --- a/cmd/audit_binary_vulns/report_test.go +++ b/cmd/audit_binary_vulns/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // report_test.go covers how the findings of every binary are merged, held to // the declaration table and printed. package main diff --git a/cmd/audit_binary_vulns/scan.go b/cmd/audit_binary_vulns/scan.go index 32d0d9d2a..5375c6ca5 100644 --- a/cmd/audit_binary_vulns/scan.go +++ b/cmd/audit_binary_vulns/scan.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_binary_vulns/scan_test.go b/cmd/audit_binary_vulns/scan_test.go index 38a360b23..054529c7b 100644 --- a/cmd/audit_binary_vulns/scan_test.go +++ b/cmd/audit_binary_vulns/scan_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // scan_test.go covers the govulncheck run over one binary and the reading of // what it prints, against a vulnerability database written by the test so // nothing here reaches the network. diff --git a/cmd/audit_catalog_first/declarations.go b/cmd/audit_catalog_first/declarations.go index 36d253d65..d7269aca5 100644 --- a/cmd/audit_catalog_first/declarations.go +++ b/cmd/audit_catalog_first/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // orphanActionSpecsDeclaration is a package whose exported ActionSpecs is diff --git a/cmd/audit_catalog_first/doc.go b/cmd/audit_catalog_first/doc.go index d74450f80..dc305c85c 100644 --- a/cmd/audit_catalog_first/doc.go +++ b/cmd/audit_catalog_first/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_catalog_first generates a source-discovered inventory of // internal/tools domain coverage for the ActionSpec migration. // diff --git a/cmd/audit_catalog_first/main.go b/cmd/audit_catalog_first/main.go index 886e91c39..0170cc56c 100644 --- a/cmd/audit_catalog_first/main.go +++ b/cmd/audit_catalog_first/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_catalog_first/main_test.go b/cmd/audit_catalog_first/main_test.go index a7be77c31..49e7783ab 100644 --- a/cmd/audit_catalog_first/main_test.go +++ b/cmd/audit_catalog_first/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the audit_catalog_first command, which // validates the catalog-first migration by walking internal/tools and // reporting the per-domain coverage of the action spec system. diff --git a/cmd/audit_catalog_first/orphan_specs.go b/cmd/audit_catalog_first/orphan_specs.go index 8e0fe0e2f..c5eed80ce 100644 --- a/cmd/audit_catalog_first/orphan_specs.go +++ b/cmd/audit_catalog_first/orphan_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_catalog_first/orphan_specs_test.go b/cmd/audit_catalog_first/orphan_specs_test.go index e4ba1d22b..52bc6c399 100644 --- a/cmd/audit_catalog_first/orphan_specs_test.go +++ b/cmd/audit_catalog_first/orphan_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // orphan_specs_test.go covers the rule that holds every exported ActionSpecs // under internal/tools to something that aggregates it. package main diff --git a/cmd/audit_dco/bots.go b/cmd/audit_dco/bots.go index d12fcab57..5a920c2dc 100644 --- a/cmd/audit_dco/bots.go +++ b/cmd/audit_dco/bots.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import "strings" diff --git a/cmd/audit_dco/bots_test.go b/cmd/audit_dco/bots_test.go index 667a7a456..7551585de 100644 --- a/cmd/audit_dco/bots_test.go +++ b/cmd/audit_dco/bots_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // bots_test.go covers the declared bots: what each declaration has to state, // and that the exemption needs the bot's identity and its login together. package main diff --git a/cmd/audit_dco/doc.go b/cmd/audit_dco/doc.go index 7466c5891..b7e3b91e5 100644 --- a/cmd/audit_dco/doc.go +++ b/cmd/audit_dco/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_dco holds the commits of a branch to the Developer Certificate // of Origin (https://developercertificate.org/): every commit it judges has to // carry a Signed-off-by trailer naming its author, which is how the author diff --git a/cmd/audit_dco/git.go b/cmd/audit_dco/git.go index 7f56f77f8..6284ab140 100644 --- a/cmd/audit_dco/git.go +++ b/cmd/audit_dco/git.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dco/git_test.go b/cmd/audit_dco/git_test.go index 1db82f0db..7273f90b0 100644 --- a/cmd/audit_dco/git_test.go +++ b/cmd/audit_dco/git_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // git_test.go covers how a range is read from git: the records git log // prints, the check against the hashes git rev-list lists, which merges bring // no change of their own, and the answers of a real repository, git's own diff --git a/cmd/audit_dco/main.go b/cmd/audit_dco/main.go index 2a5f68dd1..35663239e 100644 --- a/cmd/audit_dco/main.go +++ b/cmd/audit_dco/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dco/main_test.go b/cmd/audit_dco/main_test.go index e44a88f48..2a1de554b 100644 --- a/cmd/audit_dco/main_test.go +++ b/cmd/audit_dco/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the command end to end over real repositories: what it // judges, what it prints and the status it exits with, the arguments it // refuses, and the CI job and the make target that run it. diff --git a/cmd/audit_dco/report.go b/cmd/audit_dco/report.go index db7899fa4..b0e446dfd 100644 --- a/cmd/audit_dco/report.go +++ b/cmd/audit_dco/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dco/report_test.go b/cmd/audit_dco/report_test.go index 71f58f86e..e026ea193 100644 --- a/cmd/audit_dco/report_test.go +++ b/cmd/audit_dco/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // report_test.go covers what a run prints: one line per commit with the // reason under each that is not simply signed off, the count, how to sign a // failing commit off, the workflow commands of -annotate, and the escaping of diff --git a/cmd/audit_dco/signoff.go b/cmd/audit_dco/signoff.go index 4ccf5dd98..2ffe6e857 100644 --- a/cmd/audit_dco/signoff.go +++ b/cmd/audit_dco/signoff.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import "strings" diff --git a/cmd/audit_dco/signoff_test.go b/cmd/audit_dco/signoff_test.go index 4b5f50dd1..612118559 100644 --- a/cmd/audit_dco/signoff_test.go +++ b/cmd/audit_dco/signoff_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // signoff_test.go covers how a commit is judged: reading a trailer as an // identity, comparing two identities, and the outcome each kind of commit // reaches. diff --git a/cmd/audit_dead_consts/declarations.go b/cmd/audit_dead_consts/declarations.go index 2205f7073..b9213ba86 100644 --- a/cmd/audit_dead_consts/declarations.go +++ b/cmd/audit_dead_consts/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dead_consts/declarations_test.go b/cmd/audit_dead_consts/declarations_test.go index 764b1b2e0..3f1a7a73d 100644 --- a/cmd/audit_dead_consts/declarations_test.go +++ b/cmd/audit_dead_consts/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dead_consts/doc.go b/cmd/audit_dead_consts/doc.go index ce5101a5b..b530adf65 100644 --- a/cmd/audit_dead_consts/doc.go +++ b/cmd/audit_dead_consts/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_dead_consts reports every unexported constant in this // repository that nothing reads. // diff --git a/cmd/audit_dead_consts/main.go b/cmd/audit_dead_consts/main.go index 9aad148ed..4e396c85a 100644 --- a/cmd/audit_dead_consts/main.go +++ b/cmd/audit_dead_consts/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dead_consts/main_test.go b/cmd/audit_dead_consts/main_test.go index 457e4cb9f..56af7105f 100644 --- a/cmd/audit_dead_consts/main_test.go +++ b/cmd/audit_dead_consts/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dead_consts/report.go b/cmd/audit_dead_consts/report.go index 86a68aa42..96c192a01 100644 --- a/cmd/audit_dead_consts/report.go +++ b/cmd/audit_dead_consts/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dead_consts/report_test.go b/cmd/audit_dead_consts/report_test.go index d0248d8cc..ca3b3306b 100644 --- a/cmd/audit_dead_consts/report_test.go +++ b/cmd/audit_dead_consts/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dead_consts/scan.go b/cmd/audit_dead_consts/scan.go index b24232b1e..7f66306dc 100644 --- a/cmd/audit_dead_consts/scan.go +++ b/cmd/audit_dead_consts/scan.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dead_consts/scan_test.go b/cmd/audit_dead_consts/scan_test.go index 78e87a47a..5c5233c60 100644 --- a/cmd/audit_dead_consts/scan_test.go +++ b/cmd/audit_dead_consts/scan_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_discovery_completeness/doc.go b/cmd/audit_discovery_completeness/doc.go index 6d4bb7cab..38b3b6e7a 100644 --- a/cmd/audit_discovery_completeness/doc.go +++ b/cmd/audit_discovery_completeness/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_discovery_completeness reports discovery-metadata gaps that // affect how well models can find and choose the right action. It extends the // existing R-META auditor (cmd/audit_metadata_completeness) with two new diff --git a/cmd/audit_discovery_completeness/main.go b/cmd/audit_discovery_completeness/main.go index 84c26d2e1..347392b78 100644 --- a/cmd/audit_discovery_completeness/main.go +++ b/cmd/audit_discovery_completeness/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_discovery_completeness/main_test.go b/cmd/audit_discovery_completeness/main_test.go index a5b75e4cf..b438f5dd7 100644 --- a/cmd/audit_discovery_completeness/main_test.go +++ b/cmd/audit_discovery_completeness/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go contains unit tests for the discovery-completeness auditor. // The gold-standard fixtures pin the link_create_batch BEFORE/AFTER signature // so future regressions in the check logic (or in the underlying specs) are diff --git a/cmd/audit_doc_tool_names/doc.go b/cmd/audit_doc_tool_names/doc.go index 764a79f2f..be99bdede 100644 --- a/cmd/audit_doc_tool_names/doc.go +++ b/cmd/audit_doc_tool_names/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_doc_tool_names checks every name the documentation teaches a // reader to call against what the server really serves: the `gitlab_*` tool // names against the names it registers, and the `domain.action` IDs against diff --git a/cmd/audit_doc_tool_names/ids.go b/cmd/audit_doc_tool_names/ids.go index 1392e4799..a227e5bb0 100644 --- a/cmd/audit_doc_tool_names/ids.go +++ b/cmd/audit_doc_tool_names/ids.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_doc_tool_names/main.go b/cmd/audit_doc_tool_names/main.go index f9af7bc45..3bf4fe5a2 100644 --- a/cmd/audit_doc_tool_names/main.go +++ b/cmd/audit_doc_tool_names/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_doc_tool_names/main_test.go b/cmd/audit_doc_tool_names/main_test.go index cea72618b..3a8b863b0 100644 --- a/cmd/audit_doc_tool_names/main_test.go +++ b/cmd/audit_doc_tool_names/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package main tests the documentation tool-name auditor: the in-memory name // registry built from every surface, the per-file token scan with its // exemptions, the root walk, the report ordering and exit codes, and the diff --git a/cmd/audit_dynamic_aliases/doc.go b/cmd/audit_dynamic_aliases/doc.go index 91453c2d0..5d1b3f44d 100644 --- a/cmd/audit_dynamic_aliases/doc.go +++ b/cmd/audit_dynamic_aliases/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_dynamic_aliases checks the // dynamic toolset compatibility alias catalog for governance issues. package main diff --git a/cmd/audit_dynamic_aliases/main.go b/cmd/audit_dynamic_aliases/main.go index 14f7fd81c..19ff855f1 100644 --- a/cmd/audit_dynamic_aliases/main.go +++ b/cmd/audit_dynamic_aliases/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_dynamic_aliases/main_test.go b/cmd/audit_dynamic_aliases/main_test.go index e04a81029..9b09b0e51 100644 --- a/cmd/audit_dynamic_aliases/main_test.go +++ b/cmd/audit_dynamic_aliases/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go verifies the audit_dynamic_aliases command exit code and // output contract against the generated dynamic alias catalog, the command // line it accepts, and the TSV/JSON rendering of findings against synthetic diff --git a/cmd/audit_e2e_coverage/baseline.go b/cmd/audit_e2e_coverage/baseline.go index 2d255d9d7..91f8f5344 100644 --- a/cmd/audit_e2e_coverage/baseline.go +++ b/cmd/audit_e2e_coverage/baseline.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/baseline_test.go b/cmd/audit_e2e_coverage/baseline_test.go index bbf0eb596..42a8c9a40 100644 --- a/cmd/audit_e2e_coverage/baseline_test.go +++ b/cmd/audit_e2e_coverage/baseline_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/catalog.go b/cmd/audit_e2e_coverage/catalog.go index edf016da7..7afa6ec3e 100644 --- a/cmd/audit_e2e_coverage/catalog.go +++ b/cmd/audit_e2e_coverage/catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/catalog_test.go b/cmd/audit_e2e_coverage/catalog_test.go index 68af93cba..20ef987e3 100644 --- a/cmd/audit_e2e_coverage/catalog_test.go +++ b/cmd/audit_e2e_coverage/catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/check.go b/cmd/audit_e2e_coverage/check.go index 2c655a307..85c223153 100644 --- a/cmd/audit_e2e_coverage/check.go +++ b/cmd/audit_e2e_coverage/check.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/check_test.go b/cmd/audit_e2e_coverage/check_test.go index 03e6eaa5d..c259d6ff8 100644 --- a/cmd/audit_e2e_coverage/check_test.go +++ b/cmd/audit_e2e_coverage/check_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/classify.go b/cmd/audit_e2e_coverage/classify.go index 078ee073c..3f68c1d60 100644 --- a/cmd/audit_e2e_coverage/classify.go +++ b/cmd/audit_e2e_coverage/classify.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/classify_test.go b/cmd/audit_e2e_coverage/classify_test.go index 1576075de..b205abe1a 100644 --- a/cmd/audit_e2e_coverage/classify_test.go +++ b/cmd/audit_e2e_coverage/classify_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/doc.go b/cmd/audit_e2e_coverage/doc.go index f444ccef4..78a5106a5 100644 --- a/cmd/audit_e2e_coverage/doc.go +++ b/cmd/audit_e2e_coverage/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_e2e_coverage is the one command that says what the end-to-end // suite covers. // diff --git a/cmd/audit_e2e_coverage/exemptions.go b/cmd/audit_e2e_coverage/exemptions.go index 97029c3ca..8b928650e 100644 --- a/cmd/audit_e2e_coverage/exemptions.go +++ b/cmd/audit_e2e_coverage/exemptions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // ratchetEnabled is the switch the static gate's ratchet turns on with. diff --git a/cmd/audit_e2e_coverage/exemptions_test.go b/cmd/audit_e2e_coverage/exemptions_test.go index fe764636a..fc61dfa8e 100644 --- a/cmd/audit_e2e_coverage/exemptions_test.go +++ b/cmd/audit_e2e_coverage/exemptions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/fine_grained.go b/cmd/audit_e2e_coverage/fine_grained.go index a4304af05..d25d8968d 100644 --- a/cmd/audit_e2e_coverage/fine_grained.go +++ b/cmd/audit_e2e_coverage/fine_grained.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/fine_grained_test.go b/cmd/audit_e2e_coverage/fine_grained_test.go index 264a05148..ca8e9e6fd 100644 --- a/cmd/audit_e2e_coverage/fine_grained_test.go +++ b/cmd/audit_e2e_coverage/fine_grained_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/main.go b/cmd/audit_e2e_coverage/main.go index 4870c4f54..3da1ab3bb 100644 --- a/cmd/audit_e2e_coverage/main.go +++ b/cmd/audit_e2e_coverage/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/main_test.go b/cmd/audit_e2e_coverage/main_test.go index b96ff0c73..6703adb8d 100644 --- a/cmd/audit_e2e_coverage/main_test.go +++ b/cmd/audit_e2e_coverage/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/portmap.go b/cmd/audit_e2e_coverage/portmap.go index 2edc16317..650c172dc 100644 --- a/cmd/audit_e2e_coverage/portmap.go +++ b/cmd/audit_e2e_coverage/portmap.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/portmap_test.go b/cmd/audit_e2e_coverage/portmap_test.go index c2527a470..a5d6b5883 100644 --- a/cmd/audit_e2e_coverage/portmap_test.go +++ b/cmd/audit_e2e_coverage/portmap_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/records.go b/cmd/audit_e2e_coverage/records.go index fbe8bcb0c..25f4cafd7 100644 --- a/cmd/audit_e2e_coverage/records.go +++ b/cmd/audit_e2e_coverage/records.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/records_test.go b/cmd/audit_e2e_coverage/records_test.go index 1174e9b7a..f434828ec 100644 --- a/cmd/audit_e2e_coverage/records_test.go +++ b/cmd/audit_e2e_coverage/records_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/release.go b/cmd/audit_e2e_coverage/release.go index 745eafefa..2ab1fc40f 100644 --- a/cmd/audit_e2e_coverage/release.go +++ b/cmd/audit_e2e_coverage/release.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // -check-release: whether a run may go ahead on the GitLab release it found, // measured against the release the fine-grained action table was recorded // from (issue 1155). diff --git a/cmd/audit_e2e_coverage/release_test.go b/cmd/audit_e2e_coverage/release_test.go index ef5990177..82285f990 100644 --- a/cmd/audit_e2e_coverage/release_test.go +++ b/cmd/audit_e2e_coverage/release_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/report.go b/cmd/audit_e2e_coverage/report.go index d67741dac..e0f9cc4c0 100644 --- a/cmd/audit_e2e_coverage/report.go +++ b/cmd/audit_e2e_coverage/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/report_test.go b/cmd/audit_e2e_coverage/report_test.go index 7930216e0..3b01e80cb 100644 --- a/cmd/audit_e2e_coverage/report_test.go +++ b/cmd/audit_e2e_coverage/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/results.go b/cmd/audit_e2e_coverage/results.go index b772efbdd..95760c03d 100644 --- a/cmd/audit_e2e_coverage/results.go +++ b/cmd/audit_e2e_coverage/results.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/results_test.go b/cmd/audit_e2e_coverage/results_test.go index c2270bd06..c92841a74 100644 --- a/cmd/audit_e2e_coverage/results_test.go +++ b/cmd/audit_e2e_coverage/results_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/runtime_record.go b/cmd/audit_e2e_coverage/runtime_record.go index c36b116b2..cf6d83f80 100644 --- a/cmd/audit_e2e_coverage/runtime_record.go +++ b/cmd/audit_e2e_coverage/runtime_record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/runtime_record_check.go b/cmd/audit_e2e_coverage/runtime_record_check.go index 3883bd43c..67aaa88e7 100644 --- a/cmd/audit_e2e_coverage/runtime_record_check.go +++ b/cmd/audit_e2e_coverage/runtime_record_check.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/runtime_record_check_test.go b/cmd/audit_e2e_coverage/runtime_record_check_test.go index ba33a3da6..5e69c891c 100644 --- a/cmd/audit_e2e_coverage/runtime_record_check_test.go +++ b/cmd/audit_e2e_coverage/runtime_record_check_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/runtime_record_page.go b/cmd/audit_e2e_coverage/runtime_record_page.go index 4c04da188..3eaffff4d 100644 --- a/cmd/audit_e2e_coverage/runtime_record_page.go +++ b/cmd/audit_e2e_coverage/runtime_record_page.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/runtime_record_page_test.go b/cmd/audit_e2e_coverage/runtime_record_page_test.go index ff2ec1714..27bb55b5e 100644 --- a/cmd/audit_e2e_coverage/runtime_record_page_test.go +++ b/cmd/audit_e2e_coverage/runtime_record_page_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/runtime_record_test.go b/cmd/audit_e2e_coverage/runtime_record_test.go index 5c2358ff5..43187e00f 100644 --- a/cmd/audit_e2e_coverage/runtime_record_test.go +++ b/cmd/audit_e2e_coverage/runtime_record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/skip_declarations.go b/cmd/audit_e2e_coverage/skip_declarations.go index 402e4f212..e713e3c61 100644 --- a/cmd/audit_e2e_coverage/skip_declarations.go +++ b/cmd/audit_e2e_coverage/skip_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // skipDeclaration excuses one skip a complete Docker run may end with. diff --git a/cmd/audit_e2e_coverage/skip_declarations_test.go b/cmd/audit_e2e_coverage/skip_declarations_test.go index a35962e6d..d89bf94f0 100644 --- a/cmd/audit_e2e_coverage/skip_declarations_test.go +++ b/cmd/audit_e2e_coverage/skip_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/skips.go b/cmd/audit_e2e_coverage/skips.go index ba453f566..fbd9585fb 100644 --- a/cmd/audit_e2e_coverage/skips.go +++ b/cmd/audit_e2e_coverage/skips.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/skips_test.go b/cmd/audit_e2e_coverage/skips_test.go index 50154dc71..4ee7518a3 100644 --- a/cmd/audit_e2e_coverage/skips_test.go +++ b/cmd/audit_e2e_coverage/skips_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/static.go b/cmd/audit_e2e_coverage/static.go index 856140c52..5387a8e31 100644 --- a/cmd/audit_e2e_coverage/static.go +++ b/cmd/audit_e2e_coverage/static.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/static_exports.go b/cmd/audit_e2e_coverage/static_exports.go index 3c43099d5..f940fe7a7 100644 --- a/cmd/audit_e2e_coverage/static_exports.go +++ b/cmd/audit_e2e_coverage/static_exports.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/static_scan.go b/cmd/audit_e2e_coverage/static_scan.go index 4a5a725c4..2aa783fc8 100644 --- a/cmd/audit_e2e_coverage/static_scan.go +++ b/cmd/audit_e2e_coverage/static_scan.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/static_scan_test.go b/cmd/audit_e2e_coverage/static_scan_test.go index 94f0cc747..b96828e2e 100644 --- a/cmd/audit_e2e_coverage/static_scan_test.go +++ b/cmd/audit_e2e_coverage/static_scan_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/static_test.go b/cmd/audit_e2e_coverage/static_test.go index d5744e6e7..f366d4449 100644 --- a/cmd/audit_e2e_coverage/static_test.go +++ b/cmd/audit_e2e_coverage/static_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_e2e_coverage/testdata/portmap/new/.hidden/hidden_test.go b/cmd/audit_e2e_coverage/testdata/portmap/new/.hidden/hidden_test.go index 39351a6cd..b9f243ab9 100644 --- a/cmd/audit_e2e_coverage/testdata/portmap/new/.hidden/hidden_test.go +++ b/cmd/audit_e2e_coverage/testdata/portmap/new/.hidden/hidden_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package hidden diff --git a/cmd/audit_e2e_coverage/testdata/portmap/new/common/helpers.go b/cmd/audit_e2e_coverage/testdata/portmap/new/common/helpers.go index e02397667..ce4811060 100644 --- a/cmd/audit_e2e_coverage/testdata/portmap/new/common/helpers.go +++ b/cmd/audit_e2e_coverage/testdata/portmap/new/common/helpers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package common diff --git a/cmd/audit_e2e_coverage/testdata/portmap/new/common/issues_test.go b/cmd/audit_e2e_coverage/testdata/portmap/new/common/issues_test.go index b070750b5..d2bd177cf 100644 --- a/cmd/audit_e2e_coverage/testdata/portmap/new/common/issues_test.go +++ b/cmd/audit_e2e_coverage/testdata/portmap/new/common/issues_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package common diff --git a/cmd/audit_e2e_coverage/testdata/portmap/old/nested/nested_test.go b/cmd/audit_e2e_coverage/testdata/portmap/old/nested/nested_test.go index aeeaa1af5..b927e4088 100644 --- a/cmd/audit_e2e_coverage/testdata/portmap/old/nested/nested_test.go +++ b/cmd/audit_e2e_coverage/testdata/portmap/old/nested/nested_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package nested diff --git a/cmd/audit_e2e_coverage/testdata/portmap/old/suite_test.go b/cmd/audit_e2e_coverage/testdata/portmap/old/suite_test.go index 0079e88ad..011a56d7a 100644 --- a/cmd/audit_e2e_coverage/testdata/portmap/old/suite_test.go +++ b/cmd/audit_e2e_coverage/testdata/portmap/old/suite_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package suite diff --git a/cmd/audit_e2e_coverage/testdata/static/internal/edition/tier.go b/cmd/audit_e2e_coverage/testdata/static/internal/edition/tier.go index f5a166997..d7f9c27cd 100644 --- a/cmd/audit_e2e_coverage/testdata/static/internal/edition/tier.go +++ b/cmd/audit_e2e_coverage/testdata/static/internal/edition/tier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package edition mirrors the real tier model's constants, in the same order, // so the fake harness's Tier takes the same values the static gate compares. package edition diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/doc.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/doc.go index 40b994719..69f407d54 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/doc.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package ce holds the shapes the static gate must accept from the package // that runs only on an unlicensed instance: it is a declared placement like // common and ee, so a Free action named here is clean. diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/planted_test.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/planted_test.go index 6cfc7fc96..8d7ce86e3 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/planted_test.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ce/planted_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package ce diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/doc.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/doc.go index 2580e6954..be377c694 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/doc.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package common holds the planted defects the static gate must report from // a package that runs on every runtime, beside the shapes it must accept. package common diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/planted_test.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/planted_test.go index d1bba33d2..a65cb7e0c 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/planted_test.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/common/planted_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package common diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/doc.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/doc.go index 6f4166c76..979f88a33 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/doc.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package ee holds the planted defects the static gate must report from the // licensed package, beside the declarations it must accept. package ee diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/planted_test.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/planted_test.go index d0e88c041..ee291ae44 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/planted_test.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/ee/planted_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package ee diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/doc.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/doc.go index 4253cfed7..e369e830c 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/doc.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package legacy sits under test/e2e/gitlab and is none of the three runtime // packages, which is the placement finding: the gate reads the runtime off // the directory name, so a fourth one is a package whose runtime nothing can diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/planted_test.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/planted_test.go index 88b240614..60ab9094b 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/planted_test.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/gitlab/legacy/planted_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package legacy diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/e2ectl/main.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/e2ectl/main.go index 60cd5358d..78106f1ec 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/e2ectl/main.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/e2ectl/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e // Package main is a command beside the harness. It is loaded like every other diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/doc.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/doc.go index f0a2ad63f..67e4f4e7d 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/doc.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package harness is a stand-in for the real e2e harness with the shapes the // static gate reads: the ActionID type, the verbs that take one, Needs and // Tier, and one export nothing uses. diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness.go index 7f2768ec2..bf8c7e0b0 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package harness diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness_test.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness_test.go index baf59be13..9cd60f06c 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness_test.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/internal/harness/harness_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package harness diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/doc.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/doc.go index eff7b9db9..c43cb0cd6 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/doc.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package modeleval stands in for the model evaluation package: a consumer of // the harness that lives outside test/e2e/gitlab, names no catalog action, and // is therefore loaded for the dead-export rule alone. diff --git a/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/model.go b/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/model.go index fed8bf1fa..119152546 100644 --- a/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/model.go +++ b/cmd/audit_e2e_coverage/testdata/static/test/e2e/modeleval/model.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package modeleval diff --git a/cmd/audit_edition_tier/doc.go b/cmd/audit_edition_tier/doc.go index d0c8f970e..54e7a6914 100644 --- a/cmd/audit_edition_tier/doc.go +++ b/cmd/audit_edition_tier/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_edition_tier reports the doc-grounded licensing tier of every // canonical MCP action and compares it to the action's current gating. // diff --git a/cmd/audit_edition_tier/doc_map.go b/cmd/audit_edition_tier/doc_map.go index 94115692f..eb0698634 100644 --- a/cmd/audit_edition_tier/doc_map.go +++ b/cmd/audit_edition_tier/doc_map.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import "strings" diff --git a/cmd/audit_edition_tier/doc_map_data.go b/cmd/audit_edition_tier/doc_map_data.go index 3c58902b1..2c8a6ffbc 100644 --- a/cmd/audit_edition_tier/doc_map_data.go +++ b/cmd/audit_edition_tier/doc_map_data.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // docAreaByPackage maps every catalog owner package to its GitLab API doc area diff --git a/cmd/audit_edition_tier/main.go b/cmd/audit_edition_tier/main.go index 366c944bd..a9a0aadd8 100644 --- a/cmd/audit_edition_tier/main.go +++ b/cmd/audit_edition_tier/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_edition_tier/main_test.go b/cmd/audit_edition_tier/main_test.go index e56265a0d..c521e8486 100644 --- a/cmd/audit_edition_tier/main_test.go +++ b/cmd/audit_edition_tier/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_edition_tier/param_tiers.go b/cmd/audit_edition_tier/param_tiers.go index effa31b6b..f79d4f0fb 100644 --- a/cmd/audit_edition_tier/param_tiers.go +++ b/cmd/audit_edition_tier/param_tiers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The parameter half of the audit: a request parameter GitLab's API pages mark // for a paid tier, against the input schema a lower tier is served. diff --git a/cmd/audit_edition_tier/param_tiers_test.go b/cmd/audit_edition_tier/param_tiers_test.go index f0962fa8d..0072a1bd8 100644 --- a/cmd/audit_edition_tier/param_tiers_test.go +++ b/cmd/audit_edition_tier/param_tiers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_edition_tier/tier_exceptions.go b/cmd/audit_edition_tier/tier_exceptions.go index d29c47de9..84721396d 100644 --- a/cmd/audit_edition_tier/tier_exceptions.go +++ b/cmd/audit_edition_tier/tier_exceptions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // tierException records the doc-grounded expected tier for an action whose diff --git a/cmd/audit_gateway_chars/doc.go b/cmd/audit_gateway_chars/doc.go index c7e23173c..cf473c20b 100644 --- a/cmd/audit_gateway_chars/doc.go +++ b/cmd/audit_gateway_chars/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_gateway_chars scans everything a client receives from // tools/list, prompts/list and resources/list, on every tool surface and at the // widest tier, for characters that MCP gateway validators reject. diff --git a/cmd/audit_gateway_chars/main.go b/cmd/audit_gateway_chars/main.go index 87e41cc35..ae1ee8e3e 100644 --- a/cmd/audit_gateway_chars/main.go +++ b/cmd/audit_gateway_chars/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_gateway_chars/main_test.go b/cmd/audit_gateway_chars/main_test.go index b303c65ab..6a6784155 100644 --- a/cmd/audit_gateway_chars/main_test.go +++ b/cmd/audit_gateway_chars/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package main tests the gateway character auditor: the per-string scan and // its excerpt window, the schema walk that skips data keywords, the report // formatting and exit codes, the command line main assembles out of its three diff --git a/cmd/audit_graphql_documents/doc.go b/cmd/audit_graphql_documents/doc.go index 32b85215e..cc9ebfa80 100644 --- a/cmd/audit_graphql_documents/doc.go +++ b/cmd/audit_graphql_documents/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_graphql_documents fails when a raw GraphQL document in this // repository is one the pinned GitLab schema refuses. // diff --git a/cmd/audit_graphql_documents/drift.go b/cmd/audit_graphql_documents/drift.go index cf3fd3826..2ffcd058e 100644 --- a/cmd/audit_graphql_documents/drift.go +++ b/cmd/audit_graphql_documents/drift.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_documents/drift_test.go b/cmd/audit_graphql_documents/drift_test.go index ab4d3728d..0edfd874b 100644 --- a/cmd/audit_graphql_documents/drift_test.go +++ b/cmd/audit_graphql_documents/drift_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_documents/live.go b/cmd/audit_graphql_documents/live.go index 660519f37..426edb9af 100644 --- a/cmd/audit_graphql_documents/live.go +++ b/cmd/audit_graphql_documents/live.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_documents/live_test.go b/cmd/audit_graphql_documents/live_test.go index 05ccba69f..74e594710 100644 --- a/cmd/audit_graphql_documents/live_test.go +++ b/cmd/audit_graphql_documents/live_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_documents/main.go b/cmd/audit_graphql_documents/main.go index 8db6c68b9..994ce06ee 100644 --- a/cmd/audit_graphql_documents/main.go +++ b/cmd/audit_graphql_documents/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_documents/main_test.go b/cmd/audit_graphql_documents/main_test.go index 9720f939f..75998d836 100644 --- a/cmd/audit_graphql_documents/main_test.go +++ b/cmd/audit_graphql_documents/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/doc.go b/cmd/audit_graphql_shapes/doc.go index 6df5add39..dc6a854ab 100644 --- a/cmd/audit_graphql_shapes/doc.go +++ b/cmd/audit_graphql_shapes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_graphql_shapes fails when a struct this repository decodes a // GraphQL response into cannot hold what the document it is sent with asks // for. diff --git a/cmd/audit_graphql_shapes/main.go b/cmd/audit_graphql_shapes/main.go index 52870bfb3..bb3c04520 100644 --- a/cmd/audit_graphql_shapes/main.go +++ b/cmd/audit_graphql_shapes/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/main_test.go b/cmd/audit_graphql_shapes/main_test.go index 20c7c3161..da15d522f 100644 --- a/cmd/audit_graphql_shapes/main_test.go +++ b/cmd/audit_graphql_shapes/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sdk.go b/cmd/audit_graphql_shapes/sdk.go index 2abd77104..4e71c43ca 100644 --- a/cmd/audit_graphql_shapes/sdk.go +++ b/cmd/audit_graphql_shapes/sdk.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The client-go half of this audit: the documents client-go builds and the // structs it decodes them into, for the client-go this repository's go.mod // requires, asked the questions this audit asks of our own: the three diff --git a/cmd/audit_graphql_shapes/sdk_declarations.go b/cmd/audit_graphql_shapes/sdk_declarations.go index 590ffc095..59b0dc8b4 100644 --- a/cmd/audit_graphql_shapes/sdk_declarations.go +++ b/cmd/audit_graphql_shapes/sdk_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The answers the client-go run is held to: one table for each kind of // finding it makes, and every entry stale the moment client-go or the schema // stops producing what it answers. diff --git a/cmd/audit_graphql_shapes/sdk_declarations_sent.go b/cmd/audit_graphql_shapes/sdk_declarations_sent.go index 81389c747..2442a299f 100644 --- a/cmd/audit_graphql_shapes/sdk_declarations_sent.go +++ b/cmd/audit_graphql_shapes/sdk_declarations_sent.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The answers to what the schema offers at an object a client-go decoder // reads and no document of its service selects: the one-time triage of // issue 1022, against client-go v3.15.0 and the 19.5.0-pre pin, and the four diff --git a/cmd/audit_graphql_shapes/sdk_declarations_test.go b/cmd/audit_graphql_shapes/sdk_declarations_test.go index 8a628c70c..bbf02d65c 100644 --- a/cmd/audit_graphql_shapes/sdk_declarations_test.go +++ b/cmd/audit_graphql_shapes/sdk_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sdk_reach.go b/cmd/audit_graphql_shapes/sdk_reach.go index 236b8a839..ab0233f48 100644 --- a/cmd/audit_graphql_shapes/sdk_reach.go +++ b/cmd/audit_graphql_shapes/sdk_reach.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Which client-go functions this server can run: the ones its own source names // and everything they call inside client-go. diff --git a/cmd/audit_graphql_shapes/sdk_report.go b/cmd/audit_graphql_shapes/sdk_report.go index e8bab3a7a..e55d92f7f 100644 --- a/cmd/audit_graphql_shapes/sdk_report.go +++ b/cmd/audit_graphql_shapes/sdk_report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The record a client-go run writes where -report names, for the review of // what client-go selects of what GitLab sends. diff --git a/cmd/audit_graphql_shapes/sdk_test.go b/cmd/audit_graphql_shapes/sdk_test.go index 9f832f6d1..b74e56aa5 100644 --- a/cmd/audit_graphql_shapes/sdk_test.go +++ b/cmd/audit_graphql_shapes/sdk_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sent.go b/cmd/audit_graphql_shapes/sent.go index f4bc5f4d1..652e54b34 100644 --- a/cmd/audit_graphql_shapes/sent.go +++ b/cmd/audit_graphql_shapes/sent.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sent_declarations.go b/cmd/audit_graphql_shapes/sent_declarations.go index 1b2a64af4..d197b446c 100644 --- a/cmd/audit_graphql_shapes/sent_declarations.go +++ b/cmd/audit_graphql_shapes/sent_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sent_declarations_domains.go b/cmd/audit_graphql_shapes/sent_declarations_domains.go index 6f11f2a3c..3c6c10dbd 100644 --- a/cmd/audit_graphql_shapes/sent_declarations_domains.go +++ b/cmd/audit_graphql_shapes/sent_declarations_domains.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // The answers for five GraphQL domains: branch rules, the CI/CD catalog, diff --git a/cmd/audit_graphql_shapes/sent_declarations_security.go b/cmd/audit_graphql_shapes/sent_declarations_security.go index 2c8d142a7..4cd090fd0 100644 --- a/cmd/audit_graphql_shapes/sent_declarations_security.go +++ b/cmd/audit_graphql_shapes/sent_declarations_security.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // The answers for the two GraphQL-only security domains, vulnerabilities and diff --git a/cmd/audit_graphql_shapes/sent_declarations_test.go b/cmd/audit_graphql_shapes/sent_declarations_test.go index ba5dee9bd..ba2e99e7d 100644 --- a/cmd/audit_graphql_shapes/sent_declarations_test.go +++ b/cmd/audit_graphql_shapes/sent_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sent_report.go b/cmd/audit_graphql_shapes/sent_report.go index 83642f140..1f6d545ab 100644 --- a/cmd/audit_graphql_shapes/sent_report.go +++ b/cmd/audit_graphql_shapes/sent_report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sent_report_test.go b/cmd/audit_graphql_shapes/sent_report_test.go index 59f771fad..3870f780a 100644 --- a/cmd/audit_graphql_shapes/sent_report_test.go +++ b/cmd/audit_graphql_shapes/sent_report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sent_test.go b/cmd/audit_graphql_shapes/sent_test.go index c5875319b..efa295cf7 100644 --- a/cmd/audit_graphql_shapes/sent_test.go +++ b/cmd/audit_graphql_shapes/sent_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sent_uncovered.go b/cmd/audit_graphql_shapes/sent_uncovered.go index cec6f1bb3..6c4907691 100644 --- a/cmd/audit_graphql_shapes/sent_uncovered.go +++ b/cmd/audit_graphql_shapes/sent_uncovered.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/shape.go b/cmd/audit_graphql_shapes/shape.go index 247c1f7e1..eb39e8f57 100644 --- a/cmd/audit_graphql_shapes/shape.go +++ b/cmd/audit_graphql_shapes/shape.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sites.go b/cmd/audit_graphql_shapes/sites.go index b07232cfb..9a5916a1d 100644 --- a/cmd/audit_graphql_shapes/sites.go +++ b/cmd/audit_graphql_shapes/sites.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_graphql_shapes/sites_test.go b/cmd/audit_graphql_shapes/sites_test.go index 373399033..a2a7dcbc8 100644 --- a/cmd/audit_graphql_shapes/sites_test.go +++ b/cmd/audit_graphql_shapes/sites_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_image_vulns/database.go b/cmd/audit_image_vulns/database.go index d867795b8..c1bcf3f66 100644 --- a/cmd/audit_image_vulns/database.go +++ b/cmd/audit_image_vulns/database.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_image_vulns/database_test.go b/cmd/audit_image_vulns/database_test.go index a0928f6c7..77f36a6fd 100644 --- a/cmd/audit_image_vulns/database_test.go +++ b/cmd/audit_image_vulns/database_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // database_test.go covers how the run learns which vulnerability database // Trivy judged against, and the databases it refuses to be judged against. package main diff --git a/cmd/audit_image_vulns/declarations.go b/cmd/audit_image_vulns/declarations.go index 46ddbe2c0..623b763a5 100644 --- a/cmd/audit_image_vulns/declarations.go +++ b/cmd/audit_image_vulns/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_image_vulns/declarations_test.go b/cmd/audit_image_vulns/declarations_test.go index 22a7ad6b8..753fe554e 100644 --- a/cmd/audit_image_vulns/declarations_test.go +++ b/cmd/audit_image_vulns/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // declarations_test.go holds the declaration table to what an entry has to // say, and the validation to every way an entry can fail to say it. package main diff --git a/cmd/audit_image_vulns/doc.go b/cmd/audit_image_vulns/doc.go index 44166c29f..2f773e2d1 100644 --- a/cmd/audit_image_vulns/doc.go +++ b/cmd/audit_image_vulns/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_image_vulns holds the operating-system packages of the // container image to Trivy's vulnerability database, one Trivy report per // platform, before the image is pushed. diff --git a/cmd/audit_image_vulns/doc_test.go b/cmd/audit_image_vulns/doc_test.go index 9eb51a944..4ab0d513a 100644 --- a/cmd/audit_image_vulns/doc_test.go +++ b/cmd/audit_image_vulns/doc_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // doc_test.go holds the command to what its package comment promises about // what it is built from. package main diff --git a/cmd/audit_image_vulns/judge.go b/cmd/audit_image_vulns/judge.go index 07fc78ed5..3e5ef6ac8 100644 --- a/cmd/audit_image_vulns/judge.go +++ b/cmd/audit_image_vulns/judge.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_image_vulns/judge_test.go b/cmd/audit_image_vulns/judge_test.go index 43269d5cf..fc4d70dc0 100644 --- a/cmd/audit_image_vulns/judge_test.go +++ b/cmd/audit_image_vulns/judge_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // judge_test.go covers how the findings of every platform are merged, held to // the severity rule and the declaration table, and printed. package main diff --git a/cmd/audit_image_vulns/main.go b/cmd/audit_image_vulns/main.go index 7944c3529..9800611b3 100644 --- a/cmd/audit_image_vulns/main.go +++ b/cmd/audit_image_vulns/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_image_vulns/main_test.go b/cmd/audit_image_vulns/main_test.go index 41d4a8cd4..199f6ba7f 100644 --- a/cmd/audit_image_vulns/main_test.go +++ b/cmd/audit_image_vulns/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go drives the command end to end: the reports and the database // read from disk, the verdict reached and the exit code the gate turns on, and // holds the platforms and the Trivy it is run with to the workflows and the diff --git a/cmd/audit_image_vulns/report.go b/cmd/audit_image_vulns/report.go index e20a5b4dd..ccb765a20 100644 --- a/cmd/audit_image_vulns/report.go +++ b/cmd/audit_image_vulns/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_image_vulns/report_test.go b/cmd/audit_image_vulns/report_test.go index 723ec0342..5380c56c3 100644 --- a/cmd/audit_image_vulns/report_test.go +++ b/cmd/audit_image_vulns/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // report_test.go covers how one Trivy report is read: the fields the judge // uses, every shape of report it refuses to vouch for, and how the reports of // a run are held to the platforms the release pushes. diff --git a/cmd/audit_install_buttons/doc.go b/cmd/audit_install_buttons/doc.go index ebecc6420..f134234c0 100644 --- a/cmd/audit_install_buttons/doc.go +++ b/cmd/audit_install_buttons/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_install_buttons checks the one-click install buttons against // what the pages around them claim. // diff --git a/cmd/audit_install_buttons/main.go b/cmd/audit_install_buttons/main.go index a12e91bd1..40fb5d039 100644 --- a/cmd/audit_install_buttons/main.go +++ b/cmd/audit_install_buttons/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_install_buttons/main_test.go b/cmd/audit_install_buttons/main_test.go index 098880b01..1016c9697 100644 --- a/cmd/audit_install_buttons/main_test.go +++ b/cmd/audit_install_buttons/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/audit.go b/cmd/audit_md_escaping/audit.go index 4b8b3997e..590d6b0d0 100644 --- a/cmd/audit_md_escaping/audit.go +++ b/cmd/audit_md_escaping/audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/audit_test.go b/cmd/audit_md_escaping/audit_test.go index 4a80ca88e..6bcdd97c8 100644 --- a/cmd/audit_md_escaping/audit_test.go +++ b/cmd/audit_md_escaping/audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/card.go b/cmd/audit_md_escaping/card.go index b2c61011d..0d289260b 100644 --- a/cmd/audit_md_escaping/card.go +++ b/cmd/audit_md_escaping/card.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/card_test.go b/cmd/audit_md_escaping/card_test.go index 5f9d49dcd..35016b31f 100644 --- a/cmd/audit_md_escaping/card_test.go +++ b/cmd/audit_md_escaping/card_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/classify.go b/cmd/audit_md_escaping/classify.go index 318ba9814..13bd3601e 100644 --- a/cmd/audit_md_escaping/classify.go +++ b/cmd/audit_md_escaping/classify.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/classify_test.go b/cmd/audit_md_escaping/classify_test.go index e84f70300..0d2821632 100644 --- a/cmd/audit_md_escaping/classify_test.go +++ b/cmd/audit_md_escaping/classify_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/context.go b/cmd/audit_md_escaping/context.go index 702486038..ca545dd39 100644 --- a/cmd/audit_md_escaping/context.go +++ b/cmd/audit_md_escaping/context.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/context_test.go b/cmd/audit_md_escaping/context_test.go index 80cd0dd6a..373ce0424 100644 --- a/cmd/audit_md_escaping/context_test.go +++ b/cmd/audit_md_escaping/context_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/directive.go b/cmd/audit_md_escaping/directive.go index fe2655ea0..afe6b6f7f 100644 --- a/cmd/audit_md_escaping/directive.go +++ b/cmd/audit_md_escaping/directive.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/directive_test.go b/cmd/audit_md_escaping/directive_test.go index c736d556a..236531589 100644 --- a/cmd/audit_md_escaping/directive_test.go +++ b/cmd/audit_md_escaping/directive_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/doc.go b/cmd/audit_md_escaping/doc.go index 4457efa9c..088a061df 100644 --- a/cmd/audit_md_escaping/doc.go +++ b/cmd/audit_md_escaping/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_md_escaping fails when a Markdown formatter interpolates a // value this server did not write into a construct that value can change the // shape of. diff --git a/cmd/audit_md_escaping/expr.go b/cmd/audit_md_escaping/expr.go index 203d7eb74..aa570b3c9 100644 --- a/cmd/audit_md_escaping/expr.go +++ b/cmd/audit_md_escaping/expr.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/expr_test.go b/cmd/audit_md_escaping/expr_test.go index 530fb6909..b57d29a89 100644 --- a/cmd/audit_md_escaping/expr_test.go +++ b/cmd/audit_md_escaping/expr_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/fence.go b/cmd/audit_md_escaping/fence.go index b44625fe6..0e270d0fe 100644 --- a/cmd/audit_md_escaping/fence.go +++ b/cmd/audit_md_escaping/fence.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/fence_test.go b/cmd/audit_md_escaping/fence_test.go index 02fe23a5a..708b53c96 100644 --- a/cmd/audit_md_escaping/fence_test.go +++ b/cmd/audit_md_escaping/fence_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/format.go b/cmd/audit_md_escaping/format.go index c2f671d94..ccc8f75ef 100644 --- a/cmd/audit_md_escaping/format.go +++ b/cmd/audit_md_escaping/format.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import "strings" diff --git a/cmd/audit_md_escaping/format_test.go b/cmd/audit_md_escaping/format_test.go index 4863e7c35..a810665df 100644 --- a/cmd/audit_md_escaping/format_test.go +++ b/cmd/audit_md_escaping/format_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/main.go b/cmd/audit_md_escaping/main.go index c252d06ac..6abf53c60 100644 --- a/cmd/audit_md_escaping/main.go +++ b/cmd/audit_md_escaping/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/main_test.go b/cmd/audit_md_escaping/main_test.go index cd66912a3..9efd22056 100644 --- a/cmd/audit_md_escaping/main_test.go +++ b/cmd/audit_md_escaping/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/program.go b/cmd/audit_md_escaping/program.go index 1bb82776c..bdd8caf88 100644 --- a/cmd/audit_md_escaping/program.go +++ b/cmd/audit_md_escaping/program.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/program_test.go b/cmd/audit_md_escaping/program_test.go index bd8da0b69..0cbca8bee 100644 --- a/cmd/audit_md_escaping/program_test.go +++ b/cmd/audit_md_escaping/program_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/raw.go b/cmd/audit_md_escaping/raw.go index 24023c9a8..c86894fd6 100644 --- a/cmd/audit_md_escaping/raw.go +++ b/cmd/audit_md_escaping/raw.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/raw_test.go b/cmd/audit_md_escaping/raw_test.go index d55d943d2..2509cb446 100644 --- a/cmd/audit_md_escaping/raw_test.go +++ b/cmd/audit_md_escaping/raw_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/report.go b/cmd/audit_md_escaping/report.go index 905c1eb5b..5f94accce 100644 --- a/cmd/audit_md_escaping/report.go +++ b/cmd/audit_md_escaping/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/report_test.go b/cmd/audit_md_escaping/report_test.go index ad2951a58..b59defa6b 100644 --- a/cmd/audit_md_escaping/report_test.go +++ b/cmd/audit_md_escaping/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/sink.go b/cmd/audit_md_escaping/sink.go index 7c4d2f378..bf493d697 100644 --- a/cmd/audit_md_escaping/sink.go +++ b/cmd/audit_md_escaping/sink.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_md_escaping/sink_test.go b/cmd/audit_md_escaping/sink_test.go index c4132ff4a..944a9b934 100644 --- a/cmd/audit_md_escaping/sink_test.go +++ b/cmd/audit_md_escaping/sink_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_meta_descriptions/doc.go b/cmd/audit_meta_descriptions/doc.go index 5596ecf00..c6ed65daf 100644 --- a/cmd/audit_meta_descriptions/doc.go +++ b/cmd/audit_meta_descriptions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_meta_descriptions checks the prose a meta-tool serves against // the parameters its actions actually accept. // diff --git a/cmd/audit_meta_descriptions/main.go b/cmd/audit_meta_descriptions/main.go index ad3c113cf..10f0d1158 100644 --- a/cmd/audit_meta_descriptions/main.go +++ b/cmd/audit_meta_descriptions/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_meta_descriptions/main_test.go b/cmd/audit_meta_descriptions/main_test.go index 319118d1c..fdb7274a9 100644 --- a/cmd/audit_meta_descriptions/main_test.go +++ b/cmd/audit_meta_descriptions/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package main tests the meta description auditor: the extraction rule for // both blocks a description enumerates parameters in, the comparison against // the routes' input schemas, the report and its exit codes, and the served diff --git a/cmd/audit_metrics/doc.go b/cmd/audit_metrics/doc.go index 56dee40f2..5b8646ad7 100644 --- a/cmd/audit_metrics/doc.go +++ b/cmd/audit_metrics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_metrics generates a comprehensive metrics summary for the // gitlab-mcp-server MCP server. It counts tools, meta-tools, resources, and // prompts by reading the served surface through cmd/internal/mcpsurface — diff --git a/cmd/audit_metrics/main.go b/cmd/audit_metrics/main.go index 6cce99d98..7d3a9ef03 100644 --- a/cmd/audit_metrics/main.go +++ b/cmd/audit_metrics/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_metrics/main_test.go b/cmd/audit_metrics/main_test.go index de701e50a..f495cd2f3 100644 --- a/cmd/audit_metrics/main_test.go +++ b/cmd/audit_metrics/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go contains focused tests for the audit_metrics command. Tests use // an httptest GitLab version endpoint so MCP resource registration can be // inspected without external credentials. diff --git a/cmd/audit_metrics/site_stats.go b/cmd/audit_metrics/site_stats.go index 9f78f47a8..92956c211 100644 --- a/cmd/audit_metrics/site_stats.go +++ b/cmd/audit_metrics/site_stats.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // site_stats.go generates the single-sourced statistics file consumed by the // Astro Starlight documentation site (site/src/data/stats.json). Every value is // derived from the canonical action catalog projection, the in-memory MCP diff --git a/cmd/audit_metrics/site_stats_test.go b/cmd/audit_metrics/site_stats_test.go index 344ca100b..bcea4f691 100644 --- a/cmd/audit_metrics/site_stats_test.go +++ b/cmd/audit_metrics/site_stats_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // site_stats_test.go verifies the single-sourced documentation stats payload. // // These tests ensure the committed site/src/data/stats.json stays in lock-step diff --git a/cmd/audit_readonly_graphql/audit.go b/cmd/audit_readonly_graphql/audit.go index 1a4ed92a8..ba6960504 100644 --- a/cmd/audit_readonly_graphql/audit.go +++ b/cmd/audit_readonly_graphql/audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_readonly_graphql/audit_test.go b/cmd/audit_readonly_graphql/audit_test.go index 3927b68ac..96237ef73 100644 --- a/cmd/audit_readonly_graphql/audit_test.go +++ b/cmd/audit_readonly_graphql/audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_readonly_graphql/doc.go b/cmd/audit_readonly_graphql/doc.go index 3c362a342..461f23a1a 100644 --- a/cmd/audit_readonly_graphql/doc.go +++ b/cmd/audit_readonly_graphql/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_readonly_graphql fails when an action the canonical catalog // classifies ReadOnly can reach a GraphQL mutation. // diff --git a/cmd/audit_readonly_graphql/document.go b/cmd/audit_readonly_graphql/document.go index 24c9551ee..03268f42b 100644 --- a/cmd/audit_readonly_graphql/document.go +++ b/cmd/audit_readonly_graphql/document.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_readonly_graphql/document_test.go b/cmd/audit_readonly_graphql/document_test.go index 2cc93e931..92449ef16 100644 --- a/cmd/audit_readonly_graphql/document_test.go +++ b/cmd/audit_readonly_graphql/document_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import "testing" diff --git a/cmd/audit_readonly_graphql/main.go b/cmd/audit_readonly_graphql/main.go index b3db3539d..8e0fa0e04 100644 --- a/cmd/audit_readonly_graphql/main.go +++ b/cmd/audit_readonly_graphql/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_readonly_graphql/main_test.go b/cmd/audit_readonly_graphql/main_test.go index 9362be433..e8d2dbc64 100644 --- a/cmd/audit_readonly_graphql/main_test.go +++ b/cmd/audit_readonly_graphql/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_sdk_context/declarations.go b/cmd/audit_sdk_context/declarations.go index cf6b77d67..959d7303f 100644 --- a/cmd/audit_sdk_context/declarations.go +++ b/cmd/audit_sdk_context/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/sourcegate" diff --git a/cmd/audit_sdk_context/declarations_test.go b/cmd/audit_sdk_context/declarations_test.go index 6033d46e6..3010be2bc 100644 --- a/cmd/audit_sdk_context/declarations_test.go +++ b/cmd/audit_sdk_context/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_sdk_context/doc.go b/cmd/audit_sdk_context/doc.go index c16d28d53..484769a3d 100644 --- a/cmd/audit_sdk_context/doc.go +++ b/cmd/audit_sdk_context/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_sdk_context reports every call into client-go that does not // hand the SDK the caller's context. // diff --git a/cmd/audit_sdk_context/main.go b/cmd/audit_sdk_context/main.go index edfe56df0..2225c2c73 100644 --- a/cmd/audit_sdk_context/main.go +++ b/cmd/audit_sdk_context/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_sdk_context/main_test.go b/cmd/audit_sdk_context/main_test.go index 9c7528fc1..b152f8204 100644 --- a/cmd/audit_sdk_context/main_test.go +++ b/cmd/audit_sdk_context/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_sdk_context/report.go b/cmd/audit_sdk_context/report.go index 95d83898f..b5c18039f 100644 --- a/cmd/audit_sdk_context/report.go +++ b/cmd/audit_sdk_context/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_sdk_context/report_test.go b/cmd/audit_sdk_context/report_test.go index 9d25d651f..1fc740341 100644 --- a/cmd/audit_sdk_context/report_test.go +++ b/cmd/audit_sdk_context/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_sdk_context/scan.go b/cmd/audit_sdk_context/scan.go index ba7f29b70..323d270c1 100644 --- a/cmd/audit_sdk_context/scan.go +++ b/cmd/audit_sdk_context/scan.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_sdk_context/scan_test.go b/cmd/audit_sdk_context/scan_test.go index 5aa2dba14..d9dcb64c2 100644 --- a/cmd/audit_sdk_context/scan_test.go +++ b/cmd/audit_sdk_context/scan_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/csp.go b/cmd/audit_site_headers/csp.go index 44e5aaabd..0cad058fc 100644 --- a/cmd/audit_site_headers/csp.go +++ b/cmd/audit_site_headers/csp.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/csp_test.go b/cmd/audit_site_headers/csp_test.go index f39fe31b9..201c2426f 100644 --- a/cmd/audit_site_headers/csp_test.go +++ b/cmd/audit_site_headers/csp_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/doc.go b/cmd/audit_site_headers/doc.go index ebe7d2a08..66941484a 100644 --- a/cmd/audit_site_headers/doc.go +++ b/cmd/audit_site_headers/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_site_headers fetches the documentation site and judges the // security headers its responses carry: the four the OpenSSF Best Practices // criterion hardened_site names, Content-Security-Policy, diff --git a/cmd/audit_site_headers/fetch.go b/cmd/audit_site_headers/fetch.go index f0fff5ba3..1e03dbe28 100644 --- a/cmd/audit_site_headers/fetch.go +++ b/cmd/audit_site_headers/fetch.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/fetch_test.go b/cmd/audit_site_headers/fetch_test.go index f2b573126..4ab66124a 100644 --- a/cmd/audit_site_headers/fetch_test.go +++ b/cmd/audit_site_headers/fetch_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/headers.go b/cmd/audit_site_headers/headers.go index 6d720641c..b76c85854 100644 --- a/cmd/audit_site_headers/headers.go +++ b/cmd/audit_site_headers/headers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/headers_test.go b/cmd/audit_site_headers/headers_test.go index aeaaff5dd..ebbb620cc 100644 --- a/cmd/audit_site_headers/headers_test.go +++ b/cmd/audit_site_headers/headers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/main.go b/cmd/audit_site_headers/main.go index f4607af81..ba63318e6 100644 --- a/cmd/audit_site_headers/main.go +++ b/cmd/audit_site_headers/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/main_test.go b/cmd/audit_site_headers/main_test.go index 9692703d1..ffc934d28 100644 --- a/cmd/audit_site_headers/main_test.go +++ b/cmd/audit_site_headers/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/report.go b/cmd/audit_site_headers/report.go index 2c514f618..c73bf2cfb 100644 --- a/cmd/audit_site_headers/report.go +++ b/cmd/audit_site_headers/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_site_headers/report_test.go b/cmd/audit_site_headers/report_test.go index 0fd3ffd93..a0b3a98cf 100644 --- a/cmd/audit_site_headers/report_test.go +++ b/cmd/audit_site_headers/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/actions.go b/cmd/audit_supply_chain/actions.go index 885557168..d5166a7f2 100644 --- a/cmd/audit_supply_chain/actions.go +++ b/cmd/audit_supply_chain/actions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/actions_test.go b/cmd/audit_supply_chain/actions_test.go index ce715ec7d..29fe7f3e6 100644 --- a/cmd/audit_supply_chain/actions_test.go +++ b/cmd/audit_supply_chain/actions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the judgement of the actions a workflow's steps name: what a // pinned composite action runs is read from the committed record and held to // rule 1 and, in a credentialed job, rule 2, as though it were written in the diff --git a/cmd/audit_supply_chain/artifacts.go b/cmd/audit_supply_chain/artifacts.go index ea35042a7..03e89584c 100644 --- a/cmd/audit_supply_chain/artifacts.go +++ b/cmd/audit_supply_chain/artifacts.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/artifacts_test.go b/cmd/audit_supply_chain/artifacts_test.go index b9bc9eac3..54052d2ee 100644 --- a/cmd/audit_supply_chain/artifacts_test.go +++ b/cmd/audit_supply_chain/artifacts_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the hand-over of a tool binary to a credentialed job: a job that // runs what another job built with go downloads it from this run, from a job it // needs, built from this run's commit, and checks it against the SHA-256 that diff --git a/cmd/audit_supply_chain/declarations.go b/cmd/audit_supply_chain/declarations.go index ecd7c3d2f..3db05129a 100644 --- a/cmd/audit_supply_chain/declarations.go +++ b/cmd/audit_supply_chain/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/doc.go b/cmd/audit_supply_chain/doc.go index 85dbeea59..c123dae4f 100644 --- a/cmd/audit_supply_chain/doc.go +++ b/cmd/audit_supply_chain/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_supply_chain audits the release supply chain's configuration // invariants. // diff --git a/cmd/audit_supply_chain/gocommand.go b/cmd/audit_supply_chain/gocommand.go index 5dd243702..c64ccc4e8 100644 --- a/cmd/audit_supply_chain/gocommand.go +++ b/cmd/audit_supply_chain/gocommand.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/gocommand_test.go b/cmd/audit_supply_chain/gocommand_test.go index a2882a0fc..e6f262d49 100644 --- a/cmd/audit_supply_chain/gocommand_test.go +++ b/cmd/audit_supply_chain/gocommand_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the Go-command demands of rule 2: what a credentialed job builds // with the go command is this module's code and the standard library's alone, // since any code the job runs holds the job's credential. diff --git a/cmd/audit_supply_chain/goreleaser.go b/cmd/audit_supply_chain/goreleaser.go index fa42617d7..aa229321d 100644 --- a/cmd/audit_supply_chain/goreleaser.go +++ b/cmd/audit_supply_chain/goreleaser.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/goreleaser_test.go b/cmd/audit_supply_chain/goreleaser_test.go index 11e2ce132..0991f2894 100644 --- a/cmd/audit_supply_chain/goreleaser_test.go +++ b/cmd/audit_supply_chain/goreleaser_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the GoReleaser configuration rule 2 reads: the commands GoReleaser // runs in a credentialed job are judged as though the job's run blocks had // written them. diff --git a/cmd/audit_supply_chain/main.go b/cmd/audit_supply_chain/main.go index e03742767..41368766a 100644 --- a/cmd/audit_supply_chain/main.go +++ b/cmd/audit_supply_chain/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/main_test.go b/cmd/audit_supply_chain/main_test.go index 1ce77abf9..43c500872 100644 --- a/cmd/audit_supply_chain/main_test.go +++ b/cmd/audit_supply_chain/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the supply-chain configuration auditor. // // Each test feeds the checker the shape the repository had when the diff --git a/cmd/audit_supply_chain/make.go b/cmd/audit_supply_chain/make.go index 4218e362f..fc4842593 100644 --- a/cmd/audit_supply_chain/make.go +++ b/cmd/audit_supply_chain/make.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/reach.go b/cmd/audit_supply_chain/reach.go index e9377823a..6e9099524 100644 --- a/cmd/audit_supply_chain/reach.go +++ b/cmd/audit_supply_chain/reach.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/record.go b/cmd/audit_supply_chain/record.go index 4bea4171f..8b29c9731 100644 --- a/cmd/audit_supply_chain/record.go +++ b/cmd/audit_supply_chain/record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/record_test.go b/cmd/audit_supply_chain/record_test.go index 3ef0e7145..0f1a7e1c3 100644 --- a/cmd/audit_supply_chain/record_test.go +++ b/cmd/audit_supply_chain/record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the committed record of what each pinned action's commit holds, // the store the audit reads it through, and the fetcher -record fills it with. package main diff --git a/cmd/audit_supply_chain/release_notes.go b/cmd/audit_supply_chain/release_notes.go index 00058cb4d..d9c16dfb6 100644 --- a/cmd/audit_supply_chain/release_notes.go +++ b/cmd/audit_supply_chain/release_notes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/release_notes_test.go b/cmd/audit_supply_chain/release_notes_test.go index 5312de2eb..4213a7923 100644 --- a/cmd/audit_supply_chain/release_notes_test.go +++ b/cmd/audit_supply_chain/release_notes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the seventh property: the release VERSION names opens with a // written summary, kept in .github/release-notes, which carries the four // sections a reader needs to decide whether to upgrade and nothing the diff --git a/cmd/audit_supply_chain/scripts.go b/cmd/audit_supply_chain/scripts.go index 06a1b0978..7d015cb8e 100644 --- a/cmd/audit_supply_chain/scripts.go +++ b/cmd/audit_supply_chain/scripts.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_supply_chain/scripts_test.go b/cmd/audit_supply_chain/scripts_test.go index d986bc9d2..598fd733b 100644 --- a/cmd/audit_supply_chain/scripts_test.go +++ b/cmd/audit_supply_chain/scripts_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Tests for the sixth property: every script in another language than Go the // repository holds is declared with the reason it has to stay, so a new one // fails the gate the day it is added. diff --git a/cmd/audit_supply_chain/secrets.go b/cmd/audit_supply_chain/secrets.go index 64d3b1906..a4d697774 100644 --- a/cmd/audit_supply_chain/secrets.go +++ b/cmd/audit_supply_chain/secrets.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_surface_quality/constant_index.go b/cmd/audit_surface_quality/constant_index.go index d023eacfb..1ef3a1c77 100644 --- a/cmd/audit_surface_quality/constant_index.go +++ b/cmd/audit_surface_quality/constant_index.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The constant-index rule: a list formatter that renders the head of a slice // where it means to render every element. diff --git a/cmd/audit_surface_quality/constant_index_test.go b/cmd/audit_surface_quality/constant_index_test.go index a8bb65266..9f4e9ea1f 100644 --- a/cmd/audit_surface_quality/constant_index_test.go +++ b/cmd/audit_surface_quality/constant_index_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // constant_index_test.go covers the constant-index rule: the fixture text // that makes two elements of a slice tell each other apart, the rule that // reads a render for one element printed in every element's place, and the diff --git a/cmd/audit_surface_quality/doc.go b/cmd/audit_surface_quality/doc.go index 5aa3f5c96..6c810337b 100644 --- a/cmd/audit_surface_quality/doc.go +++ b/cmd/audit_surface_quality/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_surface_quality is the consolidated MCP tool surface quality // audit. It combines the metadata-quality checks (naming, annotations, schema // shape — formerly audit_tools) and the output-quality checks (OutputSchema, diff --git a/cmd/audit_surface_quality/edition_tier.go b/cmd/audit_surface_quality/edition_tier.go index 3d66a68f6..051f8d880 100644 --- a/cmd/audit_surface_quality/edition_tier.go +++ b/cmd/audit_surface_quality/edition_tier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The edition-tier rule: the licensing tier a tool's own description states, // against the tier the surface registers that tool at. diff --git a/cmd/audit_surface_quality/edition_tier_test.go b/cmd/audit_surface_quality/edition_tier_test.go index da2f4f84f..f973bb7c5 100644 --- a/cmd/audit_surface_quality/edition_tier_test.go +++ b/cmd/audit_surface_quality/edition_tier_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // edition_tier_test.go covers the edition-tier rule: the tier phrases a // served description states, the sentence they have to be stated in, and the // comparison with the tier the surface actually serves each tool at. diff --git a/cmd/audit_surface_quality/main.go b/cmd/audit_surface_quality/main.go index 61d03f667..e3d96b5f4 100644 --- a/cmd/audit_surface_quality/main.go +++ b/cmd/audit_surface_quality/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_surface_quality/main_test.go b/cmd/audit_surface_quality/main_test.go index a0b0ea07f..773aabcec 100644 --- a/cmd/audit_surface_quality/main_test.go +++ b/cmd/audit_surface_quality/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the shared command plumbing: registering a tool // surface on an in-process server through the stub GitLab client, the JSON // entry conversion, and the two audit entry points in their JSON mode. diff --git a/cmd/audit_surface_quality/metadata_audit.go b/cmd/audit_surface_quality/metadata_audit.go index c3572963b..82c74f146 100644 --- a/cmd/audit_surface_quality/metadata_audit.go +++ b/cmd/audit_surface_quality/metadata_audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Metadata-quality audit functions (formerly audit_tools). package main diff --git a/cmd/audit_surface_quality/metadata_audit_test.go b/cmd/audit_surface_quality/metadata_audit_test.go index 2084317ee..511de1dcc 100644 --- a/cmd/audit_surface_quality/metadata_audit_test.go +++ b/cmd/audit_surface_quality/metadata_audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // metadata_audit_test.go contains focused tests for the metadata audit // helpers. Tests cover the small pure-function audits (naming, descriptions, // annotations, schema validity) without spinning up the full MCP server. diff --git a/cmd/audit_surface_quality/metadata_register_meta.go b/cmd/audit_surface_quality/metadata_register_meta.go index 6b6a3e912..6a2269eac 100644 --- a/cmd/audit_surface_quality/metadata_register_meta.go +++ b/cmd/audit_surface_quality/metadata_register_meta.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_surface_quality/metadata_register_meta_test.go b/cmd/audit_surface_quality/metadata_register_meta_test.go index 34e99353d..47dfb4b94 100644 --- a/cmd/audit_surface_quality/metadata_register_meta_test.go +++ b/cmd/audit_surface_quality/metadata_register_meta_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // metadata_register_meta_test.go covers the package-level RegisterMeta // detection logic used by the metadata audit. // diff --git a/cmd/audit_surface_quality/output_audit.go b/cmd/audit_surface_quality/output_audit.go index 5181d7f35..004740026 100644 --- a/cmd/audit_surface_quality/output_audit.go +++ b/cmd/audit_surface_quality/output_audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Output-quality audit functions (formerly audit_output). package main diff --git a/cmd/audit_surface_quality/output_audit_test.go b/cmd/audit_surface_quality/output_audit_test.go index 558a54fef..6d9d7580a 100644 --- a/cmd/audit_surface_quality/output_audit_test.go +++ b/cmd/audit_surface_quality/output_audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // output_audit_test.go covers the output audit helpers that score // individual and meta tools for output quality. // diff --git a/cmd/audit_surface_quality/root_combinators.go b/cmd/audit_surface_quality/root_combinators.go index 65dadc50a..e5b155d82 100644 --- a/cmd/audit_surface_quality/root_combinators.go +++ b/cmd/audit_surface_quality/root_combinators.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The rule that no served tool input schema carries a combinator or a // conditional at its root. diff --git a/cmd/audit_surface_quality/root_combinators_test.go b/cmd/audit_surface_quality/root_combinators_test.go index 939d52d5c..de0b96d49 100644 --- a/cmd/audit_surface_quality/root_combinators_test.go +++ b/cmd/audit_surface_quality/root_combinators_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/alias.go b/cmd/audit_tenancy/alias.go index 3a5695545..f24507337 100644 --- a/cmd/audit_tenancy/alias.go +++ b/cmd/audit_tenancy/alias.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/alias_test.go b/cmd/audit_tenancy/alias_test.go index 639f6b0f7..89e704b22 100644 --- a/cmd/audit_tenancy/alias_test.go +++ b/cmd/audit_tenancy/alias_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/arg.go b/cmd/audit_tenancy/arg.go index a0560744e..dc1309d12 100644 --- a/cmd/audit_tenancy/arg.go +++ b/cmd/audit_tenancy/arg.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/arg_test.go b/cmd/audit_tenancy/arg_test.go index 33bed6379..9bfa465fb 100644 --- a/cmd/audit_tenancy/arg_test.go +++ b/cmd/audit_tenancy/arg_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/charges.go b/cmd/audit_tenancy/charges.go index 8bb63144f..e1201d6e0 100644 --- a/cmd/audit_tenancy/charges.go +++ b/cmd/audit_tenancy/charges.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/charges_test.go b/cmd/audit_tenancy/charges_test.go index 2f4ebfe1f..46ff48340 100644 --- a/cmd/audit_tenancy/charges_test.go +++ b/cmd/audit_tenancy/charges_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/compare.go b/cmd/audit_tenancy/compare.go index f14d70331..183a1aeaf 100644 --- a/cmd/audit_tenancy/compare.go +++ b/cmd/audit_tenancy/compare.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/compare_test.go b/cmd/audit_tenancy/compare_test.go index b8fe6a6cb..061ad1e60 100644 --- a/cmd/audit_tenancy/compare_test.go +++ b/cmd/audit_tenancy/compare_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/config.go b/cmd/audit_tenancy/config.go index f940d9469..3f538daa5 100644 --- a/cmd/audit_tenancy/config.go +++ b/cmd/audit_tenancy/config.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/config_test.go b/cmd/audit_tenancy/config_test.go index b607aff84..695592b78 100644 --- a/cmd/audit_tenancy/config_test.go +++ b/cmd/audit_tenancy/config_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/declarations.go b/cmd/audit_tenancy/declarations.go index b0d218aa7..cb5ffbe1d 100644 --- a/cmd/audit_tenancy/declarations.go +++ b/cmd/audit_tenancy/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/declarations_test.go b/cmd/audit_tenancy/declarations_test.go index c7308fb66..30cbeb28c 100644 --- a/cmd/audit_tenancy/declarations_test.go +++ b/cmd/audit_tenancy/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/doc.go b/cmd/audit_tenancy/doc.go index 95033b972..4f309ff56 100644 --- a/cmd/audit_tenancy/doc.go +++ b/cmd/audit_tenancy/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_tenancy holds the tenant policy register, internal/tenancy, // to the code that enforces it. // diff --git a/cmd/audit_tenancy/leaf.go b/cmd/audit_tenancy/leaf.go index 35e8c9cb7..5ba741871 100644 --- a/cmd/audit_tenancy/leaf.go +++ b/cmd/audit_tenancy/leaf.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/leaf_test.go b/cmd/audit_tenancy/leaf_test.go index 66d92e815..ca642e971 100644 --- a/cmd/audit_tenancy/leaf_test.go +++ b/cmd/audit_tenancy/leaf_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/main.go b/cmd/audit_tenancy/main.go index 608f8baa2..7b77184f4 100644 --- a/cmd/audit_tenancy/main.go +++ b/cmd/audit_tenancy/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/main_test.go b/cmd/audit_tenancy/main_test.go index 346a28b57..e07ede22c 100644 --- a/cmd/audit_tenancy/main_test.go +++ b/cmd/audit_tenancy/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/orphans.go b/cmd/audit_tenancy/orphans.go index 90fa8dc9d..e18e966a9 100644 --- a/cmd/audit_tenancy/orphans.go +++ b/cmd/audit_tenancy/orphans.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/orphans_test.go b/cmd/audit_tenancy/orphans_test.go index ede6c580d..67e149521 100644 --- a/cmd/audit_tenancy/orphans_test.go +++ b/cmd/audit_tenancy/orphans_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/pin.go b/cmd/audit_tenancy/pin.go index 2212d6fc9..a203d3d1a 100644 --- a/cmd/audit_tenancy/pin.go +++ b/cmd/audit_tenancy/pin.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/pin_test.go b/cmd/audit_tenancy/pin_test.go index c8162bc85..3ff8c0b46 100644 --- a/cmd/audit_tenancy/pin_test.go +++ b/cmd/audit_tenancy/pin_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/reason.go b/cmd/audit_tenancy/reason.go index 9c48cf3dd..44f0e418d 100644 --- a/cmd/audit_tenancy/reason.go +++ b/cmd/audit_tenancy/reason.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/reason_test.go b/cmd/audit_tenancy/reason_test.go index ae3d10f0b..fc3b70231 100644 --- a/cmd/audit_tenancy/reason_test.go +++ b/cmd/audit_tenancy/reason_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/refs.go b/cmd/audit_tenancy/refs.go index 8b7f8671d..2f1e0f5da 100644 --- a/cmd/audit_tenancy/refs.go +++ b/cmd/audit_tenancy/refs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/refs_test.go b/cmd/audit_tenancy/refs_test.go index 8138d060f..eafb9607f 100644 --- a/cmd/audit_tenancy/refs_test.go +++ b/cmd/audit_tenancy/refs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/refusal.go b/cmd/audit_tenancy/refusal.go index 472c39fdd..877840317 100644 --- a/cmd/audit_tenancy/refusal.go +++ b/cmd/audit_tenancy/refusal.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/refusal_test.go b/cmd/audit_tenancy/refusal_test.go index 3a8984f6b..286e940a9 100644 --- a/cmd/audit_tenancy/refusal_test.go +++ b/cmd/audit_tenancy/refusal_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/report.go b/cmd/audit_tenancy/report.go index 6af61d297..143a92d34 100644 --- a/cmd/audit_tenancy/report.go +++ b/cmd/audit_tenancy/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/report_test.go b/cmd/audit_tenancy/report_test.go index 40fffcd62..e9643c566 100644 --- a/cmd/audit_tenancy/report_test.go +++ b/cmd/audit_tenancy/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/resolve.go b/cmd/audit_tenancy/resolve.go index daaa81a33..32101dbc7 100644 --- a/cmd/audit_tenancy/resolve.go +++ b/cmd/audit_tenancy/resolve.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/resolve_test.go b/cmd/audit_tenancy/resolve_test.go index 97d025fc3..147155056 100644 --- a/cmd/audit_tenancy/resolve_test.go +++ b/cmd/audit_tenancy/resolve_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/share.go b/cmd/audit_tenancy/share.go index 829d2da43..571c54319 100644 --- a/cmd/audit_tenancy/share.go +++ b/cmd/audit_tenancy/share.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/share_test.go b/cmd/audit_tenancy/share_test.go index 5f99e3a14..6705c5abb 100644 --- a/cmd/audit_tenancy/share_test.go +++ b/cmd/audit_tenancy/share_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/tripwire.go b/cmd/audit_tenancy/tripwire.go index 7d81a3574..b5d21434a 100644 --- a/cmd/audit_tenancy/tripwire.go +++ b/cmd/audit_tenancy/tripwire.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/tripwire_test.go b/cmd/audit_tenancy/tripwire_test.go index 5f6779451..19978e244 100644 --- a/cmd/audit_tenancy/tripwire_test.go +++ b/cmd/audit_tenancy/tripwire_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/validate.go b/cmd/audit_tenancy/validate.go index b8505f826..599de6fd7 100644 --- a/cmd/audit_tenancy/validate.go +++ b/cmd/audit_tenancy/validate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tenancy/validate_test.go b/cmd/audit_tenancy/validate_test.go index 4ad076592..cebcb9af0 100644 --- a/cmd/audit_tenancy/validate_test.go +++ b/cmd/audit_tenancy/validate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_closed_servers/declarations.go b/cmd/audit_test_closed_servers/declarations.go index 18ef1b938..fe33d0e37 100644 --- a/cmd/audit_test_closed_servers/declarations.go +++ b/cmd/audit_test_closed_servers/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import "github.com/jmrplens/gitlab-mcp-server/v3/cmd/internal/sourcegate" diff --git a/cmd/audit_test_closed_servers/declarations_test.go b/cmd/audit_test_closed_servers/declarations_test.go index 835bf4ec7..7778d108a 100644 --- a/cmd/audit_test_closed_servers/declarations_test.go +++ b/cmd/audit_test_closed_servers/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_closed_servers/doc.go b/cmd/audit_test_closed_servers/doc.go index dc1cb16a9..1c7bea925 100644 --- a/cmd/audit_test_closed_servers/doc.go +++ b/cmd/audit_test_closed_servers/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_test_closed_servers reports every httptest server closed while // its address is still used later in the same function. // diff --git a/cmd/audit_test_closed_servers/main.go b/cmd/audit_test_closed_servers/main.go index 69d20a5f3..215c40078 100644 --- a/cmd/audit_test_closed_servers/main.go +++ b/cmd/audit_test_closed_servers/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_closed_servers/main_test.go b/cmd/audit_test_closed_servers/main_test.go index 1c495b2ca..4809d988d 100644 --- a/cmd/audit_test_closed_servers/main_test.go +++ b/cmd/audit_test_closed_servers/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( @@ -59,7 +62,7 @@ func TestRun_FindingsWithoutCheck_ReportAndSucceed(t *testing.T) { if !strings.HasSuffix(stdout, "\n\n"+plantedSummary) { t.Fatalf("stdout does not end with a blank line and %q:\n%s", plantedSummary, stdout) } - if !strings.HasPrefix(stdout, "declared/declared_test.go:15: srv is closed while its address is still used, through url at line 16 (in TestPlanted_ExcusedByADeclaration_Excused)\n") { + if !strings.HasPrefix(stdout, "declared/declared_test.go:18: srv is closed while its address is still used, through url at line 19 (in TestPlanted_ExcusedByADeclaration_Excused)\n") { t.Fatalf("stdout does not open with the first finding in file order:\n%s", stdout) } if stderr != "" { @@ -167,7 +170,7 @@ func TestRunMain_ParsesTheCommandLine(t *testing.T) { {name: "verbose", args: []string{"-dir", dir, "-v", "./clean/..."}, wantCode: 0, wantStdout: "\n" + cleanSummary}, { name: "findings under check", args: []string{"-dir", dir, "-check", "./flagged/..."}, wantCode: 1, - wantStdout: "flagged/external_test.go:18: ", + wantStdout: "flagged/external_test.go:21: ", }, } for _, tt := range tests { diff --git a/cmd/audit_test_closed_servers/report.go b/cmd/audit_test_closed_servers/report.go index 893816491..3b381871b 100644 --- a/cmd/audit_test_closed_servers/report.go +++ b/cmd/audit_test_closed_servers/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_closed_servers/report_test.go b/cmd/audit_test_closed_servers/report_test.go index f38d8b700..c312d76bf 100644 --- a/cmd/audit_test_closed_servers/report_test.go +++ b/cmd/audit_test_closed_servers/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_closed_servers/scan.go b/cmd/audit_test_closed_servers/scan.go index 5b38765b5..f2511194e 100644 --- a/cmd/audit_test_closed_servers/scan.go +++ b/cmd/audit_test_closed_servers/scan.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_closed_servers/scan_test.go b/cmd/audit_test_closed_servers/scan_test.go index b0ed863cd..12e7b2b16 100644 --- a/cmd/audit_test_closed_servers/scan_test.go +++ b/cmd/audit_test_closed_servers/scan_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( @@ -36,70 +39,70 @@ func spell(findings []Finding) []string { // plantedFindings is every finding the planted module holds under every tag, // in the report's order, each written where its fixture says it is. var plantedFindings = []string{ - "declared/declared_test.go:15 TestPlanted_ExcusedByADeclaration_Excused srv url:16", - "flagged/external_test.go:18 TestPlanted_ExternalTestPackage_Reported srv url:19", - "flagged/flagged_test.go:18 TestPlanted_URLReadAfterTheClose_Reported srv srv:19", - "flagged/flagged_test.go:27 TestPlanted_SavedURL_Reported srv url:28", - "flagged/flagged_test.go:36 TestPlanted_ServerFromAHelper_Reported srv addr:37", - "flagged/flagged_test.go:49 TestPlanted_AddressBuiltInSteps_Reported srv endpoint:50", - "flagged/flagged_test.go:58 TestPlanted_SavedInAPairedAssignment_Reported srv url:59", - "flagged/flagged_test.go:72 TestPlanted_ClientBuiltOnTheLiveURL_Reported srv client:77", - "flagged/flagged_test.go:87 TestPlanted_OneNameReboundAnotherUsed_Reported srv second:90", - "flagged/flagged_test.go:98 TestPlanted_FunctionBoundToTheURL_Reported srv ping:99", - "flagged/flagged_test.go:109 TestPlanted_ServerInAField_Reported e.server e:110", - "flagged/flagged_test.go:120 TestPlanted_EmbeddedServer_Reported f f:121", - "flagged/flagged_test.go:128 TestPlanted_ClosedInASubtest_Reported srv srv:129", - "flagged/flagged_test.go:151 TestPlanted_ClosedOnABranchThatGoesOn_Reported logged logged:174", - "flagged/flagged_test.go:155 TestPlanted_ClosedOnABranchThatGoesOn_Reported builtin builtin:175", - "flagged/flagged_test.go:159 TestPlanted_ClosedOnABranchThatGoesOn_Reported received received:176", - "flagged/flagged_test.go:163 TestPlanted_ClosedOnABranchThatGoesOn_Reported assigned assigned:177", - "flagged/flagged_test.go:167 TestPlanted_ClosedOnABranchThatGoesOn_Reported described described:178", - "flagged/flagged_test.go:171 TestPlanted_ClosedOnABranchThatGoesOn_Reported noted noted:179", - "flagged/flagged_test.go:187 TestPlanted_AddressFromAnInvokedLiteral_Reported srv addr:188", - "flagged/flagged_test.go:199 TestPlanted_DeferredInASubtest_Reported deferred deferred:204", - "flagged/flagged_test.go:200 TestPlanted_DeferredInASubtest_Reported cleaned cleaned:205", - "flagged/flagged_test.go:223 TestPlanted_CleanupThatIsNotATests_Reported byMethod byMethod:226", - "flagged/flagged_test.go:225 TestPlanted_CleanupThatIsNotATests_Reported byField byField:227", - "flagged/flagged_test.go:237 TestPlanted_ClosedBeforeAFunctionValue_Reported srv srv:240", - "flagged/flagged_test.go:249 TestPlanted_ReassignedFromItself_Reported srv addr:250", - "flagged/flagged_test.go:259 TestPlanted_CompoundAssignment_Reported srv base:260", - "flagged/flagged_test.go:274 TestPlanted_ClosedOnACaseThatGoesOn_Reported switched switched:283", - "flagged/flagged_test.go:279 TestPlanted_ClosedOnACaseThatGoesOn_Reported selected selected:284", - "flagged/flagged_test.go:300 TestPlanted_ClosedThroughACopy_Reported other url:301", - "flagged/flagged_test.go:313 TestPlanted_ClosedThroughAHolder_Reported h.server url:314", - "flagged/flagged_test.go:322 TestPlanted_ServerAndAddressFromAHelper_Reported f.srv url:323", - "flagged/flagged_test.go:342 TestPlanted_AddressStoredInAField_Reported byValue cfg:344", - "flagged/flagged_test.go:343 TestPlanted_AddressStoredInAField_Reported byPointer ptr:345", - "flagged/flagged_test.go:353 TestPlanted_RangeVariable_Reported srv u:354", - "flagged/flagged_test.go:369 TestPlanted_AddressAsBytesAndInARequest_Reported asBytes raw:371", - "flagged/flagged_test.go:370 TestPlanted_AddressAsBytesAndInARequest_Reported asRequest req:372", - "flagged/flagged_test.go:383 TestPlanted_CleanupInASubtest_Reported named named:388", - "flagged/flagged_test.go:386 TestPlanted_CleanupInASubtest_Reported renamed renamed:389", - "flagged/flagged_test.go:401 TestPlanted_ParallelInsideASubtest_Reported srv srv:404", - "flagged/flagged_test.go:413 TestPlanted_ServerWrappedInAnEmbedding_Reported srv wrapped:414", - "flagged/flagged_test.go:423 TestPlanted_LiteralDefersItsClose_Reported srv closedAddress:426", - "flagged/flagged_test.go:435 TestPlanted_DeferredCloseBeforeAParallelSubtest_Reported srv srv:438", - "flagged/flagged_test.go:453 TestPlanted_ClosedAfterAParallelSubtest_Reported srv saved:451", - "flagged/flagged_test.go:462 TestPlanted_SubtestDefersBeforeItsParallelSubtest_Reported srv srv:465", - "flagged/flagged_test.go:481 TestPlanted_ClosedInASubtestAfterAParallelOne_Reported srv srv:478", - "flagged/flagged_test.go:496 TestPlanted_ClosedOnAStoppingBranchAfterAParallelSubtest_Reported srv srv:493", - "flagged/flagged_test.go:513 TestPlanted_ReboundOnABranch_Reported srv url:517", - "flagged/flagged_test.go:528 TestPlanted_ReboundOnTheOtherBranch_Reported srv url:532", - "flagged/flagged_test.go:542 TestPlanted_ReboundByARangeThatMayNotRun_Reported srv url:547", - "flagged/flagged_test.go:559 TestPlanted_ClosedThroughAMethodValue_Reported called url:564", - "flagged/flagged_test.go:562 TestPlanted_ClosedThroughAMethodValue_Reported registered registered:565", - "flagged/helpers.go:32 closedURL srv url:33", - "flagged/helpers.go:40 closedLater srv srv:41", - "flagged/helpers.go:61 deadURL srv srv:62", - "flagged/helpers.go:68 deadURLLater srv srv:69", - "flagged/helpers.go:76 deadClient srv client:78", - "flagged/helpers.go:85 deadDial srv srv:86", - "flagged/helpers.go:92 deadNamedURL srv url:94", - "tagged/collectore2e_test.go:15 TestPlanted_BehindThe_collectore2e_Tag_Reported srv url:16", - "tagged/e2e_test.go:15 TestPlanted_BehindThe_e2e_Tag_Reported srv url:16", - "tagged/httpe2e_test.go:15 TestPlanted_BehindThe_httpe2e_Tag_Reported srv url:16", - "tagged/orbitlive_test.go:15 TestPlanted_BehindThe_orbitlive_Tag_Reported srv url:16", - "tagged/stdioe2e_test.go:15 TestPlanted_BehindThe_stdioe2e_Tag_Reported srv url:16", + "declared/declared_test.go:18 TestPlanted_ExcusedByADeclaration_Excused srv url:19", + "flagged/external_test.go:21 TestPlanted_ExternalTestPackage_Reported srv url:22", + "flagged/flagged_test.go:21 TestPlanted_URLReadAfterTheClose_Reported srv srv:22", + "flagged/flagged_test.go:30 TestPlanted_SavedURL_Reported srv url:31", + "flagged/flagged_test.go:39 TestPlanted_ServerFromAHelper_Reported srv addr:40", + "flagged/flagged_test.go:52 TestPlanted_AddressBuiltInSteps_Reported srv endpoint:53", + "flagged/flagged_test.go:61 TestPlanted_SavedInAPairedAssignment_Reported srv url:62", + "flagged/flagged_test.go:75 TestPlanted_ClientBuiltOnTheLiveURL_Reported srv client:80", + "flagged/flagged_test.go:90 TestPlanted_OneNameReboundAnotherUsed_Reported srv second:93", + "flagged/flagged_test.go:101 TestPlanted_FunctionBoundToTheURL_Reported srv ping:102", + "flagged/flagged_test.go:112 TestPlanted_ServerInAField_Reported e.server e:113", + "flagged/flagged_test.go:123 TestPlanted_EmbeddedServer_Reported f f:124", + "flagged/flagged_test.go:131 TestPlanted_ClosedInASubtest_Reported srv srv:132", + "flagged/flagged_test.go:154 TestPlanted_ClosedOnABranchThatGoesOn_Reported logged logged:177", + "flagged/flagged_test.go:158 TestPlanted_ClosedOnABranchThatGoesOn_Reported builtin builtin:178", + "flagged/flagged_test.go:162 TestPlanted_ClosedOnABranchThatGoesOn_Reported received received:179", + "flagged/flagged_test.go:166 TestPlanted_ClosedOnABranchThatGoesOn_Reported assigned assigned:180", + "flagged/flagged_test.go:170 TestPlanted_ClosedOnABranchThatGoesOn_Reported described described:181", + "flagged/flagged_test.go:174 TestPlanted_ClosedOnABranchThatGoesOn_Reported noted noted:182", + "flagged/flagged_test.go:190 TestPlanted_AddressFromAnInvokedLiteral_Reported srv addr:191", + "flagged/flagged_test.go:202 TestPlanted_DeferredInASubtest_Reported deferred deferred:207", + "flagged/flagged_test.go:203 TestPlanted_DeferredInASubtest_Reported cleaned cleaned:208", + "flagged/flagged_test.go:226 TestPlanted_CleanupThatIsNotATests_Reported byMethod byMethod:229", + "flagged/flagged_test.go:228 TestPlanted_CleanupThatIsNotATests_Reported byField byField:230", + "flagged/flagged_test.go:240 TestPlanted_ClosedBeforeAFunctionValue_Reported srv srv:243", + "flagged/flagged_test.go:252 TestPlanted_ReassignedFromItself_Reported srv addr:253", + "flagged/flagged_test.go:262 TestPlanted_CompoundAssignment_Reported srv base:263", + "flagged/flagged_test.go:277 TestPlanted_ClosedOnACaseThatGoesOn_Reported switched switched:286", + "flagged/flagged_test.go:282 TestPlanted_ClosedOnACaseThatGoesOn_Reported selected selected:287", + "flagged/flagged_test.go:303 TestPlanted_ClosedThroughACopy_Reported other url:304", + "flagged/flagged_test.go:316 TestPlanted_ClosedThroughAHolder_Reported h.server url:317", + "flagged/flagged_test.go:325 TestPlanted_ServerAndAddressFromAHelper_Reported f.srv url:326", + "flagged/flagged_test.go:345 TestPlanted_AddressStoredInAField_Reported byValue cfg:347", + "flagged/flagged_test.go:346 TestPlanted_AddressStoredInAField_Reported byPointer ptr:348", + "flagged/flagged_test.go:356 TestPlanted_RangeVariable_Reported srv u:357", + "flagged/flagged_test.go:372 TestPlanted_AddressAsBytesAndInARequest_Reported asBytes raw:374", + "flagged/flagged_test.go:373 TestPlanted_AddressAsBytesAndInARequest_Reported asRequest req:375", + "flagged/flagged_test.go:386 TestPlanted_CleanupInASubtest_Reported named named:391", + "flagged/flagged_test.go:389 TestPlanted_CleanupInASubtest_Reported renamed renamed:392", + "flagged/flagged_test.go:404 TestPlanted_ParallelInsideASubtest_Reported srv srv:407", + "flagged/flagged_test.go:416 TestPlanted_ServerWrappedInAnEmbedding_Reported srv wrapped:417", + "flagged/flagged_test.go:426 TestPlanted_LiteralDefersItsClose_Reported srv closedAddress:429", + "flagged/flagged_test.go:438 TestPlanted_DeferredCloseBeforeAParallelSubtest_Reported srv srv:441", + "flagged/flagged_test.go:456 TestPlanted_ClosedAfterAParallelSubtest_Reported srv saved:454", + "flagged/flagged_test.go:465 TestPlanted_SubtestDefersBeforeItsParallelSubtest_Reported srv srv:468", + "flagged/flagged_test.go:484 TestPlanted_ClosedInASubtestAfterAParallelOne_Reported srv srv:481", + "flagged/flagged_test.go:499 TestPlanted_ClosedOnAStoppingBranchAfterAParallelSubtest_Reported srv srv:496", + "flagged/flagged_test.go:516 TestPlanted_ReboundOnABranch_Reported srv url:520", + "flagged/flagged_test.go:531 TestPlanted_ReboundOnTheOtherBranch_Reported srv url:535", + "flagged/flagged_test.go:545 TestPlanted_ReboundByARangeThatMayNotRun_Reported srv url:550", + "flagged/flagged_test.go:562 TestPlanted_ClosedThroughAMethodValue_Reported called url:567", + "flagged/flagged_test.go:565 TestPlanted_ClosedThroughAMethodValue_Reported registered registered:568", + "flagged/helpers.go:35 closedURL srv url:36", + "flagged/helpers.go:43 closedLater srv srv:44", + "flagged/helpers.go:64 deadURL srv srv:65", + "flagged/helpers.go:71 deadURLLater srv srv:72", + "flagged/helpers.go:79 deadClient srv client:81", + "flagged/helpers.go:88 deadDial srv srv:89", + "flagged/helpers.go:95 deadNamedURL srv url:97", + "tagged/collectore2e_test.go:18 TestPlanted_BehindThe_collectore2e_Tag_Reported srv url:19", + "tagged/e2e_test.go:18 TestPlanted_BehindThe_e2e_Tag_Reported srv url:19", + "tagged/httpe2e_test.go:18 TestPlanted_BehindThe_httpe2e_Tag_Reported srv url:19", + "tagged/orbitlive_test.go:18 TestPlanted_BehindThe_orbitlive_Tag_Reported srv url:19", + "tagged/stdioe2e_test.go:18 TestPlanted_BehindThe_stdioe2e_Tag_Reported srv url:19", } // TestAudit_PlantedModule_ReportsEveryPlantedShapeAndNothingElse is the rule @@ -137,7 +140,7 @@ func TestAudit_EachTag_RevealsItsOwnFile(t *testing.T) { for _, tag := range analysisTags { t.Run(tag, func(t *testing.T) { report := auditPlanted(t, []string{tag}, map[string]sourcegate.Declaration{}, "./tagged/...") - want := fmt.Sprintf("tagged/%s_test.go:15 TestPlanted_BehindThe_%s_Tag_Reported srv url:16", tag, tag) + want := fmt.Sprintf("tagged/%s_test.go:18 TestPlanted_BehindThe_%s_Tag_Reported srv url:19", tag, tag) if got := spell(report.Findings); !slices.Equal(got, []string{want}) { t.Errorf("findings = %q, want only %q", got, want) } diff --git a/cmd/audit_test_closed_servers/testdata/planted/clean/clean_test.go b/cmd/audit_test_closed_servers/testdata/planted/clean/clean_test.go index d36b7deda..78c02a9e3 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/clean/clean_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/clean/clean_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package clean import ( diff --git a/cmd/audit_test_closed_servers/testdata/planted/clean/doc.go b/cmd/audit_test_closed_servers/testdata/planted/clean/doc.go index 4802e882c..5364e8483 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/clean/doc.go +++ b/cmd/audit_test_closed_servers/testdata/planted/clean/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package clean holds the shapes the gate must accept: a server closed when // the test ends, one closed with nothing of its address used afterwards, and // a Close that is not an httptest server's. diff --git a/cmd/audit_test_closed_servers/testdata/planted/declared/declared_test.go b/cmd/audit_test_closed_servers/testdata/planted/declared/declared_test.go index da304ac1f..f0cabcff7 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/declared/declared_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/declared/declared_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package declared import ( diff --git a/cmd/audit_test_closed_servers/testdata/planted/declared/doc.go b/cmd/audit_test_closed_servers/testdata/planted/declared/doc.go index 061745a47..d26e982c6 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/declared/doc.go +++ b/cmd/audit_test_closed_servers/testdata/planted/declared/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package declared holds one finding a test excuses with a declaration, so the // excused, the stale and the unknown-category rows of the report can be held // to a table the test supplies. diff --git a/cmd/audit_test_closed_servers/testdata/planted/flagged/doc.go b/cmd/audit_test_closed_servers/testdata/planted/flagged/doc.go index fe705f13a..6ef271eff 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/flagged/doc.go +++ b/cmd/audit_test_closed_servers/testdata/planted/flagged/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package flagged holds the shapes the gate must report: an httptest server // closed while its address is still used later in the same function, written // every way the repository has written it. diff --git a/cmd/audit_test_closed_servers/testdata/planted/flagged/external_test.go b/cmd/audit_test_closed_servers/testdata/planted/flagged/external_test.go index 487511db3..6eb7dce11 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/flagged/external_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/flagged/external_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package flagged_test import ( diff --git a/cmd/audit_test_closed_servers/testdata/planted/flagged/flagged_test.go b/cmd/audit_test_closed_servers/testdata/planted/flagged/flagged_test.go index c71e75002..a1a5c1167 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/flagged/flagged_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/flagged/flagged_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package flagged import ( diff --git a/cmd/audit_test_closed_servers/testdata/planted/flagged/helpers.go b/cmd/audit_test_closed_servers/testdata/planted/flagged/helpers.go index 884048a4b..0910b2958 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/flagged/helpers.go +++ b/cmd/audit_test_closed_servers/testdata/planted/flagged/helpers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package flagged import ( diff --git a/cmd/audit_test_closed_servers/testdata/planted/hidden/doc.go b/cmd/audit_test_closed_servers/testdata/planted/hidden/doc.go index e36ac08ab..b215b514c 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/hidden/doc.go +++ b/cmd/audit_test_closed_servers/testdata/planted/hidden/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package hidden holds files no load of the gate's sets: one that imports // net/http/httptest, which the gate cannot judge and has to say so about, and // one that does not, which it need not mention. diff --git a/cmd/audit_test_closed_servers/testdata/planted/hidden/hidden_test.go b/cmd/audit_test_closed_servers/testdata/planted/hidden/hidden_test.go index 95b9c229b..4ae8a48bb 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/hidden/hidden_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/hidden/hidden_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build neverset package hidden diff --git a/cmd/audit_test_closed_servers/testdata/planted/hidden/quiet_test.go b/cmd/audit_test_closed_servers/testdata/planted/hidden/quiet_test.go index 976db7214..e04b4dfe3 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/hidden/quiet_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/hidden/quiet_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build neverset package hidden diff --git a/cmd/audit_test_closed_servers/testdata/planted/tagged/collectore2e_test.go b/cmd/audit_test_closed_servers/testdata/planted/tagged/collectore2e_test.go index a6eb911e0..0af265ef9 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/tagged/collectore2e_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/tagged/collectore2e_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build collectore2e package tagged diff --git a/cmd/audit_test_closed_servers/testdata/planted/tagged/doc.go b/cmd/audit_test_closed_servers/testdata/planted/tagged/doc.go index 6b0d8e643..50c09b2e5 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/tagged/doc.go +++ b/cmd/audit_test_closed_servers/testdata/planted/tagged/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package tagged holds one finding behind each build tag the repository's // end-to-end suites use, so a load that dropped a tag would miss its finding. package tagged diff --git a/cmd/audit_test_closed_servers/testdata/planted/tagged/e2e_test.go b/cmd/audit_test_closed_servers/testdata/planted/tagged/e2e_test.go index f04a1646b..064338462 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/tagged/e2e_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/tagged/e2e_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build e2e package tagged diff --git a/cmd/audit_test_closed_servers/testdata/planted/tagged/httpe2e_test.go b/cmd/audit_test_closed_servers/testdata/planted/tagged/httpe2e_test.go index 7ae038b31..634bb15c3 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/tagged/httpe2e_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/tagged/httpe2e_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build httpe2e package tagged diff --git a/cmd/audit_test_closed_servers/testdata/planted/tagged/orbitlive_test.go b/cmd/audit_test_closed_servers/testdata/planted/tagged/orbitlive_test.go index bc2e4aca0..b3766147a 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/tagged/orbitlive_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/tagged/orbitlive_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build orbitlive package tagged diff --git a/cmd/audit_test_closed_servers/testdata/planted/tagged/stdioe2e_test.go b/cmd/audit_test_closed_servers/testdata/planted/tagged/stdioe2e_test.go index e44556fd9..b2e97232d 100644 --- a/cmd/audit_test_closed_servers/testdata/planted/tagged/stdioe2e_test.go +++ b/cmd/audit_test_closed_servers/testdata/planted/tagged/stdioe2e_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build stdioe2e package tagged diff --git a/cmd/audit_test_closed_servers/values.go b/cmd/audit_test_closed_servers/values.go index ade094e18..1b4fa99b1 100644 --- a/cmd/audit_test_closed_servers/values.go +++ b/cmd/audit_test_closed_servers/values.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_goroutines/doc.go b/cmd/audit_test_goroutines/doc.go index 549eac196..22aa214d5 100644 --- a/cmd/audit_test_goroutines/doc.go +++ b/cmd/audit_test_goroutines/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_test_goroutines detects testing.T abort calls made from // goroutines other than the one running the test. // diff --git a/cmd/audit_test_goroutines/main.go b/cmd/audit_test_goroutines/main.go index f48477a7f..f3a525265 100644 --- a/cmd/audit_test_goroutines/main.go +++ b/cmd/audit_test_goroutines/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_goroutines/main_test.go b/cmd/audit_test_goroutines/main_test.go index bc6987f50..33018a8c9 100644 --- a/cmd/audit_test_goroutines/main_test.go +++ b/cmd/audit_test_goroutines/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package main tests the goroutine-boundary assertion auditor against a // fixture file covering every boundary kind and both site categories. package main diff --git a/cmd/audit_test_names/doc.go b/cmd/audit_test_names/doc.go index 5c2cc765e..4a8061bd9 100644 --- a/cmd/audit_test_names/doc.go +++ b/cmd/audit_test_names/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_test_names scans all Go test files and classifies test // function names by their naming pattern. It outputs a CSV report with // columns: file, current_name, pattern, suggested_name. diff --git a/cmd/audit_test_names/files.go b/cmd/audit_test_names/files.go index 10f77ec83..d86dedc4f 100644 --- a/cmd/audit_test_names/files.go +++ b/cmd/audit_test_names/files.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // files.go implements the -check-files mode: the test-file naming // convention, as a gate. // diff --git a/cmd/audit_test_names/files_test.go b/cmd/audit_test_names/files_test.go index 980a56c7b..17356e9c9 100644 --- a/cmd/audit_test_names/files_test.go +++ b/cmd/audit_test_names/files_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // files_test.go covers the -check-files mode: the test-file naming // convention and each of its codified exemptions, exercised against // directory trees written into t.TempDir(). diff --git a/cmd/audit_test_names/main.go b/cmd/audit_test_names/main.go index 95f81f3bf..a30ec7390 100644 --- a/cmd/audit_test_names/main.go +++ b/cmd/audit_test_names/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_names/main_test.go b/cmd/audit_test_names/main_test.go index 26e97532f..3a07eb61b 100644 --- a/cmd/audit_test_names/main_test.go +++ b/cmd/audit_test_names/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the audit_test_names command's classification rules // and CSV/stderr output contract. // diff --git a/cmd/audit_test_subtests/doc.go b/cmd/audit_test_subtests/doc.go index 10803bdad..1093015b9 100644 --- a/cmd/audit_test_subtests/doc.go +++ b/cmd/audit_test_subtests/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_test_subtests finds case loops in test functions that assert // without opening a subtest, and can rewrite the mechanical ones. // diff --git a/cmd/audit_test_subtests/main.go b/cmd/audit_test_subtests/main.go index ca146a024..519b47188 100644 --- a/cmd/audit_test_subtests/main.go +++ b/cmd/audit_test_subtests/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_test_subtests/main_test.go b/cmd/audit_test_subtests/main_test.go index f64431ad3..9512949ac 100644 --- a/cmd/audit_test_subtests/main_test.go +++ b/cmd/audit_test_subtests/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package main tests the case-loop subtest auditor and its rewriter against // fixture files covering every table shape, the escape hatch, and the // control-flow blockers. diff --git a/cmd/audit_tokens/doc.go b/cmd/audit_tokens/doc.go index 57df22ff3..bb60a1fe4 100644 --- a/cmd/audit_tokens/doc.go +++ b/cmd/audit_tokens/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command audit_tokens measures the LLM context window overhead of all // registered MCP tool definitions. It reads the individual, meta and dynamic // surfaces through cmd/internal/mcpsurface, serializes the definitions a diff --git a/cmd/audit_tokens/main.go b/cmd/audit_tokens/main.go index 50e3400da..769553574 100644 --- a/cmd/audit_tokens/main.go +++ b/cmd/audit_tokens/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tokens/main_test.go b/cmd/audit_tokens/main_test.go index 8915e277f..d8cdc99ec 100644 --- a/cmd/audit_tokens/main_test.go +++ b/cmd/audit_tokens/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go contains focused tests for the audit_tokens command. Tests use // a local GitLab version mock and exercise the resource token measurement path // that depends on the surface-aware tool manifest resources. diff --git a/cmd/audit_tokens/model_facing.go b/cmd/audit_tokens/model_facing.go index 57095d7e5..29200299d 100644 --- a/cmd/audit_tokens/model_facing.go +++ b/cmd/audit_tokens/model_facing.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // model_facing.go narrows what the token footprint counts to what a model // actually receives. // diff --git a/cmd/audit_tokens/model_facing_test.go b/cmd/audit_tokens/model_facing_test.go index 8f6e19c01..021e39697 100644 --- a/cmd/audit_tokens/model_facing_test.go +++ b/cmd/audit_tokens/model_facing_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // model_facing_test.go verifies that the footprint measurement counts what a // model receives rather than what crosses the wire. package main diff --git a/cmd/audit_tokens/tokens.go b/cmd/audit_tokens/tokens.go index be8be8c5d..75027fc1f 100644 --- a/cmd/audit_tokens/tokens.go +++ b/cmd/audit_tokens/tokens.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/audit_tokens/tokens_test.go b/cmd/audit_tokens/tokens_test.go index a2ec874ee..a6909fb85 100644 --- a/cmd/audit_tokens/tokens_test.go +++ b/cmd/audit_tokens/tokens_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/bench_resources/chart.go b/cmd/bench_resources/chart.go index 293bd462a..22dc4bd5e 100644 --- a/cmd/bench_resources/chart.go +++ b/cmd/bench_resources/chart.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // chart.go draws the figures, in Go, as SVG, with no browser and no // JavaScript anywhere in the pipeline. // diff --git a/cmd/bench_resources/chart_test.go b/cmd/bench_resources/chart_test.go index 2cc37843f..d2b453af5 100644 --- a/cmd/bench_resources/chart_test.go +++ b/cmd/bench_resources/chart_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // chart_test.go covers the SVG renderer: the axis arithmetic, the properties a // published figure has to have, and above all determinism, since a chart that // changed between renderings could never be verified against the record it diff --git a/cmd/bench_resources/doc.go b/cmd/bench_resources/doc.go index 9d405fa9e..a501dcc5e 100644 --- a/cmd/bench_resources/doc.go +++ b/cmd/bench_resources/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command bench_resources measures what this server costs to run, and draws // the charts the documentation publishes. // diff --git a/cmd/bench_resources/fairness.go b/cmd/bench_resources/fairness.go index 03cd5b741..ef0398469 100644 --- a/cmd/bench_resources/fairness.go +++ b/cmd/bench_resources/fairness.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // fairness.go declares what a fairness comparison is: two populations of // credentials driven differently, one bound, and two arms. // diff --git a/cmd/bench_resources/fairness_result.go b/cmd/bench_resources/fairness_result.go index ed8fbcfcb..398653fc1 100644 --- a/cmd/bench_resources/fairness_result.go +++ b/cmd/bench_resources/fairness_result.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // fairness_result.go is the document a fairness run writes and the verdict it // computes. // diff --git a/cmd/bench_resources/fairness_result_test.go b/cmd/bench_resources/fairness_result_test.go index e19fd71b1..53d920822 100644 --- a/cmd/bench_resources/fairness_result_test.go +++ b/cmd/bench_resources/fairness_result_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/bench_resources/fairness_run.go b/cmd/bench_resources/fairness_run.go index 2a57ecb46..074db5535 100644 --- a/cmd/bench_resources/fairness_run.go +++ b/cmd/bench_resources/fairness_run.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // fairness_run.go drives a fairness comparison: two populations, two arms, and // a tally that keeps served and refused apart. // diff --git a/cmd/bench_resources/fairness_run_test.go b/cmd/bench_resources/fairness_run_test.go index 2af13b4e0..2a5b26b4e 100644 --- a/cmd/bench_resources/fairness_run_test.go +++ b/cmd/bench_resources/fairness_run_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/bench_resources/fairness_test.go b/cmd/bench_resources/fairness_test.go index 1b95a5f00..15b8ff5a7 100644 --- a/cmd/bench_resources/fairness_test.go +++ b/cmd/bench_resources/fairness_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/bench_resources/figures.go b/cmd/bench_resources/figures.go index 464490242..b79082023 100644 --- a/cmd/bench_resources/figures.go +++ b/cmd/bench_resources/figures.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // figures.go turns one measurement record into the four figures the // documentation publishes, and carries the strings each language needs. // diff --git a/cmd/bench_resources/figures_test.go b/cmd/bench_resources/figures_test.go index 5d71f2761..45c3c5283 100644 --- a/cmd/bench_resources/figures_test.go +++ b/cmd/bench_resources/figures_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // figures_test.go covers turning a record into figures: which scenario each // series is drawn from, what happens to a partial record, and the language // bundles the Spanish page depends on. diff --git a/cmd/bench_resources/held.go b/cmd/bench_resources/held.go index dc57521f2..fe016f5fa 100644 --- a/cmd/bench_resources/held.go +++ b/cmd/bench_resources/held.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // held.go measures what a request the server holds open costs it, and what // the process does once it is asked to hold more than it can: the measurement // the held-request ceiling (register row HLD-011, issue 951) is sized from. diff --git a/cmd/bench_resources/held_test.go b/cmd/bench_resources/held_test.go index 84594802e..2e62afff6 100644 --- a/cmd/bench_resources/held_test.go +++ b/cmd/bench_resources/held_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // held_test.go covers the held-request mode: the flags it reads, how a step // files each call, when a step is sampled, what a sample takes from the // process, and the whole ladder driven against the stand-in. diff --git a/cmd/bench_resources/host.go b/cmd/bench_resources/host.go index 6714aea63..0af740fd9 100644 --- a/cmd/bench_resources/host.go +++ b/cmd/bench_resources/host.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // host.go records the machine a measurement came from. // // Everything here is best-effort by design: a missing CPU model makes the diff --git a/cmd/bench_resources/host_test.go b/cmd/bench_resources/host_test.go index 07cc667a3..ca614ce13 100644 --- a/cmd/bench_resources/host_test.go +++ b/cmd/bench_resources/host_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // host_test.go covers recording the machine a measurement came from: the two // /proc parsers, and the sentence the documentation page prints. package main diff --git a/cmd/bench_resources/main.go b/cmd/bench_resources/main.go index e168f3048..59a128b70 100644 --- a/cmd/bench_resources/main.go +++ b/cmd/bench_resources/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/bench_resources/main_test.go b/cmd/bench_resources/main_test.go index 3a4f555f3..7c42f337e 100644 --- a/cmd/bench_resources/main_test.go +++ b/cmd/bench_resources/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the command's own decisions: which matrix a set of flags // selects, and the guard that keeps a smoke run from overwriting published // measurements. diff --git a/cmd/bench_resources/matrix.go b/cmd/bench_resources/matrix.go index c3e1e58ea..39340a0dc 100644 --- a/cmd/bench_resources/matrix.go +++ b/cmd/bench_resources/matrix.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // matrix.go declares what gets measured. // // The axes are the ones that actually move the numbers: the transport, because diff --git a/cmd/bench_resources/matrix_test.go b/cmd/bench_resources/matrix_test.go index c4985a36a..27fa582fb 100644 --- a/cmd/bench_resources/matrix_test.go +++ b/cmd/bench_resources/matrix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // matrix_test.go covers what gets measured: the published matrix's shape, the // filter that selects part of it, and the per-surface tool call, whose name // differs per surface and must exist on the surface it is used with. diff --git a/cmd/bench_resources/presenter.go b/cmd/bench_resources/presenter.go index 05c321938..f1fb80c0a 100644 --- a/cmd/bench_resources/presenter.go +++ b/cmd/bench_resources/presenter.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // presenter.go presents the credentials a verification bound is reached by. // // A bound on verification cannot be reached by a lane's own credential, which diff --git a/cmd/bench_resources/presenter_test.go b/cmd/bench_resources/presenter_test.go index 09b13b167..57244e410 100644 --- a/cmd/bench_resources/presenter_test.go +++ b/cmd/bench_resources/presenter_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/bench_resources/proc_sample.go b/cmd/bench_resources/proc_sample.go index e8a316942..70d82aa6d 100644 --- a/cmd/bench_resources/proc_sample.go +++ b/cmd/bench_resources/proc_sample.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // proc_sample.go reads what the operating system says about the server // processes under measurement. // diff --git a/cmd/bench_resources/proc_sample_test.go b/cmd/bench_resources/proc_sample_test.go index 3d7be2351..38b100aea 100644 --- a/cmd/bench_resources/proc_sample_test.go +++ b/cmd/bench_resources/proc_sample_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // proc_sample_test.go covers the parsers that turn what the operating system // says into the resident-set and processor-time figures the page publishes, // and the goroutine count read out of a runtime traceback. diff --git a/cmd/bench_resources/profiles.go b/cmd/bench_resources/profiles.go index b7582eeb9..2b04c7265 100644 --- a/cmd/bench_resources/profiles.go +++ b/cmd/bench_resources/profiles.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // profiles.go reads profiles off the server's pprof listener and writes // them beside the record. // diff --git a/cmd/bench_resources/profiles_test.go b/cmd/bench_resources/profiles_test.go index 4a4f209e0..71d373875 100644 --- a/cmd/bench_resources/profiles_test.go +++ b/cmd/bench_resources/profiles_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // profiles_test.go covers reading profiles off a pprof listener and writing // them beside the record, against the real handlers served in-process rather // than a canned answer, so the parsing cannot drift from what the runtime diff --git a/cmd/bench_resources/render.go b/cmd/bench_resources/render.go index 3cf832272..6fa139d38 100644 --- a/cmd/bench_resources/render.go +++ b/cmd/bench_resources/render.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // render.go writes everything the record implies: the SVG pairs and the block // of tables, in each language of the documentation site. // diff --git a/cmd/bench_resources/render_test.go b/cmd/bench_resources/render_test.go index 100c61e5b..08844e4db 100644 --- a/cmd/bench_resources/render_test.go +++ b/cmd/bench_resources/render_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // render_test.go covers the artifacts a record turns into: the chart files and // the generated block in each language of the site, and the -check mode that // gates all of them. diff --git a/cmd/bench_resources/result.go b/cmd/bench_resources/result.go index fb0ee8429..4b96f6e5c 100644 --- a/cmd/bench_resources/result.go +++ b/cmd/bench_resources/result.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // result.go defines the measurement record this command writes and every // generator downstream of it reads. // diff --git a/cmd/bench_resources/result_test.go b/cmd/bench_resources/result_test.go index dc51860cf..44ea0289c 100644 --- a/cmd/bench_resources/result_test.go +++ b/cmd/bench_resources/result_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // result_test.go covers the measurement record: the percentile summary the // published tables are built from, the unit conversions, and the round trip // through the JSON file every renderer reads. diff --git a/cmd/bench_resources/rpc.go b/cmd/bench_resources/rpc.go index 371604e28..be881e23e 100644 --- a/cmd/bench_resources/rpc.go +++ b/cmd/bench_resources/rpc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // rpc.go speaks JSON-RPC to the server directly, on both transports. // // The Go SDK's client is deliberately not used here, and the reason is a diff --git a/cmd/bench_resources/rpc_test.go b/cmd/bench_resources/rpc_test.go index edb4abc2d..70342b470 100644 --- a/cmd/bench_resources/rpc_test.go +++ b/cmd/bench_resources/rpc_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // rpc_test.go covers the JSON-RPC client the measurements are taken with: the // request shape protocol 2026-07-28 requires, the two response framings the // server uses, and the demultiplexing that lets parallel requests share one diff --git a/cmd/bench_resources/run.go b/cmd/bench_resources/run.go index 7692bc3ef..4be6b2323 100644 --- a/cmd/bench_resources/run.go +++ b/cmd/bench_resources/run.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // run.go executes one scenario end to end. // // The order of the phases is the measurement. A server is started, sampled diff --git a/cmd/bench_resources/run_test.go b/cmd/bench_resources/run_test.go index 7fb383955..e968f14d8 100644 --- a/cmd/bench_resources/run_test.go +++ b/cmd/bench_resources/run_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // run_test.go covers the parts of a scenario run that can be decided without // starting a server: what the record is allowed to claim about processor time // when a sample is missing or goes backwards, which processes the sampler is diff --git a/cmd/bench_resources/series.go b/cmd/bench_resources/series.go index 572145e3e..04286cbad 100644 --- a/cmd/bench_resources/series.go +++ b/cmd/bench_resources/series.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // series.go steps one HTTP process through more and more credentials, and // profiles it at each step. // diff --git a/cmd/bench_resources/series_test.go b/cmd/bench_resources/series_test.go index 1a02c1391..60e3cb46c 100644 --- a/cmd/bench_resources/series_test.go +++ b/cmd/bench_resources/series_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // series_test.go covers the concurrency series: the guard that keeps it from // taking the host down, the reasons it records for stopping, the batched // admission, the steady phase, and a walk through the steps against fakes, diff --git a/cmd/bench_resources/sessions.go b/cmd/bench_resources/sessions.go index adf60999b..b164582b9 100644 --- a/cmd/bench_resources/sessions.go +++ b/cmd/bench_resources/sessions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sessions.go measures what a stateful session costs the server, and what the // process does with more of them than it can hold: the measurement the // stateful-session ceiling (register row HLD-010, issue 951) is sized from. diff --git a/cmd/bench_resources/sessions_test.go b/cmd/bench_resources/sessions_test.go index cfced9058..8a955129e 100644 --- a/cmd/bench_resources/sessions_test.go +++ b/cmd/bench_resources/sessions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sessions_test.go covers the stateful-session mode: the flags it reads, the // client that opens, pings and ends a session, how a step files each open and // counts the sessions the server still holds, and the whole ladder driven diff --git a/cmd/bench_resources/stubs.go b/cmd/bench_resources/stubs.go index 2017af5be..ec9067481 100644 --- a/cmd/bench_resources/stubs.go +++ b/cmd/bench_resources/stubs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // stubs.go stands in for the two services the server talks to, so a benchmark // needs neither a GitLab instance nor a collector. // diff --git a/cmd/bench_resources/stubs_test.go b/cmd/bench_resources/stubs_test.go index dc436aaed..31a62fac2 100644 --- a/cmd/bench_resources/stubs_test.go +++ b/cmd/bench_resources/stubs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // stubs_test.go covers the two stand-in servers a scenario runs against. // // They exist so a measurement needs no GitLab instance, no credentials and no diff --git a/cmd/bench_resources/target.go b/cmd/bench_resources/target.go index 9ec7bc24e..f87b27f85 100644 --- a/cmd/bench_resources/target.go +++ b/cmd/bench_resources/target.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // target.go starts the server the way a client starts it, on each transport. // // The measured process is the real binary, built from cmd/server, and not a diff --git a/cmd/bench_resources/target_test.go b/cmd/bench_resources/target_test.go index 20cec7ee6..a3ab0a5c6 100644 --- a/cmd/bench_resources/target_test.go +++ b/cmd/bench_resources/target_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // target_test.go covers what a measured process is handed before it starts: // the environment it inherits, the buffer that collects its two output streams // while it is still running, and the port reservation. diff --git a/cmd/bench_resources/testdata/standin/main.go b/cmd/bench_resources/testdata/standin/main.go index 2f4d955ea..6c57a6db5 100644 --- a/cmd/bench_resources/testdata/standin/main.go +++ b/cmd/bench_resources/testdata/standin/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command standin is the server the benchmark's tests measure instead of the // real one. // diff --git a/cmd/bench_resources/theme.go b/cmd/bench_resources/theme.go index 1aa295f68..082d7d0c3 100644 --- a/cmd/bench_resources/theme.go +++ b/cmd/bench_resources/theme.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // theme.go reads the chart palette out of the documentation site's stylesheet. // // The charts are published beside the site's own prose, so they are painted diff --git a/cmd/bench_resources/theme_test.go b/cmd/bench_resources/theme_test.go index 744f04029..ee715fcb7 100644 --- a/cmd/bench_resources/theme_test.go +++ b/cmd/bench_resources/theme_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // theme_test.go covers reading the chart palette out of the site's stylesheet, // including the failure the arrangement exists to catch: a token that moved, // was renamed, or became a var() reference a chart cannot resolve. diff --git a/cmd/bench_resources/variant.go b/cmd/bench_resources/variant.go index be32e2772..a0692ab29 100644 --- a/cmd/bench_resources/variant.go +++ b/cmd/bench_resources/variant.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // variant.go builds the arm a bound with no switch is compared against. // // Every other bound here is put in force and taken out by the switches a diff --git a/cmd/bench_resources/variant_test.go b/cmd/bench_resources/variant_test.go index 4fbb6e161..95ff0509a 100644 --- a/cmd/bench_resources/variant_test.go +++ b/cmd/bench_resources/variant_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/format_md_tables/doc.go b/cmd/format_md_tables/doc.go index ffeddf208..b77a687d8 100644 --- a/cmd/format_md_tables/doc.go +++ b/cmd/format_md_tables/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command format_md_tables normalizes Markdown pipe tables in README.md, docs/ // and the Astro documentation site under site/src/content/docs/. // diff --git a/cmd/format_md_tables/main.go b/cmd/format_md_tables/main.go index 1f83a9283..d12dda467 100644 --- a/cmd/format_md_tables/main.go +++ b/cmd/format_md_tables/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/format_md_tables/main_test.go b/cmd/format_md_tables/main_test.go index 3b4f64427..6e34c1056 100644 --- a/cmd/format_md_tables/main_test.go +++ b/cmd/format_md_tables/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the format_md_tables command, which normalizes // Markdown pipe tables in README.md and docs/. // diff --git a/cmd/fuzz_targets/doc.go b/cmd/fuzz_targets/doc.go index da73830d6..9ace317fd 100644 --- a/cmd/fuzz_targets/doc.go +++ b/cmd/fuzz_targets/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command fuzz_targets lists this module's fuzz targets as the matrix that // .github/workflows/fuzz.yml fans out over. // diff --git a/cmd/fuzz_targets/main.go b/cmd/fuzz_targets/main.go index cb6cd548d..aeb254f20 100644 --- a/cmd/fuzz_targets/main.go +++ b/cmd/fuzz_targets/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/fuzz_targets/main_test.go b/cmd/fuzz_targets/main_test.go index 58ea06440..0160e5fd5 100644 --- a/cmd/fuzz_targets/main_test.go +++ b/cmd/fuzz_targets/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/fuzz_targets/targets.go b/cmd/fuzz_targets/targets.go index ca60b0dc8..eaee11c78 100644 --- a/cmd/fuzz_targets/targets.go +++ b/cmd/fuzz_targets/targets.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/fuzz_targets/targets_test.go b/cmd/fuzz_targets/targets_test.go index 33a080a80..3f4e967e5 100644 --- a/cmd/fuzz_targets/targets_test.go +++ b/cmd/fuzz_targets/targets_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_catalog_manifest/doc.go b/cmd/gen_action_catalog_manifest/doc.go index 7b06b7e36..11eb166ce 100644 --- a/cmd/gen_action_catalog_manifest/doc.go +++ b/cmd/gen_action_catalog_manifest/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_action_catalog_manifest generates the ActionSpec group builder // manifest used by the catalog-first runtime. package main diff --git a/cmd/gen_action_catalog_manifest/main.go b/cmd/gen_action_catalog_manifest/main.go index 5e5f77093..28694b278 100644 --- a/cmd/gen_action_catalog_manifest/main.go +++ b/cmd/gen_action_catalog_manifest/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_catalog_manifest/main_test.go b/cmd/gen_action_catalog_manifest/main_test.go index 809b9bbe4..ecc4bc040 100644 --- a/cmd/gen_action_catalog_manifest/main_test.go +++ b/cmd/gen_action_catalog_manifest/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the gen_action_catalog_manifest generator. // // Tests verify deterministic builder discovery (sorted output, exclusion of diff --git a/cmd/gen_action_grants/classic_declarations.go b/cmd/gen_action_grants/classic_declarations.go index c2ae258f9..26e5d2c4e 100644 --- a/cmd/gen_action_grants/classic_declarations.go +++ b/cmd/gen_action_grants/classic_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/doc.go b/cmd/gen_action_grants/doc.go index 59dc42314..4b2f33cb4 100644 --- a/cmd/gen_action_grants/doc.go +++ b/cmd/gen_action_grants/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_action_grants derives what every catalog action sends GitLab // from its handlers and joins each request to what the live GitLab record // says a fine-grained personal access token needs for it. diff --git a/cmd/gen_action_grants/gates.go b/cmd/gen_action_grants/gates.go index 1553958ad..a7092ca1f 100644 --- a/cmd/gen_action_grants/gates.go +++ b/cmd/gen_action_grants/gates.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/gates_test.go b/cmd/gen_action_grants/gates_test.go index b8f838180..9388944b1 100644 --- a/cmd/gen_action_grants/gates_test.go +++ b/cmd/gen_action_grants/gates_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/grant_declarations.go b/cmd/gen_action_grants/grant_declarations.go index dd85ee360..0213ed874 100644 --- a/cmd/gen_action_grants/grant_declarations.go +++ b/cmd/gen_action_grants/grant_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/internal/derive/build.go b/cmd/gen_action_grants/internal/derive/build.go index 6948a921b..40d8eb74e 100644 --- a/cmd/gen_action_grants/internal/derive/build.go +++ b/cmd/gen_action_grants/internal/derive/build.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/build_test.go b/cmd/gen_action_grants/internal/derive/build_test.go index 7d5a61a94..288348810 100644 --- a/cmd/gen_action_grants/internal/derive/build_test.go +++ b/cmd/gen_action_grants/internal/derive/build_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/derive.go b/cmd/gen_action_grants/internal/derive/derive.go index 9585074dc..6ce408a5a 100644 --- a/cmd/gen_action_grants/internal/derive/derive.go +++ b/cmd/gen_action_grants/internal/derive/derive.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/derive_test.go b/cmd/gen_action_grants/internal/derive/derive_test.go index a3224fe2f..8e5ae10bc 100644 --- a/cmd/gen_action_grants/internal/derive/derive_test.go +++ b/cmd/gen_action_grants/internal/derive/derive_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/directive.go b/cmd/gen_action_grants/internal/derive/directive.go index d0cb91cbd..f201621e7 100644 --- a/cmd/gen_action_grants/internal/derive/directive.go +++ b/cmd/gen_action_grants/internal/derive/directive.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/doc.go b/cmd/gen_action_grants/internal/derive/doc.go index f5656083e..6dc980732 100644 --- a/cmd/gen_action_grants/internal/derive/doc.go +++ b/cmd/gen_action_grants/internal/derive/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package derive answers, for every catalog action, which requests its // handler can put on the wire and how they combine. // diff --git a/cmd/gen_action_grants/internal/derive/expand.go b/cmd/gen_action_grants/internal/derive/expand.go index ba01ed19f..56802ee27 100644 --- a/cmd/gen_action_grants/internal/derive/expand.go +++ b/cmd/gen_action_grants/internal/derive/expand.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/expand_test.go b/cmd/gen_action_grants/internal/derive/expand_test.go index 121a5c1b1..29c4210cd 100644 --- a/cmd/gen_action_grants/internal/derive/expand_test.go +++ b/cmd/gen_action_grants/internal/derive/expand_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/paths.go b/cmd/gen_action_grants/internal/derive/paths.go index 7b82f0ee8..862414c1e 100644 --- a/cmd/gen_action_grants/internal/derive/paths.go +++ b/cmd/gen_action_grants/internal/derive/paths.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/rawpath.go b/cmd/gen_action_grants/internal/derive/rawpath.go index 260ef32e0..cb4700519 100644 --- a/cmd/gen_action_grants/internal/derive/rawpath.go +++ b/cmd/gen_action_grants/internal/derive/rawpath.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/rawpath_test.go b/cmd/gen_action_grants/internal/derive/rawpath_test.go index 64a1f6b5c..4f0ccf968 100644 --- a/cmd/gen_action_grants/internal/derive/rawpath_test.go +++ b/cmd/gen_action_grants/internal/derive/rawpath_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/derive/request.go b/cmd/gen_action_grants/internal/derive/request.go index acb680bd4..a2ea124ee 100644 --- a/cmd/gen_action_grants/internal/derive/request.go +++ b/cmd/gen_action_grants/internal/derive/request.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package derive import ( diff --git a/cmd/gen_action_grants/internal/join/doc.go b/cmd/gen_action_grants/internal/join/doc.go index 9f9d4f516..b11a1dbcd 100644 --- a/cmd/gen_action_grants/internal/join/doc.go +++ b/cmd/gen_action_grants/internal/join/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package join joins what each action requests to what GitLab demands of a // fine-grained token for each request, into the table the server carries. // diff --git a/cmd/gen_action_grants/internal/join/graphql.go b/cmd/gen_action_grants/internal/join/graphql.go index 33df31617..63328ac7d 100644 --- a/cmd/gen_action_grants/internal/join/graphql.go +++ b/cmd/gen_action_grants/internal/join/graphql.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package join import ( diff --git a/cmd/gen_action_grants/internal/join/rest.go b/cmd/gen_action_grants/internal/join/rest.go index bff5a36cf..0414dfdec 100644 --- a/cmd/gen_action_grants/internal/join/rest.go +++ b/cmd/gen_action_grants/internal/join/rest.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package join import ( diff --git a/cmd/gen_action_grants/internal/join/rest_test.go b/cmd/gen_action_grants/internal/join/rest_test.go index 74942ed9b..1f0474c68 100644 --- a/cmd/gen_action_grants/internal/join/rest_test.go +++ b/cmd/gen_action_grants/internal/join/rest_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package join import ( diff --git a/cmd/gen_action_grants/internal/join/table.go b/cmd/gen_action_grants/internal/join/table.go index cce1e7dca..b78566788 100644 --- a/cmd/gen_action_grants/internal/join/table.go +++ b/cmd/gen_action_grants/internal/join/table.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package join import ( diff --git a/cmd/gen_action_grants/internal/join/table_test.go b/cmd/gen_action_grants/internal/join/table_test.go index 39bf046f1..3cedb6bb8 100644 --- a/cmd/gen_action_grants/internal/join/table_test.go +++ b/cmd/gen_action_grants/internal/join/table_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package join import ( diff --git a/cmd/gen_action_grants/main.go b/cmd/gen_action_grants/main.go index 6b8371cdb..55ac10f28 100644 --- a/cmd/gen_action_grants/main.go +++ b/cmd/gen_action_grants/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/main_test.go b/cmd/gen_action_grants/main_test.go index 4a40426dc..8ac1d5d5e 100644 --- a/cmd/gen_action_grants/main_test.go +++ b/cmd/gen_action_grants/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/reference_md.go b/cmd/gen_action_grants/reference_md.go index 64e13c5fd..596022bf4 100644 --- a/cmd/gen_action_grants/reference_md.go +++ b/cmd/gen_action_grants/reference_md.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/reference_md_test.go b/cmd/gen_action_grants/reference_md_test.go index 97592771f..d212ef763 100644 --- a/cmd/gen_action_grants/reference_md_test.go +++ b/cmd/gen_action_grants/reference_md_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/request_declarations.go b/cmd/gen_action_grants/request_declarations.go index 055500a48..4690af1c8 100644 --- a/cmd/gen_action_grants/request_declarations.go +++ b/cmd/gen_action_grants/request_declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/request_declarations_test.go b/cmd/gen_action_grants/request_declarations_test.go index 037edf405..757681659 100644 --- a/cmd/gen_action_grants/request_declarations_test.go +++ b/cmd/gen_action_grants/request_declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/requests_json.go b/cmd/gen_action_grants/requests_json.go index dade5a08f..db7fa36c4 100644 --- a/cmd/gen_action_grants/requests_json.go +++ b/cmd/gen_action_grants/requests_json.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/requests_json_test.go b/cmd/gen_action_grants/requests_json_test.go index 58e5ed8e2..eb3dc24d9 100644 --- a/cmd/gen_action_grants/requests_json_test.go +++ b/cmd/gen_action_grants/requests_json_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/sdk.go b/cmd/gen_action_grants/sdk.go index 3b59dec3c..43b141567 100644 --- a/cmd/gen_action_grants/sdk.go +++ b/cmd/gen_action_grants/sdk.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/sdk_test.go b/cmd/gen_action_grants/sdk_test.go index cfb4eb925..09da53ce4 100644 --- a/cmd/gen_action_grants/sdk_test.go +++ b/cmd/gen_action_grants/sdk_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/table_go.go b/cmd/gen_action_grants/table_go.go index 600c6c427..715ad11d5 100644 --- a/cmd/gen_action_grants/table_go.go +++ b/cmd/gen_action_grants/table_go.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_action_grants/table_go_test.go b/cmd/gen_action_grants/table_go_test.go index 75eceebab..997f60af2 100644 --- a/cmd/gen_action_grants/table_go_test.go +++ b/cmd/gen_action_grants/table_go_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_api_live/authorization.go b/cmd/gen_api_live/authorization.go index aeaa4f57d..0d54c7e14 100644 --- a/cmd/gen_api_live/authorization.go +++ b/cmd/gen_api_live/authorization.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_api_live/authorization_test.go b/cmd/gen_api_live/authorization_test.go index 9daf2c1f5..c12ab39cb 100644 --- a/cmd/gen_api_live/authorization_test.go +++ b/cmd/gen_api_live/authorization_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_api_live/doc.go b/cmd/gen_api_live/doc.go index 53b8bf8b4..0a8544704 100644 --- a/cmd/gen_api_live/doc.go +++ b/cmd/gen_api_live/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_api_live pins what a booted GitLab says its own REST API is. // // It boots a released gitlab-ee image, runs one Ruby script inside it through diff --git a/cmd/gen_api_live/introspect.rb b/cmd/gen_api_live/introspect.rb index 0dd3a20f0..6ce62667b 100644 --- a/cmd/gen_api_live/introspect.rb +++ b/cmd/gen_api_live/introspect.rb @@ -1,3 +1,6 @@ +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Ask a booted GitLab what its REST API is, by asking the loaded application # rather than by reading its source. # diff --git a/cmd/gen_api_live/main.go b/cmd/gen_api_live/main.go index 31111cde3..987acf5d9 100644 --- a/cmd/gen_api_live/main.go +++ b/cmd/gen_api_live/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_api_live/main_test.go b/cmd/gen_api_live/main_test.go index 449034fa3..eb3267fa0 100644 --- a/cmd/gen_api_live/main_test.go +++ b/cmd/gen_api_live/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_api_live/script.go b/cmd/gen_api_live/script.go index 0b01aa895..e90cbd1bb 100644 --- a/cmd/gen_api_live/script.go +++ b/cmd/gen_api_live/script.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // The blank import is what go:embed requires: the directive below is refused diff --git a/cmd/gen_brand/doc.go b/cmd/gen_brand/doc.go index a738bd8af..7c93f1c9a 100644 --- a/cmd/gen_brand/doc.go +++ b/cmd/gen_brand/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_brand emits every vector brand asset from one parametric // geometry, so the mark cannot drift between its surfaces. // diff --git a/cmd/gen_brand/main.go b/cmd/gen_brand/main.go index 03fa5d0d3..7b30597b2 100644 --- a/cmd/gen_brand/main.go +++ b/cmd/gen_brand/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_brand/main_test.go b/cmd/gen_brand/main_test.go index 12e62bc16..a1c5b1c07 100644 --- a/cmd/gen_brand/main_test.go +++ b/cmd/gen_brand/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go validates the brand-asset generator: every emitted SVG is // well-formed, the shared geometry reaches each emitter, and the check // mode detects both a missing and an edited asset. diff --git a/cmd/gen_graphql_schema/artifacts.go b/cmd/gen_graphql_schema/artifacts.go index dabeadf48..c50e6e0f4 100644 --- a/cmd/gen_graphql_schema/artifacts.go +++ b/cmd/gen_graphql_schema/artifacts.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_graphql_schema/artifacts_test.go b/cmd/gen_graphql_schema/artifacts_test.go index 66ee196e8..4b32777f6 100644 --- a/cmd/gen_graphql_schema/artifacts_test.go +++ b/cmd/gen_graphql_schema/artifacts_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_graphql_schema/doc.go b/cmd/gen_graphql_schema/doc.go index 096840485..e4faa43c0 100644 --- a/cmd/gen_graphql_schema/doc.go +++ b/cmd/gen_graphql_schema/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_graphql_schema pins a GitLab GraphQL schema into the repository. // // It introspects a live instance, converts the answer to SDL, and writes the diff --git a/cmd/gen_graphql_schema/main.go b/cmd/gen_graphql_schema/main.go index 688d8091e..2cc071553 100644 --- a/cmd/gen_graphql_schema/main.go +++ b/cmd/gen_graphql_schema/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_graphql_schema/main_test.go b/cmd/gen_graphql_schema/main_test.go index 36712e146..b9ee904f9 100644 --- a/cmd/gen_graphql_schema/main_test.go +++ b/cmd/gen_graphql_schema/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_icon_webp/doc.go b/cmd/gen_icon_webp/doc.go index 3688042c6..d2b5d77b8 100644 --- a/cmd/gen_icon_webp/doc.go +++ b/cmd/gen_icon_webp/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_icon_webp rasterizes the SVG icon constants declared in // internal/toolutil/icons.go into lossless WebP fallbacks for MCP clients // that reject image/svg+xml (VS Code Copilot's mcpIcons.ts MIME allowlist, diff --git a/cmd/gen_icon_webp/main.go b/cmd/gen_icon_webp/main.go index b3728b221..000ac41c1 100644 --- a/cmd/gen_icon_webp/main.go +++ b/cmd/gen_icon_webp/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_icon_webp/main_test.go b/cmd/gen_icon_webp/main_test.go index 28ab40db3..37d9d8f93 100644 --- a/cmd/gen_icon_webp/main_test.go +++ b/cmd/gen_icon_webp/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers icon-asset generation: extracting svg constants // from icons.go's AST, naming their WebP files, and the check/generate // pipeline that reads or writes them. Every test here runs without diff --git a/cmd/gen_lhm_manifest/doc.go b/cmd/gen_lhm_manifest/doc.go index 5ff581e3e..fdae8c92f 100644 --- a/cmd/gen_lhm_manifest/doc.go +++ b/cmd/gen_lhm_manifest/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_lhm_manifest regenerates the tools, prompts, and resources arrays // in lhm.plugin.json, the manifest published to the LobeHub Marketplace. // diff --git a/cmd/gen_lhm_manifest/main.go b/cmd/gen_lhm_manifest/main.go index 06d53758e..d5c6b68f3 100644 --- a/cmd/gen_lhm_manifest/main.go +++ b/cmd/gen_lhm_manifest/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_lhm_manifest/main_test.go b/cmd/gen_lhm_manifest/main_test.go index 9c0e168a6..ac6788e16 100644 --- a/cmd/gen_lhm_manifest/main_test.go +++ b/cmd/gen_lhm_manifest/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers LobeHub manifest generation: the capability arrays are // filled from the registered MCP surface, every other manifest field survives a // regeneration, and a malformed or misspelled manifest fails loudly instead of diff --git a/cmd/gen_llms/doc.go b/cmd/gen_llms/doc.go index ddbf78ba3..43444d015 100644 --- a/cmd/gen_llms/doc.go +++ b/cmd/gen_llms/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_llms generates llms.txt and llms-full.txt files. It creates an // in-memory MCP server with all tools, resources, and prompts registered, // introspects them via the SDK, and writes two files to the project root: diff --git a/cmd/gen_llms/main.go b/cmd/gen_llms/main.go index 2fdf5c5d2..b34ac69b7 100644 --- a/cmd/gen_llms/main.go +++ b/cmd/gen_llms/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_llms/main_test.go b/cmd/gen_llms/main_test.go index 22a5d5f05..14ef0dd87 100644 --- a/cmd/gen_llms/main_test.go +++ b/cmd/gen_llms/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go drives the llms generator end to end through run and covers // each renderer, validator and helper on its own. // diff --git a/cmd/gen_model_corpus/doc.go b/cmd/gen_model_corpus/doc.go index 2f55d0eaa..133e6ebca 100644 --- a/cmd/gen_model_corpus/doc.go +++ b/cmd/gen_model_corpus/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_model_corpus renders the model evaluation corpus breadth // ledger: what the corpus asks about, counted against the action catalog. package main diff --git a/cmd/gen_model_corpus/main.go b/cmd/gen_model_corpus/main.go index acf712041..ddef4145c 100644 --- a/cmd/gen_model_corpus/main.go +++ b/cmd/gen_model_corpus/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_corpus/main_test.go b/cmd/gen_model_corpus/main_test.go index 95636acab..8f0a49285 100644 --- a/cmd/gen_model_corpus/main_test.go +++ b/cmd/gen_model_corpus/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/cases.go b/cmd/gen_model_results/cases.go index f4c2b78a6..527060480 100644 --- a/cmd/gen_model_results/cases.go +++ b/cmd/gen_model_results/cases.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // What each case contributed to a row, and the arithmetic that lets a row be // assembled from more than one run. // diff --git a/cmd/gen_model_results/cases_test.go b/cmd/gen_model_results/cases_test.go index f767f9b0e..a0df1abf5 100644 --- a/cmd/gen_model_results/cases_test.go +++ b/cmd/gen_model_results/cases_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/compare.go b/cmd/gen_model_results/compare.go index 10c4439b1..f189a1107 100644 --- a/cmd/gen_model_results/compare.go +++ b/cmd/gen_model_results/compare.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // compare.go holds the two keys that decide which rows may be read down one // table, and nothing else. // diff --git a/cmd/gen_model_results/compare_test.go b/cmd/gen_model_results/compare_test.go index 4a4d1d210..9d9e2d85a 100644 --- a/cmd/gen_model_results/compare_test.go +++ b/cmd/gen_model_results/compare_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/doc.go b/cmd/gen_model_results/doc.go index e0e0786ee..d159b0b25 100644 --- a/cmd/gen_model_results/doc.go +++ b/cmd/gen_model_results/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_model_results turns what a model evaluation run observed into // what this repository publishes: the committed record and the reference page. // diff --git a/cmd/gen_model_results/dryrun.go b/cmd/gen_model_results/dryrun.go index 7e70b65c5..9ce065a48 100644 --- a/cmd/gen_model_results/dryrun.go +++ b/cmd/gen_model_results/dryrun.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The rehearsal: the whole publishing path run against a throwaway tree, so a // maintainer can read the pages a run would produce before spending anything. // diff --git a/cmd/gen_model_results/dryrun_test.go b/cmd/gen_model_results/dryrun_test.go index 030f06792..676f07e46 100644 --- a/cmd/gen_model_results/dryrun_test.go +++ b/cmd/gen_model_results/dryrun_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/legend.go b/cmd/gen_model_results/legend.go index 73af0ffa8..071d2ca8f 100644 --- a/cmd/gen_model_results/legend.go +++ b/cmd/gen_model_results/legend.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The worked example: one made-up row of each table on this page, with what // every column means beside it. // diff --git a/cmd/gen_model_results/legend_test.go b/cmd/gen_model_results/legend_test.go index 7ece1a09b..d0630ed62 100644 --- a/cmd/gen_model_results/legend_test.go +++ b/cmd/gen_model_results/legend_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/main.go b/cmd/gen_model_results/main.go index 3f806f1ea..902702d25 100644 --- a/cmd/gen_model_results/main.go +++ b/cmd/gen_model_results/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/main_test.go b/cmd/gen_model_results/main_test.go index 0ca78bd3a..87208f40d 100644 --- a/cmd/gen_model_results/main_test.go +++ b/cmd/gen_model_results/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/mergeguard.go b/cmd/gen_model_results/mergeguard.go index 8e6271ed5..8d2707377 100644 --- a/cmd/gen_model_results/mergeguard.go +++ b/cmd/gen_model_results/mergeguard.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // What a merge refuses, and why each refusal is a refusal rather than a // warning. // diff --git a/cmd/gen_model_results/mergeguard_test.go b/cmd/gen_model_results/mergeguard_test.go index 018942ee1..315a82e9e 100644 --- a/cmd/gen_model_results/mergeguard_test.go +++ b/cmd/gen_model_results/mergeguard_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/record.go b/cmd/gen_model_results/record.go index e7a94025c..351c51f5c 100644 --- a/cmd/gen_model_results/record.go +++ b/cmd/gen_model_results/record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // record.go is the committed document: what one published row is, and the fold // from the shards a run wrote to the rows a page is drawn from. // diff --git a/cmd/gen_model_results/record_test.go b/cmd/gen_model_results/record_test.go index 86f04b92d..c5bbee63a 100644 --- a/cmd/gen_model_results/record_test.go +++ b/cmd/gen_model_results/record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/refusals.go b/cmd/gen_model_results/refusals.go index e7f2db02f..c74b770f4 100644 --- a/cmd/gen_model_results/refusals.go +++ b/cmd/gen_model_results/refusals.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // refusals.go is what may not be published, as a table. // // It is a table rather than a chain of conditions in the fold for the reason diff --git a/cmd/gen_model_results/refusals_test.go b/cmd/gen_model_results/refusals_test.go index 004e6e0e1..8edeaaaa8 100644 --- a/cmd/gen_model_results/refusals_test.go +++ b/cmd/gen_model_results/refusals_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_model_results/render.go b/cmd/gen_model_results/render.go index 0c32a54f6..4181486ae 100644 --- a/cmd/gen_model_results/render.go +++ b/cmd/gen_model_results/render.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // render.go draws the five managed blocks of the reference page from the // committed record: a worked example, and four tables carrying the seven // columns, the counts the columns leave out, what the row cost and what diff --git a/cmd/gen_model_results/render_test.go b/cmd/gen_model_results/render_test.go index 705a4c488..0f6a56294 100644 --- a/cmd/gen_model_results/render_test.go +++ b/cmd/gen_model_results/render_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/calls.go b/cmd/gen_orbit_record/calls.go index ba5fe9d46..3ea020345 100644 --- a/cmd/gen_orbit_record/calls.go +++ b/cmd/gen_orbit_record/calls.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/calls_test.go b/cmd/gen_orbit_record/calls_test.go index dd50ce913..5f62d4273 100644 --- a/cmd/gen_orbit_record/calls_test.go +++ b/cmd/gen_orbit_record/calls_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/committed.go b/cmd/gen_orbit_record/committed.go index 9ed271638..69e9f93ca 100644 --- a/cmd/gen_orbit_record/committed.go +++ b/cmd/gen_orbit_record/committed.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/committed_test.go b/cmd/gen_orbit_record/committed_test.go index a0d09ee7f..219cf8474 100644 --- a/cmd/gen_orbit_record/committed_test.go +++ b/cmd/gen_orbit_record/committed_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/doc.go b/cmd/gen_orbit_record/doc.go index 77ec9acf4..2188afddd 100644 --- a/cmd/gen_orbit_record/doc.go +++ b/cmd/gen_orbit_record/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_orbit_record records what GitLab.com's Orbit routes answer and // commits the key tree of each answer to docs/development/orbit-responses.json. // diff --git a/cmd/gen_orbit_record/main.go b/cmd/gen_orbit_record/main.go index 71d777fa8..dd50f9c24 100644 --- a/cmd/gen_orbit_record/main.go +++ b/cmd/gen_orbit_record/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/main_test.go b/cmd/gen_orbit_record/main_test.go index 33ee8433c..250efe280 100644 --- a/cmd/gen_orbit_record/main_test.go +++ b/cmd/gen_orbit_record/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/recorder.go b/cmd/gen_orbit_record/recorder.go index ab811953d..abae79ca8 100644 --- a/cmd/gen_orbit_record/recorder.go +++ b/cmd/gen_orbit_record/recorder.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/recorder_test.go b/cmd/gen_orbit_record/recorder_test.go index 93bdf7549..6c2bb0e49 100644 --- a/cmd/gen_orbit_record/recorder_test.go +++ b/cmd/gen_orbit_record/recorder_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/shape.go b/cmd/gen_orbit_record/shape.go index b4a9dba7e..d82a2ff67 100644 --- a/cmd/gen_orbit_record/shape.go +++ b/cmd/gen_orbit_record/shape.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_orbit_record/shape_test.go b/cmd/gen_orbit_record/shape_test.go index 9d7c8e3ab..15354d003 100644 --- a/cmd/gen_orbit_record/shape_test.go +++ b/cmd/gen_orbit_record/shape_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_request_inventory/coverage.go b/cmd/gen_request_inventory/coverage.go index 43e8f626f..dfa323008 100644 --- a/cmd/gen_request_inventory/coverage.go +++ b/cmd/gen_request_inventory/coverage.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_request_inventory/coverage_test.go b/cmd/gen_request_inventory/coverage_test.go index fef8b09c4..65d54a754 100644 --- a/cmd/gen_request_inventory/coverage_test.go +++ b/cmd/gen_request_inventory/coverage_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // coverage_test.go covers the summary the command prints beside the artifact: // how much of the catalog the recording could see, and how honestly it says // what it could not. diff --git a/cmd/gen_request_inventory/doc.go b/cmd/gen_request_inventory/doc.go index eca039446..742da2d15 100644 --- a/cmd/gen_request_inventory/doc.go +++ b/cmd/gen_request_inventory/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_request_inventory merges the request shards the unit suite // records into the committed inventory of what this server sends GitLab. // diff --git a/cmd/gen_request_inventory/inventory.go b/cmd/gen_request_inventory/inventory.go index 4d388d2c4..555d45fce 100644 --- a/cmd/gen_request_inventory/inventory.go +++ b/cmd/gen_request_inventory/inventory.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_request_inventory/inventory_test.go b/cmd/gen_request_inventory/inventory_test.go index c704d857e..75b2b8c4d 100644 --- a/cmd/gen_request_inventory/inventory_test.go +++ b/cmd/gen_request_inventory/inventory_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // inventory_test.go covers reading the recorder's shards and folding them into // the committed artifact. // diff --git a/cmd/gen_request_inventory/main.go b/cmd/gen_request_inventory/main.go index b874b867a..ece34342c 100644 --- a/cmd/gen_request_inventory/main.go +++ b/cmd/gen_request_inventory/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_request_inventory/main_test.go b/cmd/gen_request_inventory/main_test.go index 0053f02c3..ddac56b50 100644 --- a/cmd/gen_request_inventory/main_test.go +++ b/cmd/gen_request_inventory/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the command's entry point: writing the artifact, and // the check mode that gates it in CI. package main diff --git a/cmd/gen_testing_docs/doc.go b/cmd/gen_testing_docs/doc.go index dc3881520..d95bbbd78 100644 --- a/cmd/gen_testing_docs/doc.go +++ b/cmd/gen_testing_docs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_testing_docs regenerates the managed test metrics section in // docs/development/testing/testing.md. // diff --git a/cmd/gen_testing_docs/main.go b/cmd/gen_testing_docs/main.go index 92b49b437..513a15790 100644 --- a/cmd/gen_testing_docs/main.go +++ b/cmd/gen_testing_docs/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_testing_docs/main_test.go b/cmd/gen_testing_docs/main_test.go index 57f4a17cf..3df6ae5ac 100644 --- a/cmd/gen_testing_docs/main_test.go +++ b/cmd/gen_testing_docs/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the gen_testing_docs generator. // // Tests verify the AST-based test counter, naming-pattern classification, diff --git a/cmd/gen_third_party_notices/doc.go b/cmd/gen_third_party_notices/doc.go index 6bc9b55ca..09f149bb1 100644 --- a/cmd/gen_third_party_notices/doc.go +++ b/cmd/gen_third_party_notices/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_third_party_notices writes THIRD_PARTY_NOTICES: the license, // notice and patent texts of every module built into the release binaries, // read from the binaries' own build information and from the module cache. diff --git a/cmd/gen_third_party_notices/main.go b/cmd/gen_third_party_notices/main.go index ab7eb1272..0001b67db 100644 --- a/cmd/gen_third_party_notices/main.go +++ b/cmd/gen_third_party_notices/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_third_party_notices/main_test.go b/cmd/gen_third_party_notices/main_test.go index 983369d98..59a476a1b 100644 --- a/cmd/gen_third_party_notices/main_test.go +++ b/cmd/gen_third_party_notices/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go drives the command from its arguments: the exit code each // kind of failure gets, the file a successful run writes, and one run against // a real binary with the real `go env`, which is the path the release takes. diff --git a/cmd/gen_third_party_notices/notices.go b/cmd/gen_third_party_notices/notices.go index b7ae2cf6c..7e254e0e9 100644 --- a/cmd/gen_third_party_notices/notices.go +++ b/cmd/gen_third_party_notices/notices.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_third_party_notices/notices_test.go b/cmd/gen_third_party_notices/notices_test.go index ba956b817..cf7b552b3 100644 --- a/cmd/gen_third_party_notices/notices_test.go +++ b/cmd/gen_third_party_notices/notices_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // notices_test.go holds the generator to what it reads and refuses: the // build information merged across binaries, the module cache spelling, the // files that count as license texts, and the layout of the notices. diff --git a/cmd/gen_tool_reference/catalog.go b/cmd/gen_tool_reference/catalog.go index 994d94d17..9cd2b7b18 100644 --- a/cmd/gen_tool_reference/catalog.go +++ b/cmd/gen_tool_reference/catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/catalog_test.go b/cmd/gen_tool_reference/catalog_test.go index 1969407de..bcb5bc008 100644 --- a/cmd/gen_tool_reference/catalog_test.go +++ b/cmd/gen_tool_reference/catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/data.go b/cmd/gen_tool_reference/data.go index 5bde73cb8..7fbe81670 100644 --- a/cmd/gen_tool_reference/data.go +++ b/cmd/gen_tool_reference/data.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/data_test.go b/cmd/gen_tool_reference/data_test.go index 6eaa88f32..faae2cde1 100644 --- a/cmd/gen_tool_reference/data_test.go +++ b/cmd/gen_tool_reference/data_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/doc.go b/cmd/gen_tool_reference/doc.go index 51075602c..5fd788cbc 100644 --- a/cmd/gen_tool_reference/doc.go +++ b/cmd/gen_tool_reference/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command gen_tool_reference writes the per-domain tool reference of the // documentation site: one page per catalog group, in English under // site/src/content/docs/reference/tools/ and in Spanish under its es/ twin, diff --git a/cmd/gen_tool_reference/locale.go b/cmd/gen_tool_reference/locale.go index e5b9071e2..e2818fc5a 100644 --- a/cmd/gen_tool_reference/locale.go +++ b/cmd/gen_tool_reference/locale.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/locale_test.go b/cmd/gen_tool_reference/locale_test.go index 587f797af..c023f6116 100644 --- a/cmd/gen_tool_reference/locale_test.go +++ b/cmd/gen_tool_reference/locale_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/main.go b/cmd/gen_tool_reference/main.go index 622532246..5cba4391c 100644 --- a/cmd/gen_tool_reference/main.go +++ b/cmd/gen_tool_reference/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/main_test.go b/cmd/gen_tool_reference/main_test.go index 63000f9a8..91524781e 100644 --- a/cmd/gen_tool_reference/main_test.go +++ b/cmd/gen_tool_reference/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/oauth.go b/cmd/gen_tool_reference/oauth.go index c1fcb84d5..26d5320d6 100644 --- a/cmd/gen_tool_reference/oauth.go +++ b/cmd/gen_tool_reference/oauth.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/oauth_test.go b/cmd/gen_tool_reference/oauth_test.go index 9fb7d8a0c..dd336d66f 100644 --- a/cmd/gen_tool_reference/oauth_test.go +++ b/cmd/gen_tool_reference/oauth_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/render.go b/cmd/gen_tool_reference/render.go index 262d037ae..78d287cba 100644 --- a/cmd/gen_tool_reference/render.go +++ b/cmd/gen_tool_reference/render.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/render_test.go b/cmd/gen_tool_reference/render_test.go index 20769a451..2969f8b23 100644 --- a/cmd/gen_tool_reference/render_test.go +++ b/cmd/gen_tool_reference/render_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/schema.go b/cmd/gen_tool_reference/schema.go index b265f54f0..73ff5738e 100644 --- a/cmd/gen_tool_reference/schema.go +++ b/cmd/gen_tool_reference/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/gen_tool_reference/schema_test.go b/cmd/gen_tool_reference/schema_test.go index 03b5e94b8..844b8c629 100644 --- a/cmd/gen_tool_reference/schema_test.go +++ b/cmd/gen_tool_reference/schema_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/godoc_tool/audit.go b/cmd/godoc_tool/audit.go index cbc59d672..421c23be7 100644 --- a/cmd/godoc_tool/audit.go +++ b/cmd/godoc_tool/audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Audit finds missing or malformed Go doc comments (formerly audit_godocs). package main diff --git a/cmd/godoc_tool/audit_test.go b/cmd/godoc_tool/audit_test.go index b79245a4d..53bd71adf 100644 --- a/cmd/godoc_tool/audit_test.go +++ b/cmd/godoc_tool/audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/godoc_tool/doc.go b/cmd/godoc_tool/doc.go index 7657a83ec..136309856 100644 --- a/cmd/godoc_tool/doc.go +++ b/cmd/godoc_tool/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command godoc_tool is the consolidated Go documentation auditor and fixer. // It combines the read-only audit (formerly audit_godocs — reports missing or // malformed doc comments) and the in-place fixer (formerly add_docs — generates diff --git a/cmd/godoc_tool/docgo.go b/cmd/godoc_tool/docgo.go index 4b2870dc9..e715182b9 100644 --- a/cmd/godoc_tool/docgo.go +++ b/cmd/godoc_tool/docgo.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // docgo.go moves package comments into a doc.go of their own, which is the // one place the audit accepts them. diff --git a/cmd/godoc_tool/docgo_test.go b/cmd/godoc_tool/docgo_test.go index fcfef8078..405e3d959 100644 --- a/cmd/godoc_tool/docgo_test.go +++ b/cmd/godoc_tool/docgo_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/godoc_tool/fix.go b/cmd/godoc_tool/fix.go index 1be46f7db..487e68476 100644 --- a/cmd/godoc_tool/fix.go +++ b/cmd/godoc_tool/fix.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Fix generates and inserts godoc-compliant comments (formerly add_docs). package main diff --git a/cmd/godoc_tool/fix_test.go b/cmd/godoc_tool/fix_test.go index ba6b77324..e3b8dc585 100644 --- a/cmd/godoc_tool/fix_test.go +++ b/cmd/godoc_tool/fix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // fix_test.go covers the fix subcommand's documentation generation // heuristics (formerly the add_docs command). // diff --git a/cmd/godoc_tool/main.go b/cmd/godoc_tool/main.go index fe7afba70..272cd59b1 100644 --- a/cmd/godoc_tool/main.go +++ b/cmd/godoc_tool/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/godoc_tool/main_test.go b/cmd/godoc_tool/main_test.go index 9e046d326..603c65475 100644 --- a/cmd/godoc_tool/main_test.go +++ b/cmd/godoc_tool/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/internal/actionids/catalog.go b/cmd/internal/actionids/catalog.go index 27d33f70b..a970ac02c 100644 --- a/cmd/internal/actionids/catalog.go +++ b/cmd/internal/actionids/catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionids import ( diff --git a/cmd/internal/actionids/catalog_test.go b/cmd/internal/actionids/catalog_test.go index f7516e230..f8f496303 100644 --- a/cmd/internal/actionids/catalog_test.go +++ b/cmd/internal/actionids/catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionids import ( diff --git a/cmd/internal/actionids/doc.go b/cmd/internal/actionids/doc.go index 9ad33ede0..76003e40c 100644 --- a/cmd/internal/actionids/doc.go +++ b/cmd/internal/actionids/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package actionids is the one reader of the canonical action IDs this // repository publishes, and the one rule for spotting one inside prose. // diff --git a/cmd/internal/actionrequests/actionfixture/doc.go b/cmd/internal/actionrequests/actionfixture/doc.go index 5a59f2250..90499300c 100644 --- a/cmd/internal/actionrequests/actionfixture/doc.go +++ b/cmd/internal/actionrequests/actionfixture/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package actionfixture holds the fixture packages the suites of // cmd/internal/actionrequests and cmd/audit_readonly_graphql both load: Go // source written as strings, put into the loader's overlay under [Dir], a diff --git a/cmd/internal/actionrequests/actionfixture/fixture.go b/cmd/internal/actionrequests/actionfixture/fixture.go index 0a8f25adc..aaca3383e 100644 --- a/cmd/internal/actionrequests/actionfixture/fixture.go +++ b/cmd/internal/actionrequests/actionfixture/fixture.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionfixture import ( diff --git a/cmd/internal/actionrequests/actionfixture/fixture_test.go b/cmd/internal/actionrequests/actionfixture/fixture_test.go index 15ac69edd..2311896db 100644 --- a/cmd/internal/actionrequests/actionfixture/fixture_test.go +++ b/cmd/internal/actionrequests/actionfixture/fixture_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionfixture import ( diff --git a/cmd/internal/actionrequests/actionfixture/sources.go b/cmd/internal/actionrequests/actionfixture/sources.go index 0b4a2a0d6..acc753298 100644 --- a/cmd/internal/actionrequests/actionfixture/sources.go +++ b/cmd/internal/actionrequests/actionfixture/sources.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionfixture // Vuln is one package holding a read document and a mutation document, diff --git a/cmd/internal/actionrequests/catalog.go b/cmd/internal/actionrequests/catalog.go index 091884295..52b2aed51 100644 --- a/cmd/internal/actionrequests/catalog.go +++ b/cmd/internal/actionrequests/catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/catalog_test.go b/cmd/internal/actionrequests/catalog_test.go index 4ff6cface..2218eb5d8 100644 --- a/cmd/internal/actionrequests/catalog_test.go +++ b/cmd/internal/actionrequests/catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/doc.go b/cmd/internal/actionrequests/doc.go index 58174276b..92abf8b9e 100644 --- a/cmd/internal/actionrequests/doc.go +++ b/cmd/internal/actionrequests/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package actionrequests answers, for a catalog action, which functions run // when it is called and what those functions put on the wire. // diff --git a/cmd/internal/actionrequests/match.go b/cmd/internal/actionrequests/match.go index dab756942..8b0b8a0d8 100644 --- a/cmd/internal/actionrequests/match.go +++ b/cmd/internal/actionrequests/match.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/match_test.go b/cmd/internal/actionrequests/match_test.go index f3bd09086..893767b9a 100644 --- a/cmd/internal/actionrequests/match_test.go +++ b/cmd/internal/actionrequests/match_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/program.go b/cmd/internal/actionrequests/program.go index 9f1e6c624..ac9de2e15 100644 --- a/cmd/internal/actionrequests/program.go +++ b/cmd/internal/actionrequests/program.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/program_test.go b/cmd/internal/actionrequests/program_test.go index d107eb2b2..2b702d620 100644 --- a/cmd/internal/actionrequests/program_test.go +++ b/cmd/internal/actionrequests/program_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/record.go b/cmd/internal/actionrequests/record.go index beb6e64a7..58374e733 100644 --- a/cmd/internal/actionrequests/record.go +++ b/cmd/internal/actionrequests/record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/record_test.go b/cmd/internal/actionrequests/record_test.go index a9ae18a68..b7fddf604 100644 --- a/cmd/internal/actionrequests/record_test.go +++ b/cmd/internal/actionrequests/record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/resolve.go b/cmd/internal/actionrequests/resolve.go index 1d2af6cff..7cffdf465 100644 --- a/cmd/internal/actionrequests/resolve.go +++ b/cmd/internal/actionrequests/resolve.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/resolve_test.go b/cmd/internal/actionrequests/resolve_test.go index 3da956345..14653df8b 100644 --- a/cmd/internal/actionrequests/resolve_test.go +++ b/cmd/internal/actionrequests/resolve_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/tool.go b/cmd/internal/actionrequests/tool.go index f6c171741..b482bb739 100644 --- a/cmd/internal/actionrequests/tool.go +++ b/cmd/internal/actionrequests/tool.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/actionrequests/tool_test.go b/cmd/internal/actionrequests/tool_test.go index 819a62b7e..c7043cfba 100644 --- a/cmd/internal/actionrequests/tool_test.go +++ b/cmd/internal/actionrequests/tool_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actionrequests import ( diff --git a/cmd/internal/apidocs/api_docs.go b/cmd/internal/apidocs/api_docs.go index aef468a9d..c279bc350 100644 --- a/cmd/internal/apidocs/api_docs.go +++ b/cmd/internal/apidocs/api_docs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apidocs import ( diff --git a/cmd/internal/apidocs/api_docs_test.go b/cmd/internal/apidocs/api_docs_test.go index c697f5a62..a0a9e4b6c 100644 --- a/cmd/internal/apidocs/api_docs_test.go +++ b/cmd/internal/apidocs/api_docs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apidocs import ( diff --git a/cmd/internal/apidocs/areas.go b/cmd/internal/apidocs/areas.go index a6d28a832..9d6f22a61 100644 --- a/cmd/internal/apidocs/areas.go +++ b/cmd/internal/apidocs/areas.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apidocs import ( diff --git a/cmd/internal/apidocs/areas_test.go b/cmd/internal/apidocs/areas_test.go index 5e6775bda..c85439632 100644 --- a/cmd/internal/apidocs/areas_test.go +++ b/cmd/internal/apidocs/areas_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apidocs import ( diff --git a/cmd/internal/apidocs/doc.go b/cmd/internal/apidocs/doc.go index c13e416f1..22956c9a4 100644 --- a/cmd/internal/apidocs/doc.go +++ b/cmd/internal/apidocs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package apidocs is a shared fetcher for the GitLab API reference docs (the // doc/api/.md files in the gitlab-org/gitlab monorepo) used as a source of // truth alongside the client-go SDK by the audit utilities. diff --git a/cmd/internal/apilive/authorization.go b/cmd/internal/apilive/authorization.go index f2541b756..bc4310e39 100644 --- a/cmd/internal/apilive/authorization.go +++ b/cmd/internal/apilive/authorization.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import ( diff --git a/cmd/internal/apilive/authorization_test.go b/cmd/internal/apilive/authorization_test.go index f509db86a..82d21dba7 100644 --- a/cmd/internal/apilive/authorization_test.go +++ b/cmd/internal/apilive/authorization_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import ( diff --git a/cmd/internal/apilive/doc.go b/cmd/internal/apilive/doc.go index 5f09a7a50..afaed9d5e 100644 --- a/cmd/internal/apilive/doc.go +++ b/cmd/internal/apilive/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package apilive is the committed record of what a booted GitLab says its // own REST API is, and the one reader of it. // diff --git a/cmd/internal/apilive/join.go b/cmd/internal/apilive/join.go index bf89e24be..0f9122305 100644 --- a/cmd/internal/apilive/join.go +++ b/cmd/internal/apilive/join.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import ( diff --git a/cmd/internal/apilive/join_test.go b/cmd/internal/apilive/join_test.go index 7b529c198..7e27fddb1 100644 --- a/cmd/internal/apilive/join_test.go +++ b/cmd/internal/apilive/join_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import ( diff --git a/cmd/internal/apilive/live.go b/cmd/internal/apilive/live.go index 44f36b388..197462d61 100644 --- a/cmd/internal/apilive/live.go +++ b/cmd/internal/apilive/live.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import ( diff --git a/cmd/internal/apilive/live_test.go b/cmd/internal/apilive/live_test.go index 5adbec8fe..4fb0da5c1 100644 --- a/cmd/internal/apilive/live_test.go +++ b/cmd/internal/apilive/live_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import ( diff --git a/cmd/internal/apilive/routes.go b/cmd/internal/apilive/routes.go index a3ea07acf..e5ac9182f 100644 --- a/cmd/internal/apilive/routes.go +++ b/cmd/internal/apilive/routes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import "strings" diff --git a/cmd/internal/apilive/routes_test.go b/cmd/internal/apilive/routes_test.go index 8ab9522cc..1c7e6ee81 100644 --- a/cmd/internal/apilive/routes_test.go +++ b/cmd/internal/apilive/routes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package apilive import ( diff --git a/cmd/internal/auditshared/actionspec_builders.go b/cmd/internal/auditshared/actionspec_builders.go index 050029831..9dca7e1ca 100644 --- a/cmd/internal/auditshared/actionspec_builders.go +++ b/cmd/internal/auditshared/actionspec_builders.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package auditshared import ( diff --git a/cmd/internal/auditshared/actionspec_builders_test.go b/cmd/internal/auditshared/actionspec_builders_test.go index f92c4420d..40a430fcd 100644 --- a/cmd/internal/auditshared/actionspec_builders_test.go +++ b/cmd/internal/auditshared/actionspec_builders_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // actionspec_builders_test.go covers the buildXxxActionSpecs naming rule and // the directory scan the manifest generator and the catalog-first auditor // both rely on to agree on the set of catalog builders. diff --git a/cmd/internal/auditshared/audit_shared.go b/cmd/internal/auditshared/audit_shared.go index 02ce3b68a..f814672eb 100644 --- a/cmd/internal/auditshared/audit_shared.go +++ b/cmd/internal/auditshared/audit_shared.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package auditshared import ( diff --git a/cmd/internal/auditshared/audit_shared_test.go b/cmd/internal/auditshared/audit_shared_test.go index 5238804c9..728a80dfb 100644 --- a/cmd/internal/auditshared/audit_shared_test.go +++ b/cmd/internal/auditshared/audit_shared_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // audit_shared_test.go covers the analysis helpers the discovery auditors // share: the placeholder-usage probe, the projected individual-description // check, owner-package resolution, the per-process caches, and the offline diff --git a/cmd/internal/auditshared/doc.go b/cmd/internal/auditshared/doc.go index 70625e421..07d5540f9 100644 --- a/cmd/internal/auditshared/doc.go +++ b/cmd/internal/auditshared/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package auditshared holds analysis helpers shared by the discovery-metadata // auditors (cmd/audit_1to1 R-META and cmd/audit_discovery_completeness): the // projected-description probe, owner-package resolution, and the shared diff --git a/cmd/internal/docgen/doc.go b/cmd/internal/docgen/doc.go index 623d2c559..52de3c7e4 100644 --- a/cmd/internal/docgen/doc.go +++ b/cmd/internal/docgen/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package docgen contains helpers for generated project documentation. // // The package renders source-readable Markdown tables and normalizes existing diff --git a/cmd/internal/docgen/markdown_tables.go b/cmd/internal/docgen/markdown_tables.go index 611758ee6..b0430a6d6 100644 --- a/cmd/internal/docgen/markdown_tables.go +++ b/cmd/internal/docgen/markdown_tables.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package docgen import ( diff --git a/cmd/internal/docgen/markdown_tables_test.go b/cmd/internal/docgen/markdown_tables_test.go index ba0cfc46c..1388d80ec 100644 --- a/cmd/internal/docgen/markdown_tables_test.go +++ b/cmd/internal/docgen/markdown_tables_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package docgen import ( diff --git a/cmd/internal/docgen/section.go b/cmd/internal/docgen/section.go index 73d85efbc..5c0a49e6b 100644 --- a/cmd/internal/docgen/section.go +++ b/cmd/internal/docgen/section.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package docgen import ( diff --git a/cmd/internal/docgen/section_test.go b/cmd/internal/docgen/section_test.go index d8d6a2a94..f7d48ab23 100644 --- a/cmd/internal/docgen/section_test.go +++ b/cmd/internal/docgen/section_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package docgen import ( diff --git a/cmd/internal/docgen/table.go b/cmd/internal/docgen/table.go index b383969f1..de23649b0 100644 --- a/cmd/internal/docgen/table.go +++ b/cmd/internal/docgen/table.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package docgen import ( diff --git a/cmd/internal/docgen/table_test.go b/cmd/internal/docgen/table_test.go index 64e0ca385..6620fbf54 100644 --- a/cmd/internal/docgen/table_test.go +++ b/cmd/internal/docgen/table_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package docgen import ( diff --git a/cmd/internal/docgen/write.go b/cmd/internal/docgen/write.go index 5f47f3d9a..bdcc1a5a5 100644 --- a/cmd/internal/docgen/write.go +++ b/cmd/internal/docgen/write.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package docgen import ( diff --git a/cmd/internal/docgen/write_test.go b/cmd/internal/docgen/write_test.go index 9a291b0ec..88744300d 100644 --- a/cmd/internal/docgen/write_test.go +++ b/cmd/internal/docgen/write_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // write_test.go covers the two ways a command puts bytes on disk: the // whole-file freshness convention for a committed artifact (WriteOrCheck) and // the "-" means stdout convention for an auditor's report (WriteReport). diff --git a/cmd/internal/golist/doc.go b/cmd/internal/golist/doc.go index 6f99ec2b4..c3d1767e1 100644 --- a/cmd/internal/golist/doc.go +++ b/cmd/internal/golist/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package golist holds the row shape two commands ask `go list` for, and the // one answer to which `go` they ask it of. // diff --git a/cmd/internal/golist/golist.go b/cmd/internal/golist/golist.go index e7ff47f83..7fe74012d 100644 --- a/cmd/internal/golist/golist.go +++ b/cmd/internal/golist/golist.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package golist import ( diff --git a/cmd/internal/golist/golist_test.go b/cmd/internal/golist/golist_test.go index de820302d..019e6098a 100644 --- a/cmd/internal/golist/golist_test.go +++ b/cmd/internal/golist/golist_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package golist import ( diff --git a/cmd/internal/goprogram/doc.go b/cmd/internal/goprogram/doc.go index fa2dceac8..76ebd03c3 100644 --- a/cmd/internal/goprogram/doc.go +++ b/cmd/internal/goprogram/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package goprogram is the one go/packages front end for the gates that // type-check this repository's own source. // diff --git a/cmd/internal/goprogram/ignored.go b/cmd/internal/goprogram/ignored.go index f52c37d8b..578a0e507 100644 --- a/cmd/internal/goprogram/ignored.go +++ b/cmd/internal/goprogram/ignored.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/goprogram/ignored_test.go b/cmd/internal/goprogram/ignored_test.go index be537d5bc..52bc54c05 100644 --- a/cmd/internal/goprogram/ignored_test.go +++ b/cmd/internal/goprogram/ignored_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/goprogram/load.go b/cmd/internal/goprogram/load.go index 67c59ab9f..f7ccd42e3 100644 --- a/cmd/internal/goprogram/load.go +++ b/cmd/internal/goprogram/load.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/goprogram/load_test.go b/cmd/internal/goprogram/load_test.go index 8017b18c3..118cbc65f 100644 --- a/cmd/internal/goprogram/load_test.go +++ b/cmd/internal/goprogram/load_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/goprogram/naming.go b/cmd/internal/goprogram/naming.go index 31c04b367..5bcc0834b 100644 --- a/cmd/internal/goprogram/naming.go +++ b/cmd/internal/goprogram/naming.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/goprogram/naming_test.go b/cmd/internal/goprogram/naming_test.go index 0855ba71a..79a98ea90 100644 --- a/cmd/internal/goprogram/naming_test.go +++ b/cmd/internal/goprogram/naming_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/goprogram/variants.go b/cmd/internal/goprogram/variants.go index 2fde030fa..349e794df 100644 --- a/cmd/internal/goprogram/variants.go +++ b/cmd/internal/goprogram/variants.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/goprogram/variants_test.go b/cmd/internal/goprogram/variants_test.go index 3abb09a3f..4189a68ed 100644 --- a/cmd/internal/goprogram/variants_test.go +++ b/cmd/internal/goprogram/variants_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package goprogram import ( diff --git a/cmd/internal/grantwords/doc.go b/cmd/internal/grantwords/doc.go index a09725dd6..51ffb1631 100644 --- a/cmd/internal/grantwords/doc.go +++ b/cmd/internal/grantwords/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package grantwords is the one wording of what a fine-grained personal access // token needs for an action, in English and Spanish, for the two generators // that print it. diff --git a/cmd/internal/grantwords/grantwords.go b/cmd/internal/grantwords/grantwords.go index 79e880458..90c68fba6 100644 --- a/cmd/internal/grantwords/grantwords.go +++ b/cmd/internal/grantwords/grantwords.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grantwords import ( diff --git a/cmd/internal/grantwords/grantwords_test.go b/cmd/internal/grantwords/grantwords_test.go index ea9dc9f64..0a2860a49 100644 --- a/cmd/internal/grantwords/grantwords_test.go +++ b/cmd/internal/grantwords/grantwords_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grantwords import ( diff --git a/cmd/internal/graphqldocs/audit.go b/cmd/internal/graphqldocs/audit.go index 905aad1fa..791721c6d 100644 --- a/cmd/internal/graphqldocs/audit.go +++ b/cmd/internal/graphqldocs/audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import ( diff --git a/cmd/internal/graphqldocs/audit_test.go b/cmd/internal/graphqldocs/audit_test.go index 36f73df89..09e389099 100644 --- a/cmd/internal/graphqldocs/audit_test.go +++ b/cmd/internal/graphqldocs/audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import ( diff --git a/cmd/internal/graphqldocs/classify.go b/cmd/internal/graphqldocs/classify.go index 1c171c348..9e4b79516 100644 --- a/cmd/internal/graphqldocs/classify.go +++ b/cmd/internal/graphqldocs/classify.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import ( diff --git a/cmd/internal/graphqldocs/classify_test.go b/cmd/internal/graphqldocs/classify_test.go index 11fbfb9fa..59d7f46d9 100644 --- a/cmd/internal/graphqldocs/classify_test.go +++ b/cmd/internal/graphqldocs/classify_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import "testing" diff --git a/cmd/internal/graphqldocs/collect.go b/cmd/internal/graphqldocs/collect.go index 827cd6858..303e75bbb 100644 --- a/cmd/internal/graphqldocs/collect.go +++ b/cmd/internal/graphqldocs/collect.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import ( diff --git a/cmd/internal/graphqldocs/collect_test.go b/cmd/internal/graphqldocs/collect_test.go index f2bc4379f..6432d7201 100644 --- a/cmd/internal/graphqldocs/collect_test.go +++ b/cmd/internal/graphqldocs/collect_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import ( diff --git a/cmd/internal/graphqldocs/doc.go b/cmd/internal/graphqldocs/doc.go index f9e0ad849..3eb6e9df4 100644 --- a/cmd/internal/graphqldocs/doc.go +++ b/cmd/internal/graphqldocs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package graphqldocs reads every raw GraphQL document this repository writes // out of the source and judges each one against a GitLab schema. // diff --git a/cmd/internal/graphqldocs/render.go b/cmd/internal/graphqldocs/render.go index ae992419c..296c82071 100644 --- a/cmd/internal/graphqldocs/render.go +++ b/cmd/internal/graphqldocs/render.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Rendering the documents a module writes with holes in them: the format // strings fmt.Sprintf fills and the text/template shells a template set // executes, which is how client-go writes six of its documents. diff --git a/cmd/internal/graphqldocs/render_test.go b/cmd/internal/graphqldocs/render_test.go index 2a16e908d..a10a73c3c 100644 --- a/cmd/internal/graphqldocs/render_test.go +++ b/cmd/internal/graphqldocs/render_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import ( diff --git a/cmd/internal/graphqldocs/sdk.go b/cmd/internal/graphqldocs/sdk.go index 56c276ca5..875f1187f 100644 --- a/cmd/internal/graphqldocs/sdk.go +++ b/cmd/internal/graphqldocs/sdk.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The other half of this server's GraphQL surface: the documents client-go // builds inside its own module, which nothing in this repository writes and // every one of which still reaches GitLab through us. diff --git a/cmd/internal/graphqldocs/sdk_test.go b/cmd/internal/graphqldocs/sdk_test.go index 6320edde9..6e5d5adb4 100644 --- a/cmd/internal/graphqldocs/sdk_test.go +++ b/cmd/internal/graphqldocs/sdk_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqldocs import ( diff --git a/cmd/internal/graphqlintrospect/credential.go b/cmd/internal/graphqlintrospect/credential.go index 670a6add8..3266520c1 100644 --- a/cmd/internal/graphqlintrospect/credential.go +++ b/cmd/internal/graphqlintrospect/credential.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlintrospect import ( diff --git a/cmd/internal/graphqlintrospect/credential_test.go b/cmd/internal/graphqlintrospect/credential_test.go index 9a5eefb48..238419386 100644 --- a/cmd/internal/graphqlintrospect/credential_test.go +++ b/cmd/internal/graphqlintrospect/credential_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlintrospect_test import ( diff --git a/cmd/internal/graphqlintrospect/doc.go b/cmd/internal/graphqlintrospect/doc.go index b7834d092..b7f1516cd 100644 --- a/cmd/internal/graphqlintrospect/doc.go +++ b/cmd/internal/graphqlintrospect/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package graphqlintrospect asks a GitLab instance for its GraphQL schema and // converts the answer to SDL. // diff --git a/cmd/internal/graphqlintrospect/export_test.go b/cmd/internal/graphqlintrospect/export_test.go index 617de80d0..11ec9f308 100644 --- a/cmd/internal/graphqlintrospect/export_test.go +++ b/cmd/internal/graphqlintrospect/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes the host fold to the external test package, which // holds it byte for byte to the fold the server compares hosts with. package graphqlintrospect diff --git a/cmd/internal/graphqlintrospect/introspect.go b/cmd/internal/graphqlintrospect/introspect.go index 421749176..b16bde23a 100644 --- a/cmd/internal/graphqlintrospect/introspect.go +++ b/cmd/internal/graphqlintrospect/introspect.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlintrospect import ( diff --git a/cmd/internal/graphqlintrospect/introspect_test.go b/cmd/internal/graphqlintrospect/introspect_test.go index a589716bc..3dbb4826b 100644 --- a/cmd/internal/graphqlintrospect/introspect_test.go +++ b/cmd/internal/graphqlintrospect/introspect_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlintrospect import ( diff --git a/cmd/internal/graphqlintrospect/sdl.go b/cmd/internal/graphqlintrospect/sdl.go index 12d56d63d..1330f59fe 100644 --- a/cmd/internal/graphqlintrospect/sdl.go +++ b/cmd/internal/graphqlintrospect/sdl.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlintrospect import ( diff --git a/cmd/internal/graphqlintrospect/sdl_test.go b/cmd/internal/graphqlintrospect/sdl_test.go index 4bc7fc7b7..970382e01 100644 --- a/cmd/internal/graphqlintrospect/sdl_test.go +++ b/cmd/internal/graphqlintrospect/sdl_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlintrospect import ( diff --git a/cmd/internal/mcpsurface/doc.go b/cmd/internal/mcpsurface/doc.go index 3e399af5c..961ca1353 100644 --- a/cmd/internal/mcpsurface/doc.go +++ b/cmd/internal/mcpsurface/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mcpsurface is the one reader of the MCP surface this server serves. // // Several commands under cmd/ need the same thing: the tools, prompts and diff --git a/cmd/internal/mcpsurface/surface.go b/cmd/internal/mcpsurface/surface.go index a588de44b..5396886b8 100644 --- a/cmd/internal/mcpsurface/surface.go +++ b/cmd/internal/mcpsurface/surface.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpsurface import ( diff --git a/cmd/internal/mcpsurface/surface_test.go b/cmd/internal/mcpsurface/surface_test.go index 3afced59e..1d7eb62a8 100644 --- a/cmd/internal/mcpsurface/surface_test.go +++ b/cmd/internal/mcpsurface/surface_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // surface_test.go covers the shared MCP introspection helpers the generator // commands build on: the per-surface listings and the memo behind them, the // pinned dynamic two-tool contract, resource and prompt discovery over a real diff --git a/cmd/internal/orbitrecord/doc.go b/cmd/internal/orbitrecord/doc.go index b4f35fc30..7e528e3eb 100644 --- a/cmd/internal/orbitrecord/doc.go +++ b/cmd/internal/orbitrecord/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package orbitrecord is the committed record of what GitLab.com's Orbit // routes answer, and the one reader of it. // diff --git a/cmd/internal/orbitrecord/record.go b/cmd/internal/orbitrecord/record.go index 5696a29bc..c777e9f6d 100644 --- a/cmd/internal/orbitrecord/record.go +++ b/cmd/internal/orbitrecord/record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbitrecord import ( diff --git a/cmd/internal/orbitrecord/record_test.go b/cmd/internal/orbitrecord/record_test.go index 4eebbf5f8..4fac054cc 100644 --- a/cmd/internal/orbitrecord/record_test.go +++ b/cmd/internal/orbitrecord/record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbitrecord import ( diff --git a/cmd/internal/provenance/age.go b/cmd/internal/provenance/age.go index 50b3f5ac0..2aa7fe3ef 100644 --- a/cmd/internal/provenance/age.go +++ b/cmd/internal/provenance/age.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package provenance import ( diff --git a/cmd/internal/provenance/age_test.go b/cmd/internal/provenance/age_test.go index cbc162f35..50b7c47cf 100644 --- a/cmd/internal/provenance/age_test.go +++ b/cmd/internal/provenance/age_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package provenance import ( diff --git a/cmd/internal/provenance/doc.go b/cmd/internal/provenance/doc.go index a4bb2f56f..edff261cb 100644 --- a/cmd/internal/provenance/doc.go +++ b/cmd/internal/provenance/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package provenance holds the one age verdict the commands that pin an // external truth pass on their committed record. // diff --git a/cmd/internal/requestinventory/coverage.go b/cmd/internal/requestinventory/coverage.go index 3d94f16ba..7681cdeb6 100644 --- a/cmd/internal/requestinventory/coverage.go +++ b/cmd/internal/requestinventory/coverage.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package requestinventory import ( diff --git a/cmd/internal/requestinventory/coverage_test.go b/cmd/internal/requestinventory/coverage_test.go index 20a5e6b63..a7c37ab77 100644 --- a/cmd/internal/requestinventory/coverage_test.go +++ b/cmd/internal/requestinventory/coverage_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package requestinventory import ( diff --git a/cmd/internal/requestinventory/doc.go b/cmd/internal/requestinventory/doc.go index 0de9db0c3..aa9ef5574 100644 --- a/cmd/internal/requestinventory/doc.go +++ b/cmd/internal/requestinventory/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package requestinventory holds the committed record of what this server // sends GitLab, and the one definition of which catalog actions it covers. // diff --git a/cmd/internal/requestinventory/inventory.go b/cmd/internal/requestinventory/inventory.go index c74e54a8e..5cb0c0c69 100644 --- a/cmd/internal/requestinventory/inventory.go +++ b/cmd/internal/requestinventory/inventory.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package requestinventory import ( diff --git a/cmd/internal/requestinventory/inventory_test.go b/cmd/internal/requestinventory/inventory_test.go index 2a48fb5cf..5dd29bfaa 100644 --- a/cmd/internal/requestinventory/inventory_test.go +++ b/cmd/internal/requestinventory/inventory_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package requestinventory import ( diff --git a/cmd/internal/sdkroutes/doc.go b/cmd/internal/sdkroutes/doc.go index fc44047ec..86956bbe9 100644 --- a/cmd/internal/sdkroutes/doc.go +++ b/cmd/internal/sdkroutes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package sdkroutes is the one reader of which request each client-go service // method sends: the HTTP verb and the path for a REST method, and the GraphQL // documents for one that posts to the GraphQL endpoint. diff --git a/cmd/internal/sdkroutes/documents.go b/cmd/internal/sdkroutes/documents.go index e026cc723..b9015c5ef 100644 --- a/cmd/internal/sdkroutes/documents.go +++ b/cmd/internal/sdkroutes/documents.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/documents_test.go b/cmd/internal/sdkroutes/documents_test.go index 426a36940..8a504a98c 100644 --- a/cmd/internal/sdkroutes/documents_test.go +++ b/cmd/internal/sdkroutes/documents_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/eval.go b/cmd/internal/sdkroutes/eval.go index e282fdd5d..88185f6d9 100644 --- a/cmd/internal/sdkroutes/eval.go +++ b/cmd/internal/sdkroutes/eval.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/eval_test.go b/cmd/internal/sdkroutes/eval_test.go index 814ffa989..955b3324a 100644 --- a/cmd/internal/sdkroutes/eval_test.go +++ b/cmd/internal/sdkroutes/eval_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/parse.go b/cmd/internal/sdkroutes/parse.go index 6cb8b8e2c..efae2c795 100644 --- a/cmd/internal/sdkroutes/parse.go +++ b/cmd/internal/sdkroutes/parse.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/parse_test.go b/cmd/internal/sdkroutes/parse_test.go index ee8055047..3de729471 100644 --- a/cmd/internal/sdkroutes/parse_test.go +++ b/cmd/internal/sdkroutes/parse_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/sdkroutes.go b/cmd/internal/sdkroutes/sdkroutes.go index f4a875343..e307db428 100644 --- a/cmd/internal/sdkroutes/sdkroutes.go +++ b/cmd/internal/sdkroutes/sdkroutes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/sdkroutes_test.go b/cmd/internal/sdkroutes/sdkroutes_test.go index ebc0b3c0e..af14423a6 100644 --- a/cmd/internal/sdkroutes/sdkroutes_test.go +++ b/cmd/internal/sdkroutes/sdkroutes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sdkroutes import ( diff --git a/cmd/internal/sdkroutes/testdata/sdk/declarations.go b/cmd/internal/sdkroutes/testdata/sdk/declarations.go index acdee597f..a9e12cfc1 100644 --- a/cmd/internal/sdkroutes/testdata/sdk/declarations.go +++ b/cmd/internal/sdkroutes/testdata/sdk/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package gitlab is a stand-in for client-go's root package: parsed by the // tests of sdkroutes and never compiled, so it spells each shape the reader has // to handle once, the odd ones included, rather than being a working client. diff --git a/cmd/internal/sdkroutes/testdata/sdk/legacy.go b/cmd/internal/sdkroutes/testdata/sdk/legacy.go index dc32d6cfe..d0910d94c 100644 --- a/cmd/internal/sdkroutes/testdata/sdk/legacy.go +++ b/cmd/internal/sdkroutes/testdata/sdk/legacy.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/cmd/internal/sdkroutes/testdata/sdk/methods.go b/cmd/internal/sdkroutes/testdata/sdk/methods.go index bb460c809..d41d067bb 100644 --- a/cmd/internal/sdkroutes/testdata/sdk/methods.go +++ b/cmd/internal/sdkroutes/testdata/sdk/methods.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/cmd/internal/sdkroutes/testdata/sdk/methods_test.go b/cmd/internal/sdkroutes/testdata/sdk/methods_test.go index 31209acb8..707bcee6e 100644 --- a/cmd/internal/sdkroutes/testdata/sdk/methods_test.go +++ b/cmd/internal/sdkroutes/testdata/sdk/methods_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab // A test file is client-go's own and is never read. diff --git a/cmd/internal/sdkroutes/testdata/sdk/subdir/nested.go b/cmd/internal/sdkroutes/testdata/sdk/subdir/nested.go index df0c3f3ab..80a8659c5 100644 --- a/cmd/internal/sdkroutes/testdata/sdk/subdir/nested.go +++ b/cmd/internal/sdkroutes/testdata/sdk/subdir/nested.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package nested // A subdirectory is another package and is never read. diff --git a/cmd/internal/sourcegate/command.go b/cmd/internal/sourcegate/command.go index 4e51505df..3fd534a1d 100644 --- a/cmd/internal/sourcegate/command.go +++ b/cmd/internal/sourcegate/command.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcegate import ( diff --git a/cmd/internal/sourcegate/command_test.go b/cmd/internal/sourcegate/command_test.go index 850e23e69..da96404a3 100644 --- a/cmd/internal/sourcegate/command_test.go +++ b/cmd/internal/sourcegate/command_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcegate import ( diff --git a/cmd/internal/sourcegate/declarations.go b/cmd/internal/sourcegate/declarations.go index 63c1564be..cecbe2fcf 100644 --- a/cmd/internal/sourcegate/declarations.go +++ b/cmd/internal/sourcegate/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcegate import ( diff --git a/cmd/internal/sourcegate/declarations_test.go b/cmd/internal/sourcegate/declarations_test.go index 24e1c2b5c..547e7c3e5 100644 --- a/cmd/internal/sourcegate/declarations_test.go +++ b/cmd/internal/sourcegate/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcegate import ( diff --git a/cmd/internal/sourcegate/doc.go b/cmd/internal/sourcegate/doc.go index 26ff380d9..d0eaae619 100644 --- a/cmd/internal/sourcegate/doc.go +++ b/cmd/internal/sourcegate/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package sourcegate is the scaffolding the gates that judge this repository's // own source share above the load: the command line they read, the exit code // they end on, the declaration table they are held to, and the name a finding diff --git a/cmd/internal/sourcegate/syntax.go b/cmd/internal/sourcegate/syntax.go index 3450efc08..59ba2c804 100644 --- a/cmd/internal/sourcegate/syntax.go +++ b/cmd/internal/sourcegate/syntax.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcegate import "go/ast" diff --git a/cmd/internal/sourcegate/syntax_test.go b/cmd/internal/sourcegate/syntax_test.go index a9cf7183f..51a499ade 100644 --- a/cmd/internal/sourcegate/syntax_test.go +++ b/cmd/internal/sourcegate/syntax_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcegate import ( diff --git a/cmd/internal/testsource/doc.go b/cmd/internal/testsource/doc.go index be47215dd..f01c63300 100644 --- a/cmd/internal/testsource/doc.go +++ b/cmd/internal/testsource/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package testsource answers the three questions every command that reads // _test.go files in this repository used to answer for itself: whether a // function name is a Go test entry point, which naming bucket that name falls diff --git a/cmd/internal/testsource/testsource.go b/cmd/internal/testsource/testsource.go index 1a09fc027..ca555bd96 100644 --- a/cmd/internal/testsource/testsource.go +++ b/cmd/internal/testsource/testsource.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testsource import ( diff --git a/cmd/internal/testsource/testsource_test.go b/cmd/internal/testsource/testsource_test.go index 8ec005632..849a2ea1a 100644 --- a/cmd/internal/testsource/testsource_test.go +++ b/cmd/internal/testsource/testsource_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testsource import ( diff --git a/cmd/measure_conditions/discover.go b/cmd/measure_conditions/discover.go index 940e1a2b8..0e8f5bc9f 100644 --- a/cmd/measure_conditions/discover.go +++ b/cmd/measure_conditions/discover.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/discover_test.go b/cmd/measure_conditions/discover_test.go index fd7cbef40..b82fe2074 100644 --- a/cmd/measure_conditions/discover_test.go +++ b/cmd/measure_conditions/discover_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/doc.go b/cmd/measure_conditions/doc.go index 0f6a06dcb..88d09748b 100644 --- a/cmd/measure_conditions/doc.go +++ b/cmd/measure_conditions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command measure_conditions plans, runs and reports the condition coverage // measurement that .github/workflows/conditions.yml runs on demand (issue // 1210), and takes the same measurement of the whole tree on the machine at diff --git a/cmd/measure_conditions/main.go b/cmd/measure_conditions/main.go index 993962ac6..8624de49e 100644 --- a/cmd/measure_conditions/main.go +++ b/cmd/measure_conditions/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/main_test.go b/cmd/measure_conditions/main_test.go index f08a11912..3b23dafa3 100644 --- a/cmd/measure_conditions/main_test.go +++ b/cmd/measure_conditions/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/measure.go b/cmd/measure_conditions/measure.go index 0d2d3fefb..913b13483 100644 --- a/cmd/measure_conditions/measure.go +++ b/cmd/measure_conditions/measure.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/measure_test.go b/cmd/measure_conditions/measure_test.go index 5ec65f1ee..358aed40e 100644 --- a/cmd/measure_conditions/measure_test.go +++ b/cmd/measure_conditions/measure_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/measurement.go b/cmd/measure_conditions/measurement.go index 38e594497..9054a657d 100644 --- a/cmd/measure_conditions/measurement.go +++ b/cmd/measure_conditions/measurement.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/measurement_test.go b/cmd/measure_conditions/measurement_test.go index b37ac9908..00f58daf1 100644 --- a/cmd/measure_conditions/measurement_test.go +++ b/cmd/measure_conditions/measurement_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/plan.go b/cmd/measure_conditions/plan.go index 2bf30a8d1..0c074490d 100644 --- a/cmd/measure_conditions/plan.go +++ b/cmd/measure_conditions/plan.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/plan_test.go b/cmd/measure_conditions/plan_test.go index 913aad09a..1b54b51c6 100644 --- a/cmd/measure_conditions/plan_test.go +++ b/cmd/measure_conditions/plan_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/record.go b/cmd/measure_conditions/record.go index 7a1471880..685258da9 100644 --- a/cmd/measure_conditions/record.go +++ b/cmd/measure_conditions/record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/record_test.go b/cmd/measure_conditions/record_test.go index 78462ead1..198158edc 100644 --- a/cmd/measure_conditions/record_test.go +++ b/cmd/measure_conditions/record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/summarize.go b/cmd/measure_conditions/summarize.go index 84737cbba..08b34f372 100644 --- a/cmd/measure_conditions/summarize.go +++ b/cmd/measure_conditions/summarize.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/summarize_test.go b/cmd/measure_conditions/summarize_test.go index 9cc47a8b4..467de5002 100644 --- a/cmd/measure_conditions/summarize_test.go +++ b/cmd/measure_conditions/summarize_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/testdata/platforms/arch/arch.go b/cmd/measure_conditions/testdata/platforms/arch/arch.go index bfbf4a918..cb8fcdc89 100644 --- a/cmd/measure_conditions/testdata/platforms/arch/arch.go +++ b/cmd/measure_conditions/testdata/platforms/arch/arch.go @@ -1,2 +1,5 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package arch builds one file more on arm64, by its name. package arch diff --git a/cmd/measure_conditions/testdata/platforms/arch/arch_arm64.go b/cmd/measure_conditions/testdata/platforms/arch/arch_arm64.go index 7c2b526bb..d29551d8f 100644 --- a/cmd/measure_conditions/testdata/platforms/arch/arch_arm64.go +++ b/cmd/measure_conditions/testdata/platforms/arch/arch_arm64.go @@ -1 +1,4 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package arch diff --git a/cmd/measure_conditions/testdata/platforms/plain/plain.go b/cmd/measure_conditions/testdata/platforms/plain/plain.go index 46296c6c0..62e64c5b2 100644 --- a/cmd/measure_conditions/testdata/platforms/plain/plain.go +++ b/cmd/measure_conditions/testdata/platforms/plain/plain.go @@ -1,2 +1,5 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package plain builds the same file on every platform. package plain diff --git a/cmd/measure_conditions/testdata/platforms/split/split.go b/cmd/measure_conditions/testdata/platforms/split/split.go index a8552021b..d85bf691b 100644 --- a/cmd/measure_conditions/testdata/platforms/split/split.go +++ b/cmd/measure_conditions/testdata/platforms/split/split.go @@ -1,2 +1,5 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package split builds one file more on Windows, by its name. package split diff --git a/cmd/measure_conditions/testdata/platforms/split/split_windows.go b/cmd/measure_conditions/testdata/platforms/split/split_windows.go index 6aa404543..6ea60471d 100644 --- a/cmd/measure_conditions/testdata/platforms/split/split_windows.go +++ b/cmd/measure_conditions/testdata/platforms/split/split_windows.go @@ -1 +1,4 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package split diff --git a/cmd/measure_conditions/testdata/platforms/tagged/tagged.go b/cmd/measure_conditions/testdata/platforms/tagged/tagged.go index ef188cd55..3ad18fa34 100644 --- a/cmd/measure_conditions/testdata/platforms/tagged/tagged.go +++ b/cmd/measure_conditions/testdata/platforms/tagged/tagged.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package tagged builds one file more under the race detector's tag, which // no release target sets, so the file differs between no two of them. package tagged diff --git a/cmd/measure_conditions/testdata/platforms/tagged/tagged_race.go b/cmd/measure_conditions/testdata/platforms/tagged/tagged_race.go index a14e2bda5..566a5ab6d 100644 --- a/cmd/measure_conditions/testdata/platforms/tagged/tagged_race.go +++ b/cmd/measure_conditions/testdata/platforms/tagged/tagged_race.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build race package tagged diff --git a/cmd/measure_conditions/testdata/platforms/testonly/probe.go b/cmd/measure_conditions/testdata/platforms/testonly/probe.go index eb61fb989..24deeb282 100644 --- a/cmd/measure_conditions/testdata/platforms/testonly/probe.go +++ b/cmd/measure_conditions/testdata/platforms/testonly/probe.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package testonly builds one test file everywhere but on Windows, by its // constraint line. package testonly diff --git a/cmd/measure_conditions/testdata/platforms/testonly/probe_unix_test.go b/cmd/measure_conditions/testdata/platforms/testonly/probe_unix_test.go index 88ec6fc3f..cd94b6c21 100644 --- a/cmd/measure_conditions/testdata/platforms/testonly/probe_unix_test.go +++ b/cmd/measure_conditions/testdata/platforms/testonly/probe_unix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !windows package testonly diff --git a/cmd/measure_conditions/tree.go b/cmd/measure_conditions/tree.go index a58d9e8f6..cc8b61ba6 100644 --- a/cmd/measure_conditions/tree.go +++ b/cmd/measure_conditions/tree.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/measure_conditions/tree_test.go b/cmd/measure_conditions/tree_test.go index 93bad072c..aa71a2dae 100644 --- a/cmd/measure_conditions/tree_test.go +++ b/cmd/measure_conditions/tree_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/build.go b/cmd/reproduce_release/build.go index bef07c79f..978d15335 100644 --- a/cmd/reproduce_release/build.go +++ b/cmd/reproduce_release/build.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/build_test.go b/cmd/reproduce_release/build_test.go index be5f6224a..e860d54e2 100644 --- a/cmd/reproduce_release/build_test.go +++ b/cmd/reproduce_release/build_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // build_test.go covers how one recipe is built: where the binary is written, // the environment the go command sees, and the refusal when it cannot build. package main diff --git a/cmd/reproduce_release/buildinfo.go b/cmd/reproduce_release/buildinfo.go index df9ad41e2..eb1990df5 100644 --- a/cmd/reproduce_release/buildinfo.go +++ b/cmd/reproduce_release/buildinfo.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/buildinfo_test.go b/cmd/reproduce_release/buildinfo_test.go index 747b98dcb..407978ec1 100644 --- a/cmd/reproduce_release/buildinfo_test.go +++ b/cmd/reproduce_release/buildinfo_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // buildinfo_test.go covers what the build information of a published binary // is held to before it is rebuilt, and how two binaries that differ are told // apart. diff --git a/cmd/reproduce_release/checksums.go b/cmd/reproduce_release/checksums.go index 998547846..4bffb1401 100644 --- a/cmd/reproduce_release/checksums.go +++ b/cmd/reproduce_release/checksums.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/checksums_test.go b/cmd/reproduce_release/checksums_test.go index 7d55759f2..67d535418 100644 --- a/cmd/reproduce_release/checksums_test.go +++ b/cmd/reproduce_release/checksums_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // checksums_test.go covers the checksum file a release publishes and the // published binaries read against it. package main diff --git a/cmd/reproduce_release/doc.go b/cmd/reproduce_release/doc.go index 11b668455..87627022f 100644 --- a/cmd/reproduce_release/doc.go +++ b/cmd/reproduce_release/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command reproduce_release rebuilds the binaries a release publishes and // compares them with the published ones byte for byte, or builds every // release target of a tree twice and compares the two builds. diff --git a/cmd/reproduce_release/git.go b/cmd/reproduce_release/git.go index 568d321c0..5e54657f4 100644 --- a/cmd/reproduce_release/git.go +++ b/cmd/reproduce_release/git.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/git_test.go b/cmd/reproduce_release/git_test.go index 5b3651818..602ca089a 100644 --- a/cmd/reproduce_release/git_test.go +++ b/cmd/reproduce_release/git_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // git_test.go covers the clone a release is rebuilt in, and the two answers // read from git: the commit a ref names and the abbreviation of it. package main diff --git a/cmd/reproduce_release/goreleaser.go b/cmd/reproduce_release/goreleaser.go index e9da49be2..35499a03a 100644 --- a/cmd/reproduce_release/goreleaser.go +++ b/cmd/reproduce_release/goreleaser.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/goreleaser_test.go b/cmd/reproduce_release/goreleaser_test.go index e7802dd77..3000afc39 100644 --- a/cmd/reproduce_release/goreleaser_test.go +++ b/cmd/reproduce_release/goreleaser_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // goreleaser_test.go covers what this command reads of a GoReleaser // configuration, and every setting it refuses rather than read half right. package main diff --git a/cmd/reproduce_release/main.go b/cmd/reproduce_release/main.go index d870ccc6c..e44fe4adc 100644 --- a/cmd/reproduce_release/main.go +++ b/cmd/reproduce_release/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/main_test.go b/cmd/reproduce_release/main_test.go index 5e8daa30f..f52e27c52 100644 --- a/cmd/reproduce_release/main_test.go +++ b/cmd/reproduce_release/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go covers the command line: which arguments make a run, which // are refused before one starts, and the exit code main hands the process. package main diff --git a/cmd/reproduce_release/recipe.go b/cmd/reproduce_release/recipe.go index 72d1f3a51..63daac3e3 100644 --- a/cmd/reproduce_release/recipe.go +++ b/cmd/reproduce_release/recipe.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/recipe_test.go b/cmd/reproduce_release/recipe_test.go index 43a6d50e4..7d133c696 100644 --- a/cmd/reproduce_release/recipe_test.go +++ b/cmd/reproduce_release/recipe_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // recipe_test.go covers how a configuration becomes the go command line, // the environment and the names of each binary: GoReleaser's templates // evaluated with the fields this command knows, an override's ldflags in diff --git a/cmd/reproduce_release/repeat.go b/cmd/reproduce_release/repeat.go index 44c90bacf..0fc0efcf1 100644 --- a/cmd/reproduce_release/repeat.go +++ b/cmd/reproduce_release/repeat.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/repeat_test.go b/cmd/reproduce_release/repeat_test.go index 78fc80ff4..e6bfc1e3b 100644 --- a/cmd/reproduce_release/repeat_test.go +++ b/cmd/reproduce_release/repeat_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // repeat_test.go drives the offline check end to end: every release target // of a tree built twice, the second time from an empty build cache, and the // two builds compared. diff --git a/cmd/reproduce_release/report.go b/cmd/reproduce_release/report.go index 8311af82a..9c09b1347 100644 --- a/cmd/reproduce_release/report.go +++ b/cmd/reproduce_release/report.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/report_test.go b/cmd/reproduce_release/report_test.go index 628b53698..0c6e86e6b 100644 --- a/cmd/reproduce_release/report_test.go +++ b/cmd/reproduce_release/report_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // report_test.go covers what a run prints, in both of its modes, and the // verdict the exit code is taken from. package main diff --git a/cmd/reproduce_release/reproduce.go b/cmd/reproduce_release/reproduce.go index 1ff843d0e..b52ee2e08 100644 --- a/cmd/reproduce_release/reproduce.go +++ b/cmd/reproduce_release/reproduce.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/reproduce_test.go b/cmd/reproduce_release/reproduce_test.go index 3c9637378..3069449eb 100644 --- a/cmd/reproduce_release/reproduce_test.go +++ b/cmd/reproduce_release/reproduce_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // reproduce_test.go drives a release's reproduction end to end: a fixture // repository tagged as a release, its binaries built the way the release // builds them and published beside a checksum file, and this command diff --git a/cmd/reproduce_release/universal.go b/cmd/reproduce_release/universal.go index 9218fd2a6..ce701920b 100644 --- a/cmd/reproduce_release/universal.go +++ b/cmd/reproduce_release/universal.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/reproduce_release/universal_test.go b/cmd/reproduce_release/universal_test.go index 3573a32cd..096a0d6a2 100644 --- a/cmd/reproduce_release/universal_test.go +++ b/cmd/reproduce_release/universal_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // universal_test.go covers the universal darwin binary: the order its header // lists its slices in, and the file joined from rebuilt darwin binaries in // that order, laid out the way GoReleaser lays it out. diff --git a/cmd/server/auth_blocks.go b/cmd/server/auth_blocks.go index 84c72ecfc..08fd9171a 100644 --- a/cmd/server/auth_blocks.go +++ b/cmd/server/auth_blocks.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/auth_blocks_test.go b/cmd/server/auth_blocks_test.go index 883bf9aab..b3a97ff80 100644 --- a/cmd/server/auth_blocks_test.go +++ b/cmd/server/auth_blocks_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/auth_gate.go b/cmd/server/auth_gate.go index f79a26005..1e8f21ab6 100644 --- a/cmd/server/auth_gate.go +++ b/cmd/server/auth_gate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/auth_gate_test.go b/cmd/server/auth_gate_test.go index 20e309591..6e7229f94 100644 --- a/cmd/server/auth_gate_test.go +++ b/cmd/server/auth_gate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/bearer_guard.go b/cmd/server/bearer_guard.go index c6a922ae7..eb7e635e8 100644 --- a/cmd/server/bearer_guard.go +++ b/cmd/server/bearer_guard.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // bearer_guard.go authenticates OAuth-mode requests before the SDK's bearer // middleware runs. // diff --git a/cmd/server/bearer_guard_test.go b/cmd/server/bearer_guard_test.go index ea0f4a000..7579c1975 100644 --- a/cmd/server/bearer_guard_test.go +++ b/cmd/server/bearer_guard_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // bearer_guard_test.go verifies the OAuth pre-authentication guard: what it // costs upstream, what it charges to the rate limiter, and what it tells the // client in the RFC 6750 challenge. diff --git a/cmd/server/carrier.go b/cmd/server/carrier.go index fa03e3fc2..d33d7a7d6 100644 --- a/cmd/server/carrier.go +++ b/cmd/server/carrier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/carrier_test.go b/cmd/server/carrier_test.go index 31779d444..f23714017 100644 --- a/cmd/server/carrier_test.go +++ b/cmd/server/carrier_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/client_ip.go b/cmd/server/client_ip.go index 5def3cad5..1fece8d5d 100644 --- a/cmd/server/client_ip.go +++ b/cmd/server/client_ip.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // client_ip.go decides which address a request is charged to, and the key the // authentication budgets read off it. // diff --git a/cmd/server/client_ip_test.go b/cmd/server/client_ip_test.go index 13f431441..5abd789d6 100644 --- a/cmd/server/client_ip_test.go +++ b/cmd/server/client_ip_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // client_ip_test.go covers which address a request is charged to: the peer // unless a trusted proxy vouched for another, and then the first hop from the // right that is not itself a trusted proxy; and the keys the authentication diff --git a/cmd/server/conn_refused_unix.go b/cmd/server/conn_refused_unix.go index 143d053e3..3d00cd5ed 100644 --- a/cmd/server/conn_refused_unix.go +++ b/cmd/server/conn_refused_unix.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !windows // conn_refused_unix.go answers "did the kernel say nothing is listening?" on the diff --git a/cmd/server/conn_refused_windows.go b/cmd/server/conn_refused_windows.go index cffce2b15..baffddd68 100644 --- a/cmd/server/conn_refused_windows.go +++ b/cmd/server/conn_refused_windows.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build windows // conn_refused_windows.go answers "did the kernel say nothing is listening?" on diff --git a/cmd/server/conn_refused_windows_test.go b/cmd/server/conn_refused_windows_test.go index 367f0eaac..7f7fce4c2 100644 --- a/cmd/server/conn_refused_windows_test.go +++ b/cmd/server/conn_refused_windows_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build windows // conn_refused_windows_test.go pins the one constant that decides whether a diff --git a/cmd/server/credential.go b/cmd/server/credential.go index 2d096a210..417314b95 100644 --- a/cmd/server/credential.go +++ b/cmd/server/credential.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/credential_test.go b/cmd/server/credential_test.go index eef9d3526..5f0efdf55 100644 --- a/cmd/server/credential_test.go +++ b/cmd/server/credential_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // credential_test.go covers the per-credential half of a server shared by every // credential of one configuration shape: the registry that holds it, the // context values that carry it, and the middleware that puts it back in front diff --git a/cmd/server/descriptor_limit.go b/cmd/server/descriptor_limit.go index 8d22347d9..2aa0c3105 100644 --- a/cmd/server/descriptor_limit.go +++ b/cmd/server/descriptor_limit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build linux || darwin // descriptor_limit.go reads the number of file descriptors the process may diff --git a/cmd/server/descriptor_limit_other.go b/cmd/server/descriptor_limit_other.go index 852e68fff..650bb773d 100644 --- a/cmd/server/descriptor_limit_other.go +++ b/cmd/server/descriptor_limit_other.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !linux && !darwin // descriptor_limit_other.go answers for the platforms with no RLIMIT_NOFILE this diff --git a/cmd/server/descriptor_limit_test.go b/cmd/server/descriptor_limit_test.go index 8f3c2ae02..346786207 100644 --- a/cmd/server/descriptor_limit_test.go +++ b/cmd/server/descriptor_limit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build linux || darwin package main diff --git a/cmd/server/discovery.go b/cmd/server/discovery.go index c2f03dd66..2cdc829ac 100644 --- a/cmd/server/discovery.go +++ b/cmd/server/discovery.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/discovery_card.go b/cmd/server/discovery_card.go index af1157e6d..584ae851d 100644 --- a/cmd/server/discovery_card.go +++ b/cmd/server/discovery_card.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/discovery_card_test.go b/cmd/server/discovery_card_test.go index 7e8bbbe4c..4a73887bb 100644 --- a/cmd/server/discovery_card_test.go +++ b/cmd/server/discovery_card_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/discovery_rate.go b/cmd/server/discovery_rate.go index 7db5afe10..604e7d030 100644 --- a/cmd/server/discovery_rate.go +++ b/cmd/server/discovery_rate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // discovery_rate.go bounds how fast one client address may ask for the // documents this server publishes without a credential (issue 1053, register // row RTC-008): the SEP-2127 server card, the legacy enumerating card and, in diff --git a/cmd/server/discovery_rate_test.go b/cmd/server/discovery_rate_test.go index cbbbc02ba..76f828d4a 100644 --- a/cmd/server/discovery_rate_test.go +++ b/cmd/server/discovery_rate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/discovery_test.go b/cmd/server/discovery_test.go index 464de5f40..4de0a7474 100644 --- a/cmd/server/discovery_test.go +++ b/cmd/server/discovery_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // discovery_test.go verifies the wrapper around the SDK's protected-resource // metadata handler: the HTTP rules that apply to any public document, which the // SDK handler does not meet on its own. diff --git a/cmd/server/doc.go b/cmd/server/doc.go index e99e54966..a6da84184 100644 --- a/cmd/server/doc.go +++ b/cmd/server/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command server is the MCP server entry point for gitlab-mcp-server. // In stdio mode, configuration comes from environment variables (.env / exports). // In HTTP mode, configuration comes from CLI flags; no GITLAB_TOKEN is required diff --git a/cmd/server/env_flags.go b/cmd/server/env_flags.go index a66c10e1c..0de1502a3 100644 --- a/cmd/server/env_flags.go +++ b/cmd/server/env_flags.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/env_flags_test.go b/cmd/server/env_flags_test.go index b34494372..9c8998c5d 100644 --- a/cmd/server/env_flags_test.go +++ b/cmd/server/env_flags_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/env_overlay.go b/cmd/server/env_overlay.go index e42e6be9f..95fdacff0 100644 --- a/cmd/server/env_overlay.go +++ b/cmd/server/env_overlay.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // env_overlay.go applies environment variables underneath the HTTP-mode flags. // // HTTP mode built its configuration purely from flags, so every documented diff --git a/cmd/server/env_overlay_test.go b/cmd/server/env_overlay_test.go index 1e6671b13..381bdade1 100644 --- a/cmd/server/env_overlay_test.go +++ b/cmd/server/env_overlay_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // env_overlay_test.go verifies the HTTP-mode configuration precedence: // an explicitly passed flag, then the environment, then the built-in default. package main diff --git a/cmd/server/etag.go b/cmd/server/etag.go index ece859b5b..2d445fd5f 100644 --- a/cmd/server/etag.go +++ b/cmd/server/etag.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // etag.go gives the documents this server renders once and then serves // unchanged a validator, so a client that already holds a copy is answered // 304 rather than handed a second one. diff --git a/cmd/server/etag_test.go b/cmd/server/etag_test.go index ffd911b53..df429f804 100644 --- a/cmd/server/etag_test.go +++ b/cmd/server/etag_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // etag_test.go verifies the validator this server publishes for the documents // it renders once and then serves unchanged, and the conditional request that // validator exists to make possible. diff --git a/cmd/server/fine_grained.go b/cmd/server/fine_grained.go index 441146a44..a67e3d516 100644 --- a/cmd/server/fine_grained.go +++ b/cmd/server/fine_grained.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/fine_grained_test.go b/cmd/server/fine_grained_test.go index fee95cfb0..40135a678 100644 --- a/cmd/server/fine_grained_test.go +++ b/cmd/server/fine_grained_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/first_run.go b/cmd/server/first_run.go index 71ca5811a..eb3f46f75 100644 --- a/cmd/server/first_run.go +++ b/cmd/server/first_run.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/first_run_test.go b/cmd/server/first_run_test.go index 71aa8f0a4..574bb46ff 100644 --- a/cmd/server/first_run_test.go +++ b/cmd/server/first_run_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/health.go b/cmd/server/health.go index f953d6805..fadd93442 100644 --- a/cmd/server/health.go +++ b/cmd/server/health.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // health.go answers /health: whether this process is serving or draining, // which build it is, and a fingerprint of the configuration that shapes what // it serves. diff --git a/cmd/server/health_test.go b/cmd/server/health_test.go index b7f15db24..cbce9a673 100644 --- a/cmd/server/health_test.go +++ b/cmd/server/health_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/held.go b/cmd/server/held.go index 3828bd9b7..677d2aad2 100644 --- a/cmd/server/held.go +++ b/cmd/server/held.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/held_test.go b/cmd/server/held_test.go index 7ab4300ce..ecaca49d5 100644 --- a/cmd/server/held_test.go +++ b/cmd/server/held_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/host_guard.go b/cmd/server/host_guard.go index 9ca4d762f..d39976e99 100644 --- a/cmd/server/host_guard.go +++ b/cmd/server/host_guard.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // host_guard.go decides which Host header this deployment answers. // // The check exists against DNS rebinding: an attacker resolves a name they diff --git a/cmd/server/host_guard_test.go b/cmd/server/host_guard_test.go index b5bf590a6..a8a99fa77 100644 --- a/cmd/server/host_guard_test.go +++ b/cmd/server/host_guard_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/http_only_flags.go b/cmd/server/http_only_flags.go index 8a3ddc962..f88500ec8 100644 --- a/cmd/server/http_only_flags.go +++ b/cmd/server/http_only_flags.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/http_only_flags_test.go b/cmd/server/http_only_flags_test.go index 0e92d4dcd..746b02502 100644 --- a/cmd/server/http_only_flags_test.go +++ b/cmd/server/http_only_flags_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/instructions.go b/cmd/server/instructions.go index 3e8638698..db677aefc 100644 --- a/cmd/server/instructions.go +++ b/cmd/server/instructions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // instructions.go builds the MCP handshake instructions, the text every client // injects into its model's system prompt. Because the same operation is named // differently on each tool surface, the guidance is assembled per surface diff --git a/cmd/server/instructions_test.go b/cmd/server/instructions_test.go index 29b241b40..c2fc56601 100644 --- a/cmd/server/instructions_test.go +++ b/cmd/server/instructions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // instructions_test.go verifies the handshake instructions built by // instructions.go. The instructions are injected into every model's system // prompt, so a tool named there that the active surface does not expose sends diff --git a/cmd/server/jsonrpc_id.go b/cmd/server/jsonrpc_id.go index afa3c51b0..d6038f980 100644 --- a/cmd/server/jsonrpc_id.go +++ b/cmd/server/jsonrpc_id.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/jsonrpc_id_test.go b/cmd/server/jsonrpc_id_test.go index 2f98ae61c..8813e4d48 100644 --- a/cmd/server/jsonrpc_id_test.go +++ b/cmd/server/jsonrpc_id_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/listen.go b/cmd/server/listen.go index 8347cefa2..5fddff6c5 100644 --- a/cmd/server/listen.go +++ b/cmd/server/listen.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // listen.go binds the HTTP-mode listener, which is not always a TCP port. // // A deployment behind a reverse proxy on the same machine has two ways to diff --git a/cmd/server/listen_test.go b/cmd/server/listen_test.go index e6d3b915b..2a0942b88 100644 --- a/cmd/server/listen_test.go +++ b/cmd/server/listen_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // listen_test.go covers the listener the HTTP server binds: a unix socket // when the address is a path, a TCP port otherwise, plus the TLS pair and the // socket permission mode that go with them. diff --git a/cmd/server/listen_unix_test.go b/cmd/server/listen_unix_test.go index bc587b282..ebefcde2f 100644 --- a/cmd/server/listen_unix_test.go +++ b/cmd/server/listen_unix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !windows // listen_unix_test.go holds the parts of the listener's behavior that only diff --git a/cmd/server/main.go b/cmd/server/main.go index 6211c013e..8c34955e8 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/main_linux_test.go b/cmd/server/main_linux_test.go index 55efc17f2..e83688fa5 100644 --- a/cmd/server/main_linux_test.go +++ b/cmd/server/main_linux_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build linux package main diff --git a/cmd/server/main_norace_test.go b/cmd/server/main_norace_test.go index 4fa8969cb..e8a5ff886 100644 --- a/cmd/server/main_norace_test.go +++ b/cmd/server/main_norace_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !race // main_norace_test.go is the ordinary half of this package's test seam, used diff --git a/cmd/server/main_race_test.go b/cmd/server/main_race_test.go index a44a4e8ae..477e3f641 100644 --- a/cmd/server/main_race_test.go +++ b/cmd/server/main_race_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build race // main_race_test.go is the race-detector half of this package's test seam. The diff --git a/cmd/server/main_test.go b/cmd/server/main_test.go index 556fec420..c282b4d45 100644 --- a/cmd/server/main_test.go +++ b/cmd/server/main_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // main_test.go contains unit and integration-style tests for the server entry // point. Tests cover CLI flag handling, configuration validation, GitLab client // setup, HTTP and stdio transport modes, MCP protocol handshakes, tool catalog diff --git a/cmd/server/pool_metrics.go b/cmd/server/pool_metrics.go index 5e65c670c..0423f832b 100644 --- a/cmd/server/pool_metrics.go +++ b/cmd/server/pool_metrics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/pool_metrics_test.go b/cmd/server/pool_metrics_test.go index 013d86b8a..e51cbb37c 100644 --- a/cmd/server/pool_metrics_test.go +++ b/cmd/server/pool_metrics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/pprof.go b/cmd/server/pprof.go index 96145926e..640bd253c 100644 --- a/cmd/server/pprof.go +++ b/cmd/server/pprof.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pprof.go serves Go's profiling handlers on a loopback listener of their // own, for the benchmark driver and for anybody asking where a running // server's memory and processor time go. diff --git a/cmd/server/pprof_test.go b/cmd/server/pprof_test.go index 46292e8a3..bdbcec0e5 100644 --- a/cmd/server/pprof_test.go +++ b/cmd/server/pprof_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/probe.go b/cmd/server/probe.go index b5ee441e1..a87070bc2 100644 --- a/cmd/server/probe.go +++ b/cmd/server/probe.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // probe.go answers the container HEALTHCHECK from inside the binary. // // The image used to probe http://localhost:8080/health with wget, which is diff --git a/cmd/server/probe_linux.go b/cmd/server/probe_linux.go index 1f77e5c6a..e36261fcc 100644 --- a/cmd/server/probe_linux.go +++ b/cmd/server/probe_linux.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main // peerStdinIsNull reads a peer's file descriptor 0 from procfs, which is what diff --git a/cmd/server/probe_linux_test.go b/cmd/server/probe_linux_test.go index 7419f7494..30367f719 100644 --- a/cmd/server/probe_linux_test.go +++ b/cmd/server/probe_linux_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/probe_other.go b/cmd/server/probe_other.go index 9c81ef41c..17a6b4961 100644 --- a/cmd/server/probe_other.go +++ b/cmd/server/probe_other.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !linux package main diff --git a/cmd/server/probe_test.go b/cmd/server/probe_test.go index c7fc59b27..d3b68351d 100644 --- a/cmd/server/probe_test.go +++ b/cmd/server/probe_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // probe_test.go covers --probe: how a peer's command line is read, where the // probe connects for each listener a deployment can choose, and what exit code // each outcome earns. diff --git a/cmd/server/readiness.go b/cmd/server/readiness.go index c5fbdc733..e17d3c248 100644 --- a/cmd/server/readiness.go +++ b/cmd/server/readiness.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // readiness.go answers the handshake before the tool catalog exists. // // A stdio client writes initialize the instant it has spawned the process. diff --git a/cmd/server/readiness_test.go b/cmd/server/readiness_test.go index a4fc1080e..668ff3100 100644 --- a/cmd/server/readiness_test.go +++ b/cmd/server/readiness_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // readiness_test.go verifies the gate that lets a stdio server answer the // handshake while its tool catalog is still being built. // diff --git a/cmd/server/recover.go b/cmd/server/recover.go index b881b4ed0..7e4d85d2a 100644 --- a/cmd/server/recover.go +++ b/cmd/server/recover.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/recover_test.go b/cmd/server/recover_test.go index 908708856..2ff4827f7 100644 --- a/cmd/server/recover_test.go +++ b/cmd/server/recover_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/refusal_log.go b/cmd/server/refusal_log.go index 0c9340c0a..f4cfbfe11 100644 --- a/cmd/server/refusal_log.go +++ b/cmd/server/refusal_log.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // refusal_log.go throttles the log lines a caller can trigger at will. // // Every refusal the gates write before a credential is checked is a line an diff --git a/cmd/server/refusal_log_test.go b/cmd/server/refusal_log_test.go index 1b1bb0c6f..fda32412a 100644 --- a/cmd/server/refusal_log_test.go +++ b/cmd/server/refusal_log_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // refusal_log_test.go covers the throttle on the refusal lines a caller can // trigger before any credential is checked. package main diff --git a/cmd/server/sdk_log.go b/cmd/server/sdk_log.go index 75c9aaaf5..ab6539a06 100644 --- a/cmd/server/sdk_log.go +++ b/cmd/server/sdk_log.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/sdk_log_test.go b/cmd/server/sdk_log_test.go index 25d061323..387b270b6 100644 --- a/cmd/server/sdk_log_test.go +++ b/cmd/server/sdk_log_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/session_owner.go b/cmd/server/session_owner.go index b02f7760e..eac0194ef 100644 --- a/cmd/server/session_owner.go +++ b/cmd/server/session_owner.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/session_owner_test.go b/cmd/server/session_owner_test.go index db4680f72..e75ee260c 100644 --- a/cmd/server/session_owner_test.go +++ b/cmd/server/session_owner_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // session_owner_test.go covers the table that records which pooled credential // each MCP session belongs to, and the sending middleware that keeps a // resource-updated notification to that credential's own sessions. diff --git a/cmd/server/sessions.go b/cmd/server/sessions.go index 0538b3df1..53cf693c0 100644 --- a/cmd/server/sessions.go +++ b/cmd/server/sessions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/sessions_test.go b/cmd/server/sessions_test.go index f31802161..f764f875f 100644 --- a/cmd/server/sessions_test.go +++ b/cmd/server/sessions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/shape.go b/cmd/server/shape.go index f77e7c584..e218dfdba 100644 --- a/cmd/server/shape.go +++ b/cmd/server/shape.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/shape_test.go b/cmd/server/shape_test.go index 15e095709..f1142cf6a 100644 --- a/cmd/server/shape_test.go +++ b/cmd/server/shape_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shape_test.go covers what a server is built for, and how many of them a // process ends up with. // diff --git a/cmd/server/shutdown.go b/cmd/server/shutdown.go index 31c99e12e..ea499b6f0 100644 --- a/cmd/server/shutdown.go +++ b/cmd/server/shutdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/shutdown_test.go b/cmd/server/shutdown_test.go index b363055e1..22d59c02b 100644 --- a/cmd/server/shutdown_test.go +++ b/cmd/server/shutdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shutdown_test.go verifies --shutdown: how this binary recognizes other // copies of itself, and what it does to them. // diff --git a/cmd/server/socket_mode_unix.go b/cmd/server/socket_mode_unix.go index 4b831a9d8..63081abac 100644 --- a/cmd/server/socket_mode_unix.go +++ b/cmd/server/socket_mode_unix.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !windows // socket_mode_unix.go creates the unix socket with its permission mode already diff --git a/cmd/server/socket_mode_unix_test.go b/cmd/server/socket_mode_unix_test.go index 5460a6e41..f51f5e167 100644 --- a/cmd/server/socket_mode_unix_test.go +++ b/cmd/server/socket_mode_unix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !windows // socket_mode_unix_test.go covers the two properties bindUnixSocket exists to diff --git a/cmd/server/socket_mode_windows.go b/cmd/server/socket_mode_windows.go index b83612ea2..564f0eef0 100644 --- a/cmd/server/socket_mode_windows.go +++ b/cmd/server/socket_mode_windows.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build windows // socket_mode_windows.go is the Windows half of unix socket binding. diff --git a/cmd/server/socket_mode_windows_test.go b/cmd/server/socket_mode_windows_test.go index 87c984d64..a26b7aa5e 100644 --- a/cmd/server/socket_mode_windows_test.go +++ b/cmd/server/socket_mode_windows_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build windows // socket_mode_windows_test.go covers the Windows half of unix socket binding, diff --git a/cmd/server/stdio.go b/cmd/server/stdio.go index db3e7f241..06edce91a 100644 --- a/cmd/server/stdio.go +++ b/cmd/server/stdio.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/stdio_test.go b/cmd/server/stdio_test.go index eb9bdfca6..640f5ab87 100644 --- a/cmd/server/stdio_test.go +++ b/cmd/server/stdio_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/subscriptions.go b/cmd/server/subscriptions.go index e6a727989..885a359bf 100644 --- a/cmd/server/subscriptions.go +++ b/cmd/server/subscriptions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/subscriptions_test.go b/cmd/server/subscriptions_test.go index 7c50cc804..52b9d3eba 100644 --- a/cmd/server/subscriptions_test.go +++ b/cmd/server/subscriptions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // subscriptions_test.go covers the wiring that turns the subscriptions // package into a working resources/subscribe implementation: whether the // capability is advertised, and whether a real client actually receives a diff --git a/cmd/server/telemetry.go b/cmd/server/telemetry.go index b4553e745..9cbaca37e 100644 --- a/cmd/server/telemetry.go +++ b/cmd/server/telemetry.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/telemetry_identity.go b/cmd/server/telemetry_identity.go index eba5f6371..7e217ba47 100644 --- a/cmd/server/telemetry_identity.go +++ b/cmd/server/telemetry_identity.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/telemetry_identity_test.go b/cmd/server/telemetry_identity_test.go index ef9e78528..16194fd30 100644 --- a/cmd/server/telemetry_identity_test.go +++ b/cmd/server/telemetry_identity_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // telemetry_identity_test.go covers how this binary resolves the identity // policy into the redactor every signal shares. package main diff --git a/cmd/server/telemetry_test.go b/cmd/server/telemetry_test.go index a4e2db3ce..7945f2bf6 100644 --- a/cmd/server/telemetry_test.go +++ b/cmd/server/telemetry_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/testdata/peer/main.go b/cmd/server/testdata/peer/main.go index f01660d77..61d013d44 100644 --- a/cmd/server/testdata/peer/main.go +++ b/cmd/server/testdata/peer/main.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Command peer is a stand-in for a running gitlab-mcp-server process, built by // the --shutdown tests under the name they expect to find and then left to // block until somebody stops it. diff --git a/cmd/server/tls_reload.go b/cmd/server/tls_reload.go index 185c5e7ca..39a185e50 100644 --- a/cmd/server/tls_reload.go +++ b/cmd/server/tls_reload.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // tls_reload.go serves the certificate that is on disk now, not the one that // was there when the process started. // diff --git a/cmd/server/tls_reload_test.go b/cmd/server/tls_reload_test.go index 91ad40725..671e8ba98 100644 --- a/cmd/server/tls_reload_test.go +++ b/cmd/server/tls_reload_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/transport.go b/cmd/server/transport.go index c6dceba76..6cdd850e5 100644 --- a/cmd/server/transport.go +++ b/cmd/server/transport.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/transport_other_test.go b/cmd/server/transport_other_test.go index e88740867..955f53181 100644 --- a/cmd/server/transport_other_test.go +++ b/cmd/server/transport_other_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !unix package main diff --git a/cmd/server/transport_test.go b/cmd/server/transport_test.go index 6ac7b66c8..730612bf5 100644 --- a/cmd/server/transport_test.go +++ b/cmd/server/transport_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/transport_unix_test.go b/cmd/server/transport_unix_test.go index 8a396c34e..c0e0ed248 100644 --- a/cmd/server/transport_unix_test.go +++ b/cmd/server/transport_unix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build unix package main diff --git a/cmd/server/version_refusal.go b/cmd/server/version_refusal.go index c6c5a5e10..36d907237 100644 --- a/cmd/server/version_refusal.go +++ b/cmd/server/version_refusal.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/cmd/server/version_refusal_test.go b/cmd/server/version_refusal_test.go index 81af50486..d261b9b08 100644 --- a/cmd/server/version_refusal_test.go +++ b/cmd/server/version_refusal_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package main import ( diff --git a/internal/cachehints/cache_hints.go b/internal/cachehints/cache_hints.go index 105c74863..7a536dc42 100644 --- a/internal/cachehints/cache_hints.go +++ b/internal/cachehints/cache_hints.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cachehints import ( diff --git a/internal/cachehints/cache_hints_test.go b/internal/cachehints/cache_hints_test.go index 0c1ddaae1..3b32d5550 100644 --- a/internal/cachehints/cache_hints_test.go +++ b/internal/cachehints/cache_hints_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package cachehints_test verifies the SEP-2549 cache-hint middleware policy. package cachehints_test diff --git a/internal/cachehints/doc.go b/internal/cachehints/doc.go index ec64186ff..9daa5c1a5 100644 --- a/internal/cachehints/doc.go +++ b/internal/cachehints/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package cachehints applies SEP-2549 cache hints (ttlMs/cacheScope) to MCP // results. Almost every catalog in this server is token- and tier-dependent // (PAT scope filtering, licensing-tier gating), so almost every cacheable diff --git a/internal/capguard/cap_guard.go b/internal/capguard/cap_guard.go index 5610945ad..77577f356 100644 --- a/internal/capguard/cap_guard.go +++ b/internal/capguard/cap_guard.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package capguard import ( diff --git a/internal/capguard/cap_guard_test.go b/internal/capguard/cap_guard_test.go index 83567bf65..b369f0f14 100644 --- a/internal/capguard/cap_guard_test.go +++ b/internal/capguard/cap_guard_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // cap_guard_test.go verifies the Undeclared middleware refuses exactly the // gated methods with the SDK's own method-not-found code and passes every // other method through to the wrapped handler unchanged. diff --git a/internal/capguard/doc.go b/internal/capguard/doc.go index b89c222b3..6afcb2afd 100644 --- a/internal/capguard/doc.go +++ b/internal/capguard/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package capguard keeps the methods this server answers in step with the // capabilities it declares. // diff --git a/internal/clientcompat/client_compat.go b/internal/clientcompat/client_compat.go index d673b94d5..33e480b94 100644 --- a/internal/clientcompat/client_compat.go +++ b/internal/clientcompat/client_compat.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package clientcompat import ( diff --git a/internal/clientcompat/client_compat_test.go b/internal/clientcompat/client_compat_test.go index eeaeef572..e20fdef47 100644 --- a/internal/clientcompat/client_compat_test.go +++ b/internal/clientcompat/client_compat_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package clientcompat_test verifies the per-client response compatibility // middleware end to end: a real mcp.Server with the middleware installed is // connected over in-memory transports by clients that identify as Codex and diff --git a/internal/clientcompat/doc.go b/internal/clientcompat/doc.go index 1338d4e31..d10ee2345 100644 --- a/internal/clientcompat/doc.go +++ b/internal/clientcompat/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package clientcompat applies per-client response compatibility profiles to // MCP results. Most MCP clients ignore fields they do not understand, so the // server ships its full surface (icons, content annotations, structured diff --git a/internal/clientcompat/export_test.go b/internal/clientcompat/export_test.go index 203c1c797..85a0f68dd 100644 --- a/internal/clientcompat/export_test.go +++ b/internal/clientcompat/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes unexported clientcompat internals to the external // test package so every defensive branch (nil clientInfo, sessions without // initialize params, unknown content types) and the User-Agent fallback are diff --git a/internal/cmdutil/cmd_util.go b/internal/cmdutil/cmd_util.go index 91196d850..7fc4059ae 100644 --- a/internal/cmdutil/cmd_util.go +++ b/internal/cmdutil/cmd_util.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cmdutil import ( diff --git a/internal/cmdutil/cmd_util_test.go b/internal/cmdutil/cmd_util_test.go index bcca613b0..3a35fe18f 100644 --- a/internal/cmdutil/cmd_util_test.go +++ b/internal/cmdutil/cmd_util_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cmdutil import ( diff --git a/internal/cmdutil/doc.go b/internal/cmdutil/doc.go index 64f7366fc..23fe2e77c 100644 --- a/internal/cmdutil/doc.go +++ b/internal/cmdutil/doc.go @@ -1,2 +1,5 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package cmdutil provides shared helpers for repository command utilities. package cmdutil diff --git a/internal/completions/completions.go b/internal/completions/completions.go index 5ff5364bb..d8e2584e3 100644 --- a/internal/completions/completions.go +++ b/internal/completions/completions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package completions import ( diff --git a/internal/completions/completions_test.go b/internal/completions/completions_test.go index f060fb36d..689bc4168 100644 --- a/internal/completions/completions_test.go +++ b/internal/completions/completions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // completions_test.go contains unit tests for the [Handler.Complete] dispatch // logic. Tests cover prompt and resource argument completion for project IDs, // group IDs, usernames, MR IIDs, issue IIDs, branches, and tags using diff --git a/internal/completions/doc.go b/internal/completions/doc.go index f9a8b01f5..e654dea2b 100644 --- a/internal/completions/doc.go +++ b/internal/completions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package completions provides a CompletionHandler for GitLab-aware autocomplete // of prompt arguments and resource URI template parameters. // diff --git a/internal/completions/exclusion.go b/internal/completions/exclusion.go index 3f66aacd7..1a095d7bb 100644 --- a/internal/completions/exclusion.go +++ b/internal/completions/exclusion.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // exclusion.go narrows the completion surface the way --exclude-tools narrows // the tool surface. // diff --git a/internal/completions/exclusion_test.go b/internal/completions/exclusion_test.go index e7a64f576..15f3c0240 100644 --- a/internal/completions/exclusion_test.go +++ b/internal/completions/exclusion_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // exclusion_test.go covers the narrowing --exclude-tools applies to the // completion surface, and the drift guards on the hand-kept table it reads. diff --git a/internal/completions/search.go b/internal/completions/search.go index 1de9325a2..b1fe02878 100644 --- a/internal/completions/search.go +++ b/internal/completions/search.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package completions import ( diff --git a/internal/completions/search_test.go b/internal/completions/search_test.go index ecce53406..2fe414610 100644 --- a/internal/completions/search_test.go +++ b/internal/completions/search_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // search_test.go contains unit tests for the GitLab API search functions // (projects, groups, users, merge requests, issues, branches, tags). // Tests verify successful searches, empty queries, API errors, and context diff --git a/internal/config/config.go b/internal/config/config.go index a0d4f83fb..74578e82d 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package config import ( diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 73229499f..96b84481f 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // config_test.go contains unit tests for the config package. // Tests verify [Load] behavior with valid configuration, missing required // fields, and invalid boolean environment variable values. diff --git a/internal/config/doc.go b/internal/config/doc.go index d4d420e6e..8a91a3c40 100644 --- a/internal/config/doc.go +++ b/internal/config/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package config loads, normalizes, and validates runtime configuration for the // GitLab MCP server. // diff --git a/internal/config/env_file.go b/internal/config/env_file.go index efc837dab..fff0f73e9 100644 --- a/internal/config/env_file.go +++ b/internal/config/env_file.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // env_file.go decides which dotenv files are allowed to configure this process. // // A stdio MCP server inherits its working directory from the client, and every diff --git a/internal/config/env_file_test.go b/internal/config/env_file_test.go index 2b532e4f9..bab01f958 100644 --- a/internal/config/env_file_test.go +++ b/internal/config/env_file_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // env_file_test.go verifies where the server is willing to take configuration // from: the process environment, an explicitly named dotenv file, and the // operator's home file — but never an unannounced .env in whatever directory diff --git a/internal/config/env_name.go b/internal/config/env_name.go index da08c1739..4cc5a3488 100644 --- a/internal/config/env_name.go +++ b/internal/config/env_name.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package config import ( diff --git a/internal/config/env_name_test.go b/internal/config/env_name_test.go index 7fef2a551..cd5e4fb8a 100644 --- a/internal/config/env_name_test.go +++ b/internal/config/env_name_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package config import ( diff --git a/internal/config/http_overlay.go b/internal/config/http_overlay.go index d648cb5d2..155f8ff50 100644 --- a/internal/config/http_overlay.go +++ b/internal/config/http_overlay.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // http_overlay.go layers environment variables underneath the HTTP-mode CLI // flags. // diff --git a/internal/config/http_overlay_test.go b/internal/config/http_overlay_test.go index 33c75927d..560d125a4 100644 --- a/internal/config/http_overlay_test.go +++ b/internal/config/http_overlay_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // http_overlay_test.go verifies the environment layer that sits underneath the // HTTP-mode CLI flags. package config diff --git a/internal/edition/doc.go b/internal/edition/doc.go index 8fe364704..6cc1dc70f 100644 --- a/internal/edition/doc.go +++ b/internal/edition/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package edition defines the GitLab licensing tier model used to gate tool // availability across the MCP server. // diff --git a/internal/edition/tier.go b/internal/edition/tier.go index b4438ef33..09b0d27fc 100644 --- a/internal/edition/tier.go +++ b/internal/edition/tier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package edition import "strings" diff --git a/internal/edition/tier_test.go b/internal/edition/tier_test.go index aeb8a519b..8d2d8d8bf 100644 --- a/internal/edition/tier_test.go +++ b/internal/edition/tier_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // tier_test.go contains unit tests for the edition tier type, its ordering // helpers, and the parsing/mapping functions used by configuration loading and // instance detection. diff --git a/internal/elicitation/doc.go b/internal/elicitation/doc.go index 62a280744..6e95d3a45 100644 --- a/internal/elicitation/doc.go +++ b/internal/elicitation/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package elicitation provides a Client for requesting structured user input // via the MCP elicitation protocol. // diff --git a/internal/elicitation/elicitation.go b/internal/elicitation/elicitation.go index 2ccca1b4b..1593806a3 100644 --- a/internal/elicitation/elicitation.go +++ b/internal/elicitation/elicitation.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package elicitation import ( diff --git a/internal/elicitation/elicitation_test.go b/internal/elicitation/elicitation_test.go index 17cc8f60e..36b0b5276 100644 --- a/internal/elicitation/elicitation_test.go +++ b/internal/elicitation/elicitation_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // elicitation_test.go contains unit and integration tests for the elicitation package. // Unit tests verify nil-safety, unsupported-client error paths, and context cancellation. // Integration tests use in-memory MCP transports to validate [Client.Confirm], diff --git a/internal/elicitation/flow.go b/internal/elicitation/flow.go index cb89a0c0d..69eb0bb4f 100644 --- a/internal/elicitation/flow.go +++ b/internal/elicitation/flow.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // flow.go implements the multi round-trip request // (MRTR, SEP-2322) elicitation flow required by MCP protocol version // 2026-07-28, where server-initiated elicitation/create requests are diff --git a/internal/elicitation/flow_test.go b/internal/elicitation/flow_test.go index 0074e78f0..7f47ab9e1 100644 --- a/internal/elicitation/flow_test.go +++ b/internal/elicitation/flow_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // flow_test.go contains unit and integration tests for the multi round-trip // (MRTR, SEP-2322) elicitation flow. Unit tests construct Flow values // directly to validate pending-request queueing, answer replay, action diff --git a/internal/elicitation/schemas.go b/internal/elicitation/schemas.go index ab0d9b3af..76fe90cc3 100644 --- a/internal/elicitation/schemas.go +++ b/internal/elicitation/schemas.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // schemas.go holds the JSON Schema builders and // response-content parsers shared by the synchronous [Client] path and the // multi round-trip [Flow] path, so both mechanisms request and validate diff --git a/internal/elicitation/schemas_test.go b/internal/elicitation/schemas_test.go index 8905f4d09..f9b122826 100644 --- a/internal/elicitation/schemas_test.go +++ b/internal/elicitation/schemas_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // schemas_test.go contains unit tests for the JSON Schema builders and // response-content parsers shared by the synchronous Client path and the // multi round-trip Flow path. diff --git a/internal/elicitation/state.go b/internal/elicitation/state.go index b3f464161..4934f6ea4 100644 --- a/internal/elicitation/state.go +++ b/internal/elicitation/state.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // state.go signs and binds the opaque RequestState that // carries a multi round-trip flow's accumulated answers between rounds. diff --git a/internal/elicitation/state_test.go b/internal/elicitation/state_test.go index 84219255c..ffd11aee6 100644 --- a/internal/elicitation/state_test.go +++ b/internal/elicitation/state_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package elicitation import ( diff --git a/internal/finegrained/authority.go b/internal/finegrained/authority.go index 41a329e73..50799f41a 100644 --- a/internal/finegrained/authority.go +++ b/internal/finegrained/authority.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/authority_test.go b/internal/finegrained/authority_test.go index 95dd2a763..7c2a540c4 100644 --- a/internal/finegrained/authority_test.go +++ b/internal/finegrained/authority_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/describe.go b/internal/finegrained/describe.go index 2556b1659..dbd3e5ed0 100644 --- a/internal/finegrained/describe.go +++ b/internal/finegrained/describe.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/describe_test.go b/internal/finegrained/describe_test.go index f059c6c23..83eb35dfe 100644 --- a/internal/finegrained/describe_test.go +++ b/internal/finegrained/describe_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/doc.go b/internal/finegrained/doc.go index f891559da..4dcc00eeb 100644 --- a/internal/finegrained/doc.go +++ b/internal/finegrained/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package finegrained holds what a fine-grained personal access token needs // for each catalog action, and the decision this server takes on it. // diff --git a/internal/finegrained/evaluate.go b/internal/finegrained/evaluate.go index e9aef068c..347cb6e0c 100644 --- a/internal/finegrained/evaluate.go +++ b/internal/finegrained/evaluate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/evaluate_generated_test.go b/internal/finegrained/evaluate_generated_test.go index 5f25051a4..a954737bc 100644 --- a/internal/finegrained/evaluate_generated_test.go +++ b/internal/finegrained/evaluate_generated_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained_test import ( diff --git a/internal/finegrained/evaluate_test.go b/internal/finegrained/evaluate_test.go index 16a0f664d..0237e102b 100644 --- a/internal/finegrained/evaluate_test.go +++ b/internal/finegrained/evaluate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/grant.go b/internal/finegrained/grant.go index 2b10cd5a6..db961b713 100644 --- a/internal/finegrained/grant.go +++ b/internal/finegrained/grant.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/grant_test.go b/internal/finegrained/grant_test.go index bc577e3f4..037546caa 100644 --- a/internal/finegrained/grant_test.go +++ b/internal/finegrained/grant_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/notes.go b/internal/finegrained/notes.go index eba4b7dcb..5ce6a256f 100644 --- a/internal/finegrained/notes.go +++ b/internal/finegrained/notes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/notes_test.go b/internal/finegrained/notes_test.go index 9d9a069ff..380209850 100644 --- a/internal/finegrained/notes_test.go +++ b/internal/finegrained/notes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/route.go b/internal/finegrained/route.go index 6c3f427de..d46ec76f5 100644 --- a/internal/finegrained/route.go +++ b/internal/finegrained/route.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/route_test.go b/internal/finegrained/route_test.go index f34bed222..b7a54a354 100644 --- a/internal/finegrained/route_test.go +++ b/internal/finegrained/route_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/table.go b/internal/finegrained/table.go index ac44fcf30..b92efebac 100644 --- a/internal/finegrained/table.go +++ b/internal/finegrained/table.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/table_test.go b/internal/finegrained/table_test.go index 9da66a236..fe3bd8c08 100644 --- a/internal/finegrained/table_test.go +++ b/internal/finegrained/table_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/unconfirmed.go b/internal/finegrained/unconfirmed.go index 959badf3c..606471373 100644 --- a/internal/finegrained/unconfirmed.go +++ b/internal/finegrained/unconfirmed.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/unconfirmed_test.go b/internal/finegrained/unconfirmed_test.go index 2c37ec68a..98449bfcf 100644 --- a/internal/finegrained/unconfirmed_test.go +++ b/internal/finegrained/unconfirmed_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/withheld.go b/internal/finegrained/withheld.go index d810de037..fcb207f9a 100644 --- a/internal/finegrained/withheld.go +++ b/internal/finegrained/withheld.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/finegrained/withheld_test.go b/internal/finegrained/withheld_test.go index a5ef6e54f..806c3b652 100644 --- a/internal/finegrained/withheld_test.go +++ b/internal/finegrained/withheld_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package finegrained import ( diff --git a/internal/freshness/doc.go b/internal/freshness/doc.go index 588fe9420..6eefd164a 100644 --- a/internal/freshness/doc.go +++ b/internal/freshness/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package freshness reads the one harness setting that decides whether a test // comparing a committed, generated artifact runs that comparison now or leaves // it to the run where the artifact is refreshed. diff --git a/internal/freshness/freshness.go b/internal/freshness/freshness.go index 214fc847e..7e7b69218 100644 --- a/internal/freshness/freshness.go +++ b/internal/freshness/freshness.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package freshness import ( diff --git a/internal/freshness/freshness_test.go b/internal/freshness/freshness_test.go index d204726c9..9fd9a4be6 100644 --- a/internal/freshness/freshness_test.go +++ b/internal/freshness/freshness_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // freshness_test.go verifies the harness switch in both directions, and holds // its two ends to the workflow that drives it. // diff --git a/internal/gatewaycompat/doc.go b/internal/gatewaycompat/doc.go index d594080ea..8b231cb4b 100644 --- a/internal/gatewaycompat/doc.go +++ b/internal/gatewaycompat/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package gatewaycompat rewrites the human-readable text this server lists — // tool, prompt, resource and resource-template descriptions and titles, and // the description and title annotations embedded in tool schemas — according diff --git a/internal/gatewaycompat/export_test.go b/internal/gatewaycompat/export_test.go index 6c6ea7fd6..04ab21e9a 100644 --- a/internal/gatewaycompat/export_test.go +++ b/internal/gatewaycompat/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes the once-per-process announcement guards to the // external test package, so each row observes its own log output instead of // inheriting whatever the first row in the binary happened to trigger. diff --git a/internal/gatewaycompat/middleware.go b/internal/gatewaycompat/middleware.go index 8a091f4ae..b2a6510d7 100644 --- a/internal/gatewaycompat/middleware.go +++ b/internal/gatewaycompat/middleware.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gatewaycompat import ( diff --git a/internal/gatewaycompat/middleware_test.go b/internal/gatewaycompat/middleware_test.go index ddfae262d..a10192400 100644 --- a/internal/gatewaycompat/middleware_test.go +++ b/internal/gatewaycompat/middleware_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // middleware_test.go verifies the list-rewrite middleware over a real // in-memory client/server pair: what a gateway receives from the four // catalog listings is rewritten, everything that is contract rather than diff --git a/internal/gatewaycompat/parse.go b/internal/gatewaycompat/parse.go index 764955ce4..3a147ae21 100644 --- a/internal/gatewaycompat/parse.go +++ b/internal/gatewaycompat/parse.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gatewaycompat import ( diff --git a/internal/gatewaycompat/parse_test.go b/internal/gatewaycompat/parse_test.go index b97432349..35428774c 100644 --- a/internal/gatewaycompat/parse_test.go +++ b/internal/gatewaycompat/parse_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // parse_test.go verifies the GITLAB_MCP_DESCRIPTION_SUBSTITUTIONS format: // comma-separated old=new pairs with backslash escapes, strict about // everything it does not define, because a silently absorbed typo would ship diff --git a/internal/gatewaycompat/schema.go b/internal/gatewaycompat/schema.go index df690bed6..bc385bd7e 100644 --- a/internal/gatewaycompat/schema.go +++ b/internal/gatewaycompat/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gatewaycompat // schemaDataKeys are the schema keywords whose value is data rather than diff --git a/internal/gatewaycompat/schema_test.go b/internal/gatewaycompat/schema_test.go index 1d9adadbf..922a60b3b 100644 --- a/internal/gatewaycompat/schema_test.go +++ b/internal/gatewaycompat/schema_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // schema_test.go verifies the shared schema prose walk directly: which keys // count as prose, which as data, and how the walk reads a keyword position // differently from a property-name position. diff --git a/internal/gitlab/authority.go b/internal/gitlab/authority.go index aa23c76ab..69d91443b 100644 --- a/internal/gitlab/authority.go +++ b/internal/gitlab/authority.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/authority_test.go b/internal/gitlab/authority_test.go index 204cf7fe3..0d5cac6eb 100644 --- a/internal/gitlab/authority_test.go +++ b/internal/gitlab/authority_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/capture.go b/internal/gitlab/capture.go index 351b42344..28740faae 100644 --- a/internal/gitlab/capture.go +++ b/internal/gitlab/capture.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/capture_test.go b/internal/gitlab/capture_test.go index 945c1c773..8b33573bd 100644 --- a/internal/gitlab/capture_test.go +++ b/internal/gitlab/capture_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/client.go b/internal/gitlab/client.go index d77219817..b6eeae207 100644 --- a/internal/gitlab/client.go +++ b/internal/gitlab/client.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/client_test.go b/internal/gitlab/client_test.go index d364739b1..7b923a9f9 100644 --- a/internal/gitlab/client_test.go +++ b/internal/gitlab/client_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // client_test.go contains unit tests for the gitlab package. // Tests verify [NewClient] creation, [Client.Ping] connectivity checks, // and [Client.GL] accessor using httptest to mock the GitLab Version API. diff --git a/internal/gitlab/context.go b/internal/gitlab/context.go index e5d29deee..6e70707ee 100644 --- a/internal/gitlab/context.go +++ b/internal/gitlab/context.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import "context" diff --git a/internal/gitlab/context_test.go b/internal/gitlab/context_test.go index 8b8d3e86f..b4ec5e6b0 100644 --- a/internal/gitlab/context_test.go +++ b/internal/gitlab/context_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/credential_refusal.go b/internal/gitlab/credential_refusal.go index cfd993208..e897ceb11 100644 --- a/internal/gitlab/credential_refusal.go +++ b/internal/gitlab/credential_refusal.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/credential_refusal_test.go b/internal/gitlab/credential_refusal_test.go index 6b289c096..e614006b2 100644 --- a/internal/gitlab/credential_refusal_test.go +++ b/internal/gitlab/credential_refusal_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // credential_refusal_test.go contains unit tests for the one rule that says // whether a 401 GitLab answered names the credential. package gitlab diff --git a/internal/gitlab/destination.go b/internal/gitlab/destination.go index 769a111e2..fec6dcfa5 100644 --- a/internal/gitlab/destination.go +++ b/internal/gitlab/destination.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/destination_test.go b/internal/gitlab/destination_test.go index 9d772182d..3456e13ba 100644 --- a/internal/gitlab/destination_test.go +++ b/internal/gitlab/destination_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // destination_test.go contains unit tests for the outbound destination guard: // which addresses a client may open a connection to, and the exemption that // keeps every self-hosted deployment working. diff --git a/internal/gitlab/doc.go b/internal/gitlab/doc.go index 88303ea88..40264e3ae 100644 --- a/internal/gitlab/doc.go +++ b/internal/gitlab/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package gitlab provides a wrapper around the GitLab REST API v4 client. // Some domains additionally use the GitLab GraphQL API for endpoints not covered // by client-go service wrappers (see ADR-0006). diff --git a/internal/gitlab/grant.go b/internal/gitlab/grant.go index 1ded7ac6f..8869baf53 100644 --- a/internal/gitlab/grant.go +++ b/internal/gitlab/grant.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/grant_test.go b/internal/gitlab/grant_test.go index efd1d5d4c..e703ca48b 100644 --- a/internal/gitlab/grant_test.go +++ b/internal/gitlab/grant_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // grant_test.go holds the reads a fine-grained token's authority is judged // from: the grant, bounded where it is read, and the version beside it. package gitlab diff --git a/internal/gitlab/granular_refusal.go b/internal/gitlab/granular_refusal.go index 0e4351129..46391ca06 100644 --- a/internal/gitlab/granular_refusal.go +++ b/internal/gitlab/granular_refusal.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import "strings" diff --git a/internal/gitlab/granular_refusal_test.go b/internal/gitlab/granular_refusal_test.go index 8e7091f3d..5298873ee 100644 --- a/internal/gitlab/granular_refusal_test.go +++ b/internal/gitlab/granular_refusal_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // granular_refusal_test.go holds the reader of GitLab's fine-grained refusal // sentences to the texts authorize_granular_scopes_service.rb writes at // v19.4.1-ee, and to nothing else. diff --git a/internal/gitlab/membership_tier.go b/internal/gitlab/membership_tier.go index c8f573f70..e86c6eb80 100644 --- a/internal/gitlab/membership_tier.go +++ b/internal/gitlab/membership_tier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/membership_tier_test.go b/internal/gitlab/membership_tier_test.go index e7abb770f..5cfe8849c 100644 --- a/internal/gitlab/membership_tier_test.go +++ b/internal/gitlab/membership_tier_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/redirect.go b/internal/gitlab/redirect.go index 3568be6ea..2eaed6a9a 100644 --- a/internal/gitlab/redirect.go +++ b/internal/gitlab/redirect.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/redirect_test.go b/internal/gitlab/redirect_test.go index 6caf2302b..bca194938 100644 --- a/internal/gitlab/redirect_test.go +++ b/internal/gitlab/redirect_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // redirect_test.go contains unit tests for the redirect policy that keeps // GitLab credential headers from leaving the configured instance. package gitlab diff --git a/internal/gitlab/response_limit.go b/internal/gitlab/response_limit.go index e88d3cd3f..83dccb179 100644 --- a/internal/gitlab/response_limit.go +++ b/internal/gitlab/response_limit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/response_limit_test.go b/internal/gitlab/response_limit_test.go index 90c94c92e..e472a5c77 100644 --- a/internal/gitlab/response_limit_test.go +++ b/internal/gitlab/response_limit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // response_limit_test.go contains unit tests for the ceiling this package puts // on a single GitLab response body. package gitlab diff --git a/internal/gitlab/retry.go b/internal/gitlab/retry.go index 2392e2016..4dd07fc99 100644 --- a/internal/gitlab/retry.go +++ b/internal/gitlab/retry.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/retry_test.go b/internal/gitlab/retry_test.go index 06980d9b6..07d54a8d3 100644 --- a/internal/gitlab/retry_test.go +++ b/internal/gitlab/retry_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // retry_test.go contains unit tests for the bounded retry and backoff policy // this package imposes on client-go. package gitlab diff --git a/internal/gitlab/scopes.go b/internal/gitlab/scopes.go index e28bdc5db..27f85883c 100644 --- a/internal/gitlab/scopes.go +++ b/internal/gitlab/scopes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/scopes_test.go b/internal/gitlab/scopes_test.go index 5a1a63a07..9b1263e44 100644 --- a/internal/gitlab/scopes_test.go +++ b/internal/gitlab/scopes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // scopes_test.go contains unit tests for GitLab token scope validation // and scope-checking helpers. package gitlab diff --git a/internal/gitlab/unbound.go b/internal/gitlab/unbound.go index 792a749e5..11bf65a17 100644 --- a/internal/gitlab/unbound.go +++ b/internal/gitlab/unbound.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/gitlab/unbound_test.go b/internal/gitlab/unbound_test.go index af51bf73b..7e0bc103b 100644 --- a/internal/gitlab/unbound_test.go +++ b/internal/gitlab/unbound_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitlab import ( diff --git a/internal/graphqlschema/doc.go b/internal/graphqlschema/doc.go index 37a4a3d88..c50567146 100644 --- a/internal/graphqlschema/doc.go +++ b/internal/graphqlschema/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package graphqlschema holds the pinned GitLab GraphQL schema and validates // documents against it. // diff --git a/internal/graphqlschema/schema.go b/internal/graphqlschema/schema.go index 518745d14..99c61b99b 100644 --- a/internal/graphqlschema/schema.go +++ b/internal/graphqlschema/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlschema import ( diff --git a/internal/graphqlschema/schema_test.go b/internal/graphqlschema/schema_test.go index d3ec34bb0..e3bc6c746 100644 --- a/internal/graphqlschema/schema_test.go +++ b/internal/graphqlschema/schema_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlschema import ( diff --git a/internal/graphqlschema/source.go b/internal/graphqlschema/source.go index fbb9bc6e9..4059208c3 100644 --- a/internal/graphqlschema/source.go +++ b/internal/graphqlschema/source.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlschema import ( diff --git a/internal/graphqlschema/source_test.go b/internal/graphqlschema/source_test.go index 5411ac7f9..320f0beb0 100644 --- a/internal/graphqlschema/source_test.go +++ b/internal/graphqlschema/source_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package graphqlschema import ( diff --git a/internal/mcpotel/attributes.go b/internal/mcpotel/attributes.go index afa3ef15e..ddf692abc 100644 --- a/internal/mcpotel/attributes.go +++ b/internal/mcpotel/attributes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/attributes_test.go b/internal/mcpotel/attributes_test.go index cbac22e79..4730d9560 100644 --- a/internal/mcpotel/attributes_test.go +++ b/internal/mcpotel/attributes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/auth_blocks.go b/internal/mcpotel/auth_blocks.go index 616393e93..ee4b4a223 100644 --- a/internal/mcpotel/auth_blocks.go +++ b/internal/mcpotel/auth_blocks.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/auth_blocks_test.go b/internal/mcpotel/auth_blocks_test.go index 724c83c3c..f44a45166 100644 --- a/internal/mcpotel/auth_blocks_test.go +++ b/internal/mcpotel/auth_blocks_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/carrier.go b/internal/mcpotel/carrier.go index bd19bc005..ae2c1feeb 100644 --- a/internal/mcpotel/carrier.go +++ b/internal/mcpotel/carrier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/carrier_test.go b/internal/mcpotel/carrier_test.go index bdf195044..b8a9cc9df 100644 --- a/internal/mcpotel/carrier_test.go +++ b/internal/mcpotel/carrier_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/doc.go b/internal/mcpotel/doc.go index de3ab14ed..4613ddb05 100644 --- a/internal/mcpotel/doc.go +++ b/internal/mcpotel/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mcpotel instruments MCP request handling with OpenTelemetry. // // It imports only the OpenTelemetry API, never the SDK. Which providers exist, diff --git a/internal/mcpotel/http_server.go b/internal/mcpotel/http_server.go index 7a6685f3a..7057f55d7 100644 --- a/internal/mcpotel/http_server.go +++ b/internal/mcpotel/http_server.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/http_server_test.go b/internal/mcpotel/http_server_test.go index a05e4f2f5..a42d78e6c 100644 --- a/internal/mcpotel/http_server_test.go +++ b/internal/mcpotel/http_server_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/identity.go b/internal/mcpotel/identity.go index d8eff45e6..3e33d3d9e 100644 --- a/internal/mcpotel/identity.go +++ b/internal/mcpotel/identity.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/identity_test.go b/internal/mcpotel/identity_test.go index c0631c005..4b8e76eeb 100644 --- a/internal/mcpotel/identity_test.go +++ b/internal/mcpotel/identity_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/middleware.go b/internal/mcpotel/middleware.go index 2b8bc8f7f..2e10dc088 100644 --- a/internal/mcpotel/middleware.go +++ b/internal/mcpotel/middleware.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/middleware_test.go b/internal/mcpotel/middleware_test.go index e95fb30a6..4fa08a941 100644 --- a/internal/mcpotel/middleware_test.go +++ b/internal/mcpotel/middleware_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/outcome.go b/internal/mcpotel/outcome.go index af47cd3b3..d991b145a 100644 --- a/internal/mcpotel/outcome.go +++ b/internal/mcpotel/outcome.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/outcome_test.go b/internal/mcpotel/outcome_test.go index 139e1274d..08f2aaae6 100644 --- a/internal/mcpotel/outcome_test.go +++ b/internal/mcpotel/outcome_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/pool.go b/internal/mcpotel/pool.go index 27920d97e..90987464c 100644 --- a/internal/mcpotel/pool.go +++ b/internal/mcpotel/pool.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/pool_test.go b/internal/mcpotel/pool_test.go index 45758784c..939c9b036 100644 --- a/internal/mcpotel/pool_test.go +++ b/internal/mcpotel/pool_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/protocol.go b/internal/mcpotel/protocol.go index cf7bfef39..2e5f1ef39 100644 --- a/internal/mcpotel/protocol.go +++ b/internal/mcpotel/protocol.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/protocol_test.go b/internal/mcpotel/protocol_test.go index d96e3d0a9..9c0103389 100644 --- a/internal/mcpotel/protocol_test.go +++ b/internal/mcpotel/protocol_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // protocol_test.go verifies where the recorded protocol version comes from // when several sources could supply one, and that only an admitted value is // ever recorded. diff --git a/internal/mcpotel/round_tripper.go b/internal/mcpotel/round_tripper.go index af32230cb..87343cd46 100644 --- a/internal/mcpotel/round_tripper.go +++ b/internal/mcpotel/round_tripper.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/round_tripper_test.go b/internal/mcpotel/round_tripper_test.go index e1b11ca73..69e04ebe0 100644 --- a/internal/mcpotel/round_tripper_test.go +++ b/internal/mcpotel/round_tripper_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/sending.go b/internal/mcpotel/sending.go index 2e6586842..f698b681c 100644 --- a/internal/mcpotel/sending.go +++ b/internal/mcpotel/sending.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/sending_test.go b/internal/mcpotel/sending_test.go index fdd05a0ec..45a5774f0 100644 --- a/internal/mcpotel/sending_test.go +++ b/internal/mcpotel/sending_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/session.go b/internal/mcpotel/session.go index 8d635f008..bb369f57e 100644 --- a/internal/mcpotel/session.go +++ b/internal/mcpotel/session.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/mcpotel/session_test.go b/internal/mcpotel/session_test.go index bb7cdaa56..f07054787 100644 --- a/internal/mcpotel/session_test.go +++ b/internal/mcpotel/session_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mcpotel import ( diff --git a/internal/oauth/cache.go b/internal/oauth/cache.go index 5d142dd6e..d68cb6e5b 100644 --- a/internal/oauth/cache.go +++ b/internal/oauth/cache.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package oauth import ( diff --git a/internal/oauth/cache_test.go b/internal/oauth/cache_test.go index da042dcfd..1a90b4f97 100644 --- a/internal/oauth/cache_test.go +++ b/internal/oauth/cache_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // cache_test.go contains unit tests for the OAuth token identity cache, // verifying TTL expiration, concurrent access, and eviction behavior. package oauth diff --git a/internal/oauth/doc.go b/internal/oauth/doc.go index e30647545..a137c62cb 100644 --- a/internal/oauth/doc.go +++ b/internal/oauth/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package oauth provides GitLab-specific OAuth 2.0 support for HTTP mode. // // It verifies bearer tokens against GitLab's user endpoint, caches verified diff --git a/internal/oauth/metadata.go b/internal/oauth/metadata.go index db6f55993..ecbd6ba7f 100644 --- a/internal/oauth/metadata.go +++ b/internal/oauth/metadata.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package oauth import ( diff --git a/internal/oauth/metadata_test.go b/internal/oauth/metadata_test.go index 425f0b86c..03fcd5fc9 100644 --- a/internal/oauth/metadata_test.go +++ b/internal/oauth/metadata_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // metadata_test.go contains unit tests for the RFC 9728 Protected Resource // Metadata endpoint handler. package oauth diff --git a/internal/oauth/rejected.go b/internal/oauth/rejected.go index cd6ec5e71..1d9384f93 100644 --- a/internal/oauth/rejected.go +++ b/internal/oauth/rejected.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package oauth import ( diff --git a/internal/oauth/rejected_test.go b/internal/oauth/rejected_test.go index d3f99dc1d..c79f2eea8 100644 --- a/internal/oauth/rejected_test.go +++ b/internal/oauth/rejected_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // rejected_test.go contains unit tests for the bounded negative cache that // stops a replayed invalid token from costing an upstream verification call. package oauth diff --git a/internal/oauth/verifier.go b/internal/oauth/verifier.go index ecb62d415..9d5ce6590 100644 --- a/internal/oauth/verifier.go +++ b/internal/oauth/verifier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package oauth import ( diff --git a/internal/oauth/verifier_test.go b/internal/oauth/verifier_test.go index b3e2d0436..4874248ba 100644 --- a/internal/oauth/verifier_test.go +++ b/internal/oauth/verifier_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // verifier_test.go contains unit tests for the OAuth Bearer token verifier, // covering cache hits, misses, TTL expiration, and GitLab API error handling. package oauth diff --git a/internal/progress/doc.go b/internal/progress/doc.go index 857741dcf..117c76ee7 100644 --- a/internal/progress/doc.go +++ b/internal/progress/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package progress provides a Tracker for sending MCP progress notifications // to the client during long-running tool operations. // diff --git a/internal/progress/progress.go b/internal/progress/progress.go index ffddaad95..f3c8ee54f 100644 --- a/internal/progress/progress.go +++ b/internal/progress/progress.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package progress import ( diff --git a/internal/progress/progress_test.go b/internal/progress/progress_test.go index e76f54c88..4acc5a2fc 100644 --- a/internal/progress/progress_test.go +++ b/internal/progress/progress_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // progress_test.go contains unit and integration tests for the progress package. // Unit tests verify nil-safety and inactive [Tracker] behavior. // Integration tests use an in-memory MCP client/server pair to verify that diff --git a/internal/prompts/doc.go b/internal/prompts/doc.go index f394ff43c..4e7805158 100644 --- a/internal/prompts/doc.go +++ b/internal/prompts/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package prompts registers MCP prompt templates that generate AI-optimized // summaries, reviews, reports, and assessments from GitLab project, group, and // cross-project data. diff --git a/internal/prompts/exclusion.go b/internal/prompts/exclusion.go index a026cf307..8d0c88d1a 100644 --- a/internal/prompts/exclusion.go +++ b/internal/prompts/exclusion.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/exclusion_test.go b/internal/prompts/exclusion_test.go index b5934f691..a012ab94c 100644 --- a/internal/prompts/exclusion_test.go +++ b/internal/prompts/exclusion_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_analytics.go b/internal/prompts/prompt_analytics.go index 86dbbddef..74efd5e14 100644 --- a/internal/prompts/prompt_analytics.go +++ b/internal/prompts/prompt_analytics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_analytics_test.go b/internal/prompts/prompt_analytics_test.go index 7af623652..29214acc0 100644 --- a/internal/prompts/prompt_analytics_test.go +++ b/internal/prompts/prompt_analytics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompt_analytics_test.go contains unit tests for analytics MCP prompts. package prompts diff --git a/internal/prompts/prompt_audit.go b/internal/prompts/prompt_audit.go index 0b4b9920b..e6aac6832 100644 --- a/internal/prompts/prompt_audit.go +++ b/internal/prompts/prompt_audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_audit_test.go b/internal/prompts/prompt_audit_test.go index 364f69275..59e4cfd06 100644 --- a/internal/prompts/prompt_audit_test.go +++ b/internal/prompts/prompt_audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompt_audit_test.go contains unit tests for audit MCP prompts. package prompts diff --git a/internal/prompts/prompt_cross_project.go b/internal/prompts/prompt_cross_project.go index 1ce7e7a00..2fc6198fa 100644 --- a/internal/prompts/prompt_cross_project.go +++ b/internal/prompts/prompt_cross_project.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_cross_project_test.go b/internal/prompts/prompt_cross_project_test.go index 60507c0c4..e55a44a02 100644 --- a/internal/prompts/prompt_cross_project_test.go +++ b/internal/prompts/prompt_cross_project_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompt_cross_project_test.go contains unit tests for cross-project MCP prompts. package prompts diff --git a/internal/prompts/prompt_git_workflow.go b/internal/prompts/prompt_git_workflow.go index b6b514485..78bdbb23f 100644 --- a/internal/prompts/prompt_git_workflow.go +++ b/internal/prompts/prompt_git_workflow.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_git_workflow_test.go b/internal/prompts/prompt_git_workflow_test.go index fd4ae93c0..95fd0af4d 100644 --- a/internal/prompts/prompt_git_workflow_test.go +++ b/internal/prompts/prompt_git_workflow_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_helpers.go b/internal/prompts/prompt_helpers.go index 6f708cfcd..fb4d079a8 100644 --- a/internal/prompts/prompt_helpers.go +++ b/internal/prompts/prompt_helpers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_helpers_test.go b/internal/prompts/prompt_helpers_test.go index 89b9de8ac..89c46e43b 100644 --- a/internal/prompts/prompt_helpers_test.go +++ b/internal/prompts/prompt_helpers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompt_helpers_unit_test.go contains unit tests for prompt helper functions. package prompts diff --git a/internal/prompts/prompt_milestone_label.go b/internal/prompts/prompt_milestone_label.go index 6e0ba3871..03d1cc7f6 100644 --- a/internal/prompts/prompt_milestone_label.go +++ b/internal/prompts/prompt_milestone_label.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_milestone_label_test.go b/internal/prompts/prompt_milestone_label_test.go index 56c368a97..edbbde996 100644 --- a/internal/prompts/prompt_milestone_label_test.go +++ b/internal/prompts/prompt_milestone_label_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompt_milestone_label_test.go contains unit tests for milestone and label MCP prompts. package prompts diff --git a/internal/prompts/prompt_project_reports.go b/internal/prompts/prompt_project_reports.go index 21c5a9dbc..49c5895ac 100644 --- a/internal/prompts/prompt_project_reports.go +++ b/internal/prompts/prompt_project_reports.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_project_reports_test.go b/internal/prompts/prompt_project_reports_test.go index d85f6efe6..e47d44438 100644 --- a/internal/prompts/prompt_project_reports_test.go +++ b/internal/prompts/prompt_project_reports_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompt_project_reports_test.go contains unit tests for project report MCP prompts. package prompts diff --git a/internal/prompts/prompt_team.go b/internal/prompts/prompt_team.go index 9d66a3ef9..bf5a38444 100644 --- a/internal/prompts/prompt_team.go +++ b/internal/prompts/prompt_team.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompt_team_test.go b/internal/prompts/prompt_team_test.go index 4e7b0a91a..d067dca95 100644 --- a/internal/prompts/prompt_team_test.go +++ b/internal/prompts/prompt_team_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompt_team_test.go contains unit tests for team analysis MCP prompts. package prompts diff --git a/internal/prompts/prompts.go b/internal/prompts/prompts.go index 3be41e710..8257b2f92 100644 --- a/internal/prompts/prompts.go +++ b/internal/prompts/prompts.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/prompts_test.go b/internal/prompts/prompts_test.go index 32fba5341..c0ea5bd06 100644 --- a/internal/prompts/prompts_test.go +++ b/internal/prompts/prompts_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // prompts_test.go contains unit tests for the happy-path behavior of each // MCP prompt handler. Tests use httptest to mock the GitLab API and verify // that prompt responses contain expected content, formatting, and structure. diff --git a/internal/prompts/untrusted.go b/internal/prompts/untrusted.go index 2b210cdee..37f57c0c8 100644 --- a/internal/prompts/untrusted.go +++ b/internal/prompts/untrusted.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package prompts import ( diff --git a/internal/prompts/untrusted_test.go b/internal/prompts/untrusted_test.go index e1d4420ff..e5f97f3a0 100644 --- a/internal/prompts/untrusted_test.go +++ b/internal/prompts/untrusted_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // untrusted_test.go contains table-driven tests for the helpers that render // GitLab-authored text into a prompt message, and for the boundary sentence // every prompt message carries. diff --git a/internal/resources/doc.go b/internal/resources/doc.go index 0d85a7551..36784ae3d 100644 --- a/internal/resources/doc.go +++ b/internal/resources/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package resources registers read-only MCP resources for GitLab and server // metadata. // diff --git a/internal/resources/exclusion.go b/internal/resources/exclusion.go index fce475671..08e21ced6 100644 --- a/internal/resources/exclusion.go +++ b/internal/resources/exclusion.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resources import ( diff --git a/internal/resources/exclusion_test.go b/internal/resources/exclusion_test.go index 297f799e2..18fd69673 100644 --- a/internal/resources/exclusion_test.go +++ b/internal/resources/exclusion_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resources import ( diff --git a/internal/resources/registrar.go b/internal/resources/registrar.go index 9dbd2c585..79a518e43 100644 --- a/internal/resources/registrar.go +++ b/internal/resources/registrar.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resources import ( diff --git a/internal/resources/registrar_test.go b/internal/resources/registrar_test.go index 8eba3fbe7..82f54796c 100644 --- a/internal/resources/registrar_test.go +++ b/internal/resources/registrar_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // registrar_test.go validates the seam that lets this server read its own // resources: the recording registrars and the handler index a subscription // watcher reads through. diff --git a/internal/resources/resources.go b/internal/resources/resources.go index 6a42efb4f..6f100e474 100644 --- a/internal/resources/resources.go +++ b/internal/resources/resources.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resources import ( diff --git a/internal/resources/resources_test.go b/internal/resources/resources_test.go index 2caebbaf5..d6d712e59 100644 --- a/internal/resources/resources_test.go +++ b/internal/resources/resources_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // resources_test.go contains integration tests verifying the happy-path // behavior of each MCP resource registered by [Register]. Tests use httptest // to mock GitLab API responses and an in-memory MCP transport to exercise diff --git a/internal/resources/tool_manifest.go b/internal/resources/tool_manifest.go index 1eaa3afde..b0b817400 100644 --- a/internal/resources/tool_manifest.go +++ b/internal/resources/tool_manifest.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resources import ( diff --git a/internal/resources/tool_manifest_test.go b/internal/resources/tool_manifest_test.go index 68bfc69ae..1c8451e87 100644 --- a/internal/resources/tool_manifest_test.go +++ b/internal/resources/tool_manifest_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // tool_manifest_test.go contains unit tests for the surface-aware // tool manifest resources registered by [RegisterToolSurfaceResources]. // Tests build a small action catalog, register the manifest against an diff --git a/internal/resources/workflow_guides.go b/internal/resources/workflow_guides.go index eba533ad4..9834a52df 100644 --- a/internal/resources/workflow_guides.go +++ b/internal/resources/workflow_guides.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resources import ( diff --git a/internal/resources/workflow_guides_test.go b/internal/resources/workflow_guides_test.go index f642f0caf..24bcf517a 100644 --- a/internal/resources/workflow_guides_test.go +++ b/internal/resources/workflow_guides_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // workflow_guides_test.go holds the guards over the five static guide bodies // registered by [RegisterWorkflowGuides]. The bodies are text/markdown a client // reads straight out of resources/read: no formatter, no registry and no schema diff --git a/internal/serverpool/distinct_token_budget.go b/internal/serverpool/distinct_token_budget.go index 70dc9cbb5..3930c84c2 100644 --- a/internal/serverpool/distinct_token_budget.go +++ b/internal/serverpool/distinct_token_budget.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package serverpool import ( diff --git a/internal/serverpool/distinct_token_budget_test.go b/internal/serverpool/distinct_token_budget_test.go index 4faa7b040..581d6d113 100644 --- a/internal/serverpool/distinct_token_budget_test.go +++ b/internal/serverpool/distinct_token_budget_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package serverpool import ( diff --git a/internal/serverpool/doc.go b/internal/serverpool/doc.go index 811397381..a163342e2 100644 --- a/internal/serverpool/doc.go +++ b/internal/serverpool/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package serverpool manages a pool of credential entries keyed by GitLab token and URL. // // Each unique GitLab Personal Access Token and GitLab URL pair gets its own diff --git a/internal/serverpool/pool.go b/internal/serverpool/pool.go index 2976296e9..bc73fb33a 100644 --- a/internal/serverpool/pool.go +++ b/internal/serverpool/pool.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package serverpool import ( diff --git a/internal/serverpool/pool_test.go b/internal/serverpool/pool_test.go index 3cd18c864..c92a85298 100644 --- a/internal/serverpool/pool_test.go +++ b/internal/serverpool/pool_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pool_test.go contains unit tests for the bounded LRU server pool. package serverpool diff --git a/internal/serverpool/rate_limit.go b/internal/serverpool/rate_limit.go index 8aa70df8a..10b356b59 100644 --- a/internal/serverpool/rate_limit.go +++ b/internal/serverpool/rate_limit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package serverpool import ( diff --git a/internal/serverpool/rate_limit_test.go b/internal/serverpool/rate_limit_test.go index 1793f50b5..3a3bc9112 100644 --- a/internal/serverpool/rate_limit_test.go +++ b/internal/serverpool/rate_limit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // rate_limit_test.go contains unit tests for the HTTP server per-IP rate // limiter, verifying token-bucket behavior and cleanup of idle limiters. package serverpool diff --git a/internal/serverpool/token.go b/internal/serverpool/token.go index 231ffaf62..dc800d08f 100644 --- a/internal/serverpool/token.go +++ b/internal/serverpool/token.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package serverpool import ( diff --git a/internal/serverpool/token_test.go b/internal/serverpool/token_test.go index d843c117d..057b0c1c8 100644 --- a/internal/serverpool/token_test.go +++ b/internal/serverpool/token_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // token_test.go contains unit tests for token extraction and validation. package serverpool diff --git a/internal/sourcewalk/doc.go b/internal/sourcewalk/doc.go index 6ed02c41e..aff59b3c3 100644 --- a/internal/sourcewalk/doc.go +++ b/internal/sourcewalk/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package sourcewalk answers one question for everything here that walks this // repository's tree: which directories below a walk root are this // repository's own source, and which are something else that merely lives diff --git a/internal/sourcewalk/sourcewalk.go b/internal/sourcewalk/sourcewalk.go index 32aa409fe..8962c005e 100644 --- a/internal/sourcewalk/sourcewalk.go +++ b/internal/sourcewalk/sourcewalk.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcewalk import ( diff --git a/internal/sourcewalk/sourcewalk_test.go b/internal/sourcewalk/sourcewalk_test.go index 81625eae1..420f41291 100644 --- a/internal/sourcewalk/sourcewalk_test.go +++ b/internal/sourcewalk/sourcewalk_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sourcewalk import ( diff --git a/internal/subscriptions/doc.go b/internal/subscriptions/doc.go index b05253d86..fa14cfe35 100644 --- a/internal/subscriptions/doc.go +++ b/internal/subscriptions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package subscriptions implements MCP resource subscriptions // (resources/subscribe) over GitLab resources. // diff --git a/internal/subscriptions/kind.go b/internal/subscriptions/kind.go index 6014ef9a1..147322a16 100644 --- a/internal/subscriptions/kind.go +++ b/internal/subscriptions/kind.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package subscriptions import ( diff --git a/internal/subscriptions/kind_integration_test.go b/internal/subscriptions/kind_integration_test.go index e66d26d56..903984511 100644 --- a/internal/subscriptions/kind_integration_test.go +++ b/internal/subscriptions/kind_integration_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // registry_integration_test.go round-trips the subscription whitelist // against the real resource registry. It lives in the external test package // because internal/resources imports internal/subscriptions (the recorder diff --git a/internal/subscriptions/kind_test.go b/internal/subscriptions/kind_test.go index 0ca282e64..e20dc5f72 100644 --- a/internal/subscriptions/kind_test.go +++ b/internal/subscriptions/kind_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // kind_test.go validates the subscribable-URI whitelist: which concrete // resource URIs a client may subscribe to, and — just as load-bearing — // which ones must be rejected. The rejection half is not defensive diff --git a/internal/subscriptions/manager.go b/internal/subscriptions/manager.go index 2640b535a..295ebb26f 100644 --- a/internal/subscriptions/manager.go +++ b/internal/subscriptions/manager.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package subscriptions import ( diff --git a/internal/subscriptions/manager_test.go b/internal/subscriptions/manager_test.go index d36b2466b..26210266f 100644 --- a/internal/subscriptions/manager_test.go +++ b/internal/subscriptions/manager_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // manager_test.go validates the watcher lifecycle: what a subscription // costs to start, when it notifies, when it backs off, and — the part that // actually keeps the server honest — every way it must stop. diff --git a/internal/subscriptions/read_error.go b/internal/subscriptions/read_error.go index 8587f2f5f..ced5be480 100644 --- a/internal/subscriptions/read_error.go +++ b/internal/subscriptions/read_error.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package subscriptions import ( diff --git a/internal/subscriptions/read_error_test.go b/internal/subscriptions/read_error_test.go index 746a1ffde..fd047e97f 100644 --- a/internal/subscriptions/read_error_test.go +++ b/internal/subscriptions/read_error_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // read_error_test.go validates the mapping from GitLab API failures onto // the sentinels a watcher acts on. // diff --git a/internal/subscriptions/state.go b/internal/subscriptions/state.go index 645eab737..904e7ec2c 100644 --- a/internal/subscriptions/state.go +++ b/internal/subscriptions/state.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package subscriptions import ( diff --git a/internal/subscriptions/state_test.go b/internal/subscriptions/state_test.go index fc16ac663..fc4936c5e 100644 --- a/internal/subscriptions/state_test.go +++ b/internal/subscriptions/state_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // state_test.go validates the polling cadence: how a watcher reads a // resource's own content to decide whether the next change is seconds away // or probably never, and how that maps onto an interval. diff --git a/internal/subscriptions/tracing.go b/internal/subscriptions/tracing.go index a55e27ed2..59aea4ee7 100644 --- a/internal/subscriptions/tracing.go +++ b/internal/subscriptions/tracing.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package subscriptions import ( diff --git a/internal/subscriptions/tracing_test.go b/internal/subscriptions/tracing_test.go index 75b4f6dc7..128a9c3ca 100644 --- a/internal/subscriptions/tracing_test.go +++ b/internal/subscriptions/tracing_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package subscriptions import ( diff --git a/internal/telemetry/boundary.go b/internal/telemetry/boundary.go index a56c55e21..46c6ea3d5 100644 --- a/internal/telemetry/boundary.go +++ b/internal/telemetry/boundary.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/boundary_test.go b/internal/telemetry/boundary_test.go index df50f961b..35a37391f 100644 --- a/internal/telemetry/boundary_test.go +++ b/internal/telemetry/boundary_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/cardinality.go b/internal/telemetry/cardinality.go index ffc826ce8..a08b9dd34 100644 --- a/internal/telemetry/cardinality.go +++ b/internal/telemetry/cardinality.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/cardinality_test.go b/internal/telemetry/cardinality_test.go index f2b8122a8..2d2fb193e 100644 --- a/internal/telemetry/cardinality_test.go +++ b/internal/telemetry/cardinality_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/diagnostics.go b/internal/telemetry/diagnostics.go index 0ea7458eb..2ac1a6999 100644 --- a/internal/telemetry/diagnostics.go +++ b/internal/telemetry/diagnostics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/diagnostics_test.go b/internal/telemetry/diagnostics_test.go index 422e1bee4..aead9e108 100644 --- a/internal/telemetry/diagnostics_test.go +++ b/internal/telemetry/diagnostics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/doc.go b/internal/telemetry/doc.go index 8416a4fcf..c6df37c14 100644 --- a/internal/telemetry/doc.go +++ b/internal/telemetry/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package telemetry is the only place in this server that knows about // OpenTelemetry. // diff --git a/internal/telemetry/exporters.go b/internal/telemetry/exporters.go index 726e8b96a..e5e964c7e 100644 --- a/internal/telemetry/exporters.go +++ b/internal/telemetry/exporters.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/exporters_test.go b/internal/telemetry/exporters_test.go index b5dc87c58..8fd4fc36d 100644 --- a/internal/telemetry/exporters_test.go +++ b/internal/telemetry/exporters_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // exporters_test.go verifies what the startup summary is allowed to say about // the collector it exports to. package telemetry diff --git a/internal/telemetry/identity.go b/internal/telemetry/identity.go index 91503275c..73077b524 100644 --- a/internal/telemetry/identity.go +++ b/internal/telemetry/identity.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/identity_test.go b/internal/telemetry/identity_test.go index a4152f469..154b6f148 100644 --- a/internal/telemetry/identity_test.go +++ b/internal/telemetry/identity_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/insecure.go b/internal/telemetry/insecure.go index 0bea88111..29bcaaee6 100644 --- a/internal/telemetry/insecure.go +++ b/internal/telemetry/insecure.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/insecure_test.go b/internal/telemetry/insecure_test.go index 9c8c74608..7c95e9d65 100644 --- a/internal/telemetry/insecure_test.go +++ b/internal/telemetry/insecure_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/keyring.go b/internal/telemetry/keyring.go index b1500971a..bca1979b5 100644 --- a/internal/telemetry/keyring.go +++ b/internal/telemetry/keyring.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/keyring_test.go b/internal/telemetry/keyring_test.go index 7d40d5c88..668954f3c 100644 --- a/internal/telemetry/keyring_test.go +++ b/internal/telemetry/keyring_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // keyring_test.go covers where a pseudonymisation key comes from and how long // it lives, which is the choice an operator makes and the one this package // exists to honor exactly. diff --git a/internal/telemetry/pseudonym.go b/internal/telemetry/pseudonym.go index 2ec56ce96..731724b9b 100644 --- a/internal/telemetry/pseudonym.go +++ b/internal/telemetry/pseudonym.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/pseudonym_test.go b/internal/telemetry/pseudonym_test.go index 68611775f..20db9996b 100644 --- a/internal/telemetry/pseudonym_test.go +++ b/internal/telemetry/pseudonym_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/resource.go b/internal/telemetry/resource.go index 790924c88..883b85942 100644 --- a/internal/telemetry/resource.go +++ b/internal/telemetry/resource.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/resource_test.go b/internal/telemetry/resource_test.go index 31355c01a..797d192e2 100644 --- a/internal/telemetry/resource_test.go +++ b/internal/telemetry/resource_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/slog_handler.go b/internal/telemetry/slog_handler.go index 90531163d..e306d3614 100644 --- a/internal/telemetry/slog_handler.go +++ b/internal/telemetry/slog_handler.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/slog_handler_test.go b/internal/telemetry/slog_handler_test.go index 1b5fac444..07e8fe587 100644 --- a/internal/telemetry/slog_handler_test.go +++ b/internal/telemetry/slog_handler_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/telemetry.go b/internal/telemetry/telemetry.go index acba09596..d03127fa5 100644 --- a/internal/telemetry/telemetry.go +++ b/internal/telemetry/telemetry.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/telemetry/telemetry_test.go b/internal/telemetry/telemetry_test.go index 4910abfc3..3ede1c172 100644 --- a/internal/telemetry/telemetry_test.go +++ b/internal/telemetry/telemetry_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package telemetry import ( diff --git a/internal/tenancy/budget.go b/internal/tenancy/budget.go index 870544ced..04b4eab2a 100644 --- a/internal/tenancy/budget.go +++ b/internal/tenancy/budget.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/budget_test.go b/internal/tenancy/budget_test.go index d85657085..22cab11b9 100644 --- a/internal/tenancy/budget_test.go +++ b/internal/tenancy/budget_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/busy.go b/internal/tenancy/busy.go index c26719869..8335a6ca4 100644 --- a/internal/tenancy/busy.go +++ b/internal/tenancy/busy.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // Holdings is what a pool entry holds that the pool cannot see: the work that diff --git a/internal/tenancy/busy_test.go b/internal/tenancy/busy_test.go index ea1ad3796..1eadfc002 100644 --- a/internal/tenancy/busy_test.go +++ b/internal/tenancy/busy_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/channels.go b/internal/tenancy/channels.go index b5239edd6..a39c54ceb 100644 --- a/internal/tenancy/channels.go +++ b/internal/tenancy/channels.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // The pseudo-methods a [Refusal] names where no MCP method carries it. diff --git a/internal/tenancy/channels_integration_test.go b/internal/tenancy/channels_integration_test.go index 9e200d284..288ddc228 100644 --- a/internal/tenancy/channels_integration_test.go +++ b/internal/tenancy/channels_integration_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // channels_integration_test.go holds the carried-channel matrix, // tenancy.Carriages(), to the go-sdk this module pins. It drives the SDK in // process, in both protocol eras, over its in-memory transport and over its diff --git a/internal/tenancy/channels_test.go b/internal/tenancy/channels_test.go index ec84c983d..8ab42d9d6 100644 --- a/internal/tenancy/channels_test.go +++ b/internal/tenancy/channels_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/codes.go b/internal/tenancy/codes.go index 123c99498..585f28ab9 100644 --- a/internal/tenancy/codes.go +++ b/internal/tenancy/codes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // The policy refusal codes, which the layers alias. diff --git a/internal/tenancy/codes_test.go b/internal/tenancy/codes_test.go index 9a6d33fe9..3ef2b8664 100644 --- a/internal/tenancy/codes_test.go +++ b/internal/tenancy/codes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/decision.go b/internal/tenancy/decision.go index 5d39260d3..f44577ba2 100644 --- a/internal/tenancy/decision.go +++ b/internal/tenancy/decision.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import "fmt" diff --git a/internal/tenancy/decision_test.go b/internal/tenancy/decision_test.go index 68779a528..4e8acb905 100644 --- a/internal/tenancy/decision_test.go +++ b/internal/tenancy/decision_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/decisions.go b/internal/tenancy/decisions.go index 9b001ba84..322940bb4 100644 --- a/internal/tenancy/decisions.go +++ b/internal/tenancy/decisions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import "fmt" diff --git a/internal/tenancy/decisions_admit.go b/internal/tenancy/decisions_admit.go index 0a92c6775..7333c85ab 100644 --- a/internal/tenancy/decisions_admit.go +++ b/internal/tenancy/decisions_admit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // admitDecisions are the rows that answer "may this credential enter, and for diff --git a/internal/tenancy/decisions_allow.go b/internal/tenancy/decisions_allow.go index 348cd6c7c..97867733b 100644 --- a/internal/tenancy/decisions_allow.go +++ b/internal/tenancy/decisions_allow.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // allowDecisions are the rows that answer "what may it hold or spend?" (spec: diff --git a/internal/tenancy/decisions_authorize.go b/internal/tenancy/decisions_authorize.go index 8ade9937c..22d8d5276 100644 --- a/internal/tenancy/decisions_authorize.go +++ b/internal/tenancy/decisions_authorize.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // authorizeDecisions are the rows that answer "what may it do?" (spec: diff --git a/internal/tenancy/decisions_end.go b/internal/tenancy/decisions_end.go index 03d713d3d..375578c1e 100644 --- a/internal/tenancy/decisions_end.go +++ b/internal/tenancy/decisions_end.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // endDecisions are the rows that answer "what happens when the server ends diff --git a/internal/tenancy/decisions_identify.go b/internal/tenancy/decisions_identify.go index 3af572aa3..4d44e0f20 100644 --- a/internal/tenancy/decisions_identify.go +++ b/internal/tenancy/decisions_identify.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // identifyDecisions are the rows that answer "who is this request?" (spec: diff --git a/internal/tenancy/decisions_request.go b/internal/tenancy/decisions_request.go index c03e35aa0..2b8c633fb 100644 --- a/internal/tenancy/decisions_request.go +++ b/internal/tenancy/decisions_request.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // requestDecisions are the per-request bounds, the RQB rows. They diff --git a/internal/tenancy/decisions_test.go b/internal/tenancy/decisions_test.go index 58f431a16..71349067d 100644 --- a/internal/tenancy/decisions_test.go +++ b/internal/tenancy/decisions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/doc.go b/internal/tenancy/doc.go index ad6f1be8b..ffe020bc3 100644 --- a/internal/tenancy/doc.go +++ b/internal/tenancy/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package tenancy is the register of every decision this server makes about // who a caller is and what it may hold, spend or be told. // diff --git a/internal/tenancy/doc_test.go b/internal/tenancy/doc_test.go index 1588cb3fc..8e803efa2 100644 --- a/internal/tenancy/doc_test.go +++ b/internal/tenancy/doc_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/failures.go b/internal/tenancy/failures.go index 8c08d77d0..5bc5f69c7 100644 --- a/internal/tenancy/failures.go +++ b/internal/tenancy/failures.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // Failure is one refusal an authentication path returns, and whether it is diff --git a/internal/tenancy/failures_test.go b/internal/tenancy/failures_test.go index dfb4cbc99..be9365a9d 100644 --- a/internal/tenancy/failures_test.go +++ b/internal/tenancy/failures_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/grants.go b/internal/tenancy/grants.go index 94a38092d..5f6a1b328 100644 --- a/internal/tenancy/grants.go +++ b/internal/tenancy/grants.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import "strings" diff --git a/internal/tenancy/grants_test.go b/internal/tenancy/grants_test.go index 12826a54d..61859147f 100644 --- a/internal/tenancy/grants_test.go +++ b/internal/tenancy/grants_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/key.go b/internal/tenancy/key.go index ddb5026b3..8f28df2c4 100644 --- a/internal/tenancy/key.go +++ b/internal/tenancy/key.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import "fmt" diff --git a/internal/tenancy/key_test.go b/internal/tenancy/key_test.go index f59628e9a..c83e21447 100644 --- a/internal/tenancy/key_test.go +++ b/internal/tenancy/key_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/meter.go b/internal/tenancy/meter.go index 62dfd3cc3..e2c7d45dd 100644 --- a/internal/tenancy/meter.go +++ b/internal/tenancy/meter.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy // Meter is the bucket an MCP method is charged to, which also decides how its diff --git a/internal/tenancy/meter_test.go b/internal/tenancy/meter_test.go index 9b6d1b755..e03ae04b4 100644 --- a/internal/tenancy/meter_test.go +++ b/internal/tenancy/meter_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/validate.go b/internal/tenancy/validate.go index 45aefabf9..34f737e65 100644 --- a/internal/tenancy/validate.go +++ b/internal/tenancy/validate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/validate_test.go b/internal/tenancy/validate_test.go index 2a9b10b5f..62d0e6c81 100644 --- a/internal/tenancy/validate_test.go +++ b/internal/tenancy/validate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/tenancy/values.go b/internal/tenancy/values.go index 195739e42..df2e051c3 100644 --- a/internal/tenancy/values.go +++ b/internal/tenancy/values.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import "time" diff --git a/internal/tenancy/values_test.go b/internal/tenancy/values_test.go index 881070588..894c170df 100644 --- a/internal/tenancy/values_test.go +++ b/internal/tenancy/values_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tenancy import ( diff --git a/internal/testutil/captured.go b/internal/testutil/captured.go index b49cffc60..2a51ec155 100644 --- a/internal/testutil/captured.go +++ b/internal/testutil/captured.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/captured_test.go b/internal/testutil/captured_test.go index 1e5516843..2ccfacbbe 100644 --- a/internal/testutil/captured_test.go +++ b/internal/testutil/captured_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/doc.go b/internal/testutil/doc.go index f62431dea..de8291aa0 100644 --- a/internal/testutil/doc.go +++ b/internal/testutil/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package testutil provides test helpers for gitlab-mcp-server. // // It wraps [net/http/httptest], the official diff --git a/internal/testutil/e2ecalls/doc.go b/internal/testutil/e2ecalls/doc.go index 34aec7fe8..efc26942d 100644 --- a/internal/testutil/e2ecalls/doc.go +++ b/internal/testutil/e2ecalls/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package e2ecalls declares the record the end-to-end suite writes down while // it runs, and the coverage audit reads back afterwards: what a test asked the // server to do, what the server dispatched, and on which runtime, surface and diff --git a/internal/testutil/e2ecalls/reader.go b/internal/testutil/e2ecalls/reader.go index 817d0b272..7ef6b2629 100644 --- a/internal/testutil/e2ecalls/reader.go +++ b/internal/testutil/e2ecalls/reader.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The reading half: every shard of a directory tree, merged in one pass, with // a line nobody can read reported rather than dropped. diff --git a/internal/testutil/e2ecalls/reader_test.go b/internal/testutil/e2ecalls/reader_test.go index 04fc6e595..d32ebfb01 100644 --- a/internal/testutil/e2ecalls/reader_test.go +++ b/internal/testutil/e2ecalls/reader_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package e2ecalls import ( diff --git a/internal/testutil/e2ecalls/record.go b/internal/testutil/e2ecalls/record.go index b682c93b3..33f76a1a3 100644 --- a/internal/testutil/e2ecalls/record.go +++ b/internal/testutil/e2ecalls/record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The line shapes a shard holds, and the one envelope they are written in. // Every field name here is the contract between the harness that writes a // shard and cmd/audit_e2e_coverage that reads it. diff --git a/internal/testutil/e2ecalls/record_test.go b/internal/testutil/e2ecalls/record_test.go index 35c101793..386f92a47 100644 --- a/internal/testutil/e2ecalls/record_test.go +++ b/internal/testutil/e2ecalls/record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package e2ecalls import ( diff --git a/internal/testutil/e2ecalls/writer.go b/internal/testutil/e2ecalls/writer.go index 64afe1a76..5045e166d 100644 --- a/internal/testutil/e2ecalls/writer.go +++ b/internal/testutil/e2ecalls/writer.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The writing half: the spec this record hands the shared shard mechanism, and // the three calls that reach it. diff --git a/internal/testutil/e2ecalls/writer_test.go b/internal/testutil/e2ecalls/writer_test.go index e7401b3dc..6408b54e6 100644 --- a/internal/testutil/e2ecalls/writer_test.go +++ b/internal/testutil/e2ecalls/writer_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package e2ecalls import ( diff --git a/internal/testutil/e2erelease/doc.go b/internal/testutil/e2erelease/doc.go index 04b42dfaf..952eb27ac 100644 --- a/internal/testutil/e2erelease/doc.go +++ b/internal/testutil/e2erelease/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package e2erelease decides what an end-to-end run does on the GitLab // release it found, measured against the release the fine-grained action // table was recorded from (issue 1155). diff --git a/internal/testutil/e2erelease/release.go b/internal/testutil/e2erelease/release.go index 25a59235b..0df4b9771 100644 --- a/internal/testutil/e2erelease/release.go +++ b/internal/testutil/e2erelease/release.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package e2erelease import ( diff --git a/internal/testutil/e2erelease/release_test.go b/internal/testutil/e2erelease/release_test.go index bb1ed86f1..403447fa6 100644 --- a/internal/testutil/e2erelease/release_test.go +++ b/internal/testutil/e2erelease/release_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package e2erelease import ( diff --git a/internal/testutil/embed_assert.go b/internal/testutil/embed_assert.go index 98ebcef73..424746c32 100644 --- a/internal/testutil/embed_assert.go +++ b/internal/testutil/embed_assert.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/embed_assert_test.go b/internal/testutil/embed_assert_test.go index 7fe087478..9b5d5155b 100644 --- a/internal/testutil/embed_assert_test.go +++ b/internal/testutil/embed_assert_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/fixture.go b/internal/testutil/fixture.go index 085c42941..b7b65fe43 100644 --- a/internal/testutil/fixture.go +++ b/internal/testutil/fixture.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/fixture_test.go b/internal/testutil/fixture_test.go index 45b6b32b2..ce045d1f2 100644 --- a/internal/testutil/fixture_test.go +++ b/internal/testutil/fixture_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/gfm.go b/internal/testutil/gfm.go index 1ca824f23..8aae83a57 100644 --- a/internal/testutil/gfm.go +++ b/internal/testutil/gfm.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/gfm_test.go b/internal/testutil/gfm_test.go index d5e9bd7c1..5a02f9b3c 100644 --- a/internal/testutil/gfm_test.go +++ b/internal/testutil/gfm_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/graphql.go b/internal/testutil/graphql.go index cd89641a4..f6585a065 100644 --- a/internal/testutil/graphql.go +++ b/internal/testutil/graphql.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/graphql_complexity.go b/internal/testutil/graphql_complexity.go index 50087134a..530772aae 100644 --- a/internal/testutil/graphql_complexity.go +++ b/internal/testutil/graphql_complexity.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/graphql_complexity_test.go b/internal/testutil/graphql_complexity_test.go index b10afd495..736bca2f9 100644 --- a/internal/testutil/graphql_complexity_test.go +++ b/internal/testutil/graphql_complexity_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/graphql_test.go b/internal/testutil/graphql_test.go index 629a53c37..256d6f742 100644 --- a/internal/testutil/graphql_test.go +++ b/internal/testutil/graphql_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // graphql_test.go contains unit tests for the GraphQL test helpers in // graphql.go. Each test exercises a public helper ([RespondGraphQL], // [RespondGraphQLError], [GraphQLHandler], [ParseGraphQLVariables]) in diff --git a/internal/testutil/graphql_validation.go b/internal/testutil/graphql_validation.go index 66c727610..fb1d11496 100644 --- a/internal/testutil/graphql_validation.go +++ b/internal/testutil/graphql_validation.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/graphql_validation_test.go b/internal/testutil/graphql_validation_test.go index a8da8f276..114208f94 100644 --- a/internal/testutil/graphql_validation_test.go +++ b/internal/testutil/graphql_validation_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/helpers.go b/internal/testutil/helpers.go index 13a462e01..afea491fd 100644 --- a/internal/testutil/helpers.go +++ b/internal/testutil/helpers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/helpers_test.go b/internal/testutil/helpers_test.go index d40d40c48..9082647ec 100644 --- a/internal/testutil/helpers_test.go +++ b/internal/testutil/helpers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // helpers_test.go validates the shared test utilities used across all domain // tool tests. Each helper is exercised directly to ensure correct behavior // in both success and failure scenarios. Tests use a sentinel [*testing.T] diff --git a/internal/testutil/hints/doc.go b/internal/testutil/hints/doc.go index b77a1aec5..22b4d174e 100644 --- a/internal/testutil/hints/doc.go +++ b/internal/testutil/hints/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package hints collects the canonical action IDs a package's Markdown // invites a model to call, by rendering the package's own formatters rather // than by reading its constants: a hint spelled as a literal at the call site diff --git a/internal/testutil/hints/hints.go b/internal/testutil/hints/hints.go index d457c3093..1063939be 100644 --- a/internal/testutil/hints/hints.go +++ b/internal/testutil/hints/hints.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package hints import ( diff --git a/internal/testutil/hints/hints_test.go b/internal/testutil/hints/hints_test.go index 255bc0318..b0b11b3a5 100644 --- a/internal/testutil/hints/hints_test.go +++ b/internal/testutil/hints/hints_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // hints_test.go exercises the hint collector against formatters this file // registers itself, so the expectations are fixed by the test rather than by // whatever the domain packages happen to publish today. diff --git a/internal/testutil/keyset.go b/internal/testutil/keyset.go index bc7ec22de..23f111de7 100644 --- a/internal/testutil/keyset.go +++ b/internal/testutil/keyset.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/keyset_test.go b/internal/testutil/keyset_test.go index 883cf5e13..10cac31b4 100644 --- a/internal/testutil/keyset_test.go +++ b/internal/testutil/keyset_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // keyset_test.go holds the keyset listing mock and its driver to what they // promise: the mock answers each page the way GitLab answers a keyset page and // records what it was asked, and [FollowKeyset] passes a handler that follows diff --git a/internal/testutil/legacy_client.go b/internal/testutil/legacy_client.go index 56413eb8c..78d7300d8 100644 --- a/internal/testutil/legacy_client.go +++ b/internal/testutil/legacy_client.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // legacy_client.go provides a minimal hand-rolled MCP // client that performs the legacy initialize handshake at protocol version // 2025-11-25 and serves server-initiated elicitation/create requests. diff --git a/internal/testutil/legacy_client_external_test.go b/internal/testutil/legacy_client_external_test.go index dcfcbdf0c..b3bff699c 100644 --- a/internal/testutil/legacy_client_external_test.go +++ b/internal/testutil/legacy_client_external_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil_test import ( diff --git a/internal/testutil/legacy_client_test.go b/internal/testutil/legacy_client_test.go index b1e5bf1c5..0d7369228 100644 --- a/internal/testutil/legacy_client_test.go +++ b/internal/testutil/legacy_client_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // legacy_client_test.go covers the failure paths of the fake legacy client, // none of which a passing run takes: the transport is a net.Pipe in this // process, so it connects, writes and closes without ever failing. They are diff --git a/internal/testutil/modelcorpus/access.go b/internal/testutil/modelcorpus/access.go index 5db751860..9892f4ea8 100644 --- a/internal/testutil/modelcorpus/access.go +++ b/internal/testutil/modelcorpus/access.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import ( diff --git a/internal/testutil/modelcorpus/access_test.go b/internal/testutil/modelcorpus/access_test.go index 218b1a298..e7e12b854 100644 --- a/internal/testutil/modelcorpus/access_test.go +++ b/internal/testutil/modelcorpus/access_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import ( diff --git a/internal/testutil/modelcorpus/contract.go b/internal/testutil/modelcorpus/contract.go index 847abc1d3..7529c3bfe 100644 --- a/internal/testutil/modelcorpus/contract.go +++ b/internal/testutil/modelcorpus/contract.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The surface contract is what a model is told about the surface it is given, diff --git a/internal/testutil/modelcorpus/contract_test.go b/internal/testutil/modelcorpus/contract_test.go index c7a04e3cd..cb760140f 100644 --- a/internal/testutil/modelcorpus/contract_test.go +++ b/internal/testutil/modelcorpus/contract_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import ( diff --git a/internal/testutil/modelcorpus/declarations.go b/internal/testutil/modelcorpus/declarations.go index 87c49933c..f3b4c7577 100644 --- a/internal/testutil/modelcorpus/declarations.go +++ b/internal/testutil/modelcorpus/declarations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // promptDeclaration records why one answer literal a case's own text carries is diff --git a/internal/testutil/modelcorpus/declarations_test.go b/internal/testutil/modelcorpus/declarations_test.go index 597da3c5e..2eaeceb6f 100644 --- a/internal/testutil/modelcorpus/declarations_test.go +++ b/internal/testutil/modelcorpus/declarations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import "testing" diff --git a/internal/testutil/modelcorpus/destructive.go b/internal/testutil/modelcorpus/destructive.go index c7b2041d5..7fec41214 100644 --- a/internal/testutil/modelcorpus/destructive.go +++ b/internal/testutil/modelcorpus/destructive.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The destructive partition: cases that take something away. Whether a case diff --git a/internal/testutil/modelcorpus/doc.go b/internal/testutil/modelcorpus/doc.go index 245aae8f0..23bfe907c 100644 --- a/internal/testutil/modelcorpus/doc.go +++ b/internal/testutil/modelcorpus/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package modelcorpus is the model evaluation corpus: for each case, the // stimulus a model is given and the key that stimulus is scored against, held // apart so that no code which produces a stimulus can read a key. diff --git a/internal/testutil/modelcorpus/licensed_destructive.go b/internal/testutil/modelcorpus/licensed_destructive.go index fce2c4959..1cca1e3fb 100644 --- a/internal/testutil/modelcorpus/licensed_destructive.go +++ b/internal/testutil/modelcorpus/licensed_destructive.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The licensed destructive partition: cases that take away something a diff --git a/internal/testutil/modelcorpus/licensed_mutating.go b/internal/testutil/modelcorpus/licensed_mutating.go index dc7b0d780..40579f80a 100644 --- a/internal/testutil/modelcorpus/licensed_mutating.go +++ b/internal/testutil/modelcorpus/licensed_mutating.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The licensed mutating partition: cases that create or change something a diff --git a/internal/testutil/modelcorpus/licensed_read.go b/internal/testutil/modelcorpus/licensed_read.go index 36d913166..944f327f6 100644 --- a/internal/testutil/modelcorpus/licensed_read.go +++ b/internal/testutil/modelcorpus/licensed_read.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The licensed read partition: cases whose steps read something a Premium or diff --git a/internal/testutil/modelcorpus/mutating.go b/internal/testutil/modelcorpus/mutating.go index 53f4667bc..e9f370747 100644 --- a/internal/testutil/modelcorpus/mutating.go +++ b/internal/testutil/modelcorpus/mutating.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The mutating partition: cases that create or change something and destroy diff --git a/internal/testutil/modelcorpus/read.go b/internal/testutil/modelcorpus/read.go index 5c23cca27..d07e96f81 100644 --- a/internal/testutil/modelcorpus/read.go +++ b/internal/testutil/modelcorpus/read.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The read partition: cases whose every step reads, so an attempt changes diff --git a/internal/testutil/modelcorpus/recipes.go b/internal/testutil/modelcorpus/recipes.go index 476babe47..2454ef49b 100644 --- a/internal/testutil/modelcorpus/recipes.go +++ b/internal/testutil/modelcorpus/recipes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // Recipe names the world a case runs in. The builders live in the end-to-end diff --git a/internal/testutil/modelcorpus/recipes_test.go b/internal/testutil/modelcorpus/recipes_test.go index e749b7721..70c8adfad 100644 --- a/internal/testutil/modelcorpus/recipes_test.go +++ b/internal/testutil/modelcorpus/recipes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import ( diff --git a/internal/testutil/modelcorpus/retired.go b/internal/testutil/modelcorpus/retired.go index 58428cc98..5e1fdf09c 100644 --- a/internal/testutil/modelcorpus/retired.go +++ b/internal/testutil/modelcorpus/retired.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus // The retired cases: identifiers the corpus this one replaces declared and diff --git a/internal/testutil/modelcorpus/retired_test.go b/internal/testutil/modelcorpus/retired_test.go index 8a594db5c..9bd729c5d 100644 --- a/internal/testutil/modelcorpus/retired_test.go +++ b/internal/testutil/modelcorpus/retired_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import ( diff --git a/internal/testutil/modelcorpus/types.go b/internal/testutil/modelcorpus/types.go index cf5e82c22..044738348 100644 --- a/internal/testutil/modelcorpus/types.go +++ b/internal/testutil/modelcorpus/types.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import "slices" diff --git a/internal/testutil/modelcorpus/types_test.go b/internal/testutil/modelcorpus/types_test.go index b13fb5e11..7dd0edf6b 100644 --- a/internal/testutil/modelcorpus/types_test.go +++ b/internal/testutil/modelcorpus/types_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelcorpus import ( diff --git a/internal/testutil/modelrecord/doc.go b/internal/testutil/modelrecord/doc.go index 5886f5b1a..8e4878e66 100644 --- a/internal/testutil/modelrecord/doc.go +++ b/internal/testutil/modelrecord/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package modelrecord declares what one model evaluation run writes down: the // stimulus a model was given, every request that went to a provider, every // tool call the model made, what the server dispatched for it, and what GitLab diff --git a/internal/testutil/modelrecord/reader.go b/internal/testutil/modelrecord/reader.go index 9913166f8..0b210b822 100644 --- a/internal/testutil/modelrecord/reader.go +++ b/internal/testutil/modelrecord/reader.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The reading half: every shard of a directory tree, merged in one pass, with a // line nobody can read reported rather than dropped. diff --git a/internal/testutil/modelrecord/reader_test.go b/internal/testutil/modelrecord/reader_test.go index e25437215..3c694b1aa 100644 --- a/internal/testutil/modelrecord/reader_test.go +++ b/internal/testutil/modelrecord/reader_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelrecord import ( diff --git a/internal/testutil/modelrecord/record.go b/internal/testutil/modelrecord/record.go index 901b4eecb..4b9f7a0ef 100644 --- a/internal/testutil/modelrecord/record.go +++ b/internal/testutil/modelrecord/record.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The line shapes a shard holds, and the one envelope they are written in. // Every field name here is the contract between the runner that writes a shard // and cmd/gen_model_results that reads it back to score and publish. diff --git a/internal/testutil/modelrecord/record_test.go b/internal/testutil/modelrecord/record_test.go index 3d2614de0..f1fe7ecb1 100644 --- a/internal/testutil/modelrecord/record_test.go +++ b/internal/testutil/modelrecord/record_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelrecord import ( diff --git a/internal/testutil/modelrecord/validate.go b/internal/testutil/modelrecord/validate.go index d38a08e92..4be90d029 100644 --- a/internal/testutil/modelrecord/validate.go +++ b/internal/testutil/modelrecord/validate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The payload half of validation: what each line type must carry to mean // anything, checked before a reader hands it to anything that scores. // diff --git a/internal/testutil/modelrecord/validate_test.go b/internal/testutil/modelrecord/validate_test.go index 1083a82db..e3826322f 100644 --- a/internal/testutil/modelrecord/validate_test.go +++ b/internal/testutil/modelrecord/validate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelrecord import ( diff --git a/internal/testutil/modelrecord/writer.go b/internal/testutil/modelrecord/writer.go index 8c22a8536..5847c9a82 100644 --- a/internal/testutil/modelrecord/writer.go +++ b/internal/testutil/modelrecord/writer.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The writing half: one shard per test process, opened when the first line is // written and never closed, because there is no shutdown hook to close it in. diff --git a/internal/testutil/modelrecord/writer_test.go b/internal/testutil/modelrecord/writer_test.go index 97780b66b..6f4ddcc58 100644 --- a/internal/testutil/modelrecord/writer_test.go +++ b/internal/testutil/modelrecord/writer_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelrecord import ( diff --git a/internal/testutil/modelscore/aggregate.go b/internal/testutil/modelscore/aggregate.go index 9e468aa33..f21bab879 100644 --- a/internal/testutil/modelscore/aggregate.go +++ b/internal/testutil/modelscore/aggregate.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // aggregate.go adds verdicts up into the seven columns a row publishes. // // Every column is a numerator and a denominator, both printed, and a dash when diff --git a/internal/testutil/modelscore/aggregate_test.go b/internal/testutil/modelscore/aggregate_test.go index 6a61ea458..fcdb7e9eb 100644 --- a/internal/testutil/modelscore/aggregate_test.go +++ b/internal/testutil/modelscore/aggregate_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelscore import ( diff --git a/internal/testutil/modelscore/args.go b/internal/testutil/modelscore/args.go index 0b1e2ca0b..d31fc79fb 100644 --- a/internal/testutil/modelscore/args.go +++ b/internal/testutil/modelscore/args.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // args.go compares the values a model sent against the four truths a case // declares. // diff --git a/internal/testutil/modelscore/args_test.go b/internal/testutil/modelscore/args_test.go index 791a3edc8..d8efadfe3 100644 --- a/internal/testutil/modelscore/args_test.go +++ b/internal/testutil/modelscore/args_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelscore import ( diff --git a/internal/testutil/modelscore/attempt.go b/internal/testutil/modelscore/attempt.go index dad432a27..4e4657fdc 100644 --- a/internal/testutil/modelscore/attempt.go +++ b/internal/testutil/modelscore/attempt.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // attempt.go is the pure function this package exists for: one attempt's lines // and one case's key in, one verdict out. // diff --git a/internal/testutil/modelscore/attempt_test.go b/internal/testutil/modelscore/attempt_test.go index 6b7e17357..f5c4a73a5 100644 --- a/internal/testutil/modelscore/attempt_test.go +++ b/internal/testutil/modelscore/attempt_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelscore import ( diff --git a/internal/testutil/modelscore/doc.go b/internal/testutil/modelscore/doc.go index 5c35a679a..6e6ea7600 100644 --- a/internal/testutil/modelscore/doc.go +++ b/internal/testutil/modelscore/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package modelscore turns one attempt's record into the verdict a published // row is made of. // diff --git a/internal/testutil/modelscore/events.go b/internal/testutil/modelscore/events.go index 135c65ef6..1b832e26e 100644 --- a/internal/testutil/modelscore/events.go +++ b/internal/testutil/modelscore/events.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // events.go reads a shard's lines into attempts, and one attempt's calls into // the events a step is matched against. // diff --git a/internal/testutil/modelscore/events_test.go b/internal/testutil/modelscore/events_test.go index 5c3429608..70e26911e 100644 --- a/internal/testutil/modelscore/events_test.go +++ b/internal/testutil/modelscore/events_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelscore import ( diff --git a/internal/testutil/modelscore/match.go b/internal/testutil/modelscore/match.go index 9f8d57129..9fa46ec5b 100644 --- a/internal/testutil/modelscore/match.go +++ b/internal/testutil/modelscore/match.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // match.go decides which call reached which step. // // The order is the key's. Step i is reached by the first event after step diff --git a/internal/testutil/modelscore/match_test.go b/internal/testutil/modelscore/match_test.go index d75465880..b2709d468 100644 --- a/internal/testutil/modelscore/match_test.go +++ b/internal/testutil/modelscore/match_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelscore import ( diff --git a/internal/testutil/modelscore/outcome.go b/internal/testutil/modelscore/outcome.go index 6a3b3347b..ad6b012a2 100644 --- a/internal/testutil/modelscore/outcome.go +++ b/internal/testutil/modelscore/outcome.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // outcome.go says what one call was worth, which is a different question in // each of the three protective modes. // diff --git a/internal/testutil/modelscore/outcome_test.go b/internal/testutil/modelscore/outcome_test.go index 0d0b18e96..f99dbec8a 100644 --- a/internal/testutil/modelscore/outcome_test.go +++ b/internal/testutil/modelscore/outcome_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelscore import ( diff --git a/internal/testutil/multipart.go b/internal/testutil/multipart.go index df3cf33cd..6d81717c6 100644 --- a/internal/testutil/multipart.go +++ b/internal/testutil/multipart.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/multipart_test.go b/internal/testutil/multipart_test.go index 704b2018f..078042197 100644 --- a/internal/testutil/multipart_test.go +++ b/internal/testutil/multipart_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/netfixture/dead_endpoint.go b/internal/testutil/netfixture/dead_endpoint.go index 538d751d4..18ca923c8 100644 --- a/internal/testutil/netfixture/dead_endpoint.go +++ b/internal/testutil/netfixture/dead_endpoint.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package netfixture import ( diff --git a/internal/testutil/netfixture/dead_endpoint_test.go b/internal/testutil/netfixture/dead_endpoint_test.go index 0c8f12e24..7ee4aee84 100644 --- a/internal/testutil/netfixture/dead_endpoint_test.go +++ b/internal/testutil/netfixture/dead_endpoint_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package netfixture import ( diff --git a/internal/testutil/netfixture/doc.go b/internal/testutil/netfixture/doc.go index 05f76e7f4..b50a53d17 100644 --- a/internal/testutil/netfixture/doc.go +++ b/internal/testutil/netfixture/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package netfixture gives a test an HTTP address that stops answering // without giving its port away. // diff --git a/internal/testutil/netfixture/stoppable_server.go b/internal/testutil/netfixture/stoppable_server.go index 2f4d3e5e7..0cad8f5e9 100644 --- a/internal/testutil/netfixture/stoppable_server.go +++ b/internal/testutil/netfixture/stoppable_server.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package netfixture import ( diff --git a/internal/testutil/netfixture/stoppable_server_test.go b/internal/testutil/netfixture/stoppable_server_test.go index 13d5e867e..e05dbc219 100644 --- a/internal/testutil/netfixture/stoppable_server_test.go +++ b/internal/testutil/netfixture/stoppable_server_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package netfixture import ( diff --git a/internal/testutil/query_recorder.go b/internal/testutil/query_recorder.go index 68105d09c..a8b33d8df 100644 --- a/internal/testutil/query_recorder.go +++ b/internal/testutil/query_recorder.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/query_recorder_test.go b/internal/testutil/query_recorder_test.go index 4a6042f62..e5f8729e8 100644 --- a/internal/testutil/query_recorder_test.go +++ b/internal/testutil/query_recorder_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/request_inventory.go b/internal/testutil/request_inventory.go index dc8639787..520fc668d 100644 --- a/internal/testutil/request_inventory.go +++ b/internal/testutil/request_inventory.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/request_inventory_test.go b/internal/testutil/request_inventory_test.go index 1e2c164c4..38e4b9e22 100644 --- a/internal/testutil/request_inventory_test.go +++ b/internal/testutil/request_inventory_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/request_shape.go b/internal/testutil/request_shape.go index 718113c1c..38d1aaa48 100644 --- a/internal/testutil/request_shape.go +++ b/internal/testutil/request_shape.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/request_shape_test.go b/internal/testutil/request_shape_test.go index e65baa2ce..8d29a67c1 100644 --- a/internal/testutil/request_shape_test.go +++ b/internal/testutil/request_shape_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/serialtypecheck/doc.go b/internal/testutil/serialtypecheck/doc.go index 6a6078c9d..075b5e457 100644 --- a/internal/testutil/serialtypecheck/doc.go +++ b/internal/testutil/serialtypecheck/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package serialtypecheck makes golang.org/x/tools/go/packages type-check one // package at a time in a race build, and does nothing in any other build. // diff --git a/internal/testutil/serialtypecheck/export_test.go b/internal/testutil/serialtypecheck/export_test.go index 3817d6b2a..bce54958e 100644 --- a/internal/testutil/serialtypecheck/export_test.go +++ b/internal/testutil/serialtypecheck/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package serialtypecheck // The tests live in the external package serialtypecheck_test, and this file diff --git a/internal/testutil/serialtypecheck/norace.go b/internal/testutil/serialtypecheck/norace.go index 3ce1de0e1..52b27eb2c 100644 --- a/internal/testutil/serialtypecheck/norace.go +++ b/internal/testutil/serialtypecheck/norace.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !race // norace.go is the ordinary half of the build seam, compiled by every build diff --git a/internal/testutil/serialtypecheck/race.go b/internal/testutil/serialtypecheck/race.go index db89eb59b..d5be5c845 100644 --- a/internal/testutil/serialtypecheck/race.go +++ b/internal/testutil/serialtypecheck/race.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build race // race.go is the race-detector half of the build seam: the go tool sets the diff --git a/internal/testutil/serialtypecheck/serialtypecheck.go b/internal/testutil/serialtypecheck/serialtypecheck.go index 6e664c177..0986a812c 100644 --- a/internal/testutil/serialtypecheck/serialtypecheck.go +++ b/internal/testutil/serialtypecheck/serialtypecheck.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package serialtypecheck import "runtime" diff --git a/internal/testutil/serialtypecheck/serialtypecheck_test.go b/internal/testutil/serialtypecheck/serialtypecheck_test.go index 50eefca27..4006d6edf 100644 --- a/internal/testutil/serialtypecheck/serialtypecheck_test.go +++ b/internal/testutil/serialtypecheck/serialtypecheck_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The tests are an external package on purpose: export_test.go says why. package serialtypecheck_test diff --git a/internal/testutil/shardio/doc.go b/internal/testutil/shardio/doc.go index 22834517a..768ee983e 100644 --- a/internal/testutil/shardio/doc.go +++ b/internal/testutil/shardio/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package shardio is the shard mechanism the records written by a test process // and read back by a command are built on: one shard file per process, one JSON // line per record, a directory tree read in one pass, and a line nobody can diff --git a/internal/testutil/shardio/envelope.go b/internal/testutil/shardio/envelope.go index 18195219c..e4498b6d7 100644 --- a/internal/testutil/shardio/envelope.go +++ b/internal/testutil/shardio/envelope.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The one rule every record read back from a shard is held to, apart from // whatever else its own package checks. diff --git a/internal/testutil/shardio/envelope_test.go b/internal/testutil/shardio/envelope_test.go index 4ae9afe34..10681d8b0 100644 --- a/internal/testutil/shardio/envelope_test.go +++ b/internal/testutil/shardio/envelope_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shardio import ( diff --git a/internal/testutil/shardio/reader.go b/internal/testutil/shardio/reader.go index 17ba42db9..d691352f6 100644 --- a/internal/testutil/shardio/reader.go +++ b/internal/testutil/shardio/reader.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The reading half: every shard of a directory tree, merged in one pass, with a // line nobody can read reported rather than dropped. diff --git a/internal/testutil/shardio/reader_test.go b/internal/testutil/shardio/reader_test.go index a7e53245b..4c523d34b 100644 --- a/internal/testutil/shardio/reader_test.go +++ b/internal/testutil/shardio/reader_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shardio import ( diff --git a/internal/testutil/shardio/shardio.go b/internal/testutil/shardio/shardio.go index 88a184538..b1e8cf716 100644 --- a/internal/testutil/shardio/shardio.go +++ b/internal/testutil/shardio/shardio.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // What one record contributes to the mechanism, and the per-record registry // that holds its writers apart from every other record's. diff --git a/internal/testutil/shardio/shardio_test.go b/internal/testutil/shardio/shardio_test.go index 66e0ded26..2266b6a86 100644 --- a/internal/testutil/shardio/shardio_test.go +++ b/internal/testutil/shardio/shardio_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shardio import ( diff --git a/internal/testutil/shardio/writer.go b/internal/testutil/shardio/writer.go index 1c766f426..52901ae2e 100644 --- a/internal/testutil/shardio/writer.go +++ b/internal/testutil/shardio/writer.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The writing half: one shard per test process, opened when the first line is // written and never closed, because there is no shutdown hook to close it in. diff --git a/internal/testutil/shardio/writer_test.go b/internal/testutil/shardio/writer_test.go index 99151a752..2bcb38472 100644 --- a/internal/testutil/shardio/writer_test.go +++ b/internal/testutil/shardio/writer_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package shardio import ( diff --git a/internal/testutil/temp_dir.go b/internal/testutil/temp_dir.go index 505e21cdb..b4988f116 100644 --- a/internal/testutil/temp_dir.go +++ b/internal/testutil/temp_dir.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // temp_dir.go isolates the process temporary directory for a test, on every // platform rather than only on the one the test was written on. diff --git a/internal/testutil/temp_dir_test.go b/internal/testutil/temp_dir_test.go index 807bb4721..e69311a2b 100644 --- a/internal/testutil/temp_dir_test.go +++ b/internal/testutil/temp_dir_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // temp_dir_test.go covers the temporary-directory isolation helper. package testutil diff --git a/internal/testutil/write_recorder.go b/internal/testutil/write_recorder.go index 5412682ed..357989e5a 100644 --- a/internal/testutil/write_recorder.go +++ b/internal/testutil/write_recorder.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/testutil/write_recorder_test.go b/internal/testutil/write_recorder_test.go index 5f37c8604..80df3e999 100644 --- a/internal/testutil/write_recorder_test.go +++ b/internal/testutil/write_recorder_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package testutil import ( diff --git a/internal/tools/accessrequests/access_requests.go b/internal/tools/accessrequests/access_requests.go index f145c2b7b..7593f9e28 100644 --- a/internal/tools/accessrequests/access_requests.go +++ b/internal/tools/accessrequests/access_requests.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package accessrequests import ( diff --git a/internal/tools/accessrequests/access_requests_test.go b/internal/tools/accessrequests/access_requests_test.go index 7803dfb53..fcfe3d122 100644 --- a/internal/tools/accessrequests/access_requests_test.go +++ b/internal/tools/accessrequests/access_requests_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // access_requests_test.go contains unit tests for the access request MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/accessrequests/action_specs.go b/internal/tools/accessrequests/action_specs.go index 45595abc1..5d399c30f 100644 --- a/internal/tools/accessrequests/action_specs.go +++ b/internal/tools/accessrequests/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package accessrequests import ( diff --git a/internal/tools/accessrequests/action_specs_catalog_test.go b/internal/tools/accessrequests/action_specs_catalog_test.go index 247062fd2..c0478feb8 100644 --- a/internal/tools/accessrequests/action_specs_catalog_test.go +++ b/internal/tools/accessrequests/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/accessrequests/action_specs_test.go b/internal/tools/accessrequests/action_specs_test.go index 6f96884dc..fba6e6499 100644 --- a/internal/tools/accessrequests/action_specs_test.go +++ b/internal/tools/accessrequests/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains catalog-surface tests for access request actions. package accessrequests diff --git a/internal/tools/accessrequests/doc.go b/internal/tools/accessrequests/doc.go index 8c2303061..24aeda2c6 100644 --- a/internal/tools/accessrequests/doc.go +++ b/internal/tools/accessrequests/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package accessrequests implements MCP tools for GitLab project and group // access request operations. // diff --git a/internal/tools/accessrequests/export_test.go b/internal/tools/accessrequests/export_test.go index b46654021..07c22ae3f 100644 --- a/internal/tools/accessrequests/export_test.go +++ b/internal/tools/accessrequests/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package accessrequests // PublishedActionIDs is every canonical catalog ID this package hands a model: diff --git a/internal/tools/accessrequests/markdown.go b/internal/tools/accessrequests/markdown.go index ec945b110..f3d074aec 100644 --- a/internal/tools/accessrequests/markdown.go +++ b/internal/tools/accessrequests/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package accessrequests import ( diff --git a/internal/tools/accesstokens/accesstokens.go b/internal/tools/accesstokens/accesstokens.go index 329a4e56c..24df99b2c 100644 --- a/internal/tools/accesstokens/accesstokens.go +++ b/internal/tools/accesstokens/accesstokens.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package accesstokens import ( diff --git a/internal/tools/accesstokens/accesstokens_test.go b/internal/tools/accesstokens/accesstokens_test.go index 3f1d2cd3f..b9f57b8b9 100644 --- a/internal/tools/accesstokens/accesstokens_test.go +++ b/internal/tools/accesstokens/accesstokens_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // accesstokens_test.go contains unit tests for the access token MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/accesstokens/action_specs.go b/internal/tools/accesstokens/action_specs.go index 7920a6e6c..642ef4faa 100644 --- a/internal/tools/accesstokens/action_specs.go +++ b/internal/tools/accesstokens/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package accesstokens import ( diff --git a/internal/tools/accesstokens/action_specs_test.go b/internal/tools/accesstokens/action_specs_test.go index bb96ebcda..e1b5393c0 100644 --- a/internal/tools/accesstokens/action_specs_test.go +++ b/internal/tools/accesstokens/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains catalog-surface tests for access token actions. package accesstokens diff --git a/internal/tools/accesstokens/doc.go b/internal/tools/accesstokens/doc.go index 223725eb3..fba396fcb 100644 --- a/internal/tools/accesstokens/doc.go +++ b/internal/tools/accesstokens/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package accesstokens implements MCP tools for GitLab project, group, and // personal access token operations. // diff --git a/internal/tools/accesstokens/markdown.go b/internal/tools/accesstokens/markdown.go index 1fb528eea..0d96cc152 100644 --- a/internal/tools/accesstokens/markdown.go +++ b/internal/tools/accesstokens/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package accesstokens import ( diff --git a/internal/tools/achievements/achievements.go b/internal/tools/achievements/achievements.go index 6a9629267..3126d89bf 100644 --- a/internal/tools/achievements/achievements.go +++ b/internal/tools/achievements/achievements.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package achievements import ( diff --git a/internal/tools/achievements/achievements_test.go b/internal/tools/achievements/achievements_test.go index 2d43ccf23..2eaf91ee5 100644 --- a/internal/tools/achievements/achievements_test.go +++ b/internal/tools/achievements/achievements_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // achievements_test.go contains unit tests for the GitLab achievement // handlers. // diff --git a/internal/tools/achievements/action_specs.go b/internal/tools/achievements/action_specs.go index 179c02588..1abc991c4 100644 --- a/internal/tools/achievements/action_specs.go +++ b/internal/tools/achievements/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package achievements import ( diff --git a/internal/tools/achievements/action_specs_test.go b/internal/tools/achievements/action_specs_test.go index 5bfb5babd..dfbf0eb5a 100644 --- a/internal/tools/achievements/action_specs_test.go +++ b/internal/tools/achievements/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go asserts the canonical metadata every achievement action // carries: the twelve routes, their declared individual-tool names, their // annotations, and the discovery metadata the catalog audits require. diff --git a/internal/tools/achievements/doc.go b/internal/tools/achievements/doc.go index a12bd052c..680f36e3f 100644 --- a/internal/tools/achievements/doc.go +++ b/internal/tools/achievements/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package achievements implements MCP tools for GitLab achievements: the // badges a namespace defines and the awards handed out from them. // diff --git a/internal/tools/achievements/markdown.go b/internal/tools/achievements/markdown.go index 5de66007e..595f2750c 100644 --- a/internal/tools/achievements/markdown.go +++ b/internal/tools/achievements/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package achievements import ( diff --git a/internal/tools/achievements/markdown_test.go b/internal/tools/achievements/markdown_test.go index 819a2ee2e..9ae403bc3 100644 --- a/internal/tools/achievements/markdown_test.go +++ b/internal/tools/achievements/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the Markdown rendering of every achievement output // type: the whole document each formatter writes, the optional rows that only // appear when the API returned them, and the next-step hints each result diff --git a/internal/tools/action_catalog.go b/internal/tools/action_catalog.go index 32f3bdd3c..26b794689 100644 --- a/internal/tools/action_catalog.go +++ b/internal/tools/action_catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/action_catalog_test.go b/internal/tools/action_catalog_test.go index b03759f92..3e7b1bfa8 100644 --- a/internal/tools/action_catalog_test.go +++ b/internal/tools/action_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/action_specs.go b/internal/tools/action_specs.go index 58948a5ca..a78091aa3 100644 --- a/internal/tools/action_specs.go +++ b/internal/tools/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/action_specs_test.go b/internal/tools/action_specs_test.go index 602bc8812..4ba3845b7 100644 --- a/internal/tools/action_specs_test.go +++ b/internal/tools/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/actioncatalog/action_spec.go b/internal/tools/actioncatalog/action_spec.go index 000703f99..4f526a19a 100644 --- a/internal/tools/actioncatalog/action_spec.go +++ b/internal/tools/actioncatalog/action_spec.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/action_spec_test.go b/internal/tools/actioncatalog/action_spec_test.go index 6ddbbbe7a..d922e7890 100644 --- a/internal/tools/actioncatalog/action_spec_test.go +++ b/internal/tools/actioncatalog/action_spec_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/catalog.go b/internal/tools/actioncatalog/catalog.go index 759c45a3d..84422b019 100644 --- a/internal/tools/actioncatalog/catalog.go +++ b/internal/tools/actioncatalog/catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/catalog_test.go b/internal/tools/actioncatalog/catalog_test.go index 81753d340..1099c58f4 100644 --- a/internal/tools/actioncatalog/catalog_test.go +++ b/internal/tools/actioncatalog/catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/classic.go b/internal/tools/actioncatalog/classic.go index 69c74aa4f..a360d8c51 100644 --- a/internal/tools/actioncatalog/classic.go +++ b/internal/tools/actioncatalog/classic.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/classic_test.go b/internal/tools/actioncatalog/classic_test.go index 731e25aa6..38629ca6a 100644 --- a/internal/tools/actioncatalog/classic_test.go +++ b/internal/tools/actioncatalog/classic_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/doc.go b/internal/tools/actioncatalog/doc.go index 74f699ada..c48181e8f 100644 --- a/internal/tools/actioncatalog/doc.go +++ b/internal/tools/actioncatalog/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package actioncatalog provides the canonical GitLab action catalog shared by // catalog-backed MCP tool surfaces. // diff --git a/internal/tools/actioncatalog/exclusion.go b/internal/tools/actioncatalog/exclusion.go index 60c86c14e..c509608ea 100644 --- a/internal/tools/actioncatalog/exclusion.go +++ b/internal/tools/actioncatalog/exclusion.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/exclusion_test.go b/internal/tools/actioncatalog/exclusion_test.go index 1ca7d1f6f..b16240f9d 100644 --- a/internal/tools/actioncatalog/exclusion_test.go +++ b/internal/tools/actioncatalog/exclusion_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/group_spec.go b/internal/tools/actioncatalog/group_spec.go index 98aaf6fc3..bf9a4d53c 100644 --- a/internal/tools/actioncatalog/group_spec.go +++ b/internal/tools/actioncatalog/group_spec.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/group_spec_test.go b/internal/tools/actioncatalog/group_spec_test.go index 3baae310f..0b6434de3 100644 --- a/internal/tools/actioncatalog/group_spec_test.go +++ b/internal/tools/actioncatalog/group_spec_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/required_params.go b/internal/tools/actioncatalog/required_params.go index 02ba0082a..e6d46df6c 100644 --- a/internal/tools/actioncatalog/required_params.go +++ b/internal/tools/actioncatalog/required_params.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/required_params_test.go b/internal/tools/actioncatalog/required_params_test.go index a07e3f0ed..5a22370d2 100644 --- a/internal/tools/actioncatalog/required_params_test.go +++ b/internal/tools/actioncatalog/required_params_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/see_also.go b/internal/tools/actioncatalog/see_also.go index 57359fe87..47a8ad2fd 100644 --- a/internal/tools/actioncatalog/see_also.go +++ b/internal/tools/actioncatalog/see_also.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/see_also_test.go b/internal/tools/actioncatalog/see_also_test.go index 6a578ff79..bd8fe206a 100644 --- a/internal/tools/actioncatalog/see_also_test.go +++ b/internal/tools/actioncatalog/see_also_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/surface_tool_spec.go b/internal/tools/actioncatalog/surface_tool_spec.go index 9ac14abc6..179c85c84 100644 --- a/internal/tools/actioncatalog/surface_tool_spec.go +++ b/internal/tools/actioncatalog/surface_tool_spec.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/surface_tool_spec_test.go b/internal/tools/actioncatalog/surface_tool_spec_test.go index bb1d26c9b..2a3366cc4 100644 --- a/internal/tools/actioncatalog/surface_tool_spec_test.go +++ b/internal/tools/actioncatalog/surface_tool_spec_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog import ( diff --git a/internal/tools/actioncatalog/tier.go b/internal/tools/actioncatalog/tier.go index 849ef0cce..6d688beab 100644 --- a/internal/tools/actioncatalog/tier.go +++ b/internal/tools/actioncatalog/tier.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncatalog // TierWithheld is one action key the instance's licensing tier withheld, with diff --git a/internal/tools/actioncompat/action_aliases.go b/internal/tools/actioncompat/action_aliases.go index c2c9364ec..ccf59da7a 100644 --- a/internal/tools/actioncompat/action_aliases.go +++ b/internal/tools/actioncompat/action_aliases.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncompat import ( diff --git a/internal/tools/actioncompat/action_aliases_test.go b/internal/tools/actioncompat/action_aliases_test.go index a7398defd..30660e455 100644 --- a/internal/tools/actioncompat/action_aliases_test.go +++ b/internal/tools/actioncompat/action_aliases_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncompat import ( diff --git a/internal/tools/actioncompat/apply.go b/internal/tools/actioncompat/apply.go index 3ec804368..15c8cb21d 100644 --- a/internal/tools/actioncompat/apply.go +++ b/internal/tools/actioncompat/apply.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncompat import ( diff --git a/internal/tools/actioncompat/apply_test.go b/internal/tools/actioncompat/apply_test.go index 20d2b145b..862652cfc 100644 --- a/internal/tools/actioncompat/apply_test.go +++ b/internal/tools/actioncompat/apply_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncompat import ( diff --git a/internal/tools/actioncompat/doc.go b/internal/tools/actioncompat/doc.go index b9f1106b8..a8b19c2dc 100644 --- a/internal/tools/actioncompat/doc.go +++ b/internal/tools/actioncompat/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package actioncompat applies compatibility aliases and parameter normalization // policies to canonical catalog action specs. package actioncompat diff --git a/internal/tools/actioncompat/parameter_aliases.go b/internal/tools/actioncompat/parameter_aliases.go index 5d68c8544..9307ad4fb 100644 --- a/internal/tools/actioncompat/parameter_aliases.go +++ b/internal/tools/actioncompat/parameter_aliases.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncompat import ( diff --git a/internal/tools/actioncompat/parameter_aliases_test.go b/internal/tools/actioncompat/parameter_aliases_test.go index 224a52a08..bf7a10a96 100644 --- a/internal/tools/actioncompat/parameter_aliases_test.go +++ b/internal/tools/actioncompat/parameter_aliases_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actioncompat import ( diff --git a/internal/tools/actiongrants/actiongrants.go b/internal/tools/actiongrants/actiongrants.go index ddf914cf7..c1b1d9453 100644 --- a/internal/tools/actiongrants/actiongrants.go +++ b/internal/tools/actiongrants/actiongrants.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actiongrants import "github.com/jmrplens/gitlab-mcp-server/v3/internal/finegrained" diff --git a/internal/tools/actiongrants/actiongrants_test.go b/internal/tools/actiongrants/actiongrants_test.go index fbebfaf25..5daf4d6b7 100644 --- a/internal/tools/actiongrants/actiongrants_test.go +++ b/internal/tools/actiongrants/actiongrants_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package actiongrants import ( diff --git a/internal/tools/actiongrants/doc.go b/internal/tools/actiongrants/doc.go index 953ba61c0..530943b1d 100644 --- a/internal/tools/actiongrants/doc.go +++ b/internal/tools/actiongrants/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package actiongrants holds what a fine-grained personal access token needs // for each catalog action, generated by cmd/gen_action_grants from the // requests the handlers send and the authorization the live GitLab record diff --git a/internal/tools/adminspecs/action_specs.go b/internal/tools/adminspecs/action_specs.go index dde28257d..25bcd1788 100644 --- a/internal/tools/adminspecs/action_specs.go +++ b/internal/tools/adminspecs/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package adminspecs import ( diff --git a/internal/tools/adminspecs/action_specs_test.go b/internal/tools/adminspecs/action_specs_test.go index 41b9ec927..b40ea8429 100644 --- a/internal/tools/adminspecs/action_specs_test.go +++ b/internal/tools/adminspecs/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package adminspecs import ( diff --git a/internal/tools/adminspecs/doc.go b/internal/tools/adminspecs/doc.go index f754af217..f6bd1cdc9 100644 --- a/internal/tools/adminspecs/doc.go +++ b/internal/tools/adminspecs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package adminspecs defines catalog-backed action specs for GitLab instance // administration operations. package adminspecs diff --git a/internal/tools/alertmanagement/alert_management.go b/internal/tools/alertmanagement/alert_management.go index 3c91f671f..9b0e66c1a 100644 --- a/internal/tools/alertmanagement/alert_management.go +++ b/internal/tools/alertmanagement/alert_management.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package alertmanagement import ( diff --git a/internal/tools/alertmanagement/alert_management_test.go b/internal/tools/alertmanagement/alert_management_test.go index 0ca4a5b9e..12d9c55f3 100644 --- a/internal/tools/alertmanagement/alert_management_test.go +++ b/internal/tools/alertmanagement/alert_management_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // alert_management_test.go contains unit tests for the alert management MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/alertmanagement/doc.go b/internal/tools/alertmanagement/doc.go index 728f22295..a57a45444 100644 --- a/internal/tools/alertmanagement/doc.go +++ b/internal/tools/alertmanagement/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package alertmanagement implements MCP tools for GitLab alert management // operations. // diff --git a/internal/tools/alertmanagement/markdown.go b/internal/tools/alertmanagement/markdown.go index 9fd41c413..a80c28eab 100644 --- a/internal/tools/alertmanagement/markdown.go +++ b/internal/tools/alertmanagement/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package alertmanagement import ( diff --git a/internal/tools/alertmanagement/markdown_test.go b/internal/tools/alertmanagement/markdown_test.go index ace1b3518..83a59083e 100644 --- a/internal/tools/alertmanagement/markdown_test.go +++ b/internal/tools/alertmanagement/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each alert metric image // formatter writes: the list table, which now carries the file path and labels // the link with the caption whoever uploaded the image typed, and the card one diff --git a/internal/tools/appearance/appearance.go b/internal/tools/appearance/appearance.go index a78eb997e..2833cd219 100644 --- a/internal/tools/appearance/appearance.go +++ b/internal/tools/appearance/appearance.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package appearance import ( diff --git a/internal/tools/appearance/appearance_test.go b/internal/tools/appearance/appearance_test.go index 986008001..8e1289890 100644 --- a/internal/tools/appearance/appearance_test.go +++ b/internal/tools/appearance/appearance_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // appearance_test.go contains unit tests for the GitLab instance appearance MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/appearance/doc.go b/internal/tools/appearance/doc.go index 7f19bb54d..ca01b85a0 100644 --- a/internal/tools/appearance/doc.go +++ b/internal/tools/appearance/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package appearance implements MCP tools for GitLab instance appearance // settings. // diff --git a/internal/tools/appearance/markdown.go b/internal/tools/appearance/markdown.go index 3de8bc5ba..b9228de67 100644 --- a/internal/tools/appearance/markdown.go +++ b/internal/tools/appearance/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package appearance import ( diff --git a/internal/tools/applications/applications.go b/internal/tools/applications/applications.go index 10fa19eea..71536c56d 100644 --- a/internal/tools/applications/applications.go +++ b/internal/tools/applications/applications.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package applications import ( diff --git a/internal/tools/applications/applications_test.go b/internal/tools/applications/applications_test.go index 822ac81f6..dc2902de9 100644 --- a/internal/tools/applications/applications_test.go +++ b/internal/tools/applications/applications_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // applications_test.go contains unit tests for the OAuth application MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/applications/doc.go b/internal/tools/applications/doc.go index 1baf14a69..b066bb138 100644 --- a/internal/tools/applications/doc.go +++ b/internal/tools/applications/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package applications implements MCP tools for GitLab OAuth application // operations. // diff --git a/internal/tools/applications/markdown.go b/internal/tools/applications/markdown.go index 71737b5d8..22ae4e8f6 100644 --- a/internal/tools/applications/markdown.go +++ b/internal/tools/applications/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package applications import ( diff --git a/internal/tools/appstatistics/app_statistics.go b/internal/tools/appstatistics/app_statistics.go index 579590aae..53fada37e 100644 --- a/internal/tools/appstatistics/app_statistics.go +++ b/internal/tools/appstatistics/app_statistics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package appstatistics import ( diff --git a/internal/tools/appstatistics/app_statistics_test.go b/internal/tools/appstatistics/app_statistics_test.go index 7a430d347..12aaec9da 100644 --- a/internal/tools/appstatistics/app_statistics_test.go +++ b/internal/tools/appstatistics/app_statistics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // app_statistics_test.go contains unit tests for the application statistics MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/appstatistics/doc.go b/internal/tools/appstatistics/doc.go index 10ac930a8..70290846a 100644 --- a/internal/tools/appstatistics/doc.go +++ b/internal/tools/appstatistics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package appstatistics implements MCP tools for GitLab instance application // statistics. // diff --git a/internal/tools/appstatistics/markdown.go b/internal/tools/appstatistics/markdown.go index 2d116d110..7496fd297 100644 --- a/internal/tools/appstatistics/markdown.go +++ b/internal/tools/appstatistics/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package appstatistics import ( diff --git a/internal/tools/attestations/action_specs.go b/internal/tools/attestations/action_specs.go index 96cc61daf..b49c07908 100644 --- a/internal/tools/attestations/action_specs.go +++ b/internal/tools/attestations/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package attestations import ( diff --git a/internal/tools/attestations/action_specs_test.go b/internal/tools/attestations/action_specs_test.go index d2a5478df..95b097265 100644 --- a/internal/tools/attestations/action_specs_test.go +++ b/internal/tools/attestations/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package attestations import ( diff --git a/internal/tools/attestations/attestations.go b/internal/tools/attestations/attestations.go index 27fe96ab6..4d523604d 100644 --- a/internal/tools/attestations/attestations.go +++ b/internal/tools/attestations/attestations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package attestations import ( diff --git a/internal/tools/attestations/attestations_test.go b/internal/tools/attestations/attestations_test.go index 6971b7e15..739e47889 100644 --- a/internal/tools/attestations/attestations_test.go +++ b/internal/tools/attestations/attestations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // attestations_test.go contains unit tests for GitLab build attestation // operations. Tests use httptest to mock the GitLab Attestations API. package attestations diff --git a/internal/tools/attestations/doc.go b/internal/tools/attestations/doc.go index 0e0c0cc9f..e3175d17b 100644 --- a/internal/tools/attestations/doc.go +++ b/internal/tools/attestations/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package attestations implements MCP tools for GitLab package attestation // operations. // diff --git a/internal/tools/attestations/markdown.go b/internal/tools/attestations/markdown.go index ad1ba6de5..9ac92e60f 100644 --- a/internal/tools/attestations/markdown.go +++ b/internal/tools/attestations/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package attestations import ( diff --git a/internal/tools/auditevents/action_specs.go b/internal/tools/auditevents/action_specs.go index 9b0b76bc4..a14a943ce 100644 --- a/internal/tools/auditevents/action_specs.go +++ b/internal/tools/auditevents/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package auditevents import ( diff --git a/internal/tools/auditevents/action_specs_test.go b/internal/tools/auditevents/action_specs_test.go index 58d203136..9325788e5 100644 --- a/internal/tools/auditevents/action_specs_test.go +++ b/internal/tools/auditevents/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the audit event tool closures // in ActionSpecs routes with a mock GitLab API. package auditevents diff --git a/internal/tools/auditevents/audit_events.go b/internal/tools/auditevents/audit_events.go index 91a684e21..f46553b06 100644 --- a/internal/tools/auditevents/audit_events.go +++ b/internal/tools/auditevents/audit_events.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package auditevents import ( diff --git a/internal/tools/auditevents/audit_events_test.go b/internal/tools/auditevents/audit_events_test.go index 64e91b5b7..6cde44896 100644 --- a/internal/tools/auditevents/audit_events_test.go +++ b/internal/tools/auditevents/audit_events_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // audit_events_test.go contains unit tests for GitLab audit event listing // operations. Tests use httptest to mock the GitLab Audit Events API. package auditevents diff --git a/internal/tools/auditevents/doc.go b/internal/tools/auditevents/doc.go index c2fc5c655..d40473f8c 100644 --- a/internal/tools/auditevents/doc.go +++ b/internal/tools/auditevents/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package auditevents implements MCP tools for GitLab audit event operations. // // The package wraps the GitLab Audit events API: diff --git a/internal/tools/auditevents/markdown.go b/internal/tools/auditevents/markdown.go index 6a0fde1cc..c93ae9950 100644 --- a/internal/tools/auditevents/markdown.go +++ b/internal/tools/auditevents/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package auditevents import ( diff --git a/internal/tools/avatar/action_specs.go b/internal/tools/avatar/action_specs.go index 80f4a8ee8..36a07a407 100644 --- a/internal/tools/avatar/action_specs.go +++ b/internal/tools/avatar/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package avatar import ( diff --git a/internal/tools/avatar/avatar.go b/internal/tools/avatar/avatar.go index e84175784..f18c26d18 100644 --- a/internal/tools/avatar/avatar.go +++ b/internal/tools/avatar/avatar.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package avatar import ( diff --git a/internal/tools/avatar/avatar_test.go b/internal/tools/avatar/avatar_test.go index 2ae5b0132..18f00f7a4 100644 --- a/internal/tools/avatar/avatar_test.go +++ b/internal/tools/avatar/avatar_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // avatar_test.go contains unit tests for the avatar MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/avatar/doc.go b/internal/tools/avatar/doc.go index d904099ac..bb918769d 100644 --- a/internal/tools/avatar/doc.go +++ b/internal/tools/avatar/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package avatar implements MCP tools for GitLab avatar lookup operations. // // The package wraps the GitLab Avatar API: diff --git a/internal/tools/avatar/markdown.go b/internal/tools/avatar/markdown.go index 07e9ea43a..5f2872cf1 100644 --- a/internal/tools/avatar/markdown.go +++ b/internal/tools/avatar/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package avatar import ( diff --git a/internal/tools/awardemoji/action_specs.go b/internal/tools/awardemoji/action_specs.go index 550330244..bc91d95dc 100644 --- a/internal/tools/awardemoji/action_specs.go +++ b/internal/tools/awardemoji/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package awardemoji import ( diff --git a/internal/tools/awardemoji/action_specs_test.go b/internal/tools/awardemoji/action_specs_test.go index 84ddf6795..319a89ab2 100644 --- a/internal/tools/awardemoji/action_specs_test.go +++ b/internal/tools/awardemoji/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds this package against the catalog: every canonical // action ID it publishes to a model, in an ActionSpec's RelatedActions and in // the hints its Markdown writes, must name an action the catalog really builds. diff --git a/internal/tools/awardemoji/award_emoji.go b/internal/tools/awardemoji/award_emoji.go index 4be0bef7c..1ff4fd284 100644 --- a/internal/tools/awardemoji/award_emoji.go +++ b/internal/tools/awardemoji/award_emoji.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package awardemoji import ( diff --git a/internal/tools/awardemoji/award_emoji_test.go b/internal/tools/awardemoji/award_emoji_test.go index 6d9f07454..f062daaf8 100644 --- a/internal/tools/awardemoji/award_emoji_test.go +++ b/internal/tools/awardemoji/award_emoji_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // award_emoji_test.go contains unit tests for the award emoji MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/awardemoji/doc.go b/internal/tools/awardemoji/doc.go index 6a27d3db1..41ecc9f97 100644 --- a/internal/tools/awardemoji/doc.go +++ b/internal/tools/awardemoji/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package awardemoji implements MCP tools for GitLab award emoji operations. // // The package wraps the GitLab Award emoji API: diff --git a/internal/tools/awardemoji/markdown.go b/internal/tools/awardemoji/markdown.go index c264f2156..d079d8c61 100644 --- a/internal/tools/awardemoji/markdown.go +++ b/internal/tools/awardemoji/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package awardemoji import ( diff --git a/internal/tools/awardemoji/sent_shapes.go b/internal/tools/awardemoji/sent_shapes.go index 03e89ed8a..b8befa50f 100644 --- a/internal/tools/awardemoji/sent_shapes.go +++ b/internal/tools/awardemoji/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package awardemoji import ( diff --git a/internal/tools/awardemoji/sent_shapes_test.go b/internal/tools/awardemoji/sent_shapes_test.go index 7fee21b79..7d43dba40 100644 --- a/internal/tools/awardemoji/sent_shapes_test.go +++ b/internal/tools/awardemoji/sent_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package awardemoji import ( diff --git a/internal/tools/badges/action_specs.go b/internal/tools/badges/action_specs.go index ae7be9009..04c7b70a6 100644 --- a/internal/tools/badges/action_specs.go +++ b/internal/tools/badges/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package badges import ( diff --git a/internal/tools/badges/action_specs_test.go b/internal/tools/badges/action_specs_test.go index a9e37ecda..87f4bfb2d 100644 --- a/internal/tools/badges/action_specs_test.go +++ b/internal/tools/badges/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the badge action specs: the // discovery guidance each spec publishes, and the not-found wrapper the two get // routes are built with. diff --git a/internal/tools/badges/badges.go b/internal/tools/badges/badges.go index a3f0f2a06..79aca07b0 100644 --- a/internal/tools/badges/badges.go +++ b/internal/tools/badges/badges.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package badges import ( diff --git a/internal/tools/badges/badges_test.go b/internal/tools/badges/badges_test.go index 785a1dcea..51960e810 100644 --- a/internal/tools/badges/badges_test.go +++ b/internal/tools/badges/badges_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // badges_test.go contains unit tests for the badge MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/badges/doc.go b/internal/tools/badges/doc.go index 63943e859..cc49f8bea 100644 --- a/internal/tools/badges/doc.go +++ b/internal/tools/badges/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package badges implements MCP tools for GitLab project badge operations. // // The package wraps the GitLab Project badges API: diff --git a/internal/tools/badges/markdown.go b/internal/tools/badges/markdown.go index fed645dd8..049690892 100644 --- a/internal/tools/badges/markdown.go +++ b/internal/tools/badges/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package badges import ( diff --git a/internal/tools/badges/markdown_test.go b/internal/tools/badges/markdown_test.go index 5c553a872..9bb5d66e3 100644 --- a/internal/tools/badges/markdown_test.go +++ b/internal/tools/badges/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each badge formatter // writes: the project and group tables, the badge card, and the preview card a // preview gets instead of the stored badge's, since a preview has no ID, no diff --git a/internal/tools/boards/action_specs.go b/internal/tools/boards/action_specs.go index 60c247a36..59d88ea48 100644 --- a/internal/tools/boards/action_specs.go +++ b/internal/tools/boards/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package boards import ( diff --git a/internal/tools/boards/action_specs_test.go b/internal/tools/boards/action_specs_test.go index f443f0112..df861b089 100644 --- a/internal/tools/boards/action_specs_test.go +++ b/internal/tools/boards/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go: mutation error paths and destructive confirmation. package boards diff --git a/internal/tools/boards/boards.go b/internal/tools/boards/boards.go index 43510b1a0..2cecbdac9 100644 --- a/internal/tools/boards/boards.go +++ b/internal/tools/boards/boards.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package boards import ( diff --git a/internal/tools/boards/boards_test.go b/internal/tools/boards/boards_test.go index 1a9dfca05..82b5925a0 100644 --- a/internal/tools/boards/boards_test.go +++ b/internal/tools/boards/boards_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // boards_test.go contains unit tests for the issue board MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/boards/doc.go b/internal/tools/boards/doc.go index dbeedff09..e7012d473 100644 --- a/internal/tools/boards/doc.go +++ b/internal/tools/boards/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package boards implements MCP tools for GitLab project issue board // operations. // diff --git a/internal/tools/boards/markdown.go b/internal/tools/boards/markdown.go index 7f379e5b8..5e0ceb196 100644 --- a/internal/tools/boards/markdown.go +++ b/internal/tools/boards/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package boards import ( diff --git a/internal/tools/boards/shapes.go b/internal/tools/boards/shapes.go index 7819c07d5..aba7ce663 100644 --- a/internal/tools/boards/shapes.go +++ b/internal/tools/boards/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package boards import ( diff --git a/internal/tools/branches/action_specs.go b/internal/tools/branches/action_specs.go index a43c8022a..edbcdaf57 100644 --- a/internal/tools/branches/action_specs.go +++ b/internal/tools/branches/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package branches import ( diff --git a/internal/tools/branches/branches.go b/internal/tools/branches/branches.go index 7379d51bd..4d3631205 100644 --- a/internal/tools/branches/branches.go +++ b/internal/tools/branches/branches.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package branches import ( diff --git a/internal/tools/branches/branches_test.go b/internal/tools/branches/branches_test.go index 71de2528b..0c2426612 100644 --- a/internal/tools/branches/branches_test.go +++ b/internal/tools/branches/branches_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // branches_test.go contains unit tests for GitLab branch operations // (create, list, get, delete, protect, unprotect, update, and list // protected branches). Tests use httptest to mock the GitLab API and diff --git a/internal/tools/branches/doc.go b/internal/tools/branches/doc.go index 8b65a9c18..026532ed3 100644 --- a/internal/tools/branches/doc.go +++ b/internal/tools/branches/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package branches implements MCP tools for GitLab branch and protected branch // operations. // diff --git a/internal/tools/branches/markdown.go b/internal/tools/branches/markdown.go index 7650be794..fc2217430 100644 --- a/internal/tools/branches/markdown.go +++ b/internal/tools/branches/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package branches import ( diff --git a/internal/tools/branches/shapes.go b/internal/tools/branches/shapes.go index 7fb984bf2..6e024fa87 100644 --- a/internal/tools/branches/shapes.go +++ b/internal/tools/branches/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package branches import ( diff --git a/internal/tools/branchrules/action_specs.go b/internal/tools/branchrules/action_specs.go index 90ada13f4..0c835b034 100644 --- a/internal/tools/branchrules/action_specs.go +++ b/internal/tools/branchrules/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package branchrules import ( diff --git a/internal/tools/branchrules/branch_rules.go b/internal/tools/branchrules/branch_rules.go index fb2a61d1d..04742c83a 100644 --- a/internal/tools/branchrules/branch_rules.go +++ b/internal/tools/branchrules/branch_rules.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package branchrules import ( diff --git a/internal/tools/branchrules/branch_rules_test.go b/internal/tools/branchrules/branch_rules_test.go index 7ccd0d2d2..ef3817319 100644 --- a/internal/tools/branchrules/branch_rules_test.go +++ b/internal/tools/branchrules/branch_rules_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // branch_rules_test.go contains unit tests for GitLab branch rule operations. // Tests use httptest to mock the GitLab Branch Rules API. package branchrules diff --git a/internal/tools/branchrules/doc.go b/internal/tools/branchrules/doc.go index 74c443f12..0b09d2bf3 100644 --- a/internal/tools/branchrules/doc.go +++ b/internal/tools/branchrules/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package branchrules implements MCP tools for GitLab branch rule discovery. // // The package wraps GitLab GraphQL branch rule fields: diff --git a/internal/tools/branchrules/markdown.go b/internal/tools/branchrules/markdown.go index d4850ea3b..4aad77758 100644 --- a/internal/tools/branchrules/markdown.go +++ b/internal/tools/branchrules/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package branchrules import ( diff --git a/internal/tools/broadcastmessages/action_specs.go b/internal/tools/broadcastmessages/action_specs.go index a88173902..dfc134ce1 100644 --- a/internal/tools/broadcastmessages/action_specs.go +++ b/internal/tools/broadcastmessages/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs.go holds what this package contributes to the canonical action // catalog. The specs themselves are declared in internal/tools/adminspecs, // which is the one place the gitlab_admin group is assembled; what stays here diff --git a/internal/tools/broadcastmessages/broadcast_messages.go b/internal/tools/broadcastmessages/broadcast_messages.go index a69092c84..77b9cdb7a 100644 --- a/internal/tools/broadcastmessages/broadcast_messages.go +++ b/internal/tools/broadcastmessages/broadcast_messages.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package broadcastmessages import ( diff --git a/internal/tools/broadcastmessages/broadcast_messages_test.go b/internal/tools/broadcastmessages/broadcast_messages_test.go index 280261776..420e2860a 100644 --- a/internal/tools/broadcastmessages/broadcast_messages_test.go +++ b/internal/tools/broadcastmessages/broadcast_messages_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // broadcast_messages_test.go contains unit tests for the broadcast message MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/broadcastmessages/doc.go b/internal/tools/broadcastmessages/doc.go index 716461863..514a66665 100644 --- a/internal/tools/broadcastmessages/doc.go +++ b/internal/tools/broadcastmessages/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package broadcastmessages implements MCP tools for GitLab instance broadcast // messages. // diff --git a/internal/tools/broadcastmessages/markdown.go b/internal/tools/broadcastmessages/markdown.go index 7fcc8a6c6..e8e9b6bda 100644 --- a/internal/tools/broadcastmessages/markdown.go +++ b/internal/tools/broadcastmessages/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package broadcastmessages import ( diff --git a/internal/tools/bulkimports/bulk_imports.go b/internal/tools/bulkimports/bulk_imports.go index 8e90e79c8..6bc19ae60 100644 --- a/internal/tools/bulkimports/bulk_imports.go +++ b/internal/tools/bulkimports/bulk_imports.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package bulkimports import ( diff --git a/internal/tools/bulkimports/bulk_imports_test.go b/internal/tools/bulkimports/bulk_imports_test.go index 725a94692..608a393c2 100644 --- a/internal/tools/bulkimports/bulk_imports_test.go +++ b/internal/tools/bulkimports/bulk_imports_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // bulk_imports_test.go contains unit tests for the bulk import migration MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/bulkimports/doc.go b/internal/tools/bulkimports/doc.go index 790ff0914..3a6f99968 100644 --- a/internal/tools/bulkimports/doc.go +++ b/internal/tools/bulkimports/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package bulkimports implements MCP tools for GitLab bulk import operations. // // The package wraps the GitLab Bulk imports API: diff --git a/internal/tools/bulkimports/markdown.go b/internal/tools/bulkimports/markdown.go index 9e8b02e4e..5f61c4d2b 100644 --- a/internal/tools/bulkimports/markdown.go +++ b/internal/tools/bulkimports/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package bulkimports import ( diff --git a/internal/tools/catalog_filter.go b/internal/tools/catalog_filter.go index 7beca401e..ce47d0b65 100644 --- a/internal/tools/catalog_filter.go +++ b/internal/tools/catalog_filter.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // catalog_filter.go narrows an action catalog to what one deployment serves, // and records what the narrowing removed and on whose decision. // diff --git a/internal/tools/catalog_filter_test.go b/internal/tools/catalog_filter_test.go index 8a4ef7cdd..f5f472a20 100644 --- a/internal/tools/catalog_filter_test.go +++ b/internal/tools/catalog_filter_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // catalog_filter_test.go covers the bookkeeping behind a narrowed catalog: what // a filter removed and on whose decision, which is what lets the dynamic // surface tell a model "this credential cannot" apart from "this server diff --git a/internal/tools/catalog_group_metadata.go b/internal/tools/catalog_group_metadata.go index a7b69c78e..c8b523ec4 100644 --- a/internal/tools/catalog_group_metadata.go +++ b/internal/tools/catalog_group_metadata.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/catalog_group_metadata_test.go b/internal/tools/catalog_group_metadata_test.go index d3b4af6f3..f06152d27 100644 --- a/internal/tools/catalog_group_metadata_test.go +++ b/internal/tools/catalog_group_metadata_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/catalog_identity.go b/internal/tools/catalog_identity.go index dfa5c31d4..aa039d21e 100644 --- a/internal/tools/catalog_identity.go +++ b/internal/tools/catalog_identity.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/catalog_identity_test.go b/internal/tools/catalog_identity_test.go index 3847fa810..ad7fec182 100644 --- a/internal/tools/catalog_identity_test.go +++ b/internal/tools/catalog_identity_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/cicatalog/action_specs.go b/internal/tools/cicatalog/action_specs.go index 444afa1b5..ffb15cc2c 100644 --- a/internal/tools/cicatalog/action_specs.go +++ b/internal/tools/cicatalog/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cicatalog import ( diff --git a/internal/tools/cicatalog/action_specs_test.go b/internal/tools/cicatalog/action_specs_test.go index 5e8c24e25..19de5a5de 100644 --- a/internal/tools/cicatalog/action_specs_test.go +++ b/internal/tools/cicatalog/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the CI/CD Catalog action IDs this package // publishes against the catalog the server really builds. It is an external // test package because internal/tools imports this one, so only a package diff --git a/internal/tools/cicatalog/ci_catalog.go b/internal/tools/cicatalog/ci_catalog.go index 9e965ef91..e13afaa0e 100644 --- a/internal/tools/cicatalog/ci_catalog.go +++ b/internal/tools/cicatalog/ci_catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cicatalog import ( diff --git a/internal/tools/cicatalog/ci_catalog_test.go b/internal/tools/cicatalog/ci_catalog_test.go index 07668642f..14a03f385 100644 --- a/internal/tools/cicatalog/ci_catalog_test.go +++ b/internal/tools/cicatalog/ci_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // ci_catalog_test.go contains unit tests for GitLab CI catalog component // operations. Tests use httptest to mock the GitLab CI Catalog API. package cicatalog diff --git a/internal/tools/cicatalog/doc.go b/internal/tools/cicatalog/doc.go index 85aff78a8..e6abaaff2 100644 --- a/internal/tools/cicatalog/doc.go +++ b/internal/tools/cicatalog/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package cicatalog implements MCP tools for GitLab CI/CD catalog resources. // // The package wraps the GitLab CI/CD catalog API: diff --git a/internal/tools/cicatalog/export_test.go b/internal/tools/cicatalog/export_test.go index c1bba6b5c..385772da3 100644 --- a/internal/tools/cicatalog/export_test.go +++ b/internal/tools/cicatalog/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cicatalog // PublishedActionIDs is every canonical catalog action ID this package names diff --git a/internal/tools/cicatalog/markdown.go b/internal/tools/cicatalog/markdown.go index ec138fb88..48bd66ee3 100644 --- a/internal/tools/cicatalog/markdown.go +++ b/internal/tools/cicatalog/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cicatalog import ( diff --git a/internal/tools/cilint/action_specs.go b/internal/tools/cilint/action_specs.go index 96b27286e..4525cd4a4 100644 --- a/internal/tools/cilint/action_specs.go +++ b/internal/tools/cilint/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cilint import ( diff --git a/internal/tools/cilint/ci_lint.go b/internal/tools/cilint/ci_lint.go index f76d93954..9579e9495 100644 --- a/internal/tools/cilint/ci_lint.go +++ b/internal/tools/cilint/ci_lint.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cilint import ( diff --git a/internal/tools/cilint/ci_lint_test.go b/internal/tools/cilint/ci_lint_test.go index 5121e9021..6608af475 100644 --- a/internal/tools/cilint/ci_lint_test.go +++ b/internal/tools/cilint/ci_lint_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // ci_lint_test.go contains unit tests for the CI lint MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/cilint/doc.go b/internal/tools/cilint/doc.go index 682346ff8..db8161112 100644 --- a/internal/tools/cilint/doc.go +++ b/internal/tools/cilint/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package cilint implements MCP tools for GitLab CI configuration linting. // // The package wraps the GitLab CI lint API: diff --git a/internal/tools/cilint/markdown.go b/internal/tools/cilint/markdown.go index 3729410ab..b84949bad 100644 --- a/internal/tools/cilint/markdown.go +++ b/internal/tools/cilint/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package cilint import ( diff --git a/internal/tools/civariables/action_specs.go b/internal/tools/civariables/action_specs.go index 1bb4e89b3..c580ffa77 100644 --- a/internal/tools/civariables/action_specs.go +++ b/internal/tools/civariables/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package civariables import ( diff --git a/internal/tools/civariables/action_specs_test.go b/internal/tools/civariables/action_specs_test.go index eed77ec0a..5202b85e7 100644 --- a/internal/tools/civariables/action_specs_test.go +++ b/internal/tools/civariables/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for CI variable delete behavior. package civariables diff --git a/internal/tools/civariables/ci_variables.go b/internal/tools/civariables/ci_variables.go index 20f29e00d..8fb5bb02e 100644 --- a/internal/tools/civariables/ci_variables.go +++ b/internal/tools/civariables/ci_variables.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package civariables import ( diff --git a/internal/tools/civariables/ci_variables_test.go b/internal/tools/civariables/ci_variables_test.go index 3d319f977..5a872378e 100644 --- a/internal/tools/civariables/ci_variables_test.go +++ b/internal/tools/civariables/ci_variables_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // ci_variables_test.go contains unit tests for the CI/CD variable MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/civariables/doc.go b/internal/tools/civariables/doc.go index a30f278ff..163ab767a 100644 --- a/internal/tools/civariables/doc.go +++ b/internal/tools/civariables/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package civariables implements MCP tools for GitLab project CI/CD variable // operations. // diff --git a/internal/tools/civariables/markdown.go b/internal/tools/civariables/markdown.go index 9e953b0c3..95ea5d000 100644 --- a/internal/tools/civariables/markdown.go +++ b/internal/tools/civariables/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package civariables import ( diff --git a/internal/tools/ciyamltemplates/action_specs.go b/internal/tools/ciyamltemplates/action_specs.go index a3578fc8a..ef7861528 100644 --- a/internal/tools/ciyamltemplates/action_specs.go +++ b/internal/tools/ciyamltemplates/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package ciyamltemplates import ( diff --git a/internal/tools/ciyamltemplates/ci_yaml_templates.go b/internal/tools/ciyamltemplates/ci_yaml_templates.go index ebf0497e3..396c9bd97 100644 --- a/internal/tools/ciyamltemplates/ci_yaml_templates.go +++ b/internal/tools/ciyamltemplates/ci_yaml_templates.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package ciyamltemplates import ( diff --git a/internal/tools/ciyamltemplates/ci_yaml_templates_test.go b/internal/tools/ciyamltemplates/ci_yaml_templates_test.go index 40fd0b260..3a888104e 100644 --- a/internal/tools/ciyamltemplates/ci_yaml_templates_test.go +++ b/internal/tools/ciyamltemplates/ci_yaml_templates_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // ci_yaml_templates_test.go contains unit tests for the CI YAML template MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/ciyamltemplates/doc.go b/internal/tools/ciyamltemplates/doc.go index cc4ff9982..d73d7591b 100644 --- a/internal/tools/ciyamltemplates/doc.go +++ b/internal/tools/ciyamltemplates/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package ciyamltemplates implements MCP tools for GitLab CI/CD YAML template // operations. // diff --git a/internal/tools/ciyamltemplates/markdown.go b/internal/tools/ciyamltemplates/markdown.go index 4cd6a405d..f02654100 100644 --- a/internal/tools/ciyamltemplates/markdown.go +++ b/internal/tools/ciyamltemplates/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package ciyamltemplates import ( diff --git a/internal/tools/clusteragents/action_ids.go b/internal/tools/clusteragents/action_ids.go index dfa1cd2e4..d0c2d1793 100644 --- a/internal/tools/clusteragents/action_ids.go +++ b/internal/tools/clusteragents/action_ids.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package clusteragents // Canonical action IDs this package publishes. They used to name one surface's diff --git a/internal/tools/clusteragents/action_ids_test.go b/internal/tools/clusteragents/action_ids_test.go index b2d6d01fd..970b2196c 100644 --- a/internal/tools/clusteragents/action_ids_test.go +++ b/internal/tools/clusteragents/action_ids_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package clusteragents_test import ( diff --git a/internal/tools/clusteragents/cluster_agents.go b/internal/tools/clusteragents/cluster_agents.go index 501af1b39..8353147b0 100644 --- a/internal/tools/clusteragents/cluster_agents.go +++ b/internal/tools/clusteragents/cluster_agents.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package clusteragents import ( diff --git a/internal/tools/clusteragents/cluster_agents_test.go b/internal/tools/clusteragents/cluster_agents_test.go index d969e5f8e..a755b82a3 100644 --- a/internal/tools/clusteragents/cluster_agents_test.go +++ b/internal/tools/clusteragents/cluster_agents_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // cluster_agents_test.go contains unit tests for the cluster agent MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/clusteragents/doc.go b/internal/tools/clusteragents/doc.go index 10ebe0fa4..41d99e45d 100644 --- a/internal/tools/clusteragents/doc.go +++ b/internal/tools/clusteragents/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package clusteragents implements MCP tools for GitLab Kubernetes cluster // agent operations. // diff --git a/internal/tools/clusteragents/export_test.go b/internal/tools/clusteragents/export_test.go index 3042d1499..66af37f0f 100644 --- a/internal/tools/clusteragents/export_test.go +++ b/internal/tools/clusteragents/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package clusteragents // PublishedActionIDs exposes the canonical action IDs this package hands a diff --git a/internal/tools/clusteragents/markdown.go b/internal/tools/clusteragents/markdown.go index cc295244e..5f9992827 100644 --- a/internal/tools/clusteragents/markdown.go +++ b/internal/tools/clusteragents/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package clusteragents import ( diff --git a/internal/tools/clusteragents/markdown_test.go b/internal/tools/clusteragents/markdown_test.go index 5c0c9531c..d79184959 100644 --- a/internal/tools/clusteragents/markdown_test.go +++ b/internal/tools/clusteragents/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document every cluster agent // formatter writes: the two list tables, the agent card with its configuration // project nested under it, and the token card whose secret is shown once. diff --git a/internal/tools/commitdiscussions/action_specs.go b/internal/tools/commitdiscussions/action_specs.go index 72a49cf91..31c3a2919 100644 --- a/internal/tools/commitdiscussions/action_specs.go +++ b/internal/tools/commitdiscussions/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commitdiscussions import ( diff --git a/internal/tools/commitdiscussions/action_specs_test.go b/internal/tools/commitdiscussions/action_specs_test.go index c9b1e2195..490c9571a 100644 --- a/internal/tools/commitdiscussions/action_specs_test.go +++ b/internal/tools/commitdiscussions/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for commit discussion delete behavior. package commitdiscussions diff --git a/internal/tools/commitdiscussions/commit_discussions.go b/internal/tools/commitdiscussions/commit_discussions.go index a5d8534ee..e2cf217af 100644 --- a/internal/tools/commitdiscussions/commit_discussions.go +++ b/internal/tools/commitdiscussions/commit_discussions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commitdiscussions import ( diff --git a/internal/tools/commitdiscussions/commit_discussions_test.go b/internal/tools/commitdiscussions/commit_discussions_test.go index 97ba58709..731f5582a 100644 --- a/internal/tools/commitdiscussions/commit_discussions_test.go +++ b/internal/tools/commitdiscussions/commit_discussions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // commit_discussions_test.go contains unit tests for the commit discussion MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/commitdiscussions/doc.go b/internal/tools/commitdiscussions/doc.go index 8688ea0c6..6eb802739 100644 --- a/internal/tools/commitdiscussions/doc.go +++ b/internal/tools/commitdiscussions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package commitdiscussions implements MCP tools for GitLab commit discussion // operations. // diff --git a/internal/tools/commitdiscussions/markdown.go b/internal/tools/commitdiscussions/markdown.go index 484609e27..12a051506 100644 --- a/internal/tools/commitdiscussions/markdown.go +++ b/internal/tools/commitdiscussions/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commitdiscussions import ( diff --git a/internal/tools/commitdiscussions/shapes.go b/internal/tools/commitdiscussions/shapes.go index 5e4165875..0462bb9d1 100644 --- a/internal/tools/commitdiscussions/shapes.go +++ b/internal/tools/commitdiscussions/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commitdiscussions import ( diff --git a/internal/tools/commitdiscussions/shapes_test.go b/internal/tools/commitdiscussions/shapes_test.go index bd69da883..125856b18 100644 --- a/internal/tools/commitdiscussions/shapes_test.go +++ b/internal/tools/commitdiscussions/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go contains unit tests for the commit discussion output // converters and position-input builders, exercising the full 1:1 field // mapping (author, resolved_by, position, line range) plus nil-guard paths. diff --git a/internal/tools/commits/action_ids.go b/internal/tools/commits/action_ids.go index c2ba53259..7c8ddac3a 100644 --- a/internal/tools/commits/action_ids.go +++ b/internal/tools/commits/action_ids.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commits // Canonical action IDs this package publishes, the one form every surface diff --git a/internal/tools/commits/action_ids_test.go b/internal/tools/commits/action_ids_test.go index 63f987593..9fe69aa55 100644 --- a/internal/tools/commits/action_ids_test.go +++ b/internal/tools/commits/action_ids_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commits_test import ( diff --git a/internal/tools/commits/action_specs.go b/internal/tools/commits/action_specs.go index ce4985ebf..33d637cdd 100644 --- a/internal/tools/commits/action_specs.go +++ b/internal/tools/commits/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commits import ( diff --git a/internal/tools/commits/action_specs_test.go b/internal/tools/commits/action_specs_test.go index 0f359e3de..7a5685227 100644 --- a/internal/tools/commits/action_specs_test.go +++ b/internal/tools/commits/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the commit actions' schemas to the SHA each // route reads: a full one where GitLab compares it as written, any revision // elsewhere. diff --git a/internal/tools/commits/commits.go b/internal/tools/commits/commits.go index d5c960042..f4e0a755e 100644 --- a/internal/tools/commits/commits.go +++ b/internal/tools/commits/commits.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commits import ( diff --git a/internal/tools/commits/commits_test.go b/internal/tools/commits/commits_test.go index d86b746fe..98a74b8c4 100644 --- a/internal/tools/commits/commits_test.go +++ b/internal/tools/commits/commits_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // commits_test.go contains unit tests for GitLab commit operations // (single-file create, multi-action create, start branch, and error handling). // Tests use httptest to mock the GitLab Commits API. diff --git a/internal/tools/commits/doc.go b/internal/tools/commits/doc.go index 065a737cf..abb1d55c3 100644 --- a/internal/tools/commits/doc.go +++ b/internal/tools/commits/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package commits implements MCP tools for GitLab commit operations. // // The package wraps the GitLab Commits API: diff --git a/internal/tools/commits/export_test.go b/internal/tools/commits/export_test.go index e7f84ccfc..225d7f4f5 100644 --- a/internal/tools/commits/export_test.go +++ b/internal/tools/commits/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commits // PublishedActionIDs exposes the canonical action IDs this package hands a diff --git a/internal/tools/commits/markdown.go b/internal/tools/commits/markdown.go index f70d76fac..728518ded 100644 --- a/internal/tools/commits/markdown.go +++ b/internal/tools/commits/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package commits import ( diff --git a/internal/tools/compliancepolicy/action_specs.go b/internal/tools/compliancepolicy/action_specs.go index cc924d7d2..f2152f264 100644 --- a/internal/tools/compliancepolicy/action_specs.go +++ b/internal/tools/compliancepolicy/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package compliancepolicy import ( diff --git a/internal/tools/compliancepolicy/compliance_policy.go b/internal/tools/compliancepolicy/compliance_policy.go index 7ffccfe1f..ba3a01f35 100644 --- a/internal/tools/compliancepolicy/compliance_policy.go +++ b/internal/tools/compliancepolicy/compliance_policy.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package compliancepolicy import ( diff --git a/internal/tools/compliancepolicy/compliance_policy_test.go b/internal/tools/compliancepolicy/compliance_policy_test.go index 3c402f34e..0365ca119 100644 --- a/internal/tools/compliancepolicy/compliance_policy_test.go +++ b/internal/tools/compliancepolicy/compliance_policy_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // compliance_policy_test.go contains unit tests for the GitLab group compliance framework policy MCP tool handlers (get, update). package compliancepolicy diff --git a/internal/tools/compliancepolicy/doc.go b/internal/tools/compliancepolicy/doc.go index eef1896ba..2a8d2e86d 100644 --- a/internal/tools/compliancepolicy/doc.go +++ b/internal/tools/compliancepolicy/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package compliancepolicy implements MCP tools for GitLab security and // compliance policy operations. // diff --git a/internal/tools/compliancepolicy/markdown.go b/internal/tools/compliancepolicy/markdown.go index 5a7a9a1e2..2a4a97d52 100644 --- a/internal/tools/compliancepolicy/markdown.go +++ b/internal/tools/compliancepolicy/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package compliancepolicy import ( diff --git a/internal/tools/containerregistry/action_specs.go b/internal/tools/containerregistry/action_specs.go index 9088150dc..190ffa2ec 100644 --- a/internal/tools/containerregistry/action_specs.go +++ b/internal/tools/containerregistry/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package containerregistry import ( diff --git a/internal/tools/containerregistry/action_specs_test.go b/internal/tools/containerregistry/action_specs_test.go index f339e7c69..1e0d838be 100644 --- a/internal/tools/containerregistry/action_specs_test.go +++ b/internal/tools/containerregistry/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for container registry delete behavior. package containerregistry diff --git a/internal/tools/containerregistry/container_registry.go b/internal/tools/containerregistry/container_registry.go index f67c6ba4e..3ea166c92 100644 --- a/internal/tools/containerregistry/container_registry.go +++ b/internal/tools/containerregistry/container_registry.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package containerregistry import ( diff --git a/internal/tools/containerregistry/container_registry_test.go b/internal/tools/containerregistry/container_registry_test.go index 5e3cdd77d..70a5cf451 100644 --- a/internal/tools/containerregistry/container_registry_test.go +++ b/internal/tools/containerregistry/container_registry_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // container_registry_test.go contains unit tests for the container registry MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/containerregistry/doc.go b/internal/tools/containerregistry/doc.go index 8bd2107e9..86af620f0 100644 --- a/internal/tools/containerregistry/doc.go +++ b/internal/tools/containerregistry/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package containerregistry implements MCP tools for GitLab container registry // operations. // diff --git a/internal/tools/containerregistry/markdown.go b/internal/tools/containerregistry/markdown.go index 5e75f2e70..a410dddef 100644 --- a/internal/tools/containerregistry/markdown.go +++ b/internal/tools/containerregistry/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package containerregistry import ( diff --git a/internal/tools/containerregistry/protection_rules.go b/internal/tools/containerregistry/protection_rules.go index f682c8bc5..bac33d7a5 100644 --- a/internal/tools/containerregistry/protection_rules.go +++ b/internal/tools/containerregistry/protection_rules.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package containerregistry import ( diff --git a/internal/tools/containerregistry/protection_rules_test.go b/internal/tools/containerregistry/protection_rules_test.go index 4bdc44bee..c0528720f 100644 --- a/internal/tools/containerregistry/protection_rules_test.go +++ b/internal/tools/containerregistry/protection_rules_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // protection_rules_test.go contains unit tests for the container registry MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/containerregistry/tag_protection_rules.go b/internal/tools/containerregistry/tag_protection_rules.go index 3244a8a64..fda09a4e9 100644 --- a/internal/tools/containerregistry/tag_protection_rules.go +++ b/internal/tools/containerregistry/tag_protection_rules.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package containerregistry import ( diff --git a/internal/tools/containerregistry/tag_protection_rules_test.go b/internal/tools/containerregistry/tag_protection_rules_test.go index 929786008..ff6d30cec 100644 --- a/internal/tools/containerregistry/tag_protection_rules_test.go +++ b/internal/tools/containerregistry/tag_protection_rules_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // tag_protection_rules_test.go contains unit tests for the container registry // tag protection rule MCP tool handlers. Tests use httptest to mock GitLab API // responses and verify success, error, and edge-case paths. diff --git a/internal/tools/customattributes/action_specs.go b/internal/tools/customattributes/action_specs.go index 15f875b3f..3dce1538a 100644 --- a/internal/tools/customattributes/action_specs.go +++ b/internal/tools/customattributes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs.go holds what this package contributes to the canonical action // catalog. The specs themselves are declared in internal/tools/adminspecs, // which is the one place the gitlab_admin group is assembled; what stays here diff --git a/internal/tools/customattributes/custom_attributes.go b/internal/tools/customattributes/custom_attributes.go index 96e1d93a9..49757c971 100644 --- a/internal/tools/customattributes/custom_attributes.go +++ b/internal/tools/customattributes/custom_attributes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package customattributes import ( diff --git a/internal/tools/customattributes/custom_attributes_test.go b/internal/tools/customattributes/custom_attributes_test.go index 108c327e3..7370a1074 100644 --- a/internal/tools/customattributes/custom_attributes_test.go +++ b/internal/tools/customattributes/custom_attributes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // custom_attributes_test.go contains unit tests for the custom attribute MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/customattributes/doc.go b/internal/tools/customattributes/doc.go index 286d84915..a6c0eb946 100644 --- a/internal/tools/customattributes/doc.go +++ b/internal/tools/customattributes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package customattributes implements MCP tools for GitLab custom attribute // operations. // diff --git a/internal/tools/customattributes/markdown.go b/internal/tools/customattributes/markdown.go index dd3db548a..1b48982e2 100644 --- a/internal/tools/customattributes/markdown.go +++ b/internal/tools/customattributes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package customattributes import ( diff --git a/internal/tools/customemoji/action_specs.go b/internal/tools/customemoji/action_specs.go index 96f200db4..29f271789 100644 --- a/internal/tools/customemoji/action_specs.go +++ b/internal/tools/customemoji/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package customemoji import ( diff --git a/internal/tools/customemoji/action_specs_test.go b/internal/tools/customemoji/action_specs_test.go index cc97bf2d2..14d6fce4d 100644 --- a/internal/tools/customemoji/action_specs_test.go +++ b/internal/tools/customemoji/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for custom emoji behavior. package customemoji diff --git a/internal/tools/customemoji/custom_emoji.go b/internal/tools/customemoji/custom_emoji.go index dbec9f16b..3932711b3 100644 --- a/internal/tools/customemoji/custom_emoji.go +++ b/internal/tools/customemoji/custom_emoji.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package customemoji import ( diff --git a/internal/tools/customemoji/custom_emoji_test.go b/internal/tools/customemoji/custom_emoji_test.go index ce0e3e44b..9b4b493b4 100644 --- a/internal/tools/customemoji/custom_emoji_test.go +++ b/internal/tools/customemoji/custom_emoji_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // custom_emoji_test.go contains unit tests for GitLab custom emoji operations. // Tests use httptest to mock the GitLab Custom Emoji API. package customemoji diff --git a/internal/tools/customemoji/doc.go b/internal/tools/customemoji/doc.go index 1715126fb..4816ce008 100644 --- a/internal/tools/customemoji/doc.go +++ b/internal/tools/customemoji/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package customemoji implements MCP tools for GitLab group custom emoji // operations. // diff --git a/internal/tools/customemoji/markdown.go b/internal/tools/customemoji/markdown.go index f40d9533d..b3ae6d296 100644 --- a/internal/tools/customemoji/markdown.go +++ b/internal/tools/customemoji/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package customemoji import ( diff --git a/internal/tools/customemoji/markdown_test.go b/internal/tools/customemoji/markdown_test.go index 99da9c496..a79cb5a0b 100644 --- a/internal/tools/customemoji/markdown_test.go +++ b/internal/tools/customemoji/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each custom emoji // formatter writes: the list table, which now carries the global ID the delete // action takes, and the card one create returns. diff --git a/internal/tools/dbmigrations/db_migrations.go b/internal/tools/dbmigrations/db_migrations.go index 0775de094..3406d9b74 100644 --- a/internal/tools/dbmigrations/db_migrations.go +++ b/internal/tools/dbmigrations/db_migrations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dbmigrations import ( diff --git a/internal/tools/dbmigrations/db_migrations_test.go b/internal/tools/dbmigrations/db_migrations_test.go index cd9b5fff8..b3916c496 100644 --- a/internal/tools/dbmigrations/db_migrations_test.go +++ b/internal/tools/dbmigrations/db_migrations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // db_migrations_test.go contains unit tests for the database migration MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/dbmigrations/doc.go b/internal/tools/dbmigrations/doc.go index 9b57fb973..7482701b1 100644 --- a/internal/tools/dbmigrations/doc.go +++ b/internal/tools/dbmigrations/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dbmigrations implements MCP tools for GitLab database migration // administration. // diff --git a/internal/tools/dbmigrations/markdown.go b/internal/tools/dbmigrations/markdown.go index 787ba6def..1b9f52a59 100644 --- a/internal/tools/dbmigrations/markdown.go +++ b/internal/tools/dbmigrations/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dbmigrations import ( diff --git a/internal/tools/dependencies/action_specs.go b/internal/tools/dependencies/action_specs.go index 60d228314..db7cddcc8 100644 --- a/internal/tools/dependencies/action_specs.go +++ b/internal/tools/dependencies/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencies import ( diff --git a/internal/tools/dependencies/action_specs_catalog_test.go b/internal/tools/dependencies/action_specs_catalog_test.go index 5f86499b7..5c1ae4242 100644 --- a/internal/tools/dependencies/action_specs_catalog_test.go +++ b/internal/tools/dependencies/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/dependencies/action_specs_test.go b/internal/tools/dependencies/action_specs_test.go index 08bea5ba6..fa580e9f4 100644 --- a/internal/tools/dependencies/action_specs_test.go +++ b/internal/tools/dependencies/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the dependency tool closures // in ActionSpecs routes with a mock GitLab API. package dependencies diff --git a/internal/tools/dependencies/dependencies.go b/internal/tools/dependencies/dependencies.go index 586bdb870..25b871061 100644 --- a/internal/tools/dependencies/dependencies.go +++ b/internal/tools/dependencies/dependencies.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencies import ( diff --git a/internal/tools/dependencies/dependencies_test.go b/internal/tools/dependencies/dependencies_test.go index 36c3cd8d7..a01314d25 100644 --- a/internal/tools/dependencies/dependencies_test.go +++ b/internal/tools/dependencies/dependencies_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // dependencies_test.go contains unit tests for GitLab project dependency // listing operations. Tests use httptest to mock the GitLab Dependencies API. package dependencies diff --git a/internal/tools/dependencies/doc.go b/internal/tools/dependencies/doc.go index 5962702b2..2247871d9 100644 --- a/internal/tools/dependencies/doc.go +++ b/internal/tools/dependencies/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dependencies implements MCP tools for GitLab dependency list // operations. // diff --git a/internal/tools/dependencies/markdown.go b/internal/tools/dependencies/markdown.go index 784c6a0d0..521201953 100644 --- a/internal/tools/dependencies/markdown.go +++ b/internal/tools/dependencies/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencies import ( diff --git a/internal/tools/dependencies/markdown_test.go b/internal/tools/dependencies/markdown_test.go index f0cf9e4af..4bfba65cd 100644 --- a/internal/tools/dependencies/markdown_test.go +++ b/internal/tools/dependencies/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencies import ( diff --git a/internal/tools/dependencyfirewall/action_specs.go b/internal/tools/dependencyfirewall/action_specs.go index 4327fc5fe..c59782c94 100644 --- a/internal/tools/dependencyfirewall/action_specs.go +++ b/internal/tools/dependencyfirewall/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencyfirewall import ( diff --git a/internal/tools/dependencyfirewall/action_specs_test.go b/internal/tools/dependencyfirewall/action_specs_test.go index d08b611f6..14e26591b 100644 --- a/internal/tools/dependencyfirewall/action_specs_test.go +++ b/internal/tools/dependencyfirewall/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical action spec and route tests for the // Dependency Firewall domain: the metadata the catalog projects, the input // schema enum, and the 404 path that names the feature flag. diff --git a/internal/tools/dependencyfirewall/dependency_firewall.go b/internal/tools/dependencyfirewall/dependency_firewall.go index cb8d1c1ac..ce5cc5bc5 100644 --- a/internal/tools/dependencyfirewall/dependency_firewall.go +++ b/internal/tools/dependencyfirewall/dependency_firewall.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencyfirewall import ( diff --git a/internal/tools/dependencyfirewall/dependency_firewall_test.go b/internal/tools/dependencyfirewall/dependency_firewall_test.go index 5d262e0d8..62b04a88a 100644 --- a/internal/tools/dependencyfirewall/dependency_firewall_test.go +++ b/internal/tools/dependencyfirewall/dependency_firewall_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // dependency_firewall_test.go contains unit tests for the Dependency Firewall // package evaluation handler. Tests use httptest to mock the GitLab API and // cover the success, validation, and error paths. diff --git a/internal/tools/dependencyfirewall/doc.go b/internal/tools/dependencyfirewall/doc.go index e1d23a8f1..39a0ae65d 100644 --- a/internal/tools/dependencyfirewall/doc.go +++ b/internal/tools/dependencyfirewall/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dependencyfirewall implements the MCP tool for GitLab's Dependency // Firewall package evaluation endpoint. // diff --git a/internal/tools/dependencyfirewall/markdown.go b/internal/tools/dependencyfirewall/markdown.go index e5a577203..35baffc12 100644 --- a/internal/tools/dependencyfirewall/markdown.go +++ b/internal/tools/dependencyfirewall/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencyfirewall import ( diff --git a/internal/tools/dependencyfirewall/markdown_test.go b/internal/tools/dependencyfirewall/markdown_test.go index 1185f8155..27ad64381 100644 --- a/internal/tools/dependencyfirewall/markdown_test.go +++ b/internal/tools/dependencyfirewall/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains tests for the Dependency Firewall Markdown // formatters: the verdict rendering and the feature-flag guidance. package dependencyfirewall diff --git a/internal/tools/dependencyproxy/dependency_proxy.go b/internal/tools/dependencyproxy/dependency_proxy.go index 36c155622..e00dc48fb 100644 --- a/internal/tools/dependencyproxy/dependency_proxy.go +++ b/internal/tools/dependencyproxy/dependency_proxy.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dependencyproxy import ( diff --git a/internal/tools/dependencyproxy/dependency_proxy_test.go b/internal/tools/dependencyproxy/dependency_proxy_test.go index 1df47cff2..a80cf3e07 100644 --- a/internal/tools/dependencyproxy/dependency_proxy_test.go +++ b/internal/tools/dependencyproxy/dependency_proxy_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // dependency_proxy_test.go contains unit tests for the dependencyproxy MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/dependencyproxy/doc.go b/internal/tools/dependencyproxy/doc.go index 889e060ac..599e7cc97 100644 --- a/internal/tools/dependencyproxy/doc.go +++ b/internal/tools/dependencyproxy/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dependencyproxy implements MCP tools for GitLab Dependency Proxy cache // management. // diff --git a/internal/tools/deploykeys/action_specs.go b/internal/tools/deploykeys/action_specs.go index 61184d16b..b1ae4cb67 100644 --- a/internal/tools/deploykeys/action_specs.go +++ b/internal/tools/deploykeys/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploykeys import ( diff --git a/internal/tools/deploykeys/action_specs_catalog_test.go b/internal/tools/deploykeys/action_specs_catalog_test.go index fa2a7415f..503e74978 100644 --- a/internal/tools/deploykeys/action_specs_catalog_test.go +++ b/internal/tools/deploykeys/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds this package's published action IDs // against the catalog that has to resolve them. // diff --git a/internal/tools/deploykeys/action_specs_test.go b/internal/tools/deploykeys/action_specs_test.go index 68daed28f..18ae8f305 100644 --- a/internal/tools/deploykeys/action_specs_test.go +++ b/internal/tools/deploykeys/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go: mutation error paths and destructive confirmation. package deploykeys diff --git a/internal/tools/deploykeys/deploy_keys.go b/internal/tools/deploykeys/deploy_keys.go index 61d21f6d5..3d412eafb 100644 --- a/internal/tools/deploykeys/deploy_keys.go +++ b/internal/tools/deploykeys/deploy_keys.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploykeys import ( diff --git a/internal/tools/deploykeys/deploy_keys_test.go b/internal/tools/deploykeys/deploy_keys_test.go index 5a47d7e19..14f7dfc18 100644 --- a/internal/tools/deploykeys/deploy_keys_test.go +++ b/internal/tools/deploykeys/deploy_keys_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // deploy_keys_test.go contains unit tests for the deploy key MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/deploykeys/doc.go b/internal/tools/deploykeys/doc.go index 82eccdae4..e01b72391 100644 --- a/internal/tools/deploykeys/doc.go +++ b/internal/tools/deploykeys/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package deploykeys implements MCP tools for GitLab deploy key operations. // // The package wraps the GitLab Deploy keys API: diff --git a/internal/tools/deploykeys/markdown.go b/internal/tools/deploykeys/markdown.go index ad4f74730..e3db9f2d7 100644 --- a/internal/tools/deploykeys/markdown.go +++ b/internal/tools/deploykeys/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploykeys import ( diff --git a/internal/tools/deploymentmergerequests/action_ids.go b/internal/tools/deploymentmergerequests/action_ids.go index e7f5831a0..1da99db4e 100644 --- a/internal/tools/deploymentmergerequests/action_ids.go +++ b/internal/tools/deploymentmergerequests/action_ids.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploymentmergerequests // Canonical action IDs this package publishes, the one form every surface diff --git a/internal/tools/deploymentmergerequests/action_ids_test.go b/internal/tools/deploymentmergerequests/action_ids_test.go index c07c9a0ad..51db2bba5 100644 --- a/internal/tools/deploymentmergerequests/action_ids_test.go +++ b/internal/tools/deploymentmergerequests/action_ids_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploymentmergerequests_test import ( diff --git a/internal/tools/deploymentmergerequests/action_specs.go b/internal/tools/deploymentmergerequests/action_specs.go index 184e34b86..d316de140 100644 --- a/internal/tools/deploymentmergerequests/action_specs.go +++ b/internal/tools/deploymentmergerequests/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploymentmergerequests import ( diff --git a/internal/tools/deploymentmergerequests/deployment_merge_requests.go b/internal/tools/deploymentmergerequests/deployment_merge_requests.go index e5b1e808d..7e6f56973 100644 --- a/internal/tools/deploymentmergerequests/deployment_merge_requests.go +++ b/internal/tools/deploymentmergerequests/deployment_merge_requests.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploymentmergerequests import ( diff --git a/internal/tools/deploymentmergerequests/deployment_merge_requests_test.go b/internal/tools/deploymentmergerequests/deployment_merge_requests_test.go index e036d7879..2eea9fec1 100644 --- a/internal/tools/deploymentmergerequests/deployment_merge_requests_test.go +++ b/internal/tools/deploymentmergerequests/deployment_merge_requests_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // deployment_merge_requests_test.go contains unit tests for the deployment merge request MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/deploymentmergerequests/doc.go b/internal/tools/deploymentmergerequests/doc.go index 2868ec09f..2ae0d097f 100644 --- a/internal/tools/deploymentmergerequests/doc.go +++ b/internal/tools/deploymentmergerequests/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package deploymentmergerequests implements MCP tools for merge requests // associated with GitLab deployments. // diff --git a/internal/tools/deploymentmergerequests/export_test.go b/internal/tools/deploymentmergerequests/export_test.go index 71cf95d9a..525c8c3d3 100644 --- a/internal/tools/deploymentmergerequests/export_test.go +++ b/internal/tools/deploymentmergerequests/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploymentmergerequests // PublishedActionIDs exposes the canonical action IDs this package hands a diff --git a/internal/tools/deploymentmergerequests/markdown.go b/internal/tools/deploymentmergerequests/markdown.go index c69d9144c..08c7375ee 100644 --- a/internal/tools/deploymentmergerequests/markdown.go +++ b/internal/tools/deploymentmergerequests/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploymentmergerequests import ( diff --git a/internal/tools/deploymentmergerequests/shapes.go b/internal/tools/deploymentmergerequests/shapes.go index dfeca02d9..ef1b220c9 100644 --- a/internal/tools/deploymentmergerequests/shapes.go +++ b/internal/tools/deploymentmergerequests/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploymentmergerequests import ( diff --git a/internal/tools/deployments/action_specs.go b/internal/tools/deployments/action_specs.go index c93528046..ea995cf10 100644 --- a/internal/tools/deployments/action_specs.go +++ b/internal/tools/deployments/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deployments import ( diff --git a/internal/tools/deployments/action_specs_catalog_test.go b/internal/tools/deployments/action_specs_catalog_test.go index d1a9fbf29..0267250ae 100644 --- a/internal/tools/deployments/action_specs_catalog_test.go +++ b/internal/tools/deployments/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the deployment action IDs this package // publishes against the catalog the server really builds. It is an external // test package because internal/tools imports this one, so only a package diff --git a/internal/tools/deployments/action_specs_test.go b/internal/tools/deployments/action_specs_test.go index 0c73dd9b1..799e4a2a1 100644 --- a/internal/tools/deployments/action_specs_test.go +++ b/internal/tools/deployments/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go: mutation errors, not-found output, and destructive confirmation. package deployments diff --git a/internal/tools/deployments/deployments.go b/internal/tools/deployments/deployments.go index 55df43484..23b57fe17 100644 --- a/internal/tools/deployments/deployments.go +++ b/internal/tools/deployments/deployments.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deployments import ( diff --git a/internal/tools/deployments/deployments_test.go b/internal/tools/deployments/deployments_test.go index a1de94cb8..a89bfe439 100644 --- a/internal/tools/deployments/deployments_test.go +++ b/internal/tools/deployments/deployments_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // deployments_test.go contains unit tests for the deployment MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/deployments/doc.go b/internal/tools/deployments/doc.go index e61b1c13c..1e9a332e7 100644 --- a/internal/tools/deployments/doc.go +++ b/internal/tools/deployments/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package deployments implements MCP tools for GitLab deployment operations. // // The package wraps the GitLab Deployments API: diff --git a/internal/tools/deployments/export_test.go b/internal/tools/deployments/export_test.go index 1bf8c564c..51290731c 100644 --- a/internal/tools/deployments/export_test.go +++ b/internal/tools/deployments/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deployments // PublishedActionIDs is every canonical catalog action ID this package names diff --git a/internal/tools/deployments/markdown.go b/internal/tools/deployments/markdown.go index 2e552c35b..d5c007c37 100644 --- a/internal/tools/deployments/markdown.go +++ b/internal/tools/deployments/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deployments import ( diff --git a/internal/tools/deployments/shapes.go b/internal/tools/deployments/shapes.go index ec9a22f9f..6a9616926 100644 --- a/internal/tools/deployments/shapes.go +++ b/internal/tools/deployments/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deployments import ( diff --git a/internal/tools/deploytokens/action_specs.go b/internal/tools/deploytokens/action_specs.go index cba946b03..7b6999a4c 100644 --- a/internal/tools/deploytokens/action_specs.go +++ b/internal/tools/deploytokens/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploytokens import ( diff --git a/internal/tools/deploytokens/action_specs_test.go b/internal/tools/deploytokens/action_specs_test.go index fd60b9d1e..17374b7c1 100644 --- a/internal/tools/deploytokens/action_specs_test.go +++ b/internal/tools/deploytokens/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for deploy token actions. package deploytokens diff --git a/internal/tools/deploytokens/deploy_tokens.go b/internal/tools/deploytokens/deploy_tokens.go index 71275c78f..49405e3f1 100644 --- a/internal/tools/deploytokens/deploy_tokens.go +++ b/internal/tools/deploytokens/deploy_tokens.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploytokens import ( diff --git a/internal/tools/deploytokens/deploy_tokens_test.go b/internal/tools/deploytokens/deploy_tokens_test.go index bb3092607..691dd6da0 100644 --- a/internal/tools/deploytokens/deploy_tokens_test.go +++ b/internal/tools/deploytokens/deploy_tokens_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // deploy_tokens_test.go contains unit tests for the deploy token MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/deploytokens/doc.go b/internal/tools/deploytokens/doc.go index f281cc150..ebe93cf24 100644 --- a/internal/tools/deploytokens/doc.go +++ b/internal/tools/deploytokens/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package deploytokens implements MCP tools for GitLab project and group deploy // token operations. // diff --git a/internal/tools/deploytokens/markdown.go b/internal/tools/deploytokens/markdown.go index d95e9e6b4..8faada7d8 100644 --- a/internal/tools/deploytokens/markdown.go +++ b/internal/tools/deploytokens/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package deploytokens import ( diff --git a/internal/tools/doc.go b/internal/tools/doc.go index b4cf2d647..406a8dd6c 100644 --- a/internal/tools/doc.go +++ b/internal/tools/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package tools provides the MCP tool orchestration layer for the GitLab MCP // server. // diff --git a/internal/tools/dockerfiletemplates/action_specs.go b/internal/tools/dockerfiletemplates/action_specs.go index 397fdf61e..74a69bb7f 100644 --- a/internal/tools/dockerfiletemplates/action_specs.go +++ b/internal/tools/dockerfiletemplates/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dockerfiletemplates import ( diff --git a/internal/tools/dockerfiletemplates/action_specs_test.go b/internal/tools/dockerfiletemplates/action_specs_test.go index 70a4ec126..0554cd366 100644 --- a/internal/tools/dockerfiletemplates/action_specs_test.go +++ b/internal/tools/dockerfiletemplates/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds every canonical action ID this package publishes // against the catalog the server really builds. // diff --git a/internal/tools/dockerfiletemplates/doc.go b/internal/tools/dockerfiletemplates/doc.go index f497a8b1c..96f77222b 100644 --- a/internal/tools/dockerfiletemplates/doc.go +++ b/internal/tools/dockerfiletemplates/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dockerfiletemplates implements MCP tools for GitLab Dockerfile // template operations. // diff --git a/internal/tools/dockerfiletemplates/dockerfile_templates.go b/internal/tools/dockerfiletemplates/dockerfile_templates.go index 318da9bf4..7f938d32a 100644 --- a/internal/tools/dockerfiletemplates/dockerfile_templates.go +++ b/internal/tools/dockerfiletemplates/dockerfile_templates.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dockerfiletemplates import ( diff --git a/internal/tools/dockerfiletemplates/dockerfile_templates_test.go b/internal/tools/dockerfiletemplates/dockerfile_templates_test.go index 208e87b31..3d2693ab8 100644 --- a/internal/tools/dockerfiletemplates/dockerfile_templates_test.go +++ b/internal/tools/dockerfiletemplates/dockerfile_templates_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // dockerfile_templates_test.go contains unit tests for the Dockerfile template MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/dockerfiletemplates/export_test.go b/internal/tools/dockerfiletemplates/export_test.go index 38239e121..df21232d5 100644 --- a/internal/tools/dockerfiletemplates/export_test.go +++ b/internal/tools/dockerfiletemplates/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dockerfiletemplates // PublishedActionIDs is every canonical catalog ID this package hands a model diff --git a/internal/tools/dockerfiletemplates/markdown.go b/internal/tools/dockerfiletemplates/markdown.go index 071cd5fbf..105a26d47 100644 --- a/internal/tools/dockerfiletemplates/markdown.go +++ b/internal/tools/dockerfiletemplates/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dockerfiletemplates import ( diff --git a/internal/tools/dorametrics/action_specs.go b/internal/tools/dorametrics/action_specs.go index f74945d5f..dc9267a84 100644 --- a/internal/tools/dorametrics/action_specs.go +++ b/internal/tools/dorametrics/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dorametrics import ( diff --git a/internal/tools/dorametrics/action_specs_test.go b/internal/tools/dorametrics/action_specs_test.go index 0081ff369..658144817 100644 --- a/internal/tools/dorametrics/action_specs_test.go +++ b/internal/tools/dorametrics/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the DORA metrics // [toolutil.ActionSpec] entries. GitLab serves DORA metrics at two scopes, // project and group, and the package publishes one spec for each. diff --git a/internal/tools/dorametrics/doc.go b/internal/tools/dorametrics/doc.go index 47a128cd2..72e26d63a 100644 --- a/internal/tools/dorametrics/doc.go +++ b/internal/tools/dorametrics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dorametrics implements MCP tools for GitLab DORA metrics. // // The package wraps the GitLab DORA metrics API: diff --git a/internal/tools/dorametrics/dora_metrics.go b/internal/tools/dorametrics/dora_metrics.go index f1b81d7f0..aaaa3f8a5 100644 --- a/internal/tools/dorametrics/dora_metrics.go +++ b/internal/tools/dorametrics/dora_metrics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dorametrics import ( diff --git a/internal/tools/dorametrics/dora_metrics_test.go b/internal/tools/dorametrics/dora_metrics_test.go index 4ef8bd1b6..b1ebcf4d0 100644 --- a/internal/tools/dorametrics/dora_metrics_test.go +++ b/internal/tools/dorametrics/dora_metrics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // dora_metrics_test.go contains unit tests for GitLab DORA metrics retrieval // operations. Tests use httptest to mock the GitLab DORA Metrics API. package dorametrics diff --git a/internal/tools/dorametrics/markdown.go b/internal/tools/dorametrics/markdown.go index dd179ec4a..128f7ad1e 100644 --- a/internal/tools/dorametrics/markdown.go +++ b/internal/tools/dorametrics/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dorametrics import ( diff --git a/internal/tools/dynamic/alias_audit.go b/internal/tools/dynamic/alias_audit.go index 4086cd726..d37bc5117 100644 --- a/internal/tools/dynamic/alias_audit.go +++ b/internal/tools/dynamic/alias_audit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/alias_audit_test.go b/internal/tools/dynamic/alias_audit_test.go index 5c32e302b..02cad1e31 100644 --- a/internal/tools/dynamic/alias_audit_test.go +++ b/internal/tools/dynamic/alias_audit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // alias_audit_test.go contains unit tests for the dynamic-tool-surface alias audit logic. package dynamic diff --git a/internal/tools/dynamic/doc.go b/internal/tools/dynamic/doc.go index dfb2326a2..8b17b347e 100644 --- a/internal/tools/dynamic/doc.go +++ b/internal/tools/dynamic/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dynamic implements low-token GitLab MCP tool surfaces over the // canonical action catalog. // diff --git a/internal/tools/dynamic/example.go b/internal/tools/dynamic/example.go index d8b2c82e0..0a4ee0b80 100644 --- a/internal/tools/dynamic/example.go +++ b/internal/tools/dynamic/example.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/example_test.go b/internal/tools/dynamic/example_test.go index 5b1ddaa8b..6141cc4df 100644 --- a/internal/tools/dynamic/example_test.go +++ b/internal/tools/dynamic/example_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/fuzzy.go b/internal/tools/dynamic/fuzzy.go index 90b705889..ab15784b6 100644 --- a/internal/tools/dynamic/fuzzy.go +++ b/internal/tools/dynamic/fuzzy.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/fuzzy_test.go b/internal/tools/dynamic/fuzzy_test.go index 3cc6ed42f..fc698ccf0 100644 --- a/internal/tools/dynamic/fuzzy_test.go +++ b/internal/tools/dynamic/fuzzy_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // fuzzy_test.go contains unit tests for the fuzzy-matching scoring layer used by the dynamic tool surface. package dynamic diff --git a/internal/tools/dynamic/metrics.go b/internal/tools/dynamic/metrics.go index 5888bdb1c..ec3fba8a4 100644 --- a/internal/tools/dynamic/metrics.go +++ b/internal/tools/dynamic/metrics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import "sync/atomic" diff --git a/internal/tools/dynamic/metrics_test.go b/internal/tools/dynamic/metrics_test.go index 79555a26b..70cba0b8c 100644 --- a/internal/tools/dynamic/metrics_test.go +++ b/internal/tools/dynamic/metrics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // metrics_test.go contains unit tests for the dynamic surface metric counters. package dynamic diff --git a/internal/tools/dynamic/ranking.go b/internal/tools/dynamic/ranking.go index 0c3bb8133..a6c987d7a 100644 --- a/internal/tools/dynamic/ranking.go +++ b/internal/tools/dynamic/ranking.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/ranking_test.go b/internal/tools/dynamic/ranking_test.go index ac3fffaaa..871a4be22 100644 --- a/internal/tools/dynamic/ranking_test.go +++ b/internal/tools/dynamic/ranking_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // ranking_test.go contains unit tests for the dynamic surface ranking pipeline. package dynamic diff --git a/internal/tools/dynamic/register.go b/internal/tools/dynamic/register.go index d9ba31aa7..19636b699 100644 --- a/internal/tools/dynamic/register.go +++ b/internal/tools/dynamic/register.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/register_test.go b/internal/tools/dynamic/register_test.go index 87f92469b..0cd2c0ad0 100644 --- a/internal/tools/dynamic/register_test.go +++ b/internal/tools/dynamic/register_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // register_test.go contains unit tests for registering the dynamic tool surface with the MCP server. package dynamic diff --git a/internal/tools/dynamic/search_index.go b/internal/tools/dynamic/search_index.go index 62637333b..c41e96542 100644 --- a/internal/tools/dynamic/search_index.go +++ b/internal/tools/dynamic/search_index.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/search_index_test.go b/internal/tools/dynamic/search_index_test.go index 7f6ba94d5..1e1dc0627 100644 --- a/internal/tools/dynamic/search_index_test.go +++ b/internal/tools/dynamic/search_index_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // search_index_test covers lightweight candidate-index behavior in package // dynamic, including top-result parity vs full scan and defensive/fallback // branches using table-driven subtests and tiny in-memory fixtures. diff --git a/internal/tools/dynamic/standalone.go b/internal/tools/dynamic/standalone.go index d4dd0fca4..2ae89f929 100644 --- a/internal/tools/dynamic/standalone.go +++ b/internal/tools/dynamic/standalone.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/standalone_test.go b/internal/tools/dynamic/standalone_test.go index 8cf910025..ad3b303e8 100644 --- a/internal/tools/dynamic/standalone_test.go +++ b/internal/tools/dynamic/standalone_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // standalone_test.go contains unit tests for the dynamic surface standalone MCP server (used by inspector and integration tests). package dynamic diff --git a/internal/tools/dynamic/surface_specs.go b/internal/tools/dynamic/surface_specs.go index f33c76f2c..f5856668f 100644 --- a/internal/tools/dynamic/surface_specs.go +++ b/internal/tools/dynamic/surface_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamic import ( diff --git a/internal/tools/dynamic/surface_specs_test.go b/internal/tools/dynamic/surface_specs_test.go index cff1adb50..9494ba9d1 100644 --- a/internal/tools/dynamic/surface_specs_test.go +++ b/internal/tools/dynamic/surface_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // surface_specs_test.go contains unit tests for the dynamic surface metadata and the two-tools contract. package dynamic diff --git a/internal/tools/dynamiccatalog/doc.go b/internal/tools/dynamiccatalog/doc.go index d9c192e59..9a2774203 100644 --- a/internal/tools/dynamiccatalog/doc.go +++ b/internal/tools/dynamiccatalog/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package dynamiccatalog builds the catalog the dynamic surface executes over, // for every caller that needs one built the way the server builds it. // diff --git a/internal/tools/dynamiccatalog/dynamic_catalog.go b/internal/tools/dynamiccatalog/dynamic_catalog.go index 21eb9b13e..ef1b93bb9 100644 --- a/internal/tools/dynamiccatalog/dynamic_catalog.go +++ b/internal/tools/dynamiccatalog/dynamic_catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package dynamiccatalog import ( diff --git a/internal/tools/dynamiccatalog/dynamic_catalog_test.go b/internal/tools/dynamiccatalog/dynamic_catalog_test.go index e42d4b8e7..f6be77187 100644 --- a/internal/tools/dynamiccatalog/dynamic_catalog_test.go +++ b/internal/tools/dynamiccatalog/dynamic_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // dynamic_catalog_test.go pins the two properties the server and the e2e suite // both rely on: the filter runs before the standalone actions are added, and // what read-only mode removed is reported with its cause. diff --git a/internal/tools/elicitationtools/action_specs.go b/internal/tools/elicitationtools/action_specs.go index 22bf36512..962bd4404 100644 --- a/internal/tools/elicitationtools/action_specs.go +++ b/internal/tools/elicitationtools/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package elicitationtools import ( diff --git a/internal/tools/elicitationtools/action_specs_test.go b/internal/tools/elicitationtools/action_specs_test.go index d29c0de85..a308e924c 100644 --- a/internal/tools/elicitationtools/action_specs_test.go +++ b/internal/tools/elicitationtools/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go validates that catalog-backed interactive tools translate // elicitation cancellation into CancelledResult responses. package elicitationtools diff --git a/internal/tools/elicitationtools/doc.go b/internal/tools/elicitationtools/doc.go index 50c1a9812..ebfc89ec4 100644 --- a/internal/tools/elicitationtools/doc.go +++ b/internal/tools/elicitationtools/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package elicitationtools implements interactive MCP tools that gather missing // values through the MCP elicitation capability before calling GitLab actions. // diff --git a/internal/tools/elicitationtools/elicitation_tools.go b/internal/tools/elicitationtools/elicitation_tools.go index fb9c1ece2..168f8a273 100644 --- a/internal/tools/elicitationtools/elicitation_tools.go +++ b/internal/tools/elicitationtools/elicitation_tools.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package elicitationtools import ( diff --git a/internal/tools/elicitationtools/elicitation_tools_test.go b/internal/tools/elicitationtools/elicitation_tools_test.go index 4cb7742b0..a53c153bc 100644 --- a/internal/tools/elicitationtools/elicitation_tools_test.go +++ b/internal/tools/elicitationtools/elicitation_tools_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // elicitation_tools_test.go contains unit tests for interactive MCP tool // handlers powered by the elicitation capability. Tests cover helper // functions, confirmation flows, input validation, elicitation-unsupported diff --git a/internal/tools/enterpriseusers/action_specs.go b/internal/tools/enterpriseusers/action_specs.go index 9911a9116..3b3d6ae7e 100644 --- a/internal/tools/enterpriseusers/action_specs.go +++ b/internal/tools/enterpriseusers/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package enterpriseusers import ( diff --git a/internal/tools/enterpriseusers/action_specs_test.go b/internal/tools/enterpriseusers/action_specs_test.go index 0d8269bd1..0305343f0 100644 --- a/internal/tools/enterpriseusers/action_specs_test.go +++ b/internal/tools/enterpriseusers/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for enterprise user actions. package enterpriseusers diff --git a/internal/tools/enterpriseusers/doc.go b/internal/tools/enterpriseusers/doc.go index 963f91d3c..10ec6126d 100644 --- a/internal/tools/enterpriseusers/doc.go +++ b/internal/tools/enterpriseusers/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package enterpriseusers implements MCP tools for GitLab enterprise user // operations. // diff --git a/internal/tools/enterpriseusers/enterprise_users.go b/internal/tools/enterpriseusers/enterprise_users.go index 5a47ef26b..46d94f923 100644 --- a/internal/tools/enterpriseusers/enterprise_users.go +++ b/internal/tools/enterpriseusers/enterprise_users.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package enterpriseusers import ( diff --git a/internal/tools/enterpriseusers/enterprise_users_test.go b/internal/tools/enterpriseusers/enterprise_users_test.go index af84056e5..088e6f822 100644 --- a/internal/tools/enterpriseusers/enterprise_users_test.go +++ b/internal/tools/enterpriseusers/enterprise_users_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // enterprise_users_test.go contains unit tests for GitLab enterprise user // operations. Tests use httptest to mock the GitLab Enterprise Users API. package enterpriseusers diff --git a/internal/tools/enterpriseusers/markdown.go b/internal/tools/enterpriseusers/markdown.go index 78073e486..51eb7705a 100644 --- a/internal/tools/enterpriseusers/markdown.go +++ b/internal/tools/enterpriseusers/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package enterpriseusers import ( diff --git a/internal/tools/enterpriseusers/markdown_test.go b/internal/tools/enterpriseusers/markdown_test.go index 2935a5dd3..610dbce6c 100644 --- a/internal/tools/enterpriseusers/markdown_test.go +++ b/internal/tools/enterpriseusers/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for enterprise user Markdown // formatting functions. package enterpriseusers diff --git a/internal/tools/environments/action_specs.go b/internal/tools/environments/action_specs.go index 3948797b6..6a79f637b 100644 --- a/internal/tools/environments/action_specs.go +++ b/internal/tools/environments/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package environments import ( diff --git a/internal/tools/environments/action_specs_test.go b/internal/tools/environments/action_specs_test.go index 73f744bed..5a6aa959a 100644 --- a/internal/tools/environments/action_specs_test.go +++ b/internal/tools/environments/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go: mutation errors, not-found output, and destructive confirmation. package environments diff --git a/internal/tools/environments/doc.go b/internal/tools/environments/doc.go index fc5e4f850..a726bd84e 100644 --- a/internal/tools/environments/doc.go +++ b/internal/tools/environments/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package environments implements MCP tools for GitLab environment operations. // // The package wraps the GitLab Environments API: diff --git a/internal/tools/environments/environments.go b/internal/tools/environments/environments.go index 848e68b83..80b71bbd6 100644 --- a/internal/tools/environments/environments.go +++ b/internal/tools/environments/environments.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package environments import ( diff --git a/internal/tools/environments/environments_test.go b/internal/tools/environments/environments_test.go index 6d66dcbb3..ca23fee49 100644 --- a/internal/tools/environments/environments_test.go +++ b/internal/tools/environments/environments_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // environments_test.go contains unit tests for the environment MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/environments/markdown.go b/internal/tools/environments/markdown.go index 1bef539ec..a13d652ad 100644 --- a/internal/tools/environments/markdown.go +++ b/internal/tools/environments/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package environments import ( diff --git a/internal/tools/environments/shapes.go b/internal/tools/environments/shapes.go index afc02508f..90f11d459 100644 --- a/internal/tools/environments/shapes.go +++ b/internal/tools/environments/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package environments import ( diff --git a/internal/tools/epicdiscussions/action_specs.go b/internal/tools/epicdiscussions/action_specs.go index 76b8cb869..08d7fb26e 100644 --- a/internal/tools/epicdiscussions/action_specs.go +++ b/internal/tools/epicdiscussions/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicdiscussions import ( diff --git a/internal/tools/epicdiscussions/action_specs_test.go b/internal/tools/epicdiscussions/action_specs_test.go index 95d2c2055..fccc33f1b 100644 --- a/internal/tools/epicdiscussions/action_specs_test.go +++ b/internal/tools/epicdiscussions/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for epic discussion actions. package epicdiscussions diff --git a/internal/tools/epicdiscussions/doc.go b/internal/tools/epicdiscussions/doc.go index 623f5107f..54009aa36 100644 --- a/internal/tools/epicdiscussions/doc.go +++ b/internal/tools/epicdiscussions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package epicdiscussions implements MCP tools for GitLab epic discussion // operations. // diff --git a/internal/tools/epicdiscussions/epic_discussions.go b/internal/tools/epicdiscussions/epic_discussions.go index 99f2a5450..0ec66a1ad 100644 --- a/internal/tools/epicdiscussions/epic_discussions.go +++ b/internal/tools/epicdiscussions/epic_discussions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicdiscussions import ( diff --git a/internal/tools/epicdiscussions/epic_discussions_test.go b/internal/tools/epicdiscussions/epic_discussions_test.go index 074399d48..2e2bf06f0 100644 --- a/internal/tools/epicdiscussions/epic_discussions_test.go +++ b/internal/tools/epicdiscussions/epic_discussions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // epic_discussions_test.go contains unit tests for the epic discussion MCP tool handlers. // Tests use httptest to mock GitLab GraphQL API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/epicdiscussions/markdown.go b/internal/tools/epicdiscussions/markdown.go index 82e8c3a2e..d1642cbac 100644 --- a/internal/tools/epicdiscussions/markdown.go +++ b/internal/tools/epicdiscussions/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicdiscussions import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/epicissues/action_specs.go b/internal/tools/epicissues/action_specs.go index 30905f278..df5bebb15 100644 --- a/internal/tools/epicissues/action_specs.go +++ b/internal/tools/epicissues/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicissues import ( diff --git a/internal/tools/epicissues/action_specs_test.go b/internal/tools/epicissues/action_specs_test.go index 5d523f65d..d6524a32b 100644 --- a/internal/tools/epicissues/action_specs_test.go +++ b/internal/tools/epicissues/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the epic issue link tool // closures in ActionSpecs routes with a mock GitLab API. package epicissues diff --git a/internal/tools/epicissues/doc.go b/internal/tools/epicissues/doc.go index 5b7c88360..1333549b6 100644 --- a/internal/tools/epicissues/doc.go +++ b/internal/tools/epicissues/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package epicissues implements MCP tools for GitLab epic issue relation // operations. // diff --git a/internal/tools/epicissues/epic_issues.go b/internal/tools/epicissues/epic_issues.go index b3ca035a1..b7e87d018 100644 --- a/internal/tools/epicissues/epic_issues.go +++ b/internal/tools/epicissues/epic_issues.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicissues import ( diff --git a/internal/tools/epicissues/epic_issues_test.go b/internal/tools/epicissues/epic_issues_test.go index 878792c52..bb9b5bb26 100644 --- a/internal/tools/epicissues/epic_issues_test.go +++ b/internal/tools/epicissues/epic_issues_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // epic_issues_test.go validates all epic-issue tool handlers via the Work Items // GraphQL API: List, Assign, Remove, and UpdateOrder. Covers success paths, // input validation, API errors, mutation errors, context cancellation, diff --git a/internal/tools/epicissues/markdown.go b/internal/tools/epicissues/markdown.go index 18a9e7596..7bc70324b 100644 --- a/internal/tools/epicissues/markdown.go +++ b/internal/tools/epicissues/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicissues import ( diff --git a/internal/tools/epicnotes/action_specs.go b/internal/tools/epicnotes/action_specs.go index 85e508241..25173b62a 100644 --- a/internal/tools/epicnotes/action_specs.go +++ b/internal/tools/epicnotes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicnotes import ( diff --git a/internal/tools/epicnotes/action_specs_test.go b/internal/tools/epicnotes/action_specs_test.go index 24fc5365e..8575df052 100644 --- a/internal/tools/epicnotes/action_specs_test.go +++ b/internal/tools/epicnotes/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for epic note actions. package epicnotes diff --git a/internal/tools/epicnotes/doc.go b/internal/tools/epicnotes/doc.go index ad3c34736..1bfa91d4b 100644 --- a/internal/tools/epicnotes/doc.go +++ b/internal/tools/epicnotes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package epicnotes implements MCP tools for GitLab epic note operations. // // The package wraps the GitLab Notes API for epic notes: diff --git a/internal/tools/epicnotes/epic_notes.go b/internal/tools/epicnotes/epic_notes.go index e828343bb..f234a12a9 100644 --- a/internal/tools/epicnotes/epic_notes.go +++ b/internal/tools/epicnotes/epic_notes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicnotes import ( diff --git a/internal/tools/epicnotes/epic_notes_test.go b/internal/tools/epicnotes/epic_notes_test.go index 1a36fd106..e8ec91514 100644 --- a/internal/tools/epicnotes/epic_notes_test.go +++ b/internal/tools/epicnotes/epic_notes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicnotes import ( diff --git a/internal/tools/epicnotes/markdown.go b/internal/tools/epicnotes/markdown.go index efbae021e..704346560 100644 --- a/internal/tools/epicnotes/markdown.go +++ b/internal/tools/epicnotes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicnotes import ( diff --git a/internal/tools/epicnotes/shapes.go b/internal/tools/epicnotes/shapes.go index c4af34247..78ba1798b 100644 --- a/internal/tools/epicnotes/shapes.go +++ b/internal/tools/epicnotes/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicnotes import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/epics/action_specs.go b/internal/tools/epics/action_specs.go index e028889db..90e9230bf 100644 --- a/internal/tools/epics/action_specs.go +++ b/internal/tools/epics/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epics import ( diff --git a/internal/tools/epics/action_specs_catalog_test.go b/internal/tools/epics/action_specs_catalog_test.go index d3de6a2f0..bce0cc6f9 100644 --- a/internal/tools/epics/action_specs_catalog_test.go +++ b/internal/tools/epics/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/epics/action_specs_test.go b/internal/tools/epics/action_specs_test.go index 45438bc3b..1c5f3ff2c 100644 --- a/internal/tools/epics/action_specs_test.go +++ b/internal/tools/epics/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for epic actions. package epics diff --git a/internal/tools/epics/doc.go b/internal/tools/epics/doc.go index 0de95dc9b..6e86413b1 100644 --- a/internal/tools/epics/doc.go +++ b/internal/tools/epics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package epics implements MCP tools for GitLab epic operations. // // The package wraps the GitLab Epics API: diff --git a/internal/tools/epics/epics.go b/internal/tools/epics/epics.go index 2195f95d6..075e16623 100644 --- a/internal/tools/epics/epics.go +++ b/internal/tools/epics/epics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epics import ( diff --git a/internal/tools/epics/epics_test.go b/internal/tools/epics/epics_test.go index c52adbca5..83e3f5f1c 100644 --- a/internal/tools/epics/epics_test.go +++ b/internal/tools/epics/epics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // epics_test.go contains unit tests for GitLab group epic operations. // Tests use httptest to mock the GitLab Epics API. package epics diff --git a/internal/tools/epics/markdown.go b/internal/tools/epics/markdown.go index cd5184120..99347235e 100644 --- a/internal/tools/epics/markdown.go +++ b/internal/tools/epics/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epics import ( diff --git a/internal/tools/epicworkitems/doc.go b/internal/tools/epicworkitems/doc.go index f2915c469..fe4babfc8 100644 --- a/internal/tools/epicworkitems/doc.go +++ b/internal/tools/epicworkitems/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package epicworkitems is the home for the shared GraphQL helpers used by // the epic-family sub-packages (epics, epicnotes, epicdiscussions, // epicissues). The exported functions in work_items.go (ResolveEpicGID, diff --git a/internal/tools/epicworkitems/work_items.go b/internal/tools/epicworkitems/work_items.go index fb6c10926..ffaec37e4 100644 --- a/internal/tools/epicworkitems/work_items.go +++ b/internal/tools/epicworkitems/work_items.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package epicworkitems import ( diff --git a/internal/tools/epicworkitems/work_items_test.go b/internal/tools/epicworkitems/work_items_test.go index 51ed8a8d5..43782c5ab 100644 --- a/internal/tools/epicworkitems/work_items_test.go +++ b/internal/tools/epicworkitems/work_items_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // work_items_test.go contains unit tests for the shared epic-backed work item // GraphQL helpers (ResolveEpicGID, ResolveWorkItemGID). package epicworkitems diff --git a/internal/tools/errortracking/doc.go b/internal/tools/errortracking/doc.go index 06cd8fbcb..6b3d597a7 100644 --- a/internal/tools/errortracking/doc.go +++ b/internal/tools/errortracking/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package errortracking implements MCP tools for GitLab error tracking // operations. // diff --git a/internal/tools/errortracking/error_tracking.go b/internal/tools/errortracking/error_tracking.go index c08421de7..4503bb18a 100644 --- a/internal/tools/errortracking/error_tracking.go +++ b/internal/tools/errortracking/error_tracking.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package errortracking import ( diff --git a/internal/tools/errortracking/error_tracking_test.go b/internal/tools/errortracking/error_tracking_test.go index c66ba5db7..314977ede 100644 --- a/internal/tools/errortracking/error_tracking_test.go +++ b/internal/tools/errortracking/error_tracking_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // error_tracking_test.go contains unit tests for the error tracking MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/errortracking/markdown.go b/internal/tools/errortracking/markdown.go index 0706e09ba..4a9e3a8cf 100644 --- a/internal/tools/errortracking/markdown.go +++ b/internal/tools/errortracking/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package errortracking import ( diff --git a/internal/tools/errortracking/markdown_test.go b/internal/tools/errortracking/markdown_test.go index 2de1e7ec3..8d04dd118 100644 --- a/internal/tools/errortracking/markdown_test.go +++ b/internal/tools/errortracking/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each error tracking // formatter writes: the settings card, the client key table, and the key card // whose public key and DSN are the values a reader copies into a client's diff --git a/internal/tools/events/action_specs.go b/internal/tools/events/action_specs.go index 33122498d..305d11722 100644 --- a/internal/tools/events/action_specs.go +++ b/internal/tools/events/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package events import ( diff --git a/internal/tools/events/action_specs_test.go b/internal/tools/events/action_specs_test.go index 9ffe2af7b..82f916d08 100644 --- a/internal/tools/events/action_specs_test.go +++ b/internal/tools/events/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the events ActionSpec // metadata, verifying every action carries a description, that both listings // serve the filter values GitLab filters on, and that an action GitLab would diff --git a/internal/tools/events/doc.go b/internal/tools/events/doc.go index b4b7db554..5b3047cc0 100644 --- a/internal/tools/events/doc.go +++ b/internal/tools/events/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package events implements MCP tools for GitLab event operations. // // The package wraps the GitLab Events API: diff --git a/internal/tools/events/events.go b/internal/tools/events/events.go index fac9caad8..0f9d170ce 100644 --- a/internal/tools/events/events.go +++ b/internal/tools/events/events.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package events import ( diff --git a/internal/tools/events/events_test.go b/internal/tools/events/events_test.go index 71d515f0b..96c631801 100644 --- a/internal/tools/events/events_test.go +++ b/internal/tools/events/events_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // events_test.go contains unit tests for the event MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/events/markdown.go b/internal/tools/events/markdown.go index 62fe2cfbc..851caf158 100644 --- a/internal/tools/events/markdown.go +++ b/internal/tools/events/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package events import ( diff --git a/internal/tools/externalstatuschecks/action_specs.go b/internal/tools/externalstatuschecks/action_specs.go index b97c85574..334efe785 100644 --- a/internal/tools/externalstatuschecks/action_specs.go +++ b/internal/tools/externalstatuschecks/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package externalstatuschecks import ( diff --git a/internal/tools/externalstatuschecks/action_specs_test.go b/internal/tools/externalstatuschecks/action_specs_test.go index 1aea0b367..ab24c4bb9 100644 --- a/internal/tools/externalstatuschecks/action_specs_test.go +++ b/internal/tools/externalstatuschecks/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the external status check [toolutil.ActionSpec] entries. package externalstatuschecks diff --git a/internal/tools/externalstatuschecks/doc.go b/internal/tools/externalstatuschecks/doc.go index 20873787e..c4d070bab 100644 --- a/internal/tools/externalstatuschecks/doc.go +++ b/internal/tools/externalstatuschecks/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package externalstatuschecks implements MCP tools for GitLab external status // check operations. // diff --git a/internal/tools/externalstatuschecks/external_status_checks.go b/internal/tools/externalstatuschecks/external_status_checks.go index 3588228d0..6bbc0b4bb 100644 --- a/internal/tools/externalstatuschecks/external_status_checks.go +++ b/internal/tools/externalstatuschecks/external_status_checks.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package externalstatuschecks import ( diff --git a/internal/tools/externalstatuschecks/external_status_checks_test.go b/internal/tools/externalstatuschecks/external_status_checks_test.go index 78c88978d..eff7a70d5 100644 --- a/internal/tools/externalstatuschecks/external_status_checks_test.go +++ b/internal/tools/externalstatuschecks/external_status_checks_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // external_status_checks_test.go contains unit tests for the external status // check MCP tool handlers. Tests use httptest to mock GitLab API responses and // verify success, validation, and error paths. diff --git a/internal/tools/externalstatuschecks/markdown.go b/internal/tools/externalstatuschecks/markdown.go index fd026d31f..e8e76d174 100644 --- a/internal/tools/externalstatuschecks/markdown.go +++ b/internal/tools/externalstatuschecks/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package externalstatuschecks import ( diff --git a/internal/tools/externalstatuschecks/markdown_test.go b/internal/tools/externalstatuschecks/markdown_test.go index e3fdfbca5..29faf9df1 100644 --- a/internal/tools/externalstatuschecks/markdown_test.go +++ b/internal/tools/externalstatuschecks/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for external status check Markdown // formatting functions. package externalstatuschecks diff --git a/internal/tools/featureflags/action_specs.go b/internal/tools/featureflags/action_specs.go index a3fe5f126..bb926a443 100644 --- a/internal/tools/featureflags/action_specs.go +++ b/internal/tools/featureflags/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package featureflags import ( diff --git a/internal/tools/featureflags/action_specs_catalog_test.go b/internal/tools/featureflags/action_specs_catalog_test.go index f370d7fb9..a18dbb0cf 100644 --- a/internal/tools/featureflags/action_specs_catalog_test.go +++ b/internal/tools/featureflags/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/featureflags/action_specs_test.go b/internal/tools/featureflags/action_specs_test.go index 8ab725cf6..bcbaa16f9 100644 --- a/internal/tools/featureflags/action_specs_test.go +++ b/internal/tools/featureflags/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go: mutation error paths and destructive confirmation. package featureflags diff --git a/internal/tools/featureflags/doc.go b/internal/tools/featureflags/doc.go index 5f5dd2cd3..479adb3d5 100644 --- a/internal/tools/featureflags/doc.go +++ b/internal/tools/featureflags/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package featureflags implements MCP tools for GitLab feature flag // operations. // diff --git a/internal/tools/featureflags/export_test.go b/internal/tools/featureflags/export_test.go index e851ea32c..717fec333 100644 --- a/internal/tools/featureflags/export_test.go +++ b/internal/tools/featureflags/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package featureflags // PublishedActionIDs is every canonical catalog ID this package hands a model: diff --git a/internal/tools/featureflags/feature_flags.go b/internal/tools/featureflags/feature_flags.go index 421cb7dc1..270280f77 100644 --- a/internal/tools/featureflags/feature_flags.go +++ b/internal/tools/featureflags/feature_flags.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package featureflags import ( diff --git a/internal/tools/featureflags/feature_flags_test.go b/internal/tools/featureflags/feature_flags_test.go index f24b66d74..20d8fbec6 100644 --- a/internal/tools/featureflags/feature_flags_test.go +++ b/internal/tools/featureflags/feature_flags_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // feature_flags_test.go contains unit tests for the feature flag MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/featureflags/markdown.go b/internal/tools/featureflags/markdown.go index 68fa66f9c..a2a6ed1ef 100644 --- a/internal/tools/featureflags/markdown.go +++ b/internal/tools/featureflags/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package featureflags import ( diff --git a/internal/tools/featureflags/markdown_test.go b/internal/tools/featureflags/markdown_test.go index 532bc4135..c4238324a 100644 --- a/internal/tools/featureflags/markdown_test.go +++ b/internal/tools/featureflags/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each feature flag // formatter writes: the flag card with its strategies as the nested collection // they are, and the list table. diff --git a/internal/tools/features/action_specs.go b/internal/tools/features/action_specs.go index 2d7f3b126..c20f8611a 100644 --- a/internal/tools/features/action_specs.go +++ b/internal/tools/features/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs.go holds what this package contributes to the canonical action // catalog. The specs themselves are declared in internal/tools/adminspecs, // which is the one place the gitlab_admin group is assembled; what stays here diff --git a/internal/tools/features/action_specs_test.go b/internal/tools/features/action_specs_test.go index 75dd0d5ba..44dc29342 100644 --- a/internal/tools/features/action_specs_test.go +++ b/internal/tools/features/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go covers the route this package contributes to the // canonical action catalog. The specs themselves live in // internal/tools/adminspecs and are tested there. diff --git a/internal/tools/features/doc.go b/internal/tools/features/doc.go index 1a36263da..6dc718337 100644 --- a/internal/tools/features/doc.go +++ b/internal/tools/features/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package features implements MCP tools for GitLab instance feature flag // toggles. // diff --git a/internal/tools/features/features.go b/internal/tools/features/features.go index 988643fce..c99f1e1ae 100644 --- a/internal/tools/features/features.go +++ b/internal/tools/features/features.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package features import ( diff --git a/internal/tools/features/features_test.go b/internal/tools/features/features_test.go index bcce1c297..47cd73b6e 100644 --- a/internal/tools/features/features_test.go +++ b/internal/tools/features/features_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // features_test.go contains unit tests for the GitLab feature MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/features/markdown.go b/internal/tools/features/markdown.go index 4410f5526..83549e219 100644 --- a/internal/tools/features/markdown.go +++ b/internal/tools/features/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package features import ( diff --git a/internal/tools/ffuserlists/action_specs.go b/internal/tools/ffuserlists/action_specs.go index ebae0c209..b4c2e5046 100644 --- a/internal/tools/ffuserlists/action_specs.go +++ b/internal/tools/ffuserlists/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package ffuserlists import ( diff --git a/internal/tools/ffuserlists/action_specs_test.go b/internal/tools/ffuserlists/action_specs_test.go index 98a6e539d..0ef4813ce 100644 --- a/internal/tools/ffuserlists/action_specs_test.go +++ b/internal/tools/ffuserlists/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for feature flag user list actions. package ffuserlists diff --git a/internal/tools/ffuserlists/doc.go b/internal/tools/ffuserlists/doc.go index 4bb6ebe68..a94446fd8 100644 --- a/internal/tools/ffuserlists/doc.go +++ b/internal/tools/ffuserlists/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package ffuserlists implements MCP tools for GitLab feature flag user list // operations. // diff --git a/internal/tools/ffuserlists/ff_user_lists.go b/internal/tools/ffuserlists/ff_user_lists.go index 2612102a7..34422d40f 100644 --- a/internal/tools/ffuserlists/ff_user_lists.go +++ b/internal/tools/ffuserlists/ff_user_lists.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package ffuserlists import ( diff --git a/internal/tools/ffuserlists/ff_user_lists_test.go b/internal/tools/ffuserlists/ff_user_lists_test.go index 4aa108e1e..e006caa2b 100644 --- a/internal/tools/ffuserlists/ff_user_lists_test.go +++ b/internal/tools/ffuserlists/ff_user_lists_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // ff_user_lists_test.go contains unit tests for the feature flag user list MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/ffuserlists/markdown.go b/internal/tools/ffuserlists/markdown.go index d5076ff73..da75694d6 100644 --- a/internal/tools/ffuserlists/markdown.go +++ b/internal/tools/ffuserlists/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package ffuserlists import ( diff --git a/internal/tools/ffuserlists/markdown_test.go b/internal/tools/ffuserlists/markdown_test.go index f86194eb5..bec808da5 100644 --- a/internal/tools/ffuserlists/markdown_test.go +++ b/internal/tools/ffuserlists/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each feature flag user // list formatter writes: the card one list renders as, and the table a page of // them renders as. diff --git a/internal/tools/files/action_specs.go b/internal/tools/files/action_specs.go index ed544a3af..3919edb55 100644 --- a/internal/tools/files/action_specs.go +++ b/internal/tools/files/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package files import ( diff --git a/internal/tools/files/action_specs_test.go b/internal/tools/files/action_specs_test.go index 7222c8e2e..176b8ae9a 100644 --- a/internal/tools/files/action_specs_test.go +++ b/internal/tools/files/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for repository file actions. package files diff --git a/internal/tools/files/doc.go b/internal/tools/files/doc.go index 60e0b938d..463a0d0b2 100644 --- a/internal/tools/files/doc.go +++ b/internal/tools/files/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package files implements MCP tools for GitLab repository file operations. // // The package wraps the GitLab Repository files API: diff --git a/internal/tools/files/files.go b/internal/tools/files/files.go index 2764fd508..6e8078ff9 100644 --- a/internal/tools/files/files.go +++ b/internal/tools/files/files.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package files import ( diff --git a/internal/tools/files/files_test.go b/internal/tools/files/files_test.go index d038276f7..550416d6d 100644 --- a/internal/tools/files/files_test.go +++ b/internal/tools/files/files_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // files_test.go contains unit tests for GitLab repository file operations // (get, create, update, delete, blame, metadata, raw). Tests use httptest to // mock the GitLab Repository Files API and verify success and error paths. diff --git a/internal/tools/files/markdown.go b/internal/tools/files/markdown.go index 5dce30fc0..b238606eb 100644 --- a/internal/tools/files/markdown.go +++ b/internal/tools/files/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package files import ( diff --git a/internal/tools/freezeperiods/action_specs.go b/internal/tools/freezeperiods/action_specs.go index 4aa5d86ca..1575e6d82 100644 --- a/internal/tools/freezeperiods/action_specs.go +++ b/internal/tools/freezeperiods/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package freezeperiods import ( diff --git a/internal/tools/freezeperiods/action_specs_catalog_test.go b/internal/tools/freezeperiods/action_specs_catalog_test.go index db0d9bc78..1869915fc 100644 --- a/internal/tools/freezeperiods/action_specs_catalog_test.go +++ b/internal/tools/freezeperiods/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds this package against the catalog: every // canonical action ID it publishes to a model, in an ActionSpec's // RelatedActions and in the hints its Markdown writes, must name an action the diff --git a/internal/tools/freezeperiods/action_specs_test.go b/internal/tools/freezeperiods/action_specs_test.go index 96847d4b4..aeeecdef3 100644 --- a/internal/tools/freezeperiods/action_specs_test.go +++ b/internal/tools/freezeperiods/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for deploy freeze period actions. package freezeperiods diff --git a/internal/tools/freezeperiods/doc.go b/internal/tools/freezeperiods/doc.go index a93b1814a..22c9761da 100644 --- a/internal/tools/freezeperiods/doc.go +++ b/internal/tools/freezeperiods/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package freezeperiods implements MCP tools for GitLab deploy freeze period // operations. // diff --git a/internal/tools/freezeperiods/freeze_periods.go b/internal/tools/freezeperiods/freeze_periods.go index a85cd6ff9..752558113 100644 --- a/internal/tools/freezeperiods/freeze_periods.go +++ b/internal/tools/freezeperiods/freeze_periods.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package freezeperiods import ( diff --git a/internal/tools/freezeperiods/freeze_periods_test.go b/internal/tools/freezeperiods/freeze_periods_test.go index f1f3b545b..bb8122554 100644 --- a/internal/tools/freezeperiods/freeze_periods_test.go +++ b/internal/tools/freezeperiods/freeze_periods_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // freeze_periods_test.go contains unit tests for the freeze period MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/freezeperiods/markdown.go b/internal/tools/freezeperiods/markdown.go index c4d2e0eea..a50c6280f 100644 --- a/internal/tools/freezeperiods/markdown.go +++ b/internal/tools/freezeperiods/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package freezeperiods import ( diff --git a/internal/tools/geo/action_specs.go b/internal/tools/geo/action_specs.go index a1f5186d2..8c6db1799 100644 --- a/internal/tools/geo/action_specs.go +++ b/internal/tools/geo/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package geo import ( diff --git a/internal/tools/geo/action_specs_test.go b/internal/tools/geo/action_specs_test.go index fdd9062de..3265b960a 100644 --- a/internal/tools/geo/action_specs_test.go +++ b/internal/tools/geo/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for Geo site actions. package geo diff --git a/internal/tools/geo/doc.go b/internal/tools/geo/doc.go index cea4e6dd4..7343a22a7 100644 --- a/internal/tools/geo/doc.go +++ b/internal/tools/geo/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package geo implements MCP tools for GitLab Geo site management. // // The package wraps the GitLab Geo nodes API: diff --git a/internal/tools/geo/geo.go b/internal/tools/geo/geo.go index dd677999f..335ce0cfb 100644 --- a/internal/tools/geo/geo.go +++ b/internal/tools/geo/geo.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package geo import ( diff --git a/internal/tools/geo/geo_test.go b/internal/tools/geo/geo_test.go index 124458604..d93d82b4b 100644 --- a/internal/tools/geo/geo_test.go +++ b/internal/tools/geo/geo_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // geo_test.go contains unit tests for GitLab Geo site operations. // Tests use httptest to mock the GitLab Geo API. package geo diff --git a/internal/tools/geo/markdown.go b/internal/tools/geo/markdown.go index 456d9fd5a..43c13a18e 100644 --- a/internal/tools/geo/markdown.go +++ b/internal/tools/geo/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package geo import ( diff --git a/internal/tools/geo/sent_shapes.go b/internal/tools/geo/sent_shapes.go index 611c417ed..09b996d03 100644 --- a/internal/tools/geo/sent_shapes.go +++ b/internal/tools/geo/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package geo import ( diff --git a/internal/tools/geo/sent_shapes_test.go b/internal/tools/geo/sent_shapes_test.go index 7a0aa408c..3f2d4f934 100644 --- a/internal/tools/geo/sent_shapes_test.go +++ b/internal/tools/geo/sent_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sent_shapes_test.go covers the readers that take what a Geo answer carries // beside client-go's decode, and the decomposition of the flat status keys // into the replicable matrix. diff --git a/internal/tools/gitignoretemplates/action_specs.go b/internal/tools/gitignoretemplates/action_specs.go index 179940f78..f0d8d217b 100644 --- a/internal/tools/gitignoretemplates/action_specs.go +++ b/internal/tools/gitignoretemplates/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitignoretemplates import ( diff --git a/internal/tools/gitignoretemplates/action_specs_test.go b/internal/tools/gitignoretemplates/action_specs_test.go index 7c4c76817..7e4d6cac0 100644 --- a/internal/tools/gitignoretemplates/action_specs_test.go +++ b/internal/tools/gitignoretemplates/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the published-ID assertions for the .gitignore // template actions. // diff --git a/internal/tools/gitignoretemplates/doc.go b/internal/tools/gitignoretemplates/doc.go index 579412158..74855cbb7 100644 --- a/internal/tools/gitignoretemplates/doc.go +++ b/internal/tools/gitignoretemplates/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package gitignoretemplates implements MCP tools for GitLab gitignore // template operations. // diff --git a/internal/tools/gitignoretemplates/gitignore_templates.go b/internal/tools/gitignoretemplates/gitignore_templates.go index c3b960789..6940bf63c 100644 --- a/internal/tools/gitignoretemplates/gitignore_templates.go +++ b/internal/tools/gitignoretemplates/gitignore_templates.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitignoretemplates import ( diff --git a/internal/tools/gitignoretemplates/gitignore_templates_test.go b/internal/tools/gitignoretemplates/gitignore_templates_test.go index 66f2e1b5d..ca35df03a 100644 --- a/internal/tools/gitignoretemplates/gitignore_templates_test.go +++ b/internal/tools/gitignoretemplates/gitignore_templates_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // gitignore_templates_test.go contains unit tests for the gitignore template MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/gitignoretemplates/markdown.go b/internal/tools/gitignoretemplates/markdown.go index 27dacf9d7..df05a42b8 100644 --- a/internal/tools/gitignoretemplates/markdown.go +++ b/internal/tools/gitignoretemplates/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package gitignoretemplates import ( diff --git a/internal/tools/groupanalytics/action_specs.go b/internal/tools/groupanalytics/action_specs.go index e95f7dc78..24cbe79fc 100644 --- a/internal/tools/groupanalytics/action_specs.go +++ b/internal/tools/groupanalytics/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupanalytics import ( diff --git a/internal/tools/groupanalytics/action_specs_test.go b/internal/tools/groupanalytics/action_specs_test.go index eb11b96e6..583f8939e 100644 --- a/internal/tools/groupanalytics/action_specs_test.go +++ b/internal/tools/groupanalytics/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the group analytics tool // closures in ActionSpecs routes with a mock GitLab API. package groupanalytics diff --git a/internal/tools/groupanalytics/doc.go b/internal/tools/groupanalytics/doc.go index 058fe07cd..f88ce58e2 100644 --- a/internal/tools/groupanalytics/doc.go +++ b/internal/tools/groupanalytics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupanalytics implements MCP tools for GitLab group analytics. // // The package wraps GitLab GraphQL group analytics fields: diff --git a/internal/tools/groupanalytics/group_analytics.go b/internal/tools/groupanalytics/group_analytics.go index 0fbf243d3..df97248b5 100644 --- a/internal/tools/groupanalytics/group_analytics.go +++ b/internal/tools/groupanalytics/group_analytics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupanalytics import ( diff --git a/internal/tools/groupanalytics/group_analytics_test.go b/internal/tools/groupanalytics/group_analytics_test.go index 76fb5ea0b..c93025003 100644 --- a/internal/tools/groupanalytics/group_analytics_test.go +++ b/internal/tools/groupanalytics/group_analytics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_analytics_test.go contains unit tests for GitLab group analytics // operations. Tests use httptest to mock the GitLab Group Analytics API. package groupanalytics diff --git a/internal/tools/groupanalytics/markdown.go b/internal/tools/groupanalytics/markdown.go index 2fcec94c5..b95f2bf78 100644 --- a/internal/tools/groupanalytics/markdown.go +++ b/internal/tools/groupanalytics/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupanalytics import ( diff --git a/internal/tools/groupboards/action_specs.go b/internal/tools/groupboards/action_specs.go index d5a22058c..19b2db4de 100644 --- a/internal/tools/groupboards/action_specs.go +++ b/internal/tools/groupboards/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupboards import ( diff --git a/internal/tools/groupboards/action_specs_test.go b/internal/tools/groupboards/action_specs_test.go index 692432975..0526db14f 100644 --- a/internal/tools/groupboards/action_specs_test.go +++ b/internal/tools/groupboards/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for group issue board actions. package groupboards diff --git a/internal/tools/groupboards/doc.go b/internal/tools/groupboards/doc.go index 2a98a3954..bee82f970 100644 --- a/internal/tools/groupboards/doc.go +++ b/internal/tools/groupboards/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupboards implements MCP tools for GitLab group issue board // operations. // diff --git a/internal/tools/groupboards/group_boards.go b/internal/tools/groupboards/group_boards.go index 9a86b6bef..d7f85ae5f 100644 --- a/internal/tools/groupboards/group_boards.go +++ b/internal/tools/groupboards/group_boards.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupboards import ( diff --git a/internal/tools/groupboards/group_boards_test.go b/internal/tools/groupboards/group_boards_test.go index 2647ed26b..76ff64dcd 100644 --- a/internal/tools/groupboards/group_boards_test.go +++ b/internal/tools/groupboards/group_boards_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_boards_test.go contains unit tests for the group issue board MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/groupboards/markdown.go b/internal/tools/groupboards/markdown.go index 77328acd7..c411f132d 100644 --- a/internal/tools/groupboards/markdown.go +++ b/internal/tools/groupboards/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupboards import ( diff --git a/internal/tools/groupboards/shapes.go b/internal/tools/groupboards/shapes.go index e40f7a224..becc45f3c 100644 --- a/internal/tools/groupboards/shapes.go +++ b/internal/tools/groupboards/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupboards import ( diff --git a/internal/tools/groupcredentials/action_specs.go b/internal/tools/groupcredentials/action_specs.go index b49b4e6d9..7d0028b3c 100644 --- a/internal/tools/groupcredentials/action_specs.go +++ b/internal/tools/groupcredentials/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupcredentials import ( diff --git a/internal/tools/groupcredentials/action_specs_test.go b/internal/tools/groupcredentials/action_specs_test.go index 25df49f32..82ed2ebe9 100644 --- a/internal/tools/groupcredentials/action_specs_test.go +++ b/internal/tools/groupcredentials/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for group credential actions. package groupcredentials diff --git a/internal/tools/groupcredentials/doc.go b/internal/tools/groupcredentials/doc.go index 0df8184d8..b33818f2b 100644 --- a/internal/tools/groupcredentials/doc.go +++ b/internal/tools/groupcredentials/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupcredentials implements MCP tools for GitLab group credential // inventory operations. // diff --git a/internal/tools/groupcredentials/group_credentials.go b/internal/tools/groupcredentials/group_credentials.go index b06e28c57..d6d796116 100644 --- a/internal/tools/groupcredentials/group_credentials.go +++ b/internal/tools/groupcredentials/group_credentials.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupcredentials import ( diff --git a/internal/tools/groupcredentials/group_credentials_test.go b/internal/tools/groupcredentials/group_credentials_test.go index d1dbd6331..c413acdfa 100644 --- a/internal/tools/groupcredentials/group_credentials_test.go +++ b/internal/tools/groupcredentials/group_credentials_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_credentials_test.go contains unit tests for GitLab group credential // storage operations. Tests use httptest to mock the GitLab API. package groupcredentials diff --git a/internal/tools/groupcredentials/markdown.go b/internal/tools/groupcredentials/markdown.go index a1c2e3dbd..4732065eb 100644 --- a/internal/tools/groupcredentials/markdown.go +++ b/internal/tools/groupcredentials/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupcredentials import ( diff --git a/internal/tools/groupcredentials/markdown_test.go b/internal/tools/groupcredentials/markdown_test.go index f6921ee5f..500fa9f8d 100644 --- a/internal/tools/groupcredentials/markdown_test.go +++ b/internal/tools/groupcredentials/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for group credential Markdown // formatting functions. package groupcredentials diff --git a/internal/tools/groupepicboards/action_specs.go b/internal/tools/groupepicboards/action_specs.go index 93a9855bd..024a3cab7 100644 --- a/internal/tools/groupepicboards/action_specs.go +++ b/internal/tools/groupepicboards/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupepicboards import ( diff --git a/internal/tools/groupepicboards/action_specs_test.go b/internal/tools/groupepicboards/action_specs_test.go index 313fccbd6..3edadcde7 100644 --- a/internal/tools/groupepicboards/action_specs_test.go +++ b/internal/tools/groupepicboards/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group epic board [toolutil.ActionSpec] entries. package groupepicboards diff --git a/internal/tools/groupepicboards/doc.go b/internal/tools/groupepicboards/doc.go index 80146abc1..ace84ff3d 100644 --- a/internal/tools/groupepicboards/doc.go +++ b/internal/tools/groupepicboards/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupepicboards implements MCP tools for GitLab group epic board // operations. // diff --git a/internal/tools/groupepicboards/group_epic_boards.go b/internal/tools/groupepicboards/group_epic_boards.go index 1ae0cc8d6..50250edb3 100644 --- a/internal/tools/groupepicboards/group_epic_boards.go +++ b/internal/tools/groupepicboards/group_epic_boards.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupepicboards import ( diff --git a/internal/tools/groupepicboards/group_epic_boards_test.go b/internal/tools/groupepicboards/group_epic_boards_test.go index bff4b29be..a3c53f9e8 100644 --- a/internal/tools/groupepicboards/group_epic_boards_test.go +++ b/internal/tools/groupepicboards/group_epic_boards_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_epic_boards_test.go validates the List and Get handlers for GitLab // group epic board operations, covering success paths, input validation // (missing group_id, missing/zero board_id), API error responses and which of diff --git a/internal/tools/groupepicboards/markdown.go b/internal/tools/groupepicboards/markdown.go index 05e4e1ad3..bc4c6e1b3 100644 --- a/internal/tools/groupepicboards/markdown.go +++ b/internal/tools/groupepicboards/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupepicboards import ( diff --git a/internal/tools/groupepicboards/shapes.go b/internal/tools/groupepicboards/shapes.go index 7a007f42e..72c862eb2 100644 --- a/internal/tools/groupepicboards/shapes.go +++ b/internal/tools/groupepicboards/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupepicboards import ( diff --git a/internal/tools/groupepicboards/shapes_test.go b/internal/tools/groupepicboards/shapes_test.go index 6c7f647e3..6216636c3 100644 --- a/internal/tools/groupepicboards/shapes_test.go +++ b/internal/tools/groupepicboards/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go validates the documented group-epic-board sub-object mirrors // (group, label details with the raw-superset fields, and board list label // scope), covering both the fully-populated and nil branches of every diff --git a/internal/tools/groupimportexport/action_specs.go b/internal/tools/groupimportexport/action_specs.go index bda0ccd41..c16f0f6a4 100644 --- a/internal/tools/groupimportexport/action_specs.go +++ b/internal/tools/groupimportexport/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupimportexport import ( diff --git a/internal/tools/groupimportexport/action_specs_test.go b/internal/tools/groupimportexport/action_specs_test.go index 7479951d0..5dd17a602 100644 --- a/internal/tools/groupimportexport/action_specs_test.go +++ b/internal/tools/groupimportexport/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the group import/export action IDs this package // publishes against the catalog the server really builds. It is an external // test package because internal/tools imports this one, so only a package diff --git a/internal/tools/groupimportexport/doc.go b/internal/tools/groupimportexport/doc.go index 020522c01..1a962667d 100644 --- a/internal/tools/groupimportexport/doc.go +++ b/internal/tools/groupimportexport/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupimportexport implements MCP tools for GitLab group import and // export operations. // diff --git a/internal/tools/groupimportexport/export_test.go b/internal/tools/groupimportexport/export_test.go index ce4ad1fab..36e1c2f11 100644 --- a/internal/tools/groupimportexport/export_test.go +++ b/internal/tools/groupimportexport/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupimportexport // PublishedActionIDs is every canonical catalog action ID this package names diff --git a/internal/tools/groupimportexport/group_import_export.go b/internal/tools/groupimportexport/group_import_export.go index a991d2154..6a7e83eab 100644 --- a/internal/tools/groupimportexport/group_import_export.go +++ b/internal/tools/groupimportexport/group_import_export.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupimportexport import ( diff --git a/internal/tools/groupimportexport/group_import_export_test.go b/internal/tools/groupimportexport/group_import_export_test.go index 45e257ffe..7b14f558b 100644 --- a/internal/tools/groupimportexport/group_import_export_test.go +++ b/internal/tools/groupimportexport/group_import_export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_import_export_test.go contains unit tests for the group import/export MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/groupimportexport/markdown.go b/internal/tools/groupimportexport/markdown.go index 92b44963a..a294bde5f 100644 --- a/internal/tools/groupimportexport/markdown.go +++ b/internal/tools/groupimportexport/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupimportexport import ( diff --git a/internal/tools/groupimportexport/markdown_test.go b/internal/tools/groupimportexport/markdown_test.go index 487ca7421..bd635dd01 100644 --- a/internal/tools/groupimportexport/markdown_test.go +++ b/internal/tools/groupimportexport/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the group import/export Markdown // formatters: the two one-line confirmations and the download card. // diff --git a/internal/tools/groupiterations/action_specs.go b/internal/tools/groupiterations/action_specs.go index 7bf7c56af..51a7a7254 100644 --- a/internal/tools/groupiterations/action_specs.go +++ b/internal/tools/groupiterations/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupiterations import ( diff --git a/internal/tools/groupiterations/doc.go b/internal/tools/groupiterations/doc.go index 9a7fbe7ad..3adcf982a 100644 --- a/internal/tools/groupiterations/doc.go +++ b/internal/tools/groupiterations/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupiterations implements MCP tools for GitLab group iteration // operations. // diff --git a/internal/tools/groupiterations/group_iterations.go b/internal/tools/groupiterations/group_iterations.go index 403105b70..0e363809d 100644 --- a/internal/tools/groupiterations/group_iterations.go +++ b/internal/tools/groupiterations/group_iterations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupiterations import ( diff --git a/internal/tools/groupiterations/group_iterations_test.go b/internal/tools/groupiterations/group_iterations_test.go index 36ff7ccee..961873451 100644 --- a/internal/tools/groupiterations/group_iterations_test.go +++ b/internal/tools/groupiterations/group_iterations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_iterations_test.go contains unit tests for GitLab group iteration // operations. Tests use httptest to mock the GitLab Group Iterations API. package groupiterations diff --git a/internal/tools/groupiterations/markdown.go b/internal/tools/groupiterations/markdown.go index 3968f6579..98efeb401 100644 --- a/internal/tools/groupiterations/markdown.go +++ b/internal/tools/groupiterations/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupiterations import ( diff --git a/internal/tools/grouplabels/action_specs.go b/internal/tools/grouplabels/action_specs.go index 7c1b8b2ab..055727150 100644 --- a/internal/tools/grouplabels/action_specs.go +++ b/internal/tools/grouplabels/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grouplabels import ( diff --git a/internal/tools/grouplabels/action_specs_catalog_test.go b/internal/tools/grouplabels/action_specs_catalog_test.go index fa423daaf..200a50a39 100644 --- a/internal/tools/grouplabels/action_specs_catalog_test.go +++ b/internal/tools/grouplabels/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/grouplabels/action_specs_test.go b/internal/tools/grouplabels/action_specs_test.go index cd2979ddc..50a7a7502 100644 --- a/internal/tools/grouplabels/action_specs_test.go +++ b/internal/tools/grouplabels/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go: mutation error paths and destructive confirmation. package grouplabels diff --git a/internal/tools/grouplabels/doc.go b/internal/tools/grouplabels/doc.go index 14e5845fc..0b7f790cf 100644 --- a/internal/tools/grouplabels/doc.go +++ b/internal/tools/grouplabels/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package grouplabels implements MCP tools for GitLab group label operations. // // The package wraps group-scoped GitLab Labels API operations: diff --git a/internal/tools/grouplabels/group_labels.go b/internal/tools/grouplabels/group_labels.go index 84f424730..5459f3111 100644 --- a/internal/tools/grouplabels/group_labels.go +++ b/internal/tools/grouplabels/group_labels.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grouplabels import ( diff --git a/internal/tools/grouplabels/group_labels_test.go b/internal/tools/grouplabels/group_labels_test.go index 7f4ba4728..b21cddc2f 100644 --- a/internal/tools/grouplabels/group_labels_test.go +++ b/internal/tools/grouplabels/group_labels_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_labels_test.go contains unit tests for GitLab group label operations. // Tests use httptest to mock the GitLab GroupLabels API. package grouplabels diff --git a/internal/tools/grouplabels/markdown.go b/internal/tools/grouplabels/markdown.go index 337ba6bc6..bd27c5808 100644 --- a/internal/tools/grouplabels/markdown.go +++ b/internal/tools/grouplabels/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grouplabels import ( diff --git a/internal/tools/groupldap/action_specs.go b/internal/tools/groupldap/action_specs.go index 896cf1fc2..872fa1388 100644 --- a/internal/tools/groupldap/action_specs.go +++ b/internal/tools/groupldap/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupldap import ( diff --git a/internal/tools/groupldap/action_specs_test.go b/internal/tools/groupldap/action_specs_test.go index 32858d40f..5d21fe843 100644 --- a/internal/tools/groupldap/action_specs_test.go +++ b/internal/tools/groupldap/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group LDAP [toolutil.ActionSpec] entries. package groupldap diff --git a/internal/tools/groupldap/doc.go b/internal/tools/groupldap/doc.go index fb65b8e1a..1af97fb54 100644 --- a/internal/tools/groupldap/doc.go +++ b/internal/tools/groupldap/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupldap implements MCP tools for GitLab group LDAP link // operations. // diff --git a/internal/tools/groupldap/group_ldap.go b/internal/tools/groupldap/group_ldap.go index 7f9d0aab4..8be6211b3 100644 --- a/internal/tools/groupldap/group_ldap.go +++ b/internal/tools/groupldap/group_ldap.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupldap import ( diff --git a/internal/tools/groupldap/group_ldap_test.go b/internal/tools/groupldap/group_ldap_test.go index ec775d6a6..64500d86f 100644 --- a/internal/tools/groupldap/group_ldap_test.go +++ b/internal/tools/groupldap/group_ldap_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_ldap_test.go contains unit tests for the GitLab group LDAP link MCP tool handlers. package groupldap diff --git a/internal/tools/groupldap/markdown.go b/internal/tools/groupldap/markdown.go index c96d370b7..7fa72a464 100644 --- a/internal/tools/groupldap/markdown.go +++ b/internal/tools/groupldap/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupldap import ( diff --git a/internal/tools/groupmarkdownuploads/action_specs.go b/internal/tools/groupmarkdownuploads/action_specs.go index cb6458d89..9c0f7e150 100644 --- a/internal/tools/groupmarkdownuploads/action_specs.go +++ b/internal/tools/groupmarkdownuploads/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmarkdownuploads import ( diff --git a/internal/tools/groupmarkdownuploads/action_specs_catalog_test.go b/internal/tools/groupmarkdownuploads/action_specs_catalog_test.go index b2b0a3ed1..6341f5b3a 100644 --- a/internal/tools/groupmarkdownuploads/action_specs_catalog_test.go +++ b/internal/tools/groupmarkdownuploads/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds this package against the catalog: every // canonical action ID it publishes to a model, in an ActionSpec's // RelatedActions and in the hints its Markdown writes, must name an action the diff --git a/internal/tools/groupmarkdownuploads/action_specs_test.go b/internal/tools/groupmarkdownuploads/action_specs_test.go index 3c0732643..d0ee99ac1 100644 --- a/internal/tools/groupmarkdownuploads/action_specs_test.go +++ b/internal/tools/groupmarkdownuploads/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for group markdown upload actions. package groupmarkdownuploads diff --git a/internal/tools/groupmarkdownuploads/doc.go b/internal/tools/groupmarkdownuploads/doc.go index 1a2f7b120..8f269b9ce 100644 --- a/internal/tools/groupmarkdownuploads/doc.go +++ b/internal/tools/groupmarkdownuploads/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupmarkdownuploads implements MCP tools for GitLab group Markdown // upload operations. // diff --git a/internal/tools/groupmarkdownuploads/group_markdown_uploads.go b/internal/tools/groupmarkdownuploads/group_markdown_uploads.go index d01329832..00ea7355a 100644 --- a/internal/tools/groupmarkdownuploads/group_markdown_uploads.go +++ b/internal/tools/groupmarkdownuploads/group_markdown_uploads.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmarkdownuploads import ( diff --git a/internal/tools/groupmarkdownuploads/group_markdown_uploads_test.go b/internal/tools/groupmarkdownuploads/group_markdown_uploads_test.go index 5f8e6518e..05164861d 100644 --- a/internal/tools/groupmarkdownuploads/group_markdown_uploads_test.go +++ b/internal/tools/groupmarkdownuploads/group_markdown_uploads_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_markdown_uploads_test.go contains unit tests for the groupmarkdownuploads MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/groupmarkdownuploads/markdown.go b/internal/tools/groupmarkdownuploads/markdown.go index c7572cd1d..a207cf9a3 100644 --- a/internal/tools/groupmarkdownuploads/markdown.go +++ b/internal/tools/groupmarkdownuploads/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmarkdownuploads import ( diff --git a/internal/tools/groupmarkdownuploads/markdown_test.go b/internal/tools/groupmarkdownuploads/markdown_test.go index e12ab1ff6..4c1af6fff 100644 --- a/internal/tools/groupmarkdownuploads/markdown_test.go +++ b/internal/tools/groupmarkdownuploads/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the group markdown upload list // formatter. // diff --git a/internal/tools/groupmembers/action_specs.go b/internal/tools/groupmembers/action_specs.go index d6a3ce7b1..3949f74f8 100644 --- a/internal/tools/groupmembers/action_specs.go +++ b/internal/tools/groupmembers/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmembers import ( diff --git a/internal/tools/groupmembers/action_specs_catalog_test.go b/internal/tools/groupmembers/action_specs_catalog_test.go index b2373824e..1e90e0907 100644 --- a/internal/tools/groupmembers/action_specs_catalog_test.go +++ b/internal/tools/groupmembers/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the canonical action IDs this package // publishes against the catalog the server builds. // diff --git a/internal/tools/groupmembers/action_specs_test.go b/internal/tools/groupmembers/action_specs_test.go index 3a448b3de..7ee1f4a30 100644 --- a/internal/tools/groupmembers/action_specs_test.go +++ b/internal/tools/groupmembers/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for group member actions. package groupmembers diff --git a/internal/tools/groupmembers/doc.go b/internal/tools/groupmembers/doc.go index 0970c148f..3af328264 100644 --- a/internal/tools/groupmembers/doc.go +++ b/internal/tools/groupmembers/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupmembers implements MCP tools for GitLab group member // operations. // diff --git a/internal/tools/groupmembers/export_test.go b/internal/tools/groupmembers/export_test.go index 22abc137c..67e9fd266 100644 --- a/internal/tools/groupmembers/export_test.go +++ b/internal/tools/groupmembers/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmembers // PublishedActionIDs is every canonical action ID this package hands a model: diff --git a/internal/tools/groupmembers/group_members.go b/internal/tools/groupmembers/group_members.go index 2d195b32c..89c09827b 100644 --- a/internal/tools/groupmembers/group_members.go +++ b/internal/tools/groupmembers/group_members.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmembers import ( diff --git a/internal/tools/groupmembers/group_members_test.go b/internal/tools/groupmembers/group_members_test.go index 774854bc5..89181503c 100644 --- a/internal/tools/groupmembers/group_members_test.go +++ b/internal/tools/groupmembers/group_members_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_members_test.go contains unit tests for the group member MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/groupmembers/markdown.go b/internal/tools/groupmembers/markdown.go index 9bf22e6d4..e3c926185 100644 --- a/internal/tools/groupmembers/markdown.go +++ b/internal/tools/groupmembers/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmembers import ( diff --git a/internal/tools/groupmembers/markdown_test.go b/internal/tools/groupmembers/markdown_test.go index d5b9f9819..64952a53f 100644 --- a/internal/tools/groupmembers/markdown_test.go +++ b/internal/tools/groupmembers/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the group-member Markdown // formatters (billable members and billable memberships). package groupmembers diff --git a/internal/tools/groupmilestones/action_specs.go b/internal/tools/groupmilestones/action_specs.go index b3de13d75..13e84525b 100644 --- a/internal/tools/groupmilestones/action_specs.go +++ b/internal/tools/groupmilestones/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmilestones import ( diff --git a/internal/tools/groupmilestones/action_specs_catalog_test.go b/internal/tools/groupmilestones/action_specs_catalog_test.go index db4199eed..3a702e985 100644 --- a/internal/tools/groupmilestones/action_specs_catalog_test.go +++ b/internal/tools/groupmilestones/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/groupmilestones/action_specs_test.go b/internal/tools/groupmilestones/action_specs_test.go index 77986181f..ec35fee14 100644 --- a/internal/tools/groupmilestones/action_specs_test.go +++ b/internal/tools/groupmilestones/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go: mutation error paths and destructive confirmation. package groupmilestones diff --git a/internal/tools/groupmilestones/doc.go b/internal/tools/groupmilestones/doc.go index ef250cd7b..749f2504a 100644 --- a/internal/tools/groupmilestones/doc.go +++ b/internal/tools/groupmilestones/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupmilestones implements MCP tools for GitLab group milestone // operations. // diff --git a/internal/tools/groupmilestones/group_milestones.go b/internal/tools/groupmilestones/group_milestones.go index 136a30d37..5db259c05 100644 --- a/internal/tools/groupmilestones/group_milestones.go +++ b/internal/tools/groupmilestones/group_milestones.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmilestones import ( diff --git a/internal/tools/groupmilestones/group_milestones_test.go b/internal/tools/groupmilestones/group_milestones_test.go index c055478b9..68191f4ff 100644 --- a/internal/tools/groupmilestones/group_milestones_test.go +++ b/internal/tools/groupmilestones/group_milestones_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_milestones_test.go contains unit tests for GitLab group milestone operations. // Tests use httptest to mock the GitLab GroupMilestones API. package groupmilestones diff --git a/internal/tools/groupmilestones/markdown.go b/internal/tools/groupmilestones/markdown.go index ca99a1bd9..3409e6d18 100644 --- a/internal/tools/groupmilestones/markdown.go +++ b/internal/tools/groupmilestones/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupmilestones import ( diff --git a/internal/tools/groupprotectedbranches/action_specs.go b/internal/tools/groupprotectedbranches/action_specs.go index 58bcb80a8..50e165be1 100644 --- a/internal/tools/groupprotectedbranches/action_specs.go +++ b/internal/tools/groupprotectedbranches/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupprotectedbranches import ( diff --git a/internal/tools/groupprotectedbranches/action_specs_test.go b/internal/tools/groupprotectedbranches/action_specs_test.go index c95afa5e7..692263d46 100644 --- a/internal/tools/groupprotectedbranches/action_specs_test.go +++ b/internal/tools/groupprotectedbranches/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group protected branch [toolutil.ActionSpec] entries. package groupprotectedbranches diff --git a/internal/tools/groupprotectedbranches/doc.go b/internal/tools/groupprotectedbranches/doc.go index c63ebef9f..ab8555b44 100644 --- a/internal/tools/groupprotectedbranches/doc.go +++ b/internal/tools/groupprotectedbranches/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupprotectedbranches implements MCP tools for GitLab group // protected branch operations. // diff --git a/internal/tools/groupprotectedbranches/group_protected_branches.go b/internal/tools/groupprotectedbranches/group_protected_branches.go index 11ab31089..2c263c47c 100644 --- a/internal/tools/groupprotectedbranches/group_protected_branches.go +++ b/internal/tools/groupprotectedbranches/group_protected_branches.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupprotectedbranches import ( diff --git a/internal/tools/groupprotectedbranches/group_protected_branches_test.go b/internal/tools/groupprotectedbranches/group_protected_branches_test.go index a998cf9e4..0ed8aadf0 100644 --- a/internal/tools/groupprotectedbranches/group_protected_branches_test.go +++ b/internal/tools/groupprotectedbranches/group_protected_branches_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_protected_branches_test.go contains unit tests for the GitLab group protected branch MCP tool handlers. package groupprotectedbranches diff --git a/internal/tools/groupprotectedbranches/markdown.go b/internal/tools/groupprotectedbranches/markdown.go index 32fb41cb0..8fe84226a 100644 --- a/internal/tools/groupprotectedbranches/markdown.go +++ b/internal/tools/groupprotectedbranches/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupprotectedbranches import ( diff --git a/internal/tools/groupprotectedenvs/action_specs.go b/internal/tools/groupprotectedenvs/action_specs.go index 464e3bfbf..ad0878865 100644 --- a/internal/tools/groupprotectedenvs/action_specs.go +++ b/internal/tools/groupprotectedenvs/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupprotectedenvs import ( diff --git a/internal/tools/groupprotectedenvs/action_specs_catalog_test.go b/internal/tools/groupprotectedenvs/action_specs_catalog_test.go index 888db3132..0c2b7b6d7 100644 --- a/internal/tools/groupprotectedenvs/action_specs_catalog_test.go +++ b/internal/tools/groupprotectedenvs/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/groupprotectedenvs/action_specs_test.go b/internal/tools/groupprotectedenvs/action_specs_test.go index 7e2900da8..e2f2a1826 100644 --- a/internal/tools/groupprotectedenvs/action_specs_test.go +++ b/internal/tools/groupprotectedenvs/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group protected environment [toolutil.ActionSpec] entries. package groupprotectedenvs diff --git a/internal/tools/groupprotectedenvs/doc.go b/internal/tools/groupprotectedenvs/doc.go index 4639be737..0707cb878 100644 --- a/internal/tools/groupprotectedenvs/doc.go +++ b/internal/tools/groupprotectedenvs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupprotectedenvs implements MCP tools for GitLab group protected // environment operations. // diff --git a/internal/tools/groupprotectedenvs/group_protected_envs.go b/internal/tools/groupprotectedenvs/group_protected_envs.go index 9aa16ba41..01a4b139c 100644 --- a/internal/tools/groupprotectedenvs/group_protected_envs.go +++ b/internal/tools/groupprotectedenvs/group_protected_envs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupprotectedenvs import ( diff --git a/internal/tools/groupprotectedenvs/group_protected_envs_test.go b/internal/tools/groupprotectedenvs/group_protected_envs_test.go index 6b076b3b2..80b1ba2bc 100644 --- a/internal/tools/groupprotectedenvs/group_protected_envs_test.go +++ b/internal/tools/groupprotectedenvs/group_protected_envs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_protected_envs_test.go contains unit tests for the GitLab group protected environment MCP tool handlers. package groupprotectedenvs diff --git a/internal/tools/groupprotectedenvs/markdown.go b/internal/tools/groupprotectedenvs/markdown.go index 02f2d217b..1cda681ed 100644 --- a/internal/tools/groupprotectedenvs/markdown.go +++ b/internal/tools/groupprotectedenvs/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupprotectedenvs import ( diff --git a/internal/tools/grouprelationsexport/action_specs.go b/internal/tools/grouprelationsexport/action_specs.go index 8afcbe6f9..e5aee9c64 100644 --- a/internal/tools/grouprelationsexport/action_specs.go +++ b/internal/tools/grouprelationsexport/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grouprelationsexport import ( diff --git a/internal/tools/grouprelationsexport/action_specs_test.go b/internal/tools/grouprelationsexport/action_specs_test.go index a07f5fd67..6a38edafc 100644 --- a/internal/tools/grouprelationsexport/action_specs_test.go +++ b/internal/tools/grouprelationsexport/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group relations export [toolutil.ActionSpec] entries. package grouprelationsexport diff --git a/internal/tools/grouprelationsexport/doc.go b/internal/tools/grouprelationsexport/doc.go index aee6f75ae..ce28ff22e 100644 --- a/internal/tools/grouprelationsexport/doc.go +++ b/internal/tools/grouprelationsexport/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package grouprelationsexport implements MCP tools for GitLab group relation // export operations. // diff --git a/internal/tools/grouprelationsexport/group_relations_export.go b/internal/tools/grouprelationsexport/group_relations_export.go index d94e3f33c..1333b145e 100644 --- a/internal/tools/grouprelationsexport/group_relations_export.go +++ b/internal/tools/grouprelationsexport/group_relations_export.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grouprelationsexport import ( diff --git a/internal/tools/grouprelationsexport/group_relations_export_test.go b/internal/tools/grouprelationsexport/group_relations_export_test.go index 21bea3985..8f4e326af 100644 --- a/internal/tools/grouprelationsexport/group_relations_export_test.go +++ b/internal/tools/grouprelationsexport/group_relations_export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_relations_export_test.go contains unit tests for the grouprelationsexport MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/grouprelationsexport/markdown.go b/internal/tools/grouprelationsexport/markdown.go index b8e0d2f5c..7fa9f00e7 100644 --- a/internal/tools/grouprelationsexport/markdown.go +++ b/internal/tools/grouprelationsexport/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package grouprelationsexport import ( diff --git a/internal/tools/grouprelationsexport/markdown_test.go b/internal/tools/grouprelationsexport/markdown_test.go index d326d0beb..4e8e1c7ba 100644 --- a/internal/tools/grouprelationsexport/markdown_test.go +++ b/internal/tools/grouprelationsexport/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the group relations export status // list formatter. // diff --git a/internal/tools/groupreleases/action_specs.go b/internal/tools/groupreleases/action_specs.go index e6aa86374..03f7d3ac4 100644 --- a/internal/tools/groupreleases/action_specs.go +++ b/internal/tools/groupreleases/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupreleases import ( diff --git a/internal/tools/groupreleases/action_specs_test.go b/internal/tools/groupreleases/action_specs_test.go index 2071a4289..f83dbfb8c 100644 --- a/internal/tools/groupreleases/action_specs_test.go +++ b/internal/tools/groupreleases/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group release [toolutil.ActionSpec] entries. package groupreleases diff --git a/internal/tools/groupreleases/doc.go b/internal/tools/groupreleases/doc.go index fbb62f0da..3d0f73c0d 100644 --- a/internal/tools/groupreleases/doc.go +++ b/internal/tools/groupreleases/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupreleases implements MCP tools for GitLab group release // operations. // diff --git a/internal/tools/groupreleases/group_releases.go b/internal/tools/groupreleases/group_releases.go index c54d0db01..e52997cad 100644 --- a/internal/tools/groupreleases/group_releases.go +++ b/internal/tools/groupreleases/group_releases.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupreleases import ( diff --git a/internal/tools/groupreleases/group_releases_test.go b/internal/tools/groupreleases/group_releases_test.go index 873856b12..a2f46fa20 100644 --- a/internal/tools/groupreleases/group_releases_test.go +++ b/internal/tools/groupreleases/group_releases_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_releases_test.go contains unit tests for GitLab group release operations. // Tests use httptest to mock the GitLab Group Releases API. package groupreleases diff --git a/internal/tools/groupreleases/markdown.go b/internal/tools/groupreleases/markdown.go index 28a8af96b..ef73d816d 100644 --- a/internal/tools/groupreleases/markdown.go +++ b/internal/tools/groupreleases/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupreleases import ( diff --git a/internal/tools/groupreleases/markdown_test.go b/internal/tools/groupreleases/markdown_test.go index 2bbeac04a..316c9c700 100644 --- a/internal/tools/groupreleases/markdown_test.go +++ b/internal/tools/groupreleases/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for group release Markdown formatting functions. package groupreleases diff --git a/internal/tools/groupreleases/shapes.go b/internal/tools/groupreleases/shapes.go index b6bad6626..7452122ec 100644 --- a/internal/tools/groupreleases/shapes.go +++ b/internal/tools/groupreleases/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupreleases import ( diff --git a/internal/tools/groups/action_specs.go b/internal/tools/groups/action_specs.go index fe5d0c3df..53dfd2320 100644 --- a/internal/tools/groups/action_specs.go +++ b/internal/tools/groups/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/action_specs_catalog_test.go b/internal/tools/groups/action_specs_catalog_test.go index 8a0c35c35..d86bff9e9 100644 --- a/internal/tools/groups/action_specs_catalog_test.go +++ b/internal/tools/groups/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds every canonical action ID this package // publishes against the catalog the server really builds. // diff --git a/internal/tools/groups/action_specs_test.go b/internal/tools/groups/action_specs_test.go index dc44f2b43..14b3a27d4 100644 --- a/internal/tools/groups/action_specs_test.go +++ b/internal/tools/groups/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains catalog and direct route regression tests for group actions. package groups diff --git a/internal/tools/groups/avatar.go b/internal/tools/groups/avatar.go index 294f7eb77..8a4ccc94e 100644 --- a/internal/tools/groups/avatar.go +++ b/internal/tools/groups/avatar.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/avatar_test.go b/internal/tools/groups/avatar_test.go index 4467bd82f..17dc37c26 100644 --- a/internal/tools/groups/avatar_test.go +++ b/internal/tools/groups/avatar_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // avatar_test.go contains unit tests for group avatar uploads: base64 and // file-path sources, multipart encoding, validation, and error statuses. // Tests use httptest to mock the GitLab API. diff --git a/internal/tools/groups/doc.go b/internal/tools/groups/doc.go index b1d47df8f..ad825c7bb 100644 --- a/internal/tools/groups/doc.go +++ b/internal/tools/groups/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groups implements MCP tools for GitLab group operations. // // The package wraps client-go group APIs for listing groups, retrieving group diff --git a/internal/tools/groups/groups.go b/internal/tools/groups/groups.go index 3d1454598..c44cf3e10 100644 --- a/internal/tools/groups/groups.go +++ b/internal/tools/groups/groups.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/groups_test.go b/internal/tools/groups/groups_test.go index f42dc1f07..87313be7b 100644 --- a/internal/tools/groups/groups_test.go +++ b/internal/tools/groups/groups_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // groups_test.go contains unit tests for GitLab group operations (list, get, // list members, list subgroups). Tests use httptest to mock the GitLab API // and verify success paths, search/query filtering, ownership filters, diff --git a/internal/tools/groups/hooks.go b/internal/tools/groups/hooks.go index 6754971e3..6ff78cd93 100644 --- a/internal/tools/groups/hooks.go +++ b/internal/tools/groups/hooks.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/hooks_test.go b/internal/tools/groups/hooks_test.go index 155b2fc87..30ccf620a 100644 --- a/internal/tools/groups/hooks_test.go +++ b/internal/tools/groups/hooks_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // hooks_test.go contains unit tests for the group MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/groups/markdown.go b/internal/tools/groups/markdown.go index dad7e0fdb..a35f4b75f 100644 --- a/internal/tools/groups/markdown.go +++ b/internal/tools/groups/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/markdown_test.go b/internal/tools/groups/markdown_test.go index 62e5fe951..e98fc1e7d 100644 --- a/internal/tools/groups/markdown_test.go +++ b/internal/tools/groups/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the group Markdown formatters // covering the single-group card, the group, member, project and hook lists, // provisioned-user lists and transfer-location lists. diff --git a/internal/tools/groups/provisioned_users.go b/internal/tools/groups/provisioned_users.go index 83e310075..4c0178e49 100644 --- a/internal/tools/groups/provisioned_users.go +++ b/internal/tools/groups/provisioned_users.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/provisioned_users_test.go b/internal/tools/groups/provisioned_users_test.go index 65fb39337..7e2be347e 100644 --- a/internal/tools/groups/provisioned_users_test.go +++ b/internal/tools/groups/provisioned_users_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // provisioned_users_test.go contains unit tests for listing a group's // provisioned users, including filters, validation, not-found handling and // output mapping. Tests use httptest to mock the GitLab API. diff --git a/internal/tools/groups/push_rules.go b/internal/tools/groups/push_rules.go index aac0158e7..52367715d 100644 --- a/internal/tools/groups/push_rules.go +++ b/internal/tools/groups/push_rules.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/push_rules_test.go b/internal/tools/groups/push_rules_test.go index 2f3b35eb0..4ef8e1940 100644 --- a/internal/tools/groups/push_rules_test.go +++ b/internal/tools/groups/push_rules_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // push_rules_test.go contains unit tests for the group push-rule MCP tool // handlers. Tests use httptest to mock GitLab API responses and verify request // method/path/body, output parsing, and error paths. diff --git a/internal/tools/groups/sharing.go b/internal/tools/groups/sharing.go index f71220c69..281df65bc 100644 --- a/internal/tools/groups/sharing.go +++ b/internal/tools/groups/sharing.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/sharing_test.go b/internal/tools/groups/sharing_test.go index 28a47eb20..6af06d15d 100644 --- a/internal/tools/groups/sharing_test.go +++ b/internal/tools/groups/sharing_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sharing_test.go contains unit tests for the group sharing and shared-project // listing MCP tool handlers. Tests use httptest to mock GitLab API responses // and verify request method/path/body and output parsing. diff --git a/internal/tools/groups/transfer.go b/internal/tools/groups/transfer.go index f1529f955..65223eb24 100644 --- a/internal/tools/groups/transfer.go +++ b/internal/tools/groups/transfer.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groups/transfer_test.go b/internal/tools/groups/transfer_test.go index e9569def1..d2e8a0b84 100644 --- a/internal/tools/groups/transfer_test.go +++ b/internal/tools/groups/transfer_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groups import ( diff --git a/internal/tools/groupsaml/action_specs.go b/internal/tools/groupsaml/action_specs.go index 7bf6ed524..700408bde 100644 --- a/internal/tools/groupsaml/action_specs.go +++ b/internal/tools/groupsaml/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupsaml import ( diff --git a/internal/tools/groupsaml/action_specs_test.go b/internal/tools/groupsaml/action_specs_test.go index e0561286c..c50926a5a 100644 --- a/internal/tools/groupsaml/action_specs_test.go +++ b/internal/tools/groupsaml/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group SAML [toolutil.ActionSpec] entries. package groupsaml diff --git a/internal/tools/groupsaml/doc.go b/internal/tools/groupsaml/doc.go index 2c31aa161..b07b4c59f 100644 --- a/internal/tools/groupsaml/doc.go +++ b/internal/tools/groupsaml/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupsaml implements MCP tools for GitLab group SAML link // operations. // diff --git a/internal/tools/groupsaml/group_saml.go b/internal/tools/groupsaml/group_saml.go index d756315a2..cc60b31a8 100644 --- a/internal/tools/groupsaml/group_saml.go +++ b/internal/tools/groupsaml/group_saml.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupsaml import ( diff --git a/internal/tools/groupsaml/group_saml_test.go b/internal/tools/groupsaml/group_saml_test.go index 0f6ab6213..98acc8bd8 100644 --- a/internal/tools/groupsaml/group_saml_test.go +++ b/internal/tools/groupsaml/group_saml_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_saml_test.go contains unit tests for GitLab group SAML configuration // operations. Tests use httptest to mock the GitLab Groups SAML API. package groupsaml diff --git a/internal/tools/groupsaml/markdown.go b/internal/tools/groupsaml/markdown.go index ae61bb97e..ef672e5b8 100644 --- a/internal/tools/groupsaml/markdown.go +++ b/internal/tools/groupsaml/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupsaml import ( diff --git a/internal/tools/groupsaml/markdown_test.go b/internal/tools/groupsaml/markdown_test.go index 3cf1dbcbb..c143e6043 100644 --- a/internal/tools/groupsaml/markdown_test.go +++ b/internal/tools/groupsaml/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for group SAML Markdown formatting // functions. Each case compares the whole document the formatter renders. package groupsaml diff --git a/internal/tools/groupscim/action_specs.go b/internal/tools/groupscim/action_specs.go index 000b84423..620a50fdb 100644 --- a/internal/tools/groupscim/action_specs.go +++ b/internal/tools/groupscim/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupscim import ( diff --git a/internal/tools/groupscim/action_specs_test.go b/internal/tools/groupscim/action_specs_test.go index 802ecd0ae..6f9a47c27 100644 --- a/internal/tools/groupscim/action_specs_test.go +++ b/internal/tools/groupscim/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for group SCIM identity actions. package groupscim diff --git a/internal/tools/groupscim/doc.go b/internal/tools/groupscim/doc.go index b8d6c5569..9e9fc75ff 100644 --- a/internal/tools/groupscim/doc.go +++ b/internal/tools/groupscim/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupscim implements MCP tools for GitLab group SCIM operations. // // The package wraps the GitLab SCIM API: diff --git a/internal/tools/groupscim/group_scim.go b/internal/tools/groupscim/group_scim.go index 438b26e89..d802dc063 100644 --- a/internal/tools/groupscim/group_scim.go +++ b/internal/tools/groupscim/group_scim.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupscim import ( diff --git a/internal/tools/groupscim/group_scim_test.go b/internal/tools/groupscim/group_scim_test.go index 1b9a4de74..3c0bc2173 100644 --- a/internal/tools/groupscim/group_scim_test.go +++ b/internal/tools/groupscim/group_scim_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_scim_test.go contains unit tests for GitLab group SCIM token // operations. Tests use httptest to mock the GitLab Group SCIM API. package groupscim diff --git a/internal/tools/groupscim/markdown.go b/internal/tools/groupscim/markdown.go index 41ba0cf36..7fb840f3c 100644 --- a/internal/tools/groupscim/markdown.go +++ b/internal/tools/groupscim/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupscim import ( diff --git a/internal/tools/groupscim/markdown_test.go b/internal/tools/groupscim/markdown_test.go index fc7671959..32191cbb6 100644 --- a/internal/tools/groupscim/markdown_test.go +++ b/internal/tools/groupscim/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for group SCIM Markdown formatting // functions. Each case compares the whole document the formatter renders. package groupscim diff --git a/internal/tools/groupserviceaccounts/action_specs.go b/internal/tools/groupserviceaccounts/action_specs.go index b01602498..32ccfd0d1 100644 --- a/internal/tools/groupserviceaccounts/action_specs.go +++ b/internal/tools/groupserviceaccounts/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupserviceaccounts import ( diff --git a/internal/tools/groupserviceaccounts/action_specs_test.go b/internal/tools/groupserviceaccounts/action_specs_test.go index f92763fa0..b75285fde 100644 --- a/internal/tools/groupserviceaccounts/action_specs_test.go +++ b/internal/tools/groupserviceaccounts/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group service account [toolutil.ActionSpec] entries. package groupserviceaccounts diff --git a/internal/tools/groupserviceaccounts/doc.go b/internal/tools/groupserviceaccounts/doc.go index 007d4f55d..2c500948b 100644 --- a/internal/tools/groupserviceaccounts/doc.go +++ b/internal/tools/groupserviceaccounts/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupserviceaccounts implements MCP tools for GitLab group service // account operations. // diff --git a/internal/tools/groupserviceaccounts/group_service_accounts.go b/internal/tools/groupserviceaccounts/group_service_accounts.go index 546ab158c..b5fc25287 100644 --- a/internal/tools/groupserviceaccounts/group_service_accounts.go +++ b/internal/tools/groupserviceaccounts/group_service_accounts.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupserviceaccounts import ( diff --git a/internal/tools/groupserviceaccounts/group_service_accounts_test.go b/internal/tools/groupserviceaccounts/group_service_accounts_test.go index 04d604255..cc9084382 100644 --- a/internal/tools/groupserviceaccounts/group_service_accounts_test.go +++ b/internal/tools/groupserviceaccounts/group_service_accounts_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_service_accounts_test.go contains unit tests for GitLab group service account MCP tool handlers. package groupserviceaccounts diff --git a/internal/tools/groupserviceaccounts/markdown.go b/internal/tools/groupserviceaccounts/markdown.go index 2803011fa..932992999 100644 --- a/internal/tools/groupserviceaccounts/markdown.go +++ b/internal/tools/groupserviceaccounts/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupserviceaccounts import ( diff --git a/internal/tools/groupsshcerts/action_specs.go b/internal/tools/groupsshcerts/action_specs.go index de0d35748..ab1c9b99d 100644 --- a/internal/tools/groupsshcerts/action_specs.go +++ b/internal/tools/groupsshcerts/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupsshcerts import ( diff --git a/internal/tools/groupsshcerts/action_specs_catalog_test.go b/internal/tools/groupsshcerts/action_specs_catalog_test.go index 370d9a2a3..80a426c03 100644 --- a/internal/tools/groupsshcerts/action_specs_catalog_test.go +++ b/internal/tools/groupsshcerts/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the action IDs this package publishes to // a model against the catalog the server really builds. // diff --git a/internal/tools/groupsshcerts/action_specs_test.go b/internal/tools/groupsshcerts/action_specs_test.go index 690937ee6..3afa15ae8 100644 --- a/internal/tools/groupsshcerts/action_specs_test.go +++ b/internal/tools/groupsshcerts/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for group SSH certificate actions. package groupsshcerts diff --git a/internal/tools/groupsshcerts/doc.go b/internal/tools/groupsshcerts/doc.go index 68e1f185d..c53324542 100644 --- a/internal/tools/groupsshcerts/doc.go +++ b/internal/tools/groupsshcerts/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupsshcerts implements MCP tools for GitLab group SSH certificate // operations. // diff --git a/internal/tools/groupsshcerts/export_test.go b/internal/tools/groupsshcerts/export_test.go index ef113183f..b2cbcbc4f 100644 --- a/internal/tools/groupsshcerts/export_test.go +++ b/internal/tools/groupsshcerts/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes the package's canonical action ID block to the // external catalog test, which cannot see package-local constants. package groupsshcerts diff --git a/internal/tools/groupsshcerts/group_ssh_certs.go b/internal/tools/groupsshcerts/group_ssh_certs.go index 2ef50ef1f..6cb00c5bb 100644 --- a/internal/tools/groupsshcerts/group_ssh_certs.go +++ b/internal/tools/groupsshcerts/group_ssh_certs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupsshcerts import ( diff --git a/internal/tools/groupsshcerts/group_ssh_certs_test.go b/internal/tools/groupsshcerts/group_ssh_certs_test.go index 385af764c..4426089de 100644 --- a/internal/tools/groupsshcerts/group_ssh_certs_test.go +++ b/internal/tools/groupsshcerts/group_ssh_certs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_ssh_certs_test.go contains unit tests for GitLab group SSH certificate // operations. Tests use httptest to mock the GitLab Group SSH Certificates API. package groupsshcerts diff --git a/internal/tools/groupsshcerts/markdown.go b/internal/tools/groupsshcerts/markdown.go index 930dafff3..683269e47 100644 --- a/internal/tools/groupsshcerts/markdown.go +++ b/internal/tools/groupsshcerts/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupsshcerts import ( diff --git a/internal/tools/groupsshcerts/markdown_test.go b/internal/tools/groupsshcerts/markdown_test.go index 7d24272f1..cc4fd02ba 100644 --- a/internal/tools/groupsshcerts/markdown_test.go +++ b/internal/tools/groupsshcerts/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for group SSH certificate Markdown // formatting functions. package groupsshcerts diff --git a/internal/tools/groupstoragemoves/action_specs.go b/internal/tools/groupstoragemoves/action_specs.go index 8419c5431..c29f92c04 100644 --- a/internal/tools/groupstoragemoves/action_specs.go +++ b/internal/tools/groupstoragemoves/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupstoragemoves import ( diff --git a/internal/tools/groupstoragemoves/action_specs_test.go b/internal/tools/groupstoragemoves/action_specs_test.go index b7f7863a4..68f50a029 100644 --- a/internal/tools/groupstoragemoves/action_specs_test.go +++ b/internal/tools/groupstoragemoves/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the group storage move tool // closures in ActionSpecs routes with a mock GitLab API. package groupstoragemoves diff --git a/internal/tools/groupstoragemoves/doc.go b/internal/tools/groupstoragemoves/doc.go index 007ce0e73..9f376075b 100644 --- a/internal/tools/groupstoragemoves/doc.go +++ b/internal/tools/groupstoragemoves/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupstoragemoves implements MCP tools for GitLab group repository // storage move operations. // diff --git a/internal/tools/groupstoragemoves/group_storage_moves.go b/internal/tools/groupstoragemoves/group_storage_moves.go index 648615b08..8b33817b3 100644 --- a/internal/tools/groupstoragemoves/group_storage_moves.go +++ b/internal/tools/groupstoragemoves/group_storage_moves.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupstoragemoves import ( diff --git a/internal/tools/groupstoragemoves/group_storage_moves_test.go b/internal/tools/groupstoragemoves/group_storage_moves_test.go index 9a3b8ffd4..83b9cd79c 100644 --- a/internal/tools/groupstoragemoves/group_storage_moves_test.go +++ b/internal/tools/groupstoragemoves/group_storage_moves_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_storage_moves_test.go contains unit tests for GitLab group storage // move operations. Tests use httptest to mock the GitLab Group Storage Moves API. package groupstoragemoves diff --git a/internal/tools/groupstoragemoves/markdown.go b/internal/tools/groupstoragemoves/markdown.go index f26496f06..3b7f4315e 100644 --- a/internal/tools/groupstoragemoves/markdown.go +++ b/internal/tools/groupstoragemoves/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupstoragemoves import ( diff --git a/internal/tools/groupvariables/action_ids.go b/internal/tools/groupvariables/action_ids.go index e8f4b3b93..e14851b5c 100644 --- a/internal/tools/groupvariables/action_ids.go +++ b/internal/tools/groupvariables/action_ids.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupvariables // Canonical action IDs this package publishes, the one form every surface diff --git a/internal/tools/groupvariables/action_ids_test.go b/internal/tools/groupvariables/action_ids_test.go index 576fa076a..4411ea30c 100644 --- a/internal/tools/groupvariables/action_ids_test.go +++ b/internal/tools/groupvariables/action_ids_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupvariables_test import ( diff --git a/internal/tools/groupvariables/action_specs.go b/internal/tools/groupvariables/action_specs.go index db38b66a3..f2294256e 100644 --- a/internal/tools/groupvariables/action_specs.go +++ b/internal/tools/groupvariables/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupvariables import ( diff --git a/internal/tools/groupvariables/action_specs_test.go b/internal/tools/groupvariables/action_specs_test.go index e2a92a2c4..5b8ed4291 100644 --- a/internal/tools/groupvariables/action_specs_test.go +++ b/internal/tools/groupvariables/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for group CI/CD variable actions. package groupvariables diff --git a/internal/tools/groupvariables/doc.go b/internal/tools/groupvariables/doc.go index cbb59f4c1..4998db8b9 100644 --- a/internal/tools/groupvariables/doc.go +++ b/internal/tools/groupvariables/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupvariables implements MCP tools for GitLab group CI/CD variable // operations. // diff --git a/internal/tools/groupvariables/export_test.go b/internal/tools/groupvariables/export_test.go index b2f2ac4b6..6e4a6393c 100644 --- a/internal/tools/groupvariables/export_test.go +++ b/internal/tools/groupvariables/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupvariables // PublishedActionIDs exposes the canonical action IDs this package hands a diff --git a/internal/tools/groupvariables/group_variables.go b/internal/tools/groupvariables/group_variables.go index 2cd07b92a..f454942ab 100644 --- a/internal/tools/groupvariables/group_variables.go +++ b/internal/tools/groupvariables/group_variables.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupvariables import ( diff --git a/internal/tools/groupvariables/group_variables_test.go b/internal/tools/groupvariables/group_variables_test.go index 7b0056ab2..e44945d1a 100644 --- a/internal/tools/groupvariables/group_variables_test.go +++ b/internal/tools/groupvariables/group_variables_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_variables_test.go contains unit tests for the group CI/CD variable MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/groupvariables/markdown.go b/internal/tools/groupvariables/markdown.go index cc3218ae3..553de72b6 100644 --- a/internal/tools/groupvariables/markdown.go +++ b/internal/tools/groupvariables/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupvariables import ( diff --git a/internal/tools/groupwikis/action_specs.go b/internal/tools/groupwikis/action_specs.go index d2143d3e2..c7f554e9c 100644 --- a/internal/tools/groupwikis/action_specs.go +++ b/internal/tools/groupwikis/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupwikis import ( diff --git a/internal/tools/groupwikis/action_specs_test.go b/internal/tools/groupwikis/action_specs_test.go index 2c18d86bf..807319a8a 100644 --- a/internal/tools/groupwikis/action_specs_test.go +++ b/internal/tools/groupwikis/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the group wiki [toolutil.ActionSpec] entries. package groupwikis diff --git a/internal/tools/groupwikis/doc.go b/internal/tools/groupwikis/doc.go index e5785a3f3..09b2da7cf 100644 --- a/internal/tools/groupwikis/doc.go +++ b/internal/tools/groupwikis/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package groupwikis implements MCP tools for GitLab group wiki operations, a // GitLab Premium feature. // diff --git a/internal/tools/groupwikis/group_wikis.go b/internal/tools/groupwikis/group_wikis.go index 11c18e0ff..77fd8c5a5 100644 --- a/internal/tools/groupwikis/group_wikis.go +++ b/internal/tools/groupwikis/group_wikis.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupwikis import ( diff --git a/internal/tools/groupwikis/group_wikis_test.go b/internal/tools/groupwikis/group_wikis_test.go index c8f8a573a..adf6b5200 100644 --- a/internal/tools/groupwikis/group_wikis_test.go +++ b/internal/tools/groupwikis/group_wikis_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_wikis_test.go contains unit tests for GitLab group wiki operations. // Tests use httptest to mock the GitLab Group Wikis API. package groupwikis diff --git a/internal/tools/groupwikis/markdown.go b/internal/tools/groupwikis/markdown.go index 189d22ece..bef466034 100644 --- a/internal/tools/groupwikis/markdown.go +++ b/internal/tools/groupwikis/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package groupwikis import ( diff --git a/internal/tools/groupwikis/markdown_test.go b/internal/tools/groupwikis/markdown_test.go index 090fc859b..084babd57 100644 --- a/internal/tools/groupwikis/markdown_test.go +++ b/internal/tools/groupwikis/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go validates Markdown formatting functions for group wiki // MCP tool output. Every expectation is the whole render: a substring // assertion is what let a table that had stopped rendering keep passing. diff --git a/internal/tools/health/action_specs.go b/internal/tools/health/action_specs.go index 74e9c5c87..5139658d5 100644 --- a/internal/tools/health/action_specs.go +++ b/internal/tools/health/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package health import ( diff --git a/internal/tools/health/doc.go b/internal/tools/health/doc.go index 6e9638ef2..d605f12d7 100644 --- a/internal/tools/health/doc.go +++ b/internal/tools/health/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package health implements MCP tools for GitLab server and MCP server health // checks. // diff --git a/internal/tools/health/health.go b/internal/tools/health/health.go index 9639af755..892e18c8e 100644 --- a/internal/tools/health/health.go +++ b/internal/tools/health/health.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package health import ( diff --git a/internal/tools/health/health_test.go b/internal/tools/health/health_test.go index 432901285..c0d989597 100644 --- a/internal/tools/health/health_test.go +++ b/internal/tools/health/health_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // health_test.go contains unit tests for the server health MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/health/markdown.go b/internal/tools/health/markdown.go index 5708167c9..88e269167 100644 --- a/internal/tools/health/markdown.go +++ b/internal/tools/health/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package health import ( diff --git a/internal/tools/impersonationtokens/action_specs.go b/internal/tools/impersonationtokens/action_specs.go index 156ebc415..184ba0c6f 100644 --- a/internal/tools/impersonationtokens/action_specs.go +++ b/internal/tools/impersonationtokens/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package impersonationtokens import ( diff --git a/internal/tools/impersonationtokens/action_specs_catalog_test.go b/internal/tools/impersonationtokens/action_specs_catalog_test.go index d851f3ef1..55d913d0b 100644 --- a/internal/tools/impersonationtokens/action_specs_catalog_test.go +++ b/internal/tools/impersonationtokens/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds this package's published action IDs // against the catalog that has to resolve them. // diff --git a/internal/tools/impersonationtokens/action_specs_test.go b/internal/tools/impersonationtokens/action_specs_test.go index 607d95ea7..13cb62640 100644 --- a/internal/tools/impersonationtokens/action_specs_test.go +++ b/internal/tools/impersonationtokens/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the impersonation token [toolutil.ActionSpec] entries. package impersonationtokens diff --git a/internal/tools/impersonationtokens/doc.go b/internal/tools/impersonationtokens/doc.go index faff8a5d4..7f30fea8b 100644 --- a/internal/tools/impersonationtokens/doc.go +++ b/internal/tools/impersonationtokens/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package impersonationtokens implements MCP tools for GitLab impersonation // token operations. // diff --git a/internal/tools/impersonationtokens/impersonation_tokens.go b/internal/tools/impersonationtokens/impersonation_tokens.go index 0bd7db8f9..8059e5912 100644 --- a/internal/tools/impersonationtokens/impersonation_tokens.go +++ b/internal/tools/impersonationtokens/impersonation_tokens.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package impersonationtokens import ( diff --git a/internal/tools/impersonationtokens/impersonation_tokens_test.go b/internal/tools/impersonationtokens/impersonation_tokens_test.go index 7edfb14d5..493123c0e 100644 --- a/internal/tools/impersonationtokens/impersonation_tokens_test.go +++ b/internal/tools/impersonationtokens/impersonation_tokens_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // impersonation_tokens_test.go contains unit tests for GitLab impersonation // token operations. Tests use httptest to mock the GitLab API, including the // fields GitLab sends that client-go's token structs do not carry. diff --git a/internal/tools/impersonationtokens/markdown.go b/internal/tools/impersonationtokens/markdown.go index 63e1441de..66249468c 100644 --- a/internal/tools/impersonationtokens/markdown.go +++ b/internal/tools/impersonationtokens/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package impersonationtokens import ( diff --git a/internal/tools/importservice/doc.go b/internal/tools/importservice/doc.go index e4b11bf42..3f98864bd 100644 --- a/internal/tools/importservice/doc.go +++ b/internal/tools/importservice/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package importservice implements MCP tools for GitLab external import // operations. // diff --git a/internal/tools/importservice/import_service.go b/internal/tools/importservice/import_service.go index b2939c263..42ade335a 100644 --- a/internal/tools/importservice/import_service.go +++ b/internal/tools/importservice/import_service.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package importservice import ( diff --git a/internal/tools/importservice/import_service_test.go b/internal/tools/importservice/import_service_test.go index c3bbd747f..dbba2d4c3 100644 --- a/internal/tools/importservice/import_service_test.go +++ b/internal/tools/importservice/import_service_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // import_service_test.go contains unit tests for the importservice MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/individual_catalog.go b/internal/tools/individual_catalog.go index b741c7154..0e4017272 100644 --- a/internal/tools/individual_catalog.go +++ b/internal/tools/individual_catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/individual_catalog_test.go b/internal/tools/individual_catalog_test.go index 8979ee001..229b67201 100644 --- a/internal/tools/individual_catalog_test.go +++ b/internal/tools/individual_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/instancevariables/action_specs.go b/internal/tools/instancevariables/action_specs.go index 23de8caf7..b33d2442c 100644 --- a/internal/tools/instancevariables/action_specs.go +++ b/internal/tools/instancevariables/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package instancevariables import ( diff --git a/internal/tools/instancevariables/action_specs_catalog_test.go b/internal/tools/instancevariables/action_specs_catalog_test.go index dd0e182fd..d2b245436 100644 --- a/internal/tools/instancevariables/action_specs_catalog_test.go +++ b/internal/tools/instancevariables/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go judges the canonical action IDs this package // publishes against the catalog the server really registers. // diff --git a/internal/tools/instancevariables/action_specs_test.go b/internal/tools/instancevariables/action_specs_test.go index bba2bc152..e3f10cfeb 100644 --- a/internal/tools/instancevariables/action_specs_test.go +++ b/internal/tools/instancevariables/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for instance CI/CD variable actions. package instancevariables diff --git a/internal/tools/instancevariables/doc.go b/internal/tools/instancevariables/doc.go index b31c413e2..714f15216 100644 --- a/internal/tools/instancevariables/doc.go +++ b/internal/tools/instancevariables/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package instancevariables implements MCP tools for GitLab instance CI/CD // variable operations. // diff --git a/internal/tools/instancevariables/instance_variables.go b/internal/tools/instancevariables/instance_variables.go index 7219ab059..4d0b81ac2 100644 --- a/internal/tools/instancevariables/instance_variables.go +++ b/internal/tools/instancevariables/instance_variables.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package instancevariables import ( diff --git a/internal/tools/instancevariables/instance_variables_test.go b/internal/tools/instancevariables/instance_variables_test.go index a4e74f1a7..82ab7ccca 100644 --- a/internal/tools/instancevariables/instance_variables_test.go +++ b/internal/tools/instancevariables/instance_variables_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // instance_variables_test.go contains unit tests for the instance-level CI/CD variable MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/instancevariables/markdown.go b/internal/tools/instancevariables/markdown.go index 8579c7481..c2f86af23 100644 --- a/internal/tools/instancevariables/markdown.go +++ b/internal/tools/instancevariables/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package instancevariables import ( diff --git a/internal/tools/integrations/action_specs.go b/internal/tools/integrations/action_specs.go index 9fcc729e2..34694d54c 100644 --- a/internal/tools/integrations/action_specs.go +++ b/internal/tools/integrations/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package integrations import ( diff --git a/internal/tools/integrations/action_specs_test.go b/internal/tools/integrations/action_specs_test.go index a859700d8..5e06d551a 100644 --- a/internal/tools/integrations/action_specs_test.go +++ b/internal/tools/integrations/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for project integration actions. package integrations diff --git a/internal/tools/integrations/doc.go b/internal/tools/integrations/doc.go index e089cd6ab..9bf967015 100644 --- a/internal/tools/integrations/doc.go +++ b/internal/tools/integrations/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package integrations implements MCP tools for GitLab project and group // integrations. // diff --git a/internal/tools/integrations/group_datadog.go b/internal/tools/integrations/group_datadog.go index f1336a284..45880b277 100644 --- a/internal/tools/integrations/group_datadog.go +++ b/internal/tools/integrations/group_datadog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package integrations import ( diff --git a/internal/tools/integrations/group_datadog_test.go b/internal/tools/integrations/group_datadog_test.go index 9fa20c05b..764d02849 100644 --- a/internal/tools/integrations/group_datadog_test.go +++ b/internal/tools/integrations/group_datadog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_datadog_test.go contains unit tests for the group-level Datadog // integration MCP tool handlers. The tests cover happy paths, the validation // guard, and the most common API errors (404 not found, 403 forbidden, diff --git a/internal/tools/integrations/group_integration.go b/internal/tools/integrations/group_integration.go index a61267fe0..669482ddd 100644 --- a/internal/tools/integrations/group_integration.go +++ b/internal/tools/integrations/group_integration.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package integrations import ( diff --git a/internal/tools/integrations/group_integration_test.go b/internal/tools/integrations/group_integration_test.go index 7c516b72e..fabbd86ac 100644 --- a/internal/tools/integrations/group_integration_test.go +++ b/internal/tools/integrations/group_integration_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // group_integration_test.go holds the tests of how an integration's path is // built: integrationPath, the one place the project and group integration // handlers build the path of a single integration, and the four handlers that diff --git a/internal/tools/integrations/integrations.go b/internal/tools/integrations/integrations.go index 205383d67..8851a0b57 100644 --- a/internal/tools/integrations/integrations.go +++ b/internal/tools/integrations/integrations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package integrations import ( diff --git a/internal/tools/integrations/integrations_test.go b/internal/tools/integrations/integrations_test.go index a1eb4efa6..0ae7097b2 100644 --- a/internal/tools/integrations/integrations_test.go +++ b/internal/tools/integrations/integrations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // integrations_test.go contains unit tests for the project integration MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/integrations/markdown.go b/internal/tools/integrations/markdown.go index fd340ddeb..a39800937 100644 --- a/internal/tools/integrations/markdown.go +++ b/internal/tools/integrations/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package integrations import ( diff --git a/internal/tools/integrations/markdown_test.go b/internal/tools/integrations/markdown_test.go index 742b1ad23..25719d733 100644 --- a/internal/tools/integrations/markdown_test.go +++ b/internal/tools/integrations/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each integration // formatter writes: the project and group tables, the card one integration // renders as, and the group Datadog card with its configuration as the nested diff --git a/internal/tools/integrations/set_integration.go b/internal/tools/integrations/set_integration.go index 6a7b9875e..6d2fc3924 100644 --- a/internal/tools/integrations/set_integration.go +++ b/internal/tools/integrations/set_integration.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package integrations import ( diff --git a/internal/tools/integrations/set_integration_test.go b/internal/tools/integrations/set_integration_test.go index 1d7f96433..c69ae833c 100644 --- a/internal/tools/integrations/set_integration_test.go +++ b/internal/tools/integrations/set_integration_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // set_integration_test.go contains unit tests for the generic slug-dispatched // project and group integration MCP tool handlers (set_integration and the // group list/get/set/delete actions). The tests use httptest to assert that diff --git a/internal/tools/integrations/set_jira.go b/internal/tools/integrations/set_jira.go index 20f076613..0ef8ea4f1 100644 --- a/internal/tools/integrations/set_jira.go +++ b/internal/tools/integrations/set_jira.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package integrations import ( diff --git a/internal/tools/invites/action_specs.go b/internal/tools/invites/action_specs.go index fd65d0f28..2c7c4edce 100644 --- a/internal/tools/invites/action_specs.go +++ b/internal/tools/invites/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package invites import ( diff --git a/internal/tools/invites/action_specs_test.go b/internal/tools/invites/action_specs_test.go index a0fd9cfef..25a7efb18 100644 --- a/internal/tools/invites/action_specs_test.go +++ b/internal/tools/invites/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the invitations' input schemas to what GitLab // takes as an invitation's email: one address or several separated by // commas, which no single-address format describes. diff --git a/internal/tools/invites/doc.go b/internal/tools/invites/doc.go index 6626c3bf9..d150d3488 100644 --- a/internal/tools/invites/doc.go +++ b/internal/tools/invites/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package invites implements MCP tools for GitLab project and group invitation // operations. // diff --git a/internal/tools/invites/invites.go b/internal/tools/invites/invites.go index 8fe29d4ac..61bd53d9c 100644 --- a/internal/tools/invites/invites.go +++ b/internal/tools/invites/invites.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package invites import ( diff --git a/internal/tools/invites/invites_test.go b/internal/tools/invites/invites_test.go index 862afb1d0..70b0c7376 100644 --- a/internal/tools/invites/invites_test.go +++ b/internal/tools/invites/invites_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // invites_test.go contains unit tests for the group/project invite MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/invites/markdown.go b/internal/tools/invites/markdown.go index e7928e35a..c41518174 100644 --- a/internal/tools/invites/markdown.go +++ b/internal/tools/invites/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package invites import ( diff --git a/internal/tools/issuediscussions/action_specs.go b/internal/tools/issuediscussions/action_specs.go index c1d4528fa..9ec764574 100644 --- a/internal/tools/issuediscussions/action_specs.go +++ b/internal/tools/issuediscussions/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuediscussions import ( diff --git a/internal/tools/issuediscussions/action_specs_test.go b/internal/tools/issuediscussions/action_specs_test.go index 97ee8ce5d..437b907ee 100644 --- a/internal/tools/issuediscussions/action_specs_test.go +++ b/internal/tools/issuediscussions/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for issue discussion actions. package issuediscussions diff --git a/internal/tools/issuediscussions/doc.go b/internal/tools/issuediscussions/doc.go index 6ab94e5fe..37d1c0469 100644 --- a/internal/tools/issuediscussions/doc.go +++ b/internal/tools/issuediscussions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package issuediscussions implements MCP tools for GitLab issue discussion // operations. // diff --git a/internal/tools/issuediscussions/issue_discussions.go b/internal/tools/issuediscussions/issue_discussions.go index 9d307594e..573fc8f6f 100644 --- a/internal/tools/issuediscussions/issue_discussions.go +++ b/internal/tools/issuediscussions/issue_discussions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuediscussions import ( diff --git a/internal/tools/issuediscussions/issue_discussions_test.go b/internal/tools/issuediscussions/issue_discussions_test.go index a5367c98b..a832c5ff3 100644 --- a/internal/tools/issuediscussions/issue_discussions_test.go +++ b/internal/tools/issuediscussions/issue_discussions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // issue_discussions_test.go contains unit tests for the issue discussion MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/issuediscussions/markdown.go b/internal/tools/issuediscussions/markdown.go index e46ef92dc..1022b72ca 100644 --- a/internal/tools/issuediscussions/markdown.go +++ b/internal/tools/issuediscussions/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuediscussions import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/issuelinks/action_specs.go b/internal/tools/issuelinks/action_specs.go index 5430f3033..cfb6c1075 100644 --- a/internal/tools/issuelinks/action_specs.go +++ b/internal/tools/issuelinks/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuelinks import ( diff --git a/internal/tools/issuelinks/action_specs_test.go b/internal/tools/issuelinks/action_specs_test.go index 36c97c1aa..e173a8a08 100644 --- a/internal/tools/issuelinks/action_specs_test.go +++ b/internal/tools/issuelinks/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for issue link actions. package issuelinks diff --git a/internal/tools/issuelinks/doc.go b/internal/tools/issuelinks/doc.go index d58535984..01fdc0e7d 100644 --- a/internal/tools/issuelinks/doc.go +++ b/internal/tools/issuelinks/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package issuelinks implements MCP tools for GitLab issue link operations. // // The package wraps the GitLab Issue links API: diff --git a/internal/tools/issuelinks/issue_links.go b/internal/tools/issuelinks/issue_links.go index 3e121f4f0..19837545a 100644 --- a/internal/tools/issuelinks/issue_links.go +++ b/internal/tools/issuelinks/issue_links.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuelinks import ( diff --git a/internal/tools/issuelinks/issue_links_test.go b/internal/tools/issuelinks/issue_links_test.go index 0dd5f0c7d..6c4c0629d 100644 --- a/internal/tools/issuelinks/issue_links_test.go +++ b/internal/tools/issuelinks/issue_links_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // issue_links_test.go contains unit tests for the issue link MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/issuelinks/markdown.go b/internal/tools/issuelinks/markdown.go index 2a7e15856..8bdd2fa05 100644 --- a/internal/tools/issuelinks/markdown.go +++ b/internal/tools/issuelinks/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuelinks import ( diff --git a/internal/tools/issuelinks/sent_shapes.go b/internal/tools/issuelinks/sent_shapes.go index fc30c958d..6e7eacdd7 100644 --- a/internal/tools/issuelinks/sent_shapes.go +++ b/internal/tools/issuelinks/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuelinks import ( diff --git a/internal/tools/issuelinks/sent_shapes_test.go b/internal/tools/issuelinks/sent_shapes_test.go index a0e98a59f..df52e1bdd 100644 --- a/internal/tools/issuelinks/sent_shapes_test.go +++ b/internal/tools/issuelinks/sent_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sent_shapes_test.go covers the reader that takes off a captured response the // keys API::Entities::RelatedIssue sends and client-go's IssueRelation does not // model, and the two ways that reader refuses an answer it cannot hold. diff --git a/internal/tools/issuelinks/shapes.go b/internal/tools/issuelinks/shapes.go index b28b88e45..d078c8d39 100644 --- a/internal/tools/issuelinks/shapes.go +++ b/internal/tools/issuelinks/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuelinks import ( diff --git a/internal/tools/issuelinks/shapes_test.go b/internal/tools/issuelinks/shapes_test.go index fee7d8422..b634743ab 100644 --- a/internal/tools/issuelinks/shapes_test.go +++ b/internal/tools/issuelinks/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go covers the additive 1:1 sub-object converters and the // full-field relation/link converters for the issuelinks package. package issuelinks diff --git a/internal/tools/issuenotes/action_specs.go b/internal/tools/issuenotes/action_specs.go index df0e63fee..f7e118114 100644 --- a/internal/tools/issuenotes/action_specs.go +++ b/internal/tools/issuenotes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuenotes import ( diff --git a/internal/tools/issuenotes/action_specs_test.go b/internal/tools/issuenotes/action_specs_test.go index 346935eeb..78a2137ee 100644 --- a/internal/tools/issuenotes/action_specs_test.go +++ b/internal/tools/issuenotes/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for issue note actions. package issuenotes diff --git a/internal/tools/issuenotes/doc.go b/internal/tools/issuenotes/doc.go index 271a81338..d22d2b03d 100644 --- a/internal/tools/issuenotes/doc.go +++ b/internal/tools/issuenotes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package issuenotes implements MCP tools for GitLab issue note operations. // // The package wraps the GitLab Notes API for issue notes: diff --git a/internal/tools/issuenotes/issue_notes.go b/internal/tools/issuenotes/issue_notes.go index 08a4d4f2e..41578f604 100644 --- a/internal/tools/issuenotes/issue_notes.go +++ b/internal/tools/issuenotes/issue_notes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuenotes import ( diff --git a/internal/tools/issuenotes/issue_notes_test.go b/internal/tools/issuenotes/issue_notes_test.go index b77d8c7ed..389144f4f 100644 --- a/internal/tools/issuenotes/issue_notes_test.go +++ b/internal/tools/issuenotes/issue_notes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuenotes import ( diff --git a/internal/tools/issuenotes/markdown.go b/internal/tools/issuenotes/markdown.go index e5c9e1b0b..8fa03c008 100644 --- a/internal/tools/issuenotes/markdown.go +++ b/internal/tools/issuenotes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuenotes import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/issues/action_specs.go b/internal/tools/issues/action_specs.go index 373fb5d83..254f67fef 100644 --- a/internal/tools/issues/action_specs.go +++ b/internal/tools/issues/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issues import ( diff --git a/internal/tools/issues/action_specs_catalog_test.go b/internal/tools/issues/action_specs_catalog_test.go index 57d053434..e9c99fb61 100644 --- a/internal/tools/issues/action_specs_catalog_test.go +++ b/internal/tools/issues/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the canonical action IDs this package // publishes against the catalog the server builds. // diff --git a/internal/tools/issues/action_specs_test.go b/internal/tools/issues/action_specs_test.go index b76961c74..d5540e145 100644 --- a/internal/tools/issues/action_specs_test.go +++ b/internal/tools/issues/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for issue actions. package issues diff --git a/internal/tools/issues/doc.go b/internal/tools/issues/doc.go index 9c2b04f9c..160867218 100644 --- a/internal/tools/issues/doc.go +++ b/internal/tools/issues/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package issues implements MCP tools for GitLab issue lifecycle operations. // // The package covers project issue CRUD, listing, filtering, assignee and diff --git a/internal/tools/issues/export_test.go b/internal/tools/issues/export_test.go index 49dcf1095..9f0ad3857 100644 --- a/internal/tools/issues/export_test.go +++ b/internal/tools/issues/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issues // PublishedActionIDs is every canonical action ID this package hands a model: diff --git a/internal/tools/issues/issues.go b/internal/tools/issues/issues.go index e5cbb73cd..66fe2c1bb 100644 --- a/internal/tools/issues/issues.go +++ b/internal/tools/issues/issues.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issues import ( diff --git a/internal/tools/issues/issues_test.go b/internal/tools/issues/issues_test.go index 171f48efa..eb6a5a595 100644 --- a/internal/tools/issues/issues_test.go +++ b/internal/tools/issues/issues_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // issues_test.go contains unit tests for GitLab issue operations (create, // get, list, update, delete). Tests use httptest to mock the GitLab API // and verify success paths, error handling, filtering, pagination, and diff --git a/internal/tools/issues/markdown.go b/internal/tools/issues/markdown.go index 90aa6a138..d260d6e91 100644 --- a/internal/tools/issues/markdown.go +++ b/internal/tools/issues/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issues import ( diff --git a/internal/tools/issues/shapes.go b/internal/tools/issues/shapes.go index 7eaaccd79..1dd382929 100644 --- a/internal/tools/issues/shapes.go +++ b/internal/tools/issues/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issues import ( diff --git a/internal/tools/issuestatistics/action_specs.go b/internal/tools/issuestatistics/action_specs.go index 6ba894962..efdfe11a4 100644 --- a/internal/tools/issuestatistics/action_specs.go +++ b/internal/tools/issuestatistics/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuestatistics import ( diff --git a/internal/tools/issuestatistics/doc.go b/internal/tools/issuestatistics/doc.go index 053f23b96..20d4a3d92 100644 --- a/internal/tools/issuestatistics/doc.go +++ b/internal/tools/issuestatistics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package issuestatistics implements MCP tools for GitLab issue statistics. // // The package wraps the GitLab Issues statistics API: diff --git a/internal/tools/issuestatistics/issue_statistics.go b/internal/tools/issuestatistics/issue_statistics.go index 9d03fa736..ae16e795e 100644 --- a/internal/tools/issuestatistics/issue_statistics.go +++ b/internal/tools/issuestatistics/issue_statistics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuestatistics import ( diff --git a/internal/tools/issuestatistics/issue_statistics_catalog_test.go b/internal/tools/issuestatistics/issue_statistics_catalog_test.go index 37f8e0dc8..cdd20c994 100644 --- a/internal/tools/issuestatistics/issue_statistics_catalog_test.go +++ b/internal/tools/issuestatistics/issue_statistics_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // issue_statistics_catalog_test.go judges the canonical action IDs this // package publishes against the catalog the server really registers. // diff --git a/internal/tools/issuestatistics/issue_statistics_test.go b/internal/tools/issuestatistics/issue_statistics_test.go index 666e03a79..91f949701 100644 --- a/internal/tools/issuestatistics/issue_statistics_test.go +++ b/internal/tools/issuestatistics/issue_statistics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // issue_statistics_test.go contains unit tests for the issue statistics MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/issuestatistics/markdown.go b/internal/tools/issuestatistics/markdown.go index 73c1e8edc..ebcd63c0e 100644 --- a/internal/tools/issuestatistics/markdown.go +++ b/internal/tools/issuestatistics/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package issuestatistics import ( diff --git a/internal/tools/iterationdata/doc.go b/internal/tools/iterationdata/doc.go index a8a283983..a8b6a1a9b 100644 --- a/internal/tools/iterationdata/doc.go +++ b/internal/tools/iterationdata/doc.go @@ -1,2 +1,5 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package iterationdata contains shared GitLab iteration conversion helpers. package iterationdata diff --git a/internal/tools/iterationdata/iteration_data.go b/internal/tools/iterationdata/iteration_data.go index d0c7ef8e2..8393e2d79 100644 --- a/internal/tools/iterationdata/iteration_data.go +++ b/internal/tools/iterationdata/iteration_data.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package iterationdata import ( diff --git a/internal/tools/iterationdata/iteration_data_test.go b/internal/tools/iterationdata/iteration_data_test.go index 58795f817..dde9da416 100644 --- a/internal/tools/iterationdata/iteration_data_test.go +++ b/internal/tools/iterationdata/iteration_data_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package iterationdata import ( diff --git a/internal/tools/iterationdata/markdown.go b/internal/tools/iterationdata/markdown.go index 216a77ff7..0b96b66da 100644 --- a/internal/tools/iterationdata/markdown.go +++ b/internal/tools/iterationdata/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package iterationdata import ( diff --git a/internal/tools/jobs/action_specs.go b/internal/tools/jobs/action_specs.go index f46e03b58..2da584aea 100644 --- a/internal/tools/jobs/action_specs.go +++ b/internal/tools/jobs/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobs import ( diff --git a/internal/tools/jobs/action_specs_catalog_test.go b/internal/tools/jobs/action_specs_catalog_test.go index 5d37d1e83..577da9445 100644 --- a/internal/tools/jobs/action_specs_catalog_test.go +++ b/internal/tools/jobs/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the action IDs this package publishes to // a model against the catalog the server really builds. // diff --git a/internal/tools/jobs/action_specs_test.go b/internal/tools/jobs/action_specs_test.go index aacedfd95..dd1361412 100644 --- a/internal/tools/jobs/action_specs_test.go +++ b/internal/tools/jobs/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains catalog-surface regression tests for CI job actions. package jobs diff --git a/internal/tools/jobs/doc.go b/internal/tools/jobs/doc.go index 3fb1383ba..2e556c668 100644 --- a/internal/tools/jobs/doc.go +++ b/internal/tools/jobs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package jobs implements MCP tools for GitLab CI/CD job operations. // // It supports listing jobs, retrieving job details, downloading trace logs, diff --git a/internal/tools/jobs/export_test.go b/internal/tools/jobs/export_test.go index 85ebd48fe..5c8d660fd 100644 --- a/internal/tools/jobs/export_test.go +++ b/internal/tools/jobs/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes the package's canonical action ID block to the // external catalog test, which cannot see package-local constants. package jobs diff --git a/internal/tools/jobs/jobs.go b/internal/tools/jobs/jobs.go index db1057f1d..92362e774 100644 --- a/internal/tools/jobs/jobs.go +++ b/internal/tools/jobs/jobs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobs import ( diff --git a/internal/tools/jobs/jobs_norace_test.go b/internal/tools/jobs/jobs_norace_test.go index 682276eff..19765177c 100644 --- a/internal/tools/jobs/jobs_norace_test.go +++ b/internal/tools/jobs/jobs_norace_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !race // jobs_norace_test.go is the ordinary half of this package's test seam, used diff --git a/internal/tools/jobs/jobs_race_test.go b/internal/tools/jobs/jobs_race_test.go index cff435bf7..4e94ee75b 100644 --- a/internal/tools/jobs/jobs_race_test.go +++ b/internal/tools/jobs/jobs_race_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build race // jobs_race_test.go is the race-detector half of this package's test seam. The diff --git a/internal/tools/jobs/jobs_test.go b/internal/tools/jobs/jobs_test.go index a6be12018..fe28163de 100644 --- a/internal/tools/jobs/jobs_test.go +++ b/internal/tools/jobs/jobs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // jobs_test.go contains unit tests for GitLab CI/CD job operations // (list, get, trace, cancel, retry). Tests use httptest to mock the // GitLab Jobs API and verify both success and error paths. diff --git a/internal/tools/jobs/markdown.go b/internal/tools/jobs/markdown.go index c4264f2d0..9e86ab35c 100644 --- a/internal/tools/jobs/markdown.go +++ b/internal/tools/jobs/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobs import ( diff --git a/internal/tools/jobs/shapes.go b/internal/tools/jobs/shapes.go index 85f459c72..1fc2461b6 100644 --- a/internal/tools/jobs/shapes.go +++ b/internal/tools/jobs/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobs import ( diff --git a/internal/tools/jobs/shapes_test.go b/internal/tools/jobs/shapes_test.go index 42dc2cdec..758a6b892 100644 --- a/internal/tools/jobs/shapes_test.go +++ b/internal/tools/jobs/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go exercises the client-go sub-object mirrors and list-option // helpers added for the 1:1 audit (full nested objects on canonical keys). package jobs diff --git a/internal/tools/jobs/wait.go b/internal/tools/jobs/wait.go index c2b8470d0..463532eaa 100644 --- a/internal/tools/jobs/wait.go +++ b/internal/tools/jobs/wait.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobs import ( diff --git a/internal/tools/jobs/wait_test.go b/internal/tools/jobs/wait_test.go index 98ca42dd4..faa478a66 100644 --- a/internal/tools/jobs/wait_test.go +++ b/internal/tools/jobs/wait_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // wait_test.go contains unit tests for the job Wait polling tool. // Tests use httptest with staged responses to simulate job state transitions. package jobs diff --git a/internal/tools/jobtokenscope/action_specs.go b/internal/tools/jobtokenscope/action_specs.go index a88feaff3..64cd57964 100644 --- a/internal/tools/jobtokenscope/action_specs.go +++ b/internal/tools/jobtokenscope/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobtokenscope import ( diff --git a/internal/tools/jobtokenscope/action_specs_test.go b/internal/tools/jobtokenscope/action_specs_test.go index 7d3953c31..c8a694c4f 100644 --- a/internal/tools/jobtokenscope/action_specs_test.go +++ b/internal/tools/jobtokenscope/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for CI/CD job token scope actions. package jobtokenscope diff --git a/internal/tools/jobtokenscope/doc.go b/internal/tools/jobtokenscope/doc.go index a50017276..0e3d8734b 100644 --- a/internal/tools/jobtokenscope/doc.go +++ b/internal/tools/jobtokenscope/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package jobtokenscope implements MCP tools for GitLab CI/CD job token scope // operations. // diff --git a/internal/tools/jobtokenscope/job_token_scope.go b/internal/tools/jobtokenscope/job_token_scope.go index 2a8830b89..20a6f4c71 100644 --- a/internal/tools/jobtokenscope/job_token_scope.go +++ b/internal/tools/jobtokenscope/job_token_scope.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobtokenscope import ( diff --git a/internal/tools/jobtokenscope/job_token_scope_test.go b/internal/tools/jobtokenscope/job_token_scope_test.go index 48b6f75aa..becc22873 100644 --- a/internal/tools/jobtokenscope/job_token_scope_test.go +++ b/internal/tools/jobtokenscope/job_token_scope_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // job_token_scope_test.go contains unit tests for the job token scope MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/jobtokenscope/markdown.go b/internal/tools/jobtokenscope/markdown.go index 142869a32..22e43ff74 100644 --- a/internal/tools/jobtokenscope/markdown.go +++ b/internal/tools/jobtokenscope/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package jobtokenscope import ( diff --git a/internal/tools/keys/action_specs.go b/internal/tools/keys/action_specs.go index ef6d4219c..85d6e8b61 100644 --- a/internal/tools/keys/action_specs.go +++ b/internal/tools/keys/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package keys import ( diff --git a/internal/tools/keys/action_specs_test.go b/internal/tools/keys/action_specs_test.go index 28c91e4db..9c684c1ed 100644 --- a/internal/tools/keys/action_specs_test.go +++ b/internal/tools/keys/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the fingerprint lookup's input schema to the // forms GitLab reads a fingerprint in. package keys diff --git a/internal/tools/keys/doc.go b/internal/tools/keys/doc.go index 323e76eeb..1ae01d43a 100644 --- a/internal/tools/keys/doc.go +++ b/internal/tools/keys/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package keys implements MCP tools for GitLab SSH key operations. // // The package wraps the GitLab Keys API: diff --git a/internal/tools/keys/keys.go b/internal/tools/keys/keys.go index 0c031b833..cc7b7e411 100644 --- a/internal/tools/keys/keys.go +++ b/internal/tools/keys/keys.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package keys import ( diff --git a/internal/tools/keys/keys_catalog_test.go b/internal/tools/keys/keys_catalog_test.go index 4f2981cdc..413838571 100644 --- a/internal/tools/keys/keys_catalog_test.go +++ b/internal/tools/keys/keys_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // keys_catalog_test.go judges the canonical action IDs this package publishes // against the catalog the server really registers. // diff --git a/internal/tools/keys/keys_test.go b/internal/tools/keys/keys_test.go index df605a874..d363f01d3 100644 --- a/internal/tools/keys/keys_test.go +++ b/internal/tools/keys/keys_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // keys_test.go contains unit tests for the SSH key MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/keys/markdown.go b/internal/tools/keys/markdown.go index 57e0710a6..34179ce76 100644 --- a/internal/tools/keys/markdown.go +++ b/internal/tools/keys/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package keys import ( diff --git a/internal/tools/labeldata/doc.go b/internal/tools/labeldata/doc.go index 75d5c9e7e..d24141ccb 100644 --- a/internal/tools/labeldata/doc.go +++ b/internal/tools/labeldata/doc.go @@ -1,2 +1,5 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package labeldata contains shared GitLab label conversion helpers. package labeldata diff --git a/internal/tools/labeldata/label_data.go b/internal/tools/labeldata/label_data.go index dea809906..cfc57c0e1 100644 --- a/internal/tools/labeldata/label_data.go +++ b/internal/tools/labeldata/label_data.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package labeldata import ( diff --git a/internal/tools/labeldata/label_data_test.go b/internal/tools/labeldata/label_data_test.go index 2a1f4b8d4..ccc096789 100644 --- a/internal/tools/labeldata/label_data_test.go +++ b/internal/tools/labeldata/label_data_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package labeldata import ( diff --git a/internal/tools/labels/action_specs.go b/internal/tools/labels/action_specs.go index 5064c0689..dd02cf182 100644 --- a/internal/tools/labels/action_specs.go +++ b/internal/tools/labels/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package labels import ( diff --git a/internal/tools/labels/action_specs_test.go b/internal/tools/labels/action_specs_test.go index 5b7768d08..46ee7f017 100644 --- a/internal/tools/labels/action_specs_test.go +++ b/internal/tools/labels/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the action IDs this package publishes to a model // against the catalog the server really builds. // diff --git a/internal/tools/labels/doc.go b/internal/tools/labels/doc.go index 2ad439219..2dcda5f14 100644 --- a/internal/tools/labels/doc.go +++ b/internal/tools/labels/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package labels implements MCP tools for GitLab project label operations. // // The package wraps the GitLab Labels API: diff --git a/internal/tools/labels/export_test.go b/internal/tools/labels/export_test.go index 5a68bf3f4..fc470464c 100644 --- a/internal/tools/labels/export_test.go +++ b/internal/tools/labels/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes the package's canonical action ID block to the // external catalog test, which cannot see package-local constants. package labels diff --git a/internal/tools/labels/labels.go b/internal/tools/labels/labels.go index 23be2d26f..14209d178 100644 --- a/internal/tools/labels/labels.go +++ b/internal/tools/labels/labels.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package labels import ( diff --git a/internal/tools/labels/labels_test.go b/internal/tools/labels/labels_test.go index 69a333d8f..16f5e3e61 100644 --- a/internal/tools/labels/labels_test.go +++ b/internal/tools/labels/labels_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // labels_test.go contains unit tests for GitLab label operations. // Tests use httptest to mock the GitLab Labels API. package labels diff --git a/internal/tools/labels/markdown.go b/internal/tools/labels/markdown.go index 9816365aa..d36b42ed6 100644 --- a/internal/tools/labels/markdown.go +++ b/internal/tools/labels/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package labels import ( diff --git a/internal/tools/license/doc.go b/internal/tools/license/doc.go index 32f4080ba..536006b51 100644 --- a/internal/tools/license/doc.go +++ b/internal/tools/license/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package license implements MCP tools for GitLab instance license operations. // // The package wraps the GitLab License API: diff --git a/internal/tools/license/license.go b/internal/tools/license/license.go index 4cc6bdf6d..277abcff5 100644 --- a/internal/tools/license/license.go +++ b/internal/tools/license/license.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package license import ( diff --git a/internal/tools/license/license_test.go b/internal/tools/license/license_test.go index 1dd77d35d..8e9a117d2 100644 --- a/internal/tools/license/license_test.go +++ b/internal/tools/license/license_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // license_test.go contains unit tests for the GitLab license MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/license/markdown.go b/internal/tools/license/markdown.go index 5d33552ac..8bad3eb83 100644 --- a/internal/tools/license/markdown.go +++ b/internal/tools/license/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package license import ( diff --git a/internal/tools/licensetemplates/action_specs.go b/internal/tools/licensetemplates/action_specs.go index 9f15ff875..ea3a76ceb 100644 --- a/internal/tools/licensetemplates/action_specs.go +++ b/internal/tools/licensetemplates/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package licensetemplates import ( diff --git a/internal/tools/licensetemplates/action_specs_test.go b/internal/tools/licensetemplates/action_specs_test.go index c00c35dd3..32a7d5869 100644 --- a/internal/tools/licensetemplates/action_specs_test.go +++ b/internal/tools/licensetemplates/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the published-ID assertions for the license // template actions. // diff --git a/internal/tools/licensetemplates/doc.go b/internal/tools/licensetemplates/doc.go index 2eed6c0bf..fa7d39133 100644 --- a/internal/tools/licensetemplates/doc.go +++ b/internal/tools/licensetemplates/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package licensetemplates implements MCP tools for GitLab license template // operations. // diff --git a/internal/tools/licensetemplates/license_templates.go b/internal/tools/licensetemplates/license_templates.go index 3f5a0aa7b..21af5e3d7 100644 --- a/internal/tools/licensetemplates/license_templates.go +++ b/internal/tools/licensetemplates/license_templates.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package licensetemplates import ( diff --git a/internal/tools/licensetemplates/license_templates_test.go b/internal/tools/licensetemplates/license_templates_test.go index 355aa65dc..9eeed30fc 100644 --- a/internal/tools/licensetemplates/license_templates_test.go +++ b/internal/tools/licensetemplates/license_templates_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // license_templates_test.go contains unit tests for the license template MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/licensetemplates/markdown.go b/internal/tools/licensetemplates/markdown.go index 1dbb005e7..7fcc6e3c4 100644 --- a/internal/tools/licensetemplates/markdown.go +++ b/internal/tools/licensetemplates/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package licensetemplates import ( diff --git a/internal/tools/markdown.go b/internal/tools/markdown.go index 793690867..af9fe061d 100644 --- a/internal/tools/markdown.go +++ b/internal/tools/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/markdown/action_specs.go b/internal/tools/markdown/action_specs.go index a65201eee..a93cc6881 100644 --- a/internal/tools/markdown/action_specs.go +++ b/internal/tools/markdown/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package markdown import ( diff --git a/internal/tools/markdown/doc.go b/internal/tools/markdown/doc.go index 9caf1653a..c3b2802a4 100644 --- a/internal/tools/markdown/doc.go +++ b/internal/tools/markdown/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package markdown implements MCP tools for rendering GitLab-flavored // Markdown. // diff --git a/internal/tools/markdown/markdown.go b/internal/tools/markdown/markdown.go index 8580725a2..c07e24ef8 100644 --- a/internal/tools/markdown/markdown.go +++ b/internal/tools/markdown/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package markdown import ( diff --git a/internal/tools/markdown/markdown_test.go b/internal/tools/markdown/markdown_test.go index f8da88da1..2cf8048e4 100644 --- a/internal/tools/markdown/markdown_test.go +++ b/internal/tools/markdown/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the Markdown formatting functions // in the markdown package. package markdown diff --git a/internal/tools/markdown_test.go b/internal/tools/markdown_test.go index e945ae258..3b87bd78f 100644 --- a/internal/tools/markdown_test.go +++ b/internal/tools/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for every Markdown formatter function // in markdown.go. Each test verifies that the rendered output contains expected // headings, field values, table rows, and empty-state messages. diff --git a/internal/tools/memberroles/action_specs.go b/internal/tools/memberroles/action_specs.go index 13f663112..02776d356 100644 --- a/internal/tools/memberroles/action_specs.go +++ b/internal/tools/memberroles/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package memberroles import ( diff --git a/internal/tools/memberroles/action_specs_test.go b/internal/tools/memberroles/action_specs_test.go index 43960f4ad..da244d377 100644 --- a/internal/tools/memberroles/action_specs_test.go +++ b/internal/tools/memberroles/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for custom member role actions. package memberroles diff --git a/internal/tools/memberroles/doc.go b/internal/tools/memberroles/doc.go index 4b213cbdd..050311972 100644 --- a/internal/tools/memberroles/doc.go +++ b/internal/tools/memberroles/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package memberroles implements MCP tools for GitLab member role operations. // // The package wraps the GitLab Member roles API: diff --git a/internal/tools/memberroles/markdown.go b/internal/tools/memberroles/markdown.go index c38e527a8..6d49d9210 100644 --- a/internal/tools/memberroles/markdown.go +++ b/internal/tools/memberroles/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package memberroles import ( diff --git a/internal/tools/memberroles/markdown_test.go b/internal/tools/memberroles/markdown_test.go index af1e66007..1746569cc 100644 --- a/internal/tools/memberroles/markdown_test.go +++ b/internal/tools/memberroles/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the Markdown formatting functions // in the memberroles package. Each case compares the whole document the // formatter renders: a card for one role with its permissions as a nested diff --git a/internal/tools/memberroles/member_roles.go b/internal/tools/memberroles/member_roles.go index 1cde6c763..821fca1b1 100644 --- a/internal/tools/memberroles/member_roles.go +++ b/internal/tools/memberroles/member_roles.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package memberroles import ( diff --git a/internal/tools/memberroles/member_roles_test.go b/internal/tools/memberroles/member_roles_test.go index a209a3b91..3692a6fce 100644 --- a/internal/tools/memberroles/member_roles_test.go +++ b/internal/tools/memberroles/member_roles_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // member_roles_test.go contains unit tests for GitLab member role operations. // Tests use httptest to mock the GitLab Member Roles API. package memberroles diff --git a/internal/tools/memberroles/sent_shapes.go b/internal/tools/memberroles/sent_shapes.go index 9da646991..ad2d0663b 100644 --- a/internal/tools/memberroles/sent_shapes.go +++ b/internal/tools/memberroles/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package memberroles import ( diff --git a/internal/tools/memberroles/sent_shapes_test.go b/internal/tools/memberroles/sent_shapes_test.go index 171d6c927..e019909dd 100644 --- a/internal/tools/memberroles/sent_shapes_test.go +++ b/internal/tools/memberroles/sent_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sent_shapes_test.go covers the reader that takes off a captured response the // customizable permissions API::Entities::MemberRole sends and client-go's // MemberRole does not model, and the ways that reader refuses an answer it diff --git a/internal/tools/members/action_specs.go b/internal/tools/members/action_specs.go index d57af52b9..5b92b8664 100644 --- a/internal/tools/members/action_specs.go +++ b/internal/tools/members/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package members import ( diff --git a/internal/tools/members/action_specs_catalog_test.go b/internal/tools/members/action_specs_catalog_test.go index a39837ad3..09a5403a1 100644 --- a/internal/tools/members/action_specs_catalog_test.go +++ b/internal/tools/members/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds this package's published action IDs // against the catalog that has to resolve them. // diff --git a/internal/tools/members/action_specs_test.go b/internal/tools/members/action_specs_test.go index 0be9edf14..69b69b642 100644 --- a/internal/tools/members/action_specs_test.go +++ b/internal/tools/members/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for project member actions. package members diff --git a/internal/tools/members/doc.go b/internal/tools/members/doc.go index 67211276a..f4a0b4cc7 100644 --- a/internal/tools/members/doc.go +++ b/internal/tools/members/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package members implements MCP tools for GitLab project member operations. // // The package wraps the GitLab Members API: diff --git a/internal/tools/members/markdown.go b/internal/tools/members/markdown.go index 251009f3f..b277187d4 100644 --- a/internal/tools/members/markdown.go +++ b/internal/tools/members/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package members import ( diff --git a/internal/tools/members/members.go b/internal/tools/members/members.go index aa1034642..aa8f52a85 100644 --- a/internal/tools/members/members.go +++ b/internal/tools/members/members.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package members import ( diff --git a/internal/tools/members/members_test.go b/internal/tools/members/members_test.go index ae929b992..97c1b3281 100644 --- a/internal/tools/members/members_test.go +++ b/internal/tools/members/members_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // members_test.go contains unit tests for GitLab project member operations. // Tests use httptest to mock the GitLab API and verify member listing with // query filters, pagination, access level description mapping, and error diff --git a/internal/tools/mergerequests/action_specs.go b/internal/tools/mergerequests/action_specs.go index a41f3f1cd..1ed95fc74 100644 --- a/internal/tools/mergerequests/action_specs.go +++ b/internal/tools/mergerequests/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergerequests import ( diff --git a/internal/tools/mergerequests/action_specs_catalog_test.go b/internal/tools/mergerequests/action_specs_catalog_test.go index 735d169a1..92c259627 100644 --- a/internal/tools/mergerequests/action_specs_catalog_test.go +++ b/internal/tools/mergerequests/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go judges the canonical action IDs this package // publishes against the catalog the server really registers. // diff --git a/internal/tools/mergerequests/action_specs_test.go b/internal/tools/mergerequests/action_specs_test.go index 8d5cdd1cc..7ba97941b 100644 --- a/internal/tools/mergerequests/action_specs_test.go +++ b/internal/tools/mergerequests/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergerequests import ( diff --git a/internal/tools/mergerequests/doc.go b/internal/tools/mergerequests/doc.go index 1669f39c7..68a66abfb 100644 --- a/internal/tools/mergerequests/doc.go +++ b/internal/tools/mergerequests/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mergerequests implements MCP tools for GitLab merge request // operations. // diff --git a/internal/tools/mergerequests/markdown.go b/internal/tools/mergerequests/markdown.go index d445aa565..4dbbf64fc 100644 --- a/internal/tools/mergerequests/markdown.go +++ b/internal/tools/mergerequests/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergerequests import ( diff --git a/internal/tools/mergerequests/markdown_test.go b/internal/tools/mergerequests/markdown_test.go index f21fe1089..f2ef7069b 100644 --- a/internal/tools/mergerequests/markdown_test.go +++ b/internal/tools/mergerequests/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts that the merge request formatters contain the text // GitLab hands them, rather than letting it reshape the document around it. // diff --git a/internal/tools/mergerequests/merge_requests.go b/internal/tools/mergerequests/merge_requests.go index 2d63afec0..63c240fef 100644 --- a/internal/tools/mergerequests/merge_requests.go +++ b/internal/tools/mergerequests/merge_requests.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergerequests import ( diff --git a/internal/tools/mergerequests/merge_requests_test.go b/internal/tools/mergerequests/merge_requests_test.go index a93fa2330..81f40e190 100644 --- a/internal/tools/mergerequests/merge_requests_test.go +++ b/internal/tools/mergerequests/merge_requests_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // merge_requests_test.go contains unit tests for GitLab merge request CRUD // operations (create, get, list, update, merge, approve, unapprove). Tests use // httptest to mock the GitLab API and verify both success and error paths. diff --git a/internal/tools/mergerequests/shapes.go b/internal/tools/mergerequests/shapes.go index 63538aa67..c37666d4f 100644 --- a/internal/tools/mergerequests/shapes.go +++ b/internal/tools/mergerequests/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergerequests import ( diff --git a/internal/tools/mergerequests/shapes_test.go b/internal/tools/mergerequests/shapes_test.go index 222d719a8..88d334d5c 100644 --- a/internal/tools/mergerequests/shapes_test.go +++ b/internal/tools/mergerequests/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go holds the blocking merge request converter to the answer // GitLab sends, one key at a time, through the dependencies listing that // reaches it. diff --git a/internal/tools/mergetrains/action_specs.go b/internal/tools/mergetrains/action_specs.go index 71bd2875b..c1f447e3b 100644 --- a/internal/tools/mergetrains/action_specs.go +++ b/internal/tools/mergetrains/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergetrains import ( diff --git a/internal/tools/mergetrains/action_specs_test.go b/internal/tools/mergetrains/action_specs_test.go index 839791955..791cb751a 100644 --- a/internal/tools/mergetrains/action_specs_test.go +++ b/internal/tools/mergetrains/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergetrains import ( diff --git a/internal/tools/mergetrains/doc.go b/internal/tools/mergetrains/doc.go index 7d57394c5..048413aa7 100644 --- a/internal/tools/mergetrains/doc.go +++ b/internal/tools/mergetrains/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mergetrains implements MCP tools for GitLab merge train operations. // // The package wraps the GitLab Merge trains API: diff --git a/internal/tools/mergetrains/markdown.go b/internal/tools/mergetrains/markdown.go index 80fb61cf6..adc3b31a2 100644 --- a/internal/tools/mergetrains/markdown.go +++ b/internal/tools/mergetrains/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergetrains import ( diff --git a/internal/tools/mergetrains/merge_trains.go b/internal/tools/mergetrains/merge_trains.go index 955048ffd..ae7a4da3a 100644 --- a/internal/tools/mergetrains/merge_trains.go +++ b/internal/tools/mergetrains/merge_trains.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mergetrains import ( diff --git a/internal/tools/mergetrains/merge_trains_test.go b/internal/tools/mergetrains/merge_trains_test.go index ba918a234..d84189f93 100644 --- a/internal/tools/mergetrains/merge_trains_test.go +++ b/internal/tools/mergetrains/merge_trains_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // merge_trains_test.go contains unit tests for GitLab merge train operations. // Tests use httptest to mock the GitLab Merge Trains API. package mergetrains diff --git a/internal/tools/meta_catalog.go b/internal/tools/meta_catalog.go index ec4798ae1..6399c8b86 100644 --- a/internal/tools/meta_catalog.go +++ b/internal/tools/meta_catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/meta_catalog_test.go b/internal/tools/meta_catalog_test.go index 76f431906..fef06aeae 100644 --- a/internal/tools/meta_catalog_test.go +++ b/internal/tools/meta_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/meta_tool.go b/internal/tools/meta_tool.go index ebcf27c50..5f79dbcf8 100644 --- a/internal/tools/meta_tool.go +++ b/internal/tools/meta_tool.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/meta_tool_test.go b/internal/tools/meta_tool_test.go index 7d5c3b3b3..90c2b8b76 100644 --- a/internal/tools/meta_tool_test.go +++ b/internal/tools/meta_tool_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // meta_tool_test.go contains unit tests for the meta-tool dispatch mechanism // including action validation, parameter unmarshalling, and the wrapAction // and wrapVoidAction generic helpers. diff --git a/internal/tools/metadata/doc.go b/internal/tools/metadata/doc.go index e25746570..2e1d9d001 100644 --- a/internal/tools/metadata/doc.go +++ b/internal/tools/metadata/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package metadata implements MCP tools for the GitLab Metadata API. // // The package fetches server version, revision, Enterprise edition status, and diff --git a/internal/tools/metadata/markdown.go b/internal/tools/metadata/markdown.go index 7ac038732..c90683afc 100644 --- a/internal/tools/metadata/markdown.go +++ b/internal/tools/metadata/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package metadata import ( diff --git a/internal/tools/metadata/metadata.go b/internal/tools/metadata/metadata.go index 7cd75ed5b..0248dc58a 100644 --- a/internal/tools/metadata/metadata.go +++ b/internal/tools/metadata/metadata.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package metadata import ( diff --git a/internal/tools/metadata/metadata_test.go b/internal/tools/metadata/metadata_test.go index a63064a78..4bcb6dfd6 100644 --- a/internal/tools/metadata/metadata_test.go +++ b/internal/tools/metadata/metadata_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // metadata_test.go contains unit tests for the GitLab metadata MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/milestones/action_specs.go b/internal/tools/milestones/action_specs.go index d3067db60..993ef0cb0 100644 --- a/internal/tools/milestones/action_specs.go +++ b/internal/tools/milestones/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package milestones import ( diff --git a/internal/tools/milestones/action_specs_test.go b/internal/tools/milestones/action_specs_test.go index 71611e7f7..660dc61ae 100644 --- a/internal/tools/milestones/action_specs_test.go +++ b/internal/tools/milestones/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds this package against the catalog: every canonical // action ID it publishes to a model, in an ActionSpec's RelatedActions and in // the hints its Markdown writes, must name an action the catalog really builds. diff --git a/internal/tools/milestones/doc.go b/internal/tools/milestones/doc.go index f8320cb31..a1cac9ddc 100644 --- a/internal/tools/milestones/doc.go +++ b/internal/tools/milestones/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package milestones implements MCP tools for GitLab project milestone // operations. // diff --git a/internal/tools/milestones/markdown.go b/internal/tools/milestones/markdown.go index 482ea042d..9997b0e76 100644 --- a/internal/tools/milestones/markdown.go +++ b/internal/tools/milestones/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package milestones import ( diff --git a/internal/tools/milestones/milestones.go b/internal/tools/milestones/milestones.go index dc5d93254..71ee15b62 100644 --- a/internal/tools/milestones/milestones.go +++ b/internal/tools/milestones/milestones.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package milestones import ( diff --git a/internal/tools/milestones/milestones_test.go b/internal/tools/milestones/milestones_test.go index c18cfa87e..90bb2759b 100644 --- a/internal/tools/milestones/milestones_test.go +++ b/internal/tools/milestones/milestones_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // milestones_test.go contains unit tests for GitLab milestone listing operations. // Tests use httptest to mock the GitLab Milestones API. package milestones diff --git a/internal/tools/modelregistry/action_specs.go b/internal/tools/modelregistry/action_specs.go index 9599adff6..5be099cde 100644 --- a/internal/tools/modelregistry/action_specs.go +++ b/internal/tools/modelregistry/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelregistry import ( diff --git a/internal/tools/modelregistry/action_specs_test.go b/internal/tools/modelregistry/action_specs_test.go index ae115813d..c5e7a790b 100644 --- a/internal/tools/modelregistry/action_specs_test.go +++ b/internal/tools/modelregistry/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the model registry tool // closures in ActionSpecs routes with a mock GitLab API. package modelregistry diff --git a/internal/tools/modelregistry/doc.go b/internal/tools/modelregistry/doc.go index 980229bc5..53141d8b7 100644 --- a/internal/tools/modelregistry/doc.go +++ b/internal/tools/modelregistry/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package modelregistry implements MCP tools for GitLab model registry // operations. // diff --git a/internal/tools/modelregistry/markdown.go b/internal/tools/modelregistry/markdown.go index 44bfc21f2..f3bbf40f7 100644 --- a/internal/tools/modelregistry/markdown.go +++ b/internal/tools/modelregistry/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelregistry import ( diff --git a/internal/tools/modelregistry/markdown_test.go b/internal/tools/modelregistry/markdown_test.go index 0cfd1c106..06c58b1b8 100644 --- a/internal/tools/modelregistry/markdown_test.go +++ b/internal/tools/modelregistry/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for model registry Markdown // formatting functions. package modelregistry diff --git a/internal/tools/modelregistry/model_registry.go b/internal/tools/modelregistry/model_registry.go index 44aae2e5e..a80abdb92 100644 --- a/internal/tools/modelregistry/model_registry.go +++ b/internal/tools/modelregistry/model_registry.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package modelregistry import ( diff --git a/internal/tools/modelregistry/model_registry_test.go b/internal/tools/modelregistry/model_registry_test.go index 4c2dea6ee..2c78f3fa5 100644 --- a/internal/tools/modelregistry/model_registry_test.go +++ b/internal/tools/modelregistry/model_registry_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // model_registry_test.go contains unit tests for GitLab ML model registry // operations. Tests use httptest to mock the GitLab Model Registry API. package modelregistry diff --git a/internal/tools/mrapprovals/action_specs.go b/internal/tools/mrapprovals/action_specs.go index 02d1e3143..80cbc61ce 100644 --- a/internal/tools/mrapprovals/action_specs.go +++ b/internal/tools/mrapprovals/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovals import ( diff --git a/internal/tools/mrapprovals/action_specs_test.go b/internal/tools/mrapprovals/action_specs_test.go index a280bcf48..cff57a299 100644 --- a/internal/tools/mrapprovals/action_specs_test.go +++ b/internal/tools/mrapprovals/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for MR approval actions. package mrapprovals diff --git a/internal/tools/mrapprovals/doc.go b/internal/tools/mrapprovals/doc.go index afd3f4cb3..92d46bb80 100644 --- a/internal/tools/mrapprovals/doc.go +++ b/internal/tools/mrapprovals/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mrapprovals implements MCP tools for GitLab merge request approval // operations. // diff --git a/internal/tools/mrapprovals/markdown.go b/internal/tools/mrapprovals/markdown.go index 680331d1b..549e8d25e 100644 --- a/internal/tools/mrapprovals/markdown.go +++ b/internal/tools/mrapprovals/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovals import ( diff --git a/internal/tools/mrapprovals/mr_approvals.go b/internal/tools/mrapprovals/mr_approvals.go index 002c16e19..d48e2c646 100644 --- a/internal/tools/mrapprovals/mr_approvals.go +++ b/internal/tools/mrapprovals/mr_approvals.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovals import ( diff --git a/internal/tools/mrapprovals/mr_approvals_test.go b/internal/tools/mrapprovals/mr_approvals_test.go index bd53d58d9..907c56271 100644 --- a/internal/tools/mrapprovals/mr_approvals_test.go +++ b/internal/tools/mrapprovals/mr_approvals_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mr_approvals_test.go contains unit tests for the merge request approval MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/mrapprovals/shapes.go b/internal/tools/mrapprovals/shapes.go index 6849e3775..62a67a9c6 100644 --- a/internal/tools/mrapprovals/shapes.go +++ b/internal/tools/mrapprovals/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovals import ( diff --git a/internal/tools/mrapprovals/shapes_test.go b/internal/tools/mrapprovals/shapes_test.go index ae6798db9..c757e9c1a 100644 --- a/internal/tools/mrapprovals/shapes_test.go +++ b/internal/tools/mrapprovals/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go contains unit tests for the MR approval sub-object converters // that mirror client-go types (basic users, approver users, approver groups, // project approval rules, protected branches, and groups). Tests cover full diff --git a/internal/tools/mrapprovalsettings/action_ids.go b/internal/tools/mrapprovalsettings/action_ids.go index 033c17f17..40ed52329 100644 --- a/internal/tools/mrapprovalsettings/action_ids.go +++ b/internal/tools/mrapprovalsettings/action_ids.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovalsettings // Canonical action IDs this package publishes, the one form every surface diff --git a/internal/tools/mrapprovalsettings/action_ids_test.go b/internal/tools/mrapprovalsettings/action_ids_test.go index 62cb635f4..55117b23e 100644 --- a/internal/tools/mrapprovalsettings/action_ids_test.go +++ b/internal/tools/mrapprovalsettings/action_ids_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovalsettings_test import ( diff --git a/internal/tools/mrapprovalsettings/action_specs.go b/internal/tools/mrapprovalsettings/action_specs.go index b5822eec4..4eedd20af 100644 --- a/internal/tools/mrapprovalsettings/action_specs.go +++ b/internal/tools/mrapprovalsettings/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovalsettings import ( diff --git a/internal/tools/mrapprovalsettings/action_specs_test.go b/internal/tools/mrapprovalsettings/action_specs_test.go index 5111bdb1a..ca0579c63 100644 --- a/internal/tools/mrapprovalsettings/action_specs_test.go +++ b/internal/tools/mrapprovalsettings/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the MR approval settings // tool closures in ActionSpecs routes with mock GitLab API responses. package mrapprovalsettings diff --git a/internal/tools/mrapprovalsettings/doc.go b/internal/tools/mrapprovalsettings/doc.go index 87cd5ff02..81d89d5a7 100644 --- a/internal/tools/mrapprovalsettings/doc.go +++ b/internal/tools/mrapprovalsettings/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mrapprovalsettings implements MCP tools for GitLab project merge // request approval settings. // diff --git a/internal/tools/mrapprovalsettings/export_test.go b/internal/tools/mrapprovalsettings/export_test.go index 63f222f99..4f2e2ae42 100644 --- a/internal/tools/mrapprovalsettings/export_test.go +++ b/internal/tools/mrapprovalsettings/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovalsettings // PublishedActionIDs exposes the canonical action IDs this package hands a diff --git a/internal/tools/mrapprovalsettings/markdown.go b/internal/tools/mrapprovalsettings/markdown.go index 9de37e8b3..f240ce83e 100644 --- a/internal/tools/mrapprovalsettings/markdown.go +++ b/internal/tools/mrapprovalsettings/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovalsettings import ( diff --git a/internal/tools/mrapprovalsettings/mr_approval_settings.go b/internal/tools/mrapprovalsettings/mr_approval_settings.go index fad5566e4..494ae11d7 100644 --- a/internal/tools/mrapprovalsettings/mr_approval_settings.go +++ b/internal/tools/mrapprovalsettings/mr_approval_settings.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovalsettings import ( diff --git a/internal/tools/mrapprovalsettings/mr_approval_settings_test.go b/internal/tools/mrapprovalsettings/mr_approval_settings_test.go index a4bcb3a60..674d9b4f3 100644 --- a/internal/tools/mrapprovalsettings/mr_approval_settings_test.go +++ b/internal/tools/mrapprovalsettings/mr_approval_settings_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrapprovalsettings import ( diff --git a/internal/tools/mrchanges/action_specs.go b/internal/tools/mrchanges/action_specs.go index 206dfa74c..f2688ac69 100644 --- a/internal/tools/mrchanges/action_specs.go +++ b/internal/tools/mrchanges/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrchanges import ( diff --git a/internal/tools/mrchanges/doc.go b/internal/tools/mrchanges/doc.go index fb34e8f2d..4d4118e80 100644 --- a/internal/tools/mrchanges/doc.go +++ b/internal/tools/mrchanges/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mrchanges implements MCP tools for GitLab merge request changes and // diff operations. // diff --git a/internal/tools/mrchanges/markdown.go b/internal/tools/mrchanges/markdown.go index 0151e3736..ead0ae1ad 100644 --- a/internal/tools/mrchanges/markdown.go +++ b/internal/tools/mrchanges/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrchanges import ( diff --git a/internal/tools/mrchanges/mr_changes.go b/internal/tools/mrchanges/mr_changes.go index d0cc7125b..48ecd4865 100644 --- a/internal/tools/mrchanges/mr_changes.go +++ b/internal/tools/mrchanges/mr_changes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrchanges import ( diff --git a/internal/tools/mrchanges/mr_changes_test.go b/internal/tools/mrchanges/mr_changes_test.go index 2497935ae..e4f73d753 100644 --- a/internal/tools/mrchanges/mr_changes_test.go +++ b/internal/tools/mrchanges/mr_changes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mr_changes_test.go contains unit tests for merge request diff/changes // retrieval and diff version operations. Tests use httptest to mock the // GitLab Merge Request Diffs API and verify success, not-found, and diff --git a/internal/tools/mrcontextcommits/action_specs.go b/internal/tools/mrcontextcommits/action_specs.go index 0ee0a6b51..d57174498 100644 --- a/internal/tools/mrcontextcommits/action_specs.go +++ b/internal/tools/mrcontextcommits/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrcontextcommits import ( diff --git a/internal/tools/mrcontextcommits/action_specs_test.go b/internal/tools/mrcontextcommits/action_specs_test.go index 9d4fcab89..f9fad80ae 100644 --- a/internal/tools/mrcontextcommits/action_specs_test.go +++ b/internal/tools/mrcontextcommits/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the action IDs this package publishes to a model // against the catalog the server really builds. // diff --git a/internal/tools/mrcontextcommits/doc.go b/internal/tools/mrcontextcommits/doc.go index 622cca840..df9caa4be 100644 --- a/internal/tools/mrcontextcommits/doc.go +++ b/internal/tools/mrcontextcommits/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mrcontextcommits implements MCP tools for GitLab merge request // context commit operations. // diff --git a/internal/tools/mrcontextcommits/export_test.go b/internal/tools/mrcontextcommits/export_test.go index 8967d580b..06941fbe1 100644 --- a/internal/tools/mrcontextcommits/export_test.go +++ b/internal/tools/mrcontextcommits/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes the package's canonical action ID block to the // external catalog test, which cannot see package-local constants. package mrcontextcommits diff --git a/internal/tools/mrcontextcommits/markdown.go b/internal/tools/mrcontextcommits/markdown.go index a11d16f70..89a0ebf92 100644 --- a/internal/tools/mrcontextcommits/markdown.go +++ b/internal/tools/mrcontextcommits/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrcontextcommits import ( diff --git a/internal/tools/mrcontextcommits/mr_context_commits.go b/internal/tools/mrcontextcommits/mr_context_commits.go index 99c564cbc..f1be6f7b0 100644 --- a/internal/tools/mrcontextcommits/mr_context_commits.go +++ b/internal/tools/mrcontextcommits/mr_context_commits.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrcontextcommits import ( diff --git a/internal/tools/mrcontextcommits/mr_context_commits_test.go b/internal/tools/mrcontextcommits/mr_context_commits_test.go index 039efc446..d689bc4d8 100644 --- a/internal/tools/mrcontextcommits/mr_context_commits_test.go +++ b/internal/tools/mrcontextcommits/mr_context_commits_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mr_context_commits_test.go contains unit tests for the merge request context commit MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/mrdiscussions/action_specs.go b/internal/tools/mrdiscussions/action_specs.go index 318da7a77..81082cb84 100644 --- a/internal/tools/mrdiscussions/action_specs.go +++ b/internal/tools/mrdiscussions/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrdiscussions import ( diff --git a/internal/tools/mrdiscussions/doc.go b/internal/tools/mrdiscussions/doc.go index 8b233f447..8951bd301 100644 --- a/internal/tools/mrdiscussions/doc.go +++ b/internal/tools/mrdiscussions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mrdiscussions implements MCP tools for GitLab merge request // discussion operations. // diff --git a/internal/tools/mrdiscussions/markdown.go b/internal/tools/mrdiscussions/markdown.go index f32e3ced4..74bc8ab99 100644 --- a/internal/tools/mrdiscussions/markdown.go +++ b/internal/tools/mrdiscussions/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrdiscussions import ( diff --git a/internal/tools/mrdiscussions/mr_discussions.go b/internal/tools/mrdiscussions/mr_discussions.go index 8e7f5faa4..b010fc2e3 100644 --- a/internal/tools/mrdiscussions/mr_discussions.go +++ b/internal/tools/mrdiscussions/mr_discussions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrdiscussions import ( diff --git a/internal/tools/mrdiscussions/mr_discussions_test.go b/internal/tools/mrdiscussions/mr_discussions_test.go index 00e4551dd..cd798b417 100644 --- a/internal/tools/mrdiscussions/mr_discussions_test.go +++ b/internal/tools/mrdiscussions/mr_discussions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mr_discussions_test.go contains unit tests for merge request discussion // operations (create general, create inline, resolve, reply, list). Tests use // httptest to mock the GitLab Discussions API and verify success paths and diff --git a/internal/tools/mrdraftnotes/action_specs.go b/internal/tools/mrdraftnotes/action_specs.go index 53645c5bf..64798c5b6 100644 --- a/internal/tools/mrdraftnotes/action_specs.go +++ b/internal/tools/mrdraftnotes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrdraftnotes import ( diff --git a/internal/tools/mrdraftnotes/action_specs_catalog_test.go b/internal/tools/mrdraftnotes/action_specs_catalog_test.go index ded4ecafa..269d0bc5d 100644 --- a/internal/tools/mrdraftnotes/action_specs_catalog_test.go +++ b/internal/tools/mrdraftnotes/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go judges the canonical action IDs this package // publishes against the catalog the server really registers. // diff --git a/internal/tools/mrdraftnotes/action_specs_test.go b/internal/tools/mrdraftnotes/action_specs_test.go index 55cf569c9..f0fb85d36 100644 --- a/internal/tools/mrdraftnotes/action_specs_test.go +++ b/internal/tools/mrdraftnotes/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for merge request draft note actions. package mrdraftnotes diff --git a/internal/tools/mrdraftnotes/doc.go b/internal/tools/mrdraftnotes/doc.go index ce5c661c4..5c9d275eb 100644 --- a/internal/tools/mrdraftnotes/doc.go +++ b/internal/tools/mrdraftnotes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mrdraftnotes implements MCP tools for GitLab merge request draft // note operations. // diff --git a/internal/tools/mrdraftnotes/markdown.go b/internal/tools/mrdraftnotes/markdown.go index 4829ad9be..8322689ae 100644 --- a/internal/tools/mrdraftnotes/markdown.go +++ b/internal/tools/mrdraftnotes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrdraftnotes import ( diff --git a/internal/tools/mrdraftnotes/mr_draft_notes.go b/internal/tools/mrdraftnotes/mr_draft_notes.go index e27215663..99d3f14a0 100644 --- a/internal/tools/mrdraftnotes/mr_draft_notes.go +++ b/internal/tools/mrdraftnotes/mr_draft_notes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrdraftnotes import ( diff --git a/internal/tools/mrdraftnotes/mr_draft_notes_test.go b/internal/tools/mrdraftnotes/mr_draft_notes_test.go index de3103921..c4664e9e9 100644 --- a/internal/tools/mrdraftnotes/mr_draft_notes_test.go +++ b/internal/tools/mrdraftnotes/mr_draft_notes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mr_draft_notes_test.go contains unit tests for the merge request draft note MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/mrnotes/action_specs.go b/internal/tools/mrnotes/action_specs.go index 62e44bcd5..960c1c1c4 100644 --- a/internal/tools/mrnotes/action_specs.go +++ b/internal/tools/mrnotes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrnotes import ( diff --git a/internal/tools/mrnotes/action_specs_catalog_test.go b/internal/tools/mrnotes/action_specs_catalog_test.go index ccd05b0e3..5c10a6c3e 100644 --- a/internal/tools/mrnotes/action_specs_catalog_test.go +++ b/internal/tools/mrnotes/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the action IDs this package publishes to // a model against the catalog the server really builds. // diff --git a/internal/tools/mrnotes/action_specs_test.go b/internal/tools/mrnotes/action_specs_test.go index 7b51b1647..59208036a 100644 --- a/internal/tools/mrnotes/action_specs_test.go +++ b/internal/tools/mrnotes/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for merge request note actions. package mrnotes diff --git a/internal/tools/mrnotes/doc.go b/internal/tools/mrnotes/doc.go index b87ccdf64..a83eceaf3 100644 --- a/internal/tools/mrnotes/doc.go +++ b/internal/tools/mrnotes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package mrnotes implements MCP tools for GitLab merge request note // operations. // diff --git a/internal/tools/mrnotes/export_test.go b/internal/tools/mrnotes/export_test.go index 0425c1b22..a2669c3a9 100644 --- a/internal/tools/mrnotes/export_test.go +++ b/internal/tools/mrnotes/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // export_test.go exposes the package's canonical action ID block to the // external catalog test, which cannot see package-local constants. package mrnotes diff --git a/internal/tools/mrnotes/markdown.go b/internal/tools/mrnotes/markdown.go index d37315c23..8c86b2d05 100644 --- a/internal/tools/mrnotes/markdown.go +++ b/internal/tools/mrnotes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrnotes import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/mrnotes/mr_notes.go b/internal/tools/mrnotes/mr_notes.go index 810d36592..3a2ed831d 100644 --- a/internal/tools/mrnotes/mr_notes.go +++ b/internal/tools/mrnotes/mr_notes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package mrnotes import ( diff --git a/internal/tools/mrnotes/mr_notes_test.go b/internal/tools/mrnotes/mr_notes_test.go index edd786e64..0132e537e 100644 --- a/internal/tools/mrnotes/mr_notes_test.go +++ b/internal/tools/mrnotes/mr_notes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mr_notes_test.go contains unit tests for merge request note (comment) // operations (create, list, update, delete). Tests use httptest to mock the // GitLab Notes API and verify success, error, and pagination paths. diff --git a/internal/tools/namespaces/action_specs.go b/internal/tools/namespaces/action_specs.go index 6b111317d..b05c2dafc 100644 --- a/internal/tools/namespaces/action_specs.go +++ b/internal/tools/namespaces/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package namespaces import ( diff --git a/internal/tools/namespaces/action_specs_test.go b/internal/tools/namespaces/action_specs_test.go index d0a581818..e0e44111b 100644 --- a/internal/tools/namespaces/action_specs_test.go +++ b/internal/tools/namespaces/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the published-ID assertions for the namespace // actions. // diff --git a/internal/tools/namespaces/doc.go b/internal/tools/namespaces/doc.go index ce4d9d039..66fab4cbc 100644 --- a/internal/tools/namespaces/doc.go +++ b/internal/tools/namespaces/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package namespaces implements MCP tools for GitLab namespace operations. // // The package wraps the GitLab Namespaces API: diff --git a/internal/tools/namespaces/markdown.go b/internal/tools/namespaces/markdown.go index 826abd4a0..c2fba38a8 100644 --- a/internal/tools/namespaces/markdown.go +++ b/internal/tools/namespaces/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package namespaces import ( diff --git a/internal/tools/namespaces/namespaces.go b/internal/tools/namespaces/namespaces.go index 97485a26e..2fe74415e 100644 --- a/internal/tools/namespaces/namespaces.go +++ b/internal/tools/namespaces/namespaces.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package namespaces import ( diff --git a/internal/tools/namespaces/namespaces_test.go b/internal/tools/namespaces/namespaces_test.go index 9334060de..26c3de078 100644 --- a/internal/tools/namespaces/namespaces_test.go +++ b/internal/tools/namespaces/namespaces_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // namespaces_test.go contains unit tests for the namespace MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/notifications/action_specs.go b/internal/tools/notifications/action_specs.go index 523eed8aa..0ea900af1 100644 --- a/internal/tools/notifications/action_specs.go +++ b/internal/tools/notifications/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package notifications import ( diff --git a/internal/tools/notifications/action_specs_test.go b/internal/tools/notifications/action_specs_test.go index 63fd48282..53cfc27ca 100644 --- a/internal/tools/notifications/action_specs_test.go +++ b/internal/tools/notifications/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the tests over the canonical action IDs the // notification specs and their Markdown hints publish. package notifications diff --git a/internal/tools/notifications/doc.go b/internal/tools/notifications/doc.go index 46bfce893..ad5604c54 100644 --- a/internal/tools/notifications/doc.go +++ b/internal/tools/notifications/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package notifications implements MCP tools for GitLab notification setting // operations. // diff --git a/internal/tools/notifications/markdown.go b/internal/tools/notifications/markdown.go index 712bbcfaf..e3fedad21 100644 --- a/internal/tools/notifications/markdown.go +++ b/internal/tools/notifications/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package notifications import ( diff --git a/internal/tools/notifications/notifications.go b/internal/tools/notifications/notifications.go index 561b43d95..da02edee6 100644 --- a/internal/tools/notifications/notifications.go +++ b/internal/tools/notifications/notifications.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package notifications import ( diff --git a/internal/tools/notifications/notifications_test.go b/internal/tools/notifications/notifications_test.go index 82e206e6d..8472266df 100644 --- a/internal/tools/notifications/notifications_test.go +++ b/internal/tools/notifications/notifications_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // notifications_test.go contains unit tests for the notification settings MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/orbit/action_specs.go b/internal/tools/orbit/action_specs.go index cbc6acc35..1a72723f2 100644 --- a/internal/tools/orbit/action_specs.go +++ b/internal/tools/orbit/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbit import ( diff --git a/internal/tools/orbit/action_specs_test.go b/internal/tools/orbit/action_specs_test.go index 8e82da448..b88ce9ed5 100644 --- a/internal/tools/orbit/action_specs_test.go +++ b/internal/tools/orbit/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbit import ( diff --git a/internal/tools/orbit/doc.go b/internal/tools/orbit/doc.go index 5faf6b2fe..21fbe3aee 100644 --- a/internal/tools/orbit/doc.go +++ b/internal/tools/orbit/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package orbit implements MCP tools for the experimental GitLab Orbit // Knowledge Graph API on GitLab.com. // diff --git a/internal/tools/orbit/markdown.go b/internal/tools/orbit/markdown.go index 6bc4578d0..b44b67f4b 100644 --- a/internal/tools/orbit/markdown.go +++ b/internal/tools/orbit/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbit import ( diff --git a/internal/tools/orbit/markdown_test.go b/internal/tools/orbit/markdown_test.go index 9a80848f8..bd7a003d8 100644 --- a/internal/tools/orbit/markdown_test.go +++ b/internal/tools/orbit/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbit import ( diff --git a/internal/tools/orbit/orbit.go b/internal/tools/orbit/orbit.go index ca4c9a02a..12a0eff79 100644 --- a/internal/tools/orbit/orbit.go +++ b/internal/tools/orbit/orbit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbit import ( diff --git a/internal/tools/orbit/orbit_test.go b/internal/tools/orbit/orbit_test.go index 64fa4d136..1b5f6597f 100644 --- a/internal/tools/orbit/orbit_test.go +++ b/internal/tools/orbit/orbit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package orbit import ( diff --git a/internal/tools/packages/action_specs.go b/internal/tools/packages/action_specs.go index ebe9c6585..5513db90a 100644 --- a/internal/tools/packages/action_specs.go +++ b/internal/tools/packages/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package packages import ( diff --git a/internal/tools/packages/action_specs_test.go b/internal/tools/packages/action_specs_test.go index e4647a07a..1b99f4b2d 100644 --- a/internal/tools/packages/action_specs_test.go +++ b/internal/tools/packages/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for package actions. package packages diff --git a/internal/tools/packages/doc.go b/internal/tools/packages/doc.go index c29c1ea4d..ad1986cd8 100644 --- a/internal/tools/packages/doc.go +++ b/internal/tools/packages/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package packages implements MCP tools for GitLab Generic Packages registry // operations. // diff --git a/internal/tools/packages/markdown.go b/internal/tools/packages/markdown.go index 4ae2faa7c..fbadcd2de 100644 --- a/internal/tools/packages/markdown.go +++ b/internal/tools/packages/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package packages import ( diff --git a/internal/tools/packages/markdown_test.go b/internal/tools/packages/markdown_test.go index 92ce06c7b..4fb03d95a 100644 --- a/internal/tools/packages/markdown_test.go +++ b/internal/tools/packages/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the Markdown formatting functions // in the packages package. package packages diff --git a/internal/tools/packages/packages.go b/internal/tools/packages/packages.go index 55ecc201a..581cd2824 100644 --- a/internal/tools/packages/packages.go +++ b/internal/tools/packages/packages.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package packages import ( diff --git a/internal/tools/packages/packages_composite.go b/internal/tools/packages/packages_composite.go index e08c106fa..aa2db9932 100644 --- a/internal/tools/packages/packages_composite.go +++ b/internal/tools/packages/packages_composite.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package packages import ( diff --git a/internal/tools/packages/packages_composite_test.go b/internal/tools/packages/packages_composite_test.go index 145b94aec..c781964e7 100644 --- a/internal/tools/packages/packages_composite_test.go +++ b/internal/tools/packages/packages_composite_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // packages_composite_test.go contains unit tests for composite package // operations: publish-and-link and publish-directory, including the // progress scale a single tool call reports against. diff --git a/internal/tools/packages/packages_stream.go b/internal/tools/packages/packages_stream.go index dbeb783a9..d0870f866 100644 --- a/internal/tools/packages/packages_stream.go +++ b/internal/tools/packages/packages_stream.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package packages import ( diff --git a/internal/tools/packages/packages_stream_test.go b/internal/tools/packages/packages_stream_test.go index 2392a1b30..cf9a7366d 100644 --- a/internal/tools/packages/packages_stream_test.go +++ b/internal/tools/packages/packages_stream_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // packages_stream_test.go contains unit tests for streaming package downloads. package packages diff --git a/internal/tools/packages/packages_stream_unix_test.go b/internal/tools/packages/packages_stream_unix_test.go index 18a2553ec..d410a9f90 100644 --- a/internal/tools/packages/packages_stream_unix_test.go +++ b/internal/tools/packages/packages_stream_unix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !windows // packages_stream_unix_test.go covers the destination-type rule of diff --git a/internal/tools/packages/packages_test.go b/internal/tools/packages/packages_test.go index c9f2f61c7..c29960659 100644 --- a/internal/tools/packages/packages_test.go +++ b/internal/tools/packages/packages_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // packages_test.go contains unit tests for GitLab Generic Packages API // operations (publish, download, list, file_list, delete, file_delete). package packages diff --git a/internal/tools/pages/action_specs.go b/internal/tools/pages/action_specs.go index 7b493273e..36ab8b01a 100644 --- a/internal/tools/pages/action_specs.go +++ b/internal/tools/pages/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pages import ( diff --git a/internal/tools/pages/action_specs_test.go b/internal/tools/pages/action_specs_test.go index ce87a7ef7..6bc843dda 100644 --- a/internal/tools/pages/action_specs_test.go +++ b/internal/tools/pages/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for Pages actions. package pages diff --git a/internal/tools/pages/doc.go b/internal/tools/pages/doc.go index 37fcf2427..5a360376e 100644 --- a/internal/tools/pages/doc.go +++ b/internal/tools/pages/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package pages implements MCP tools for GitLab Pages operations. // // The package wraps the GitLab Pages API: diff --git a/internal/tools/pages/markdown.go b/internal/tools/pages/markdown.go index bfbfbdeba..49ef46225 100644 --- a/internal/tools/pages/markdown.go +++ b/internal/tools/pages/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pages import ( diff --git a/internal/tools/pages/pages.go b/internal/tools/pages/pages.go index 166bc2ade..720458800 100644 --- a/internal/tools/pages/pages.go +++ b/internal/tools/pages/pages.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pages import ( diff --git a/internal/tools/pages/pages_test.go b/internal/tools/pages/pages_test.go index 2f037c762..74b0c125e 100644 --- a/internal/tools/pages/pages_test.go +++ b/internal/tools/pages/pages_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pages_test.go contains unit tests for the GitLab Pages MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/pipelines/action_specs.go b/internal/tools/pipelines/action_specs.go index abfc17af9..4f8c44dfe 100644 --- a/internal/tools/pipelines/action_specs.go +++ b/internal/tools/pipelines/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/action_specs_test.go b/internal/tools/pipelines/action_specs_test.go index 1f3bf60ef..dedcef1ec 100644 --- a/internal/tools/pipelines/action_specs_test.go +++ b/internal/tools/pipelines/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/doc.go b/internal/tools/pipelines/doc.go index 158dc51e2..f276eda4b 100644 --- a/internal/tools/pipelines/doc.go +++ b/internal/tools/pipelines/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package pipelines implements MCP tools for GitLab pipeline operations. // // It supports listing, retrieving, creating, canceling, retrying, deleting, and diff --git a/internal/tools/pipelines/latest.go b/internal/tools/pipelines/latest.go index a12e291fc..1d9aa0986 100644 --- a/internal/tools/pipelines/latest.go +++ b/internal/tools/pipelines/latest.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/latest_test.go b/internal/tools/pipelines/latest_test.go index 83e94252a..f844518e3 100644 --- a/internal/tools/pipelines/latest_test.go +++ b/internal/tools/pipelines/latest_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // latest_test.go covers pipeline.latest: the latest pipeline GitLab reports // for a ref, and what the action answers when GitLab answers that route 403. package pipelines diff --git a/internal/tools/pipelines/markdown.go b/internal/tools/pipelines/markdown.go index 22ea72d5b..c647ce888 100644 --- a/internal/tools/pipelines/markdown.go +++ b/internal/tools/pipelines/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/pipelines.go b/internal/tools/pipelines/pipelines.go index 4a0e0af7c..5c14c3182 100644 --- a/internal/tools/pipelines/pipelines.go +++ b/internal/tools/pipelines/pipelines.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/pipelines_test.go b/internal/tools/pipelines/pipelines_test.go index ad2c7c357..d90b3593e 100644 --- a/internal/tools/pipelines/pipelines_test.go +++ b/internal/tools/pipelines/pipelines_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pipelines_test.go contains unit tests for GitLab pipeline listing operations. // Tests use httptest to mock the GitLab Pipelines API. package pipelines diff --git a/internal/tools/pipelines/sent_shapes.go b/internal/tools/pipelines/sent_shapes.go index 5c5f9db55..a9b460688 100644 --- a/internal/tools/pipelines/sent_shapes.go +++ b/internal/tools/pipelines/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/sent_shapes_test.go b/internal/tools/pipelines/sent_shapes_test.go index cb7e0faba..4bcabc452 100644 --- a/internal/tools/pipelines/sent_shapes_test.go +++ b/internal/tools/pipelines/sent_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sent_shapes_test.go covers the reader that takes off a captured response the // twelve keys API::Entities::Ci::Pipeline adds to the basic entity, and the // converter that places them on the list output. diff --git a/internal/tools/pipelines/shapes.go b/internal/tools/pipelines/shapes.go index 723503f81..c41e55ba4 100644 --- a/internal/tools/pipelines/shapes.go +++ b/internal/tools/pipelines/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/wait.go b/internal/tools/pipelines/wait.go index 4336e0201..4fc0a5ab8 100644 --- a/internal/tools/pipelines/wait.go +++ b/internal/tools/pipelines/wait.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelines import ( diff --git a/internal/tools/pipelines/wait_test.go b/internal/tools/pipelines/wait_test.go index 04b51e3d6..1d235b487 100644 --- a/internal/tools/pipelines/wait_test.go +++ b/internal/tools/pipelines/wait_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // wait_test.go contains unit tests for the pipeline Wait polling tool. // Tests use httptest with staged responses to simulate pipeline state transitions. package pipelines diff --git a/internal/tools/pipelineschedules/action_specs.go b/internal/tools/pipelineschedules/action_specs.go index 8b94f802b..b81f8d4c0 100644 --- a/internal/tools/pipelineschedules/action_specs.go +++ b/internal/tools/pipelineschedules/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelineschedules import ( diff --git a/internal/tools/pipelineschedules/action_specs_catalog_test.go b/internal/tools/pipelineschedules/action_specs_catalog_test.go index 1bd0d1606..5d8f7a75e 100644 --- a/internal/tools/pipelineschedules/action_specs_catalog_test.go +++ b/internal/tools/pipelineschedules/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the pipeline schedule action IDs this // package publishes against the catalog the server really builds. It is an // external test package because internal/tools imports this one, so only a diff --git a/internal/tools/pipelineschedules/action_specs_test.go b/internal/tools/pipelineschedules/action_specs_test.go index 545c58ef6..fe5be0b56 100644 --- a/internal/tools/pipelineschedules/action_specs_test.go +++ b/internal/tools/pipelineschedules/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for pipeline schedule actions. package pipelineschedules diff --git a/internal/tools/pipelineschedules/doc.go b/internal/tools/pipelineschedules/doc.go index fd17c9d7d..ffc0235a0 100644 --- a/internal/tools/pipelineschedules/doc.go +++ b/internal/tools/pipelineschedules/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package pipelineschedules implements MCP tools for GitLab pipeline schedule // operations. // diff --git a/internal/tools/pipelineschedules/export_test.go b/internal/tools/pipelineschedules/export_test.go index 01f7f80ae..b754b15b6 100644 --- a/internal/tools/pipelineschedules/export_test.go +++ b/internal/tools/pipelineschedules/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelineschedules // PublishedActionIDs is every canonical catalog action ID this package names diff --git a/internal/tools/pipelineschedules/markdown.go b/internal/tools/pipelineschedules/markdown.go index 5cde1fe57..a4d0e451a 100644 --- a/internal/tools/pipelineschedules/markdown.go +++ b/internal/tools/pipelineschedules/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelineschedules import ( diff --git a/internal/tools/pipelineschedules/pipeline_schedules.go b/internal/tools/pipelineschedules/pipeline_schedules.go index 2adaabd6a..b898577a4 100644 --- a/internal/tools/pipelineschedules/pipeline_schedules.go +++ b/internal/tools/pipelineschedules/pipeline_schedules.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelineschedules import ( diff --git a/internal/tools/pipelineschedules/pipeline_schedules_test.go b/internal/tools/pipelineschedules/pipeline_schedules_test.go index 9656ff234..9295bbe2e 100644 --- a/internal/tools/pipelineschedules/pipeline_schedules_test.go +++ b/internal/tools/pipelineschedules/pipeline_schedules_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pipeline_schedules_test.go contains unit tests for the pipeline schedule MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/pipelineschedules/shapes.go b/internal/tools/pipelineschedules/shapes.go index 93f03d272..f98aafd5f 100644 --- a/internal/tools/pipelineschedules/shapes.go +++ b/internal/tools/pipelineschedules/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelineschedules import ( diff --git a/internal/tools/pipelinetriggers/action_specs.go b/internal/tools/pipelinetriggers/action_specs.go index 3812c2d97..812015f87 100644 --- a/internal/tools/pipelinetriggers/action_specs.go +++ b/internal/tools/pipelinetriggers/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelinetriggers import ( diff --git a/internal/tools/pipelinetriggers/action_specs_test.go b/internal/tools/pipelinetriggers/action_specs_test.go index fe9267423..0481440ee 100644 --- a/internal/tools/pipelinetriggers/action_specs_test.go +++ b/internal/tools/pipelinetriggers/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for pipeline trigger actions. package pipelinetriggers diff --git a/internal/tools/pipelinetriggers/doc.go b/internal/tools/pipelinetriggers/doc.go index fd06cba47..7bd83ba95 100644 --- a/internal/tools/pipelinetriggers/doc.go +++ b/internal/tools/pipelinetriggers/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package pipelinetriggers implements MCP tools for GitLab pipeline trigger // operations. // diff --git a/internal/tools/pipelinetriggers/markdown.go b/internal/tools/pipelinetriggers/markdown.go index d301c56cb..a66aaf974 100644 --- a/internal/tools/pipelinetriggers/markdown.go +++ b/internal/tools/pipelinetriggers/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelinetriggers import ( diff --git a/internal/tools/pipelinetriggers/pipeline_triggers.go b/internal/tools/pipelinetriggers/pipeline_triggers.go index 528342288..05b087e9b 100644 --- a/internal/tools/pipelinetriggers/pipeline_triggers.go +++ b/internal/tools/pipelinetriggers/pipeline_triggers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelinetriggers import ( diff --git a/internal/tools/pipelinetriggers/pipeline_triggers_test.go b/internal/tools/pipelinetriggers/pipeline_triggers_test.go index 35ce0c989..85fa184a4 100644 --- a/internal/tools/pipelinetriggers/pipeline_triggers_test.go +++ b/internal/tools/pipelinetriggers/pipeline_triggers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pipeline_triggers_test.go contains unit tests for the pipeline trigger MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/pipelinetriggers/shapes.go b/internal/tools/pipelinetriggers/shapes.go index d4babd0c2..d2aff1d3e 100644 --- a/internal/tools/pipelinetriggers/shapes.go +++ b/internal/tools/pipelinetriggers/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package pipelinetriggers import ( diff --git a/internal/tools/planlimits/doc.go b/internal/tools/planlimits/doc.go index 3ef1bf2de..f0a7d234d 100644 --- a/internal/tools/planlimits/doc.go +++ b/internal/tools/planlimits/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package planlimits implements MCP tools for GitLab plan limit operations. // // The package wraps the GitLab Plan limits API: diff --git a/internal/tools/planlimits/markdown.go b/internal/tools/planlimits/markdown.go index cbfefce81..a1628d5d6 100644 --- a/internal/tools/planlimits/markdown.go +++ b/internal/tools/planlimits/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package planlimits import ( diff --git a/internal/tools/planlimits/plan_limits.go b/internal/tools/planlimits/plan_limits.go index d7787c24d..ea7a71b81 100644 --- a/internal/tools/planlimits/plan_limits.go +++ b/internal/tools/planlimits/plan_limits.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package planlimits import ( diff --git a/internal/tools/planlimits/plan_limits_test.go b/internal/tools/planlimits/plan_limits_test.go index 584356125..2414eb3b7 100644 --- a/internal/tools/planlimits/plan_limits_test.go +++ b/internal/tools/planlimits/plan_limits_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // plan_limits_test.go contains unit tests for the plan limit MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/planlimits/sent_shapes.go b/internal/tools/planlimits/sent_shapes.go index fae6910d6..b72c93864 100644 --- a/internal/tools/planlimits/sent_shapes.go +++ b/internal/tools/planlimits/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package planlimits import ( diff --git a/internal/tools/projectaliases/action_specs.go b/internal/tools/projectaliases/action_specs.go index 36bf53d0b..3f4939273 100644 --- a/internal/tools/projectaliases/action_specs.go +++ b/internal/tools/projectaliases/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectaliases import ( diff --git a/internal/tools/projectaliases/action_specs_test.go b/internal/tools/projectaliases/action_specs_test.go index ae393abc9..e004b175d 100644 --- a/internal/tools/projectaliases/action_specs_test.go +++ b/internal/tools/projectaliases/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for project alias actions. package projectaliases diff --git a/internal/tools/projectaliases/doc.go b/internal/tools/projectaliases/doc.go index 7f287dcfe..7094ed764 100644 --- a/internal/tools/projectaliases/doc.go +++ b/internal/tools/projectaliases/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectaliases implements MCP tools for GitLab project alias // operations. // diff --git a/internal/tools/projectaliases/markdown.go b/internal/tools/projectaliases/markdown.go index 86e3b260f..7529eb3be 100644 --- a/internal/tools/projectaliases/markdown.go +++ b/internal/tools/projectaliases/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectaliases import ( diff --git a/internal/tools/projectaliases/project_aliases.go b/internal/tools/projectaliases/project_aliases.go index 79dbd6adf..e0f48d4fd 100644 --- a/internal/tools/projectaliases/project_aliases.go +++ b/internal/tools/projectaliases/project_aliases.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectaliases import ( diff --git a/internal/tools/projectaliases/project_aliases_test.go b/internal/tools/projectaliases/project_aliases_test.go index 64e59b5be..7c16ee501 100644 --- a/internal/tools/projectaliases/project_aliases_test.go +++ b/internal/tools/projectaliases/project_aliases_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_aliases_test.go contains unit tests for GitLab project alias // operations. Tests use httptest to mock the GitLab Project Aliases API. package projectaliases diff --git a/internal/tools/projectdiscovery/action_specs.go b/internal/tools/projectdiscovery/action_specs.go index 66f4d798f..f52134b54 100644 --- a/internal/tools/projectdiscovery/action_specs.go +++ b/internal/tools/projectdiscovery/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectdiscovery import ( diff --git a/internal/tools/projectdiscovery/doc.go b/internal/tools/projectdiscovery/doc.go index 5a2bb996d..a14e2b2b9 100644 --- a/internal/tools/projectdiscovery/doc.go +++ b/internal/tools/projectdiscovery/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectdiscovery implements MCP tools that resolve Git remote URLs to // GitLab project metadata. // diff --git a/internal/tools/projectdiscovery/markdown.go b/internal/tools/projectdiscovery/markdown.go index e54e277f4..c20044ac4 100644 --- a/internal/tools/projectdiscovery/markdown.go +++ b/internal/tools/projectdiscovery/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectdiscovery import ( diff --git a/internal/tools/projectdiscovery/project_discovery.go b/internal/tools/projectdiscovery/project_discovery.go index 6319b78a7..8c5765333 100644 --- a/internal/tools/projectdiscovery/project_discovery.go +++ b/internal/tools/projectdiscovery/project_discovery.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectdiscovery import ( diff --git a/internal/tools/projectdiscovery/project_discovery_test.go b/internal/tools/projectdiscovery/project_discovery_test.go index 2cca49558..02febfc11 100644 --- a/internal/tools/projectdiscovery/project_discovery_test.go +++ b/internal/tools/projectdiscovery/project_discovery_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_discovery_test.go contains unit tests for the project discovery // tool handlers defined in project_discovery.go. // diff --git a/internal/tools/projectimportexport/action_specs.go b/internal/tools/projectimportexport/action_specs.go index 1afb8e947..47f67c772 100644 --- a/internal/tools/projectimportexport/action_specs.go +++ b/internal/tools/projectimportexport/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectimportexport import ( diff --git a/internal/tools/projectimportexport/action_specs_test.go b/internal/tools/projectimportexport/action_specs_test.go index 230e0777c..ca5475920 100644 --- a/internal/tools/projectimportexport/action_specs_test.go +++ b/internal/tools/projectimportexport/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the published-ID assertions for the project // import/export actions. // diff --git a/internal/tools/projectimportexport/doc.go b/internal/tools/projectimportexport/doc.go index 441fdbc0d..13858efb1 100644 --- a/internal/tools/projectimportexport/doc.go +++ b/internal/tools/projectimportexport/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectimportexport implements MCP tools for GitLab project import // and export operations. // diff --git a/internal/tools/projectimportexport/markdown.go b/internal/tools/projectimportexport/markdown.go index aee1f634d..3982b6b9d 100644 --- a/internal/tools/projectimportexport/markdown.go +++ b/internal/tools/projectimportexport/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectimportexport import ( diff --git a/internal/tools/projectimportexport/project_import_export.go b/internal/tools/projectimportexport/project_import_export.go index d088eeccd..84191cbad 100644 --- a/internal/tools/projectimportexport/project_import_export.go +++ b/internal/tools/projectimportexport/project_import_export.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectimportexport import ( diff --git a/internal/tools/projectimportexport/project_import_export_test.go b/internal/tools/projectimportexport/project_import_export_test.go index 538ff789a..cdde0083f 100644 --- a/internal/tools/projectimportexport/project_import_export_test.go +++ b/internal/tools/projectimportexport/project_import_export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_import_export_test.go contains unit tests for the project import/export MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/projectiterations/action_specs.go b/internal/tools/projectiterations/action_specs.go index d8d893fd4..9a5b9925f 100644 --- a/internal/tools/projectiterations/action_specs.go +++ b/internal/tools/projectiterations/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectiterations import ( diff --git a/internal/tools/projectiterations/action_specs_test.go b/internal/tools/projectiterations/action_specs_test.go index b382fa428..19dceb791 100644 --- a/internal/tools/projectiterations/action_specs_test.go +++ b/internal/tools/projectiterations/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the canonical action IDs this package publishes // against the catalog the server builds. // diff --git a/internal/tools/projectiterations/doc.go b/internal/tools/projectiterations/doc.go index 734979283..92b3061c5 100644 --- a/internal/tools/projectiterations/doc.go +++ b/internal/tools/projectiterations/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectiterations implements MCP tools for GitLab project iteration // operations. // diff --git a/internal/tools/projectiterations/export_test.go b/internal/tools/projectiterations/export_test.go index e7debab99..6dd9b2566 100644 --- a/internal/tools/projectiterations/export_test.go +++ b/internal/tools/projectiterations/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectiterations // PublishedActionIDs is every canonical action ID this package hands a model: diff --git a/internal/tools/projectiterations/markdown.go b/internal/tools/projectiterations/markdown.go index ada1c42fe..156c94660 100644 --- a/internal/tools/projectiterations/markdown.go +++ b/internal/tools/projectiterations/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectiterations import ( diff --git a/internal/tools/projectiterations/project_iterations.go b/internal/tools/projectiterations/project_iterations.go index d82612796..6488e6669 100644 --- a/internal/tools/projectiterations/project_iterations.go +++ b/internal/tools/projectiterations/project_iterations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectiterations import ( diff --git a/internal/tools/projectiterations/project_iterations_test.go b/internal/tools/projectiterations/project_iterations_test.go index 9b6f9b2b6..017ec8e93 100644 --- a/internal/tools/projectiterations/project_iterations_test.go +++ b/internal/tools/projectiterations/project_iterations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_iterations_test.go contains unit tests for GitLab project iteration // operations. Tests use httptest to mock the GitLab Project Iterations API. package projectiterations diff --git a/internal/tools/projectmirrors/action_specs.go b/internal/tools/projectmirrors/action_specs.go index f51859da1..c7cef4c44 100644 --- a/internal/tools/projectmirrors/action_specs.go +++ b/internal/tools/projectmirrors/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectmirrors import ( diff --git a/internal/tools/projectmirrors/action_specs_test.go b/internal/tools/projectmirrors/action_specs_test.go index fdc5ecdce..672db1de0 100644 --- a/internal/tools/projectmirrors/action_specs_test.go +++ b/internal/tools/projectmirrors/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for project mirror actions. package projectmirrors diff --git a/internal/tools/projectmirrors/doc.go b/internal/tools/projectmirrors/doc.go index b0d3a391e..dc0bef47b 100644 --- a/internal/tools/projectmirrors/doc.go +++ b/internal/tools/projectmirrors/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectmirrors implements MCP tools for GitLab project remote mirror // operations. // diff --git a/internal/tools/projectmirrors/markdown.go b/internal/tools/projectmirrors/markdown.go index f6cce2d97..34adad1f5 100644 --- a/internal/tools/projectmirrors/markdown.go +++ b/internal/tools/projectmirrors/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectmirrors import ( diff --git a/internal/tools/projectmirrors/project_mirrors.go b/internal/tools/projectmirrors/project_mirrors.go index 3c638af77..2ef162f32 100644 --- a/internal/tools/projectmirrors/project_mirrors.go +++ b/internal/tools/projectmirrors/project_mirrors.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectmirrors import ( diff --git a/internal/tools/projectmirrors/project_mirrors_test.go b/internal/tools/projectmirrors/project_mirrors_test.go index 87382df4c..3d1f2d2cf 100644 --- a/internal/tools/projectmirrors/project_mirrors_test.go +++ b/internal/tools/projectmirrors/project_mirrors_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_mirrors_test.go contains unit tests for GitLab project mirror // operations. Tests use httptest to mock the GitLab Project Mirrors API. package projectmirrors diff --git a/internal/tools/projects/action_specs.go b/internal/tools/projects/action_specs.go index bd8d3a971..3a78f8ef8 100644 --- a/internal/tools/projects/action_specs.go +++ b/internal/tools/projects/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/action_specs_catalog_test.go b/internal/tools/projects/action_specs_catalog_test.go index 8a06dea64..5067b9b13 100644 --- a/internal/tools/projects/action_specs_catalog_test.go +++ b/internal/tools/projects/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_ids_test.go holds this package against the catalog: every canonical // action ID it publishes to a model, in an ActionSpec's RelatedActions and in // the hints its Markdown writes, must name an action the catalog really builds. diff --git a/internal/tools/projects/action_specs_test.go b/internal/tools/projects/action_specs_test.go index 111bcbe05..094aec238 100644 --- a/internal/tools/projects/action_specs_test.go +++ b/internal/tools/projects/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/approvals.go b/internal/tools/projects/approvals.go index 2cf92c9e4..c7fdb571e 100644 --- a/internal/tools/projects/approvals.go +++ b/internal/tools/projects/approvals.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/approvals_test.go b/internal/tools/projects/approvals_test.go index 27063b7ea..0a594fed8 100644 --- a/internal/tools/projects/approvals_test.go +++ b/internal/tools/projects/approvals_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // approvals_test.go contains unit tests for project approval configuration // and approval rule operations. package projects diff --git a/internal/tools/projects/doc.go b/internal/tools/projects/doc.go index e0e79497b..92570ccfe 100644 --- a/internal/tools/projects/doc.go +++ b/internal/tools/projects/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projects implements MCP tools for GitLab project operations. // // The package covers project create, get, list, update, delete, restore, fork, diff --git a/internal/tools/projects/markdown.go b/internal/tools/projects/markdown.go index 7716e61f7..78531e168 100644 --- a/internal/tools/projects/markdown.go +++ b/internal/tools/projects/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/mirroring.go b/internal/tools/projects/mirroring.go index 2f3a17fad..f2c4f5888 100644 --- a/internal/tools/projects/mirroring.go +++ b/internal/tools/projects/mirroring.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/mirroring_test.go b/internal/tools/projects/mirroring_test.go index 3bd93f014..6a6b06dba 100644 --- a/internal/tools/projects/mirroring_test.go +++ b/internal/tools/projects/mirroring_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mirroring_test.go contains unit tests for project pull mirror operations. package projects diff --git a/internal/tools/projects/projects.go b/internal/tools/projects/projects.go index 53b041899..21148138b 100644 --- a/internal/tools/projects/projects.go +++ b/internal/tools/projects/projects.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/projects_test.go b/internal/tools/projects/projects_test.go index ad9a7a880..63995146a 100644 --- a/internal/tools/projects/projects_test.go +++ b/internal/tools/projects/projects_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // projects_test.go contains unit tests for GitLab project operations // (create, get, list, delete, update). Tests use httptest to mock the GitLab // API and verify both success and error paths including pagination. diff --git a/internal/tools/projects/pull_mirror_guard.go b/internal/tools/projects/pull_mirror_guard.go index 56bb04fe1..267b66964 100644 --- a/internal/tools/projects/pull_mirror_guard.go +++ b/internal/tools/projects/pull_mirror_guard.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pull_mirror_guard.go guards the one pull-mirror configuration that destroys // commits: a mirror that overwrites diverged branches replaces the project's // own history with whatever the source repository holds. diff --git a/internal/tools/projects/pull_mirror_guard_test.go b/internal/tools/projects/pull_mirror_guard_test.go index 82d70e728..d8f2ee339 100644 --- a/internal/tools/projects/pull_mirror_guard_test.go +++ b/internal/tools/projects/pull_mirror_guard_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pull_mirror_guard_test.go contains unit tests for the confirmation guard in // front of a pull-mirror configuration that overwrites diverged branches. package projects diff --git a/internal/tools/projects/shapes.go b/internal/tools/projects/shapes.go index d3ca5c997..fb7e33c0c 100644 --- a/internal/tools/projects/shapes.go +++ b/internal/tools/projects/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/shapes_test.go b/internal/tools/projects/shapes_test.go index 3e757c891..d5e413d0a 100644 --- a/internal/tools/projects/shapes_test.go +++ b/internal/tools/projects/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go covers the nested-object converters that mirror client-go // sub-objects on the project Output (namespace, owner, permissions, // forked_from_project, _links, statistics, shared_with_groups, license, diff --git a/internal/tools/projects/target_branch_rules.go b/internal/tools/projects/target_branch_rules.go index be7fe0461..4fa11e80e 100644 --- a/internal/tools/projects/target_branch_rules.go +++ b/internal/tools/projects/target_branch_rules.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/target_branch_rules_test.go b/internal/tools/projects/target_branch_rules_test.go index fa7007c31..88da36f00 100644 --- a/internal/tools/projects/target_branch_rules_test.go +++ b/internal/tools/projects/target_branch_rules_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // target_branch_rules_test.go contains unit tests for GitLab project target // branch rule operations (list, create, delete). The operations are backed by // the GitLab GraphQL API, so tests use testutil.GraphQLHandler to mock the diff --git a/internal/tools/projects/transfer.go b/internal/tools/projects/transfer.go index c30ae8542..1d709b512 100644 --- a/internal/tools/projects/transfer.go +++ b/internal/tools/projects/transfer.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projects/transfer_test.go b/internal/tools/projects/transfer_test.go index 8584effe4..71340a308 100644 --- a/internal/tools/projects/transfer_test.go +++ b/internal/tools/projects/transfer_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projects import ( diff --git a/internal/tools/projectserviceaccounts/action_specs.go b/internal/tools/projectserviceaccounts/action_specs.go index 942b56f6a..d3c48449d 100644 --- a/internal/tools/projectserviceaccounts/action_specs.go +++ b/internal/tools/projectserviceaccounts/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectserviceaccounts import ( diff --git a/internal/tools/projectserviceaccounts/action_specs_test.go b/internal/tools/projectserviceaccounts/action_specs_test.go index 0c2bfcaf8..12f3794fb 100644 --- a/internal/tools/projectserviceaccounts/action_specs_test.go +++ b/internal/tools/projectserviceaccounts/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains tests for the projectServiceAccountDescription function. package projectserviceaccounts diff --git a/internal/tools/projectserviceaccounts/doc.go b/internal/tools/projectserviceaccounts/doc.go index c9fe46eca..1701d007f 100644 --- a/internal/tools/projectserviceaccounts/doc.go +++ b/internal/tools/projectserviceaccounts/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectserviceaccounts implements MCP tools for GitLab project // service accounts. // diff --git a/internal/tools/projectserviceaccounts/markdown.go b/internal/tools/projectserviceaccounts/markdown.go index 3be85bce8..bddc90453 100644 --- a/internal/tools/projectserviceaccounts/markdown.go +++ b/internal/tools/projectserviceaccounts/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectserviceaccounts import ( diff --git a/internal/tools/projectserviceaccounts/project_service_accounts.go b/internal/tools/projectserviceaccounts/project_service_accounts.go index 3bc6534ba..dc2385f33 100644 --- a/internal/tools/projectserviceaccounts/project_service_accounts.go +++ b/internal/tools/projectserviceaccounts/project_service_accounts.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectserviceaccounts import ( diff --git a/internal/tools/projectserviceaccounts/project_service_accounts_test.go b/internal/tools/projectserviceaccounts/project_service_accounts_test.go index 4ba1fab07..d0bbd5919 100644 --- a/internal/tools/projectserviceaccounts/project_service_accounts_test.go +++ b/internal/tools/projectserviceaccounts/project_service_accounts_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectserviceaccounts import ( diff --git a/internal/tools/projectstatistics/action_specs.go b/internal/tools/projectstatistics/action_specs.go index 8512619ee..0a4a966aa 100644 --- a/internal/tools/projectstatistics/action_specs.go +++ b/internal/tools/projectstatistics/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectstatistics import ( diff --git a/internal/tools/projectstatistics/action_specs_test.go b/internal/tools/projectstatistics/action_specs_test.go index bc1257ee8..dcba889f6 100644 --- a/internal/tools/projectstatistics/action_specs_test.go +++ b/internal/tools/projectstatistics/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical route tests for project statistics. package projectstatistics diff --git a/internal/tools/projectstatistics/doc.go b/internal/tools/projectstatistics/doc.go index dd903204f..8ab23fd19 100644 --- a/internal/tools/projectstatistics/doc.go +++ b/internal/tools/projectstatistics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectstatistics implements MCP tools for GitLab project statistics. // // The package wraps the GitLab Project statistics API: diff --git a/internal/tools/projectstatistics/markdown.go b/internal/tools/projectstatistics/markdown.go index 86c4b7b5a..a3da5086a 100644 --- a/internal/tools/projectstatistics/markdown.go +++ b/internal/tools/projectstatistics/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectstatistics import ( diff --git a/internal/tools/projectstatistics/project_statistics.go b/internal/tools/projectstatistics/project_statistics.go index 3ecdbc530..01877f920 100644 --- a/internal/tools/projectstatistics/project_statistics.go +++ b/internal/tools/projectstatistics/project_statistics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectstatistics import ( diff --git a/internal/tools/projectstatistics/project_statistics_test.go b/internal/tools/projectstatistics/project_statistics_test.go index cec65e46f..721324dee 100644 --- a/internal/tools/projectstatistics/project_statistics_test.go +++ b/internal/tools/projectstatistics/project_statistics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_statistics_test.go contains unit tests for the project statistics MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/projectstoragemoves/action_specs.go b/internal/tools/projectstoragemoves/action_specs.go index db06043ab..a4552b84f 100644 --- a/internal/tools/projectstoragemoves/action_specs.go +++ b/internal/tools/projectstoragemoves/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectstoragemoves import ( diff --git a/internal/tools/projectstoragemoves/action_specs_test.go b/internal/tools/projectstoragemoves/action_specs_test.go index cd926a6be..491c409aa 100644 --- a/internal/tools/projectstoragemoves/action_specs_test.go +++ b/internal/tools/projectstoragemoves/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the project storage move // tool closures in ActionSpecs routes with a mock GitLab API. package projectstoragemoves diff --git a/internal/tools/projectstoragemoves/doc.go b/internal/tools/projectstoragemoves/doc.go index 5f3776cda..a207fadc7 100644 --- a/internal/tools/projectstoragemoves/doc.go +++ b/internal/tools/projectstoragemoves/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projectstoragemoves implements MCP tools for GitLab project // repository storage move operations. // diff --git a/internal/tools/projectstoragemoves/markdown.go b/internal/tools/projectstoragemoves/markdown.go index 4ffaf6125..10a99013d 100644 --- a/internal/tools/projectstoragemoves/markdown.go +++ b/internal/tools/projectstoragemoves/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectstoragemoves import ( diff --git a/internal/tools/projectstoragemoves/project_storage_moves.go b/internal/tools/projectstoragemoves/project_storage_moves.go index b8174cc30..83fbac838 100644 --- a/internal/tools/projectstoragemoves/project_storage_moves.go +++ b/internal/tools/projectstoragemoves/project_storage_moves.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projectstoragemoves import ( diff --git a/internal/tools/projectstoragemoves/project_storage_moves_test.go b/internal/tools/projectstoragemoves/project_storage_moves_test.go index 67c24f2dc..e45758e82 100644 --- a/internal/tools/projectstoragemoves/project_storage_moves_test.go +++ b/internal/tools/projectstoragemoves/project_storage_moves_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_storage_moves_test.go contains unit tests for GitLab project storage // move operations. Tests use httptest to mock the GitLab Project Storage Moves API. package projectstoragemoves diff --git a/internal/tools/projecttemplates/action_specs.go b/internal/tools/projecttemplates/action_specs.go index 27f374ba5..57816d6fa 100644 --- a/internal/tools/projecttemplates/action_specs.go +++ b/internal/tools/projecttemplates/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projecttemplates import ( diff --git a/internal/tools/projecttemplates/doc.go b/internal/tools/projecttemplates/doc.go index 0589616ba..0e070cc0d 100644 --- a/internal/tools/projecttemplates/doc.go +++ b/internal/tools/projecttemplates/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package projecttemplates implements MCP tools for GitLab project template // operations. // diff --git a/internal/tools/projecttemplates/markdown.go b/internal/tools/projecttemplates/markdown.go index 7ad351aea..0bf2e2d8f 100644 --- a/internal/tools/projecttemplates/markdown.go +++ b/internal/tools/projecttemplates/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projecttemplates import ( diff --git a/internal/tools/projecttemplates/project_templates.go b/internal/tools/projecttemplates/project_templates.go index 9b2a6d139..a3f4e49c0 100644 --- a/internal/tools/projecttemplates/project_templates.go +++ b/internal/tools/projecttemplates/project_templates.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package projecttemplates import ( diff --git a/internal/tools/projecttemplates/project_templates_test.go b/internal/tools/projecttemplates/project_templates_test.go index d9ac53ae6..a6cba5bb6 100644 --- a/internal/tools/projecttemplates/project_templates_test.go +++ b/internal/tools/projecttemplates/project_templates_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_templates_test.go contains unit tests for the project template MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/protectedenvdata/doc.go b/internal/tools/protectedenvdata/doc.go index 5fd24f7b4..6f72cfb83 100644 --- a/internal/tools/protectedenvdata/doc.go +++ b/internal/tools/protectedenvdata/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package protectedenvdata contains the protected environment shapes the // project and the group protected environment tools share: the four entry // shapes a protect and an update send, the deploy access levels and approval diff --git a/internal/tools/protectedenvdata/markdown.go b/internal/tools/protectedenvdata/markdown.go index af3a8d0c7..01041a46c 100644 --- a/internal/tools/protectedenvdata/markdown.go +++ b/internal/tools/protectedenvdata/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedenvdata import ( diff --git a/internal/tools/protectedenvdata/markdown_test.go b/internal/tools/protectedenvdata/markdown_test.go index c62a3ccbc..79c35d3e7 100644 --- a/internal/tools/protectedenvdata/markdown_test.go +++ b/internal/tools/protectedenvdata/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go tests the Markdown the project and the group protected // environment formatters share: the rules a card carries and the table a page // of environments is listed in. diff --git a/internal/tools/protectedenvdata/protected_env_data.go b/internal/tools/protectedenvdata/protected_env_data.go index 114aa1bb9..ed3766da5 100644 --- a/internal/tools/protectedenvdata/protected_env_data.go +++ b/internal/tools/protectedenvdata/protected_env_data.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedenvdata import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/protectedenvdata/protected_env_data_test.go b/internal/tools/protectedenvdata/protected_env_data_test.go index e08558cd8..3b295a6c1 100644 --- a/internal/tools/protectedenvdata/protected_env_data_test.go +++ b/internal/tools/protectedenvdata/protected_env_data_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // protected_env_data_test.go tests the entry shapes the project and the group // protected environment tools share: what each hands the checks GitLab's // rules are held to before a protect or an update is sent. diff --git a/internal/tools/protectedenvs/action_specs.go b/internal/tools/protectedenvs/action_specs.go index 0474c2d2f..dd770cea6 100644 --- a/internal/tools/protectedenvs/action_specs.go +++ b/internal/tools/protectedenvs/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedenvs import ( diff --git a/internal/tools/protectedenvs/action_specs_test.go b/internal/tools/protectedenvs/action_specs_test.go index ea1fcf6d5..fcd49ffd7 100644 --- a/internal/tools/protectedenvs/action_specs_test.go +++ b/internal/tools/protectedenvs/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for protected environment actions. package protectedenvs diff --git a/internal/tools/protectedenvs/doc.go b/internal/tools/protectedenvs/doc.go index 6f905a949..43679d83e 100644 --- a/internal/tools/protectedenvs/doc.go +++ b/internal/tools/protectedenvs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package protectedenvs implements MCP tools for GitLab protected environment // operations. // diff --git a/internal/tools/protectedenvs/markdown.go b/internal/tools/protectedenvs/markdown.go index 7815ccafe..49e2c812a 100644 --- a/internal/tools/protectedenvs/markdown.go +++ b/internal/tools/protectedenvs/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedenvs import ( diff --git a/internal/tools/protectedenvs/protected_envs.go b/internal/tools/protectedenvs/protected_envs.go index 2b8eeac1d..5a04c652e 100644 --- a/internal/tools/protectedenvs/protected_envs.go +++ b/internal/tools/protectedenvs/protected_envs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedenvs import ( diff --git a/internal/tools/protectedenvs/protected_envs_test.go b/internal/tools/protectedenvs/protected_envs_test.go index d8648a29c..46449139c 100644 --- a/internal/tools/protectedenvs/protected_envs_test.go +++ b/internal/tools/protectedenvs/protected_envs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // protected_envs_test.go contains unit tests for the protected environment MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/protectedpackages/action_specs.go b/internal/tools/protectedpackages/action_specs.go index a75dc24d1..ff27e189c 100644 --- a/internal/tools/protectedpackages/action_specs.go +++ b/internal/tools/protectedpackages/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedpackages import ( diff --git a/internal/tools/protectedpackages/action_specs_test.go b/internal/tools/protectedpackages/action_specs_test.go index 01ada00e6..944d6c272 100644 --- a/internal/tools/protectedpackages/action_specs_test.go +++ b/internal/tools/protectedpackages/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for package protection rule actions. package protectedpackages diff --git a/internal/tools/protectedpackages/doc.go b/internal/tools/protectedpackages/doc.go index 2ecdbe288..449a3a7b7 100644 --- a/internal/tools/protectedpackages/doc.go +++ b/internal/tools/protectedpackages/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package protectedpackages implements MCP tools for GitLab package protection // rule operations. // diff --git a/internal/tools/protectedpackages/markdown.go b/internal/tools/protectedpackages/markdown.go index e6261d41b..af59de709 100644 --- a/internal/tools/protectedpackages/markdown.go +++ b/internal/tools/protectedpackages/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedpackages import ( diff --git a/internal/tools/protectedpackages/protected_packages.go b/internal/tools/protectedpackages/protected_packages.go index ce456cb66..0a225403a 100644 --- a/internal/tools/protectedpackages/protected_packages.go +++ b/internal/tools/protectedpackages/protected_packages.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package protectedpackages import ( diff --git a/internal/tools/protectedpackages/protected_packages_test.go b/internal/tools/protectedpackages/protected_packages_test.go index 731581032..36479ad9c 100644 --- a/internal/tools/protectedpackages/protected_packages_test.go +++ b/internal/tools/protectedpackages/protected_packages_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // protected_packages_test.go contains unit tests for GitLab protected package // operations. Tests use httptest to mock the GitLab Protected Packages API. package protectedpackages diff --git a/internal/tools/register.go b/internal/tools/register.go index a80927c65..a533c4f4d 100644 --- a/internal/tools/register.go +++ b/internal/tools/register.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/register_mcp_meta.go b/internal/tools/register_mcp_meta.go index d224d808e..a94056ec3 100644 --- a/internal/tools/register_mcp_meta.go +++ b/internal/tools/register_mcp_meta.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/register_mcp_meta_test.go b/internal/tools/register_mcp_meta_test.go index 4b984ec10..362604807 100644 --- a/internal/tools/register_mcp_meta_test.go +++ b/internal/tools/register_mcp_meta_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // register_mcp_meta_test.go verifies the gitlab_server diagnostics group: that // its hand-written route map and its action specs describe the same set of // actions, and that its description offers every one of them. diff --git a/internal/tools/register_meta.go b/internal/tools/register_meta.go index 4a6513713..1bad63d6f 100644 --- a/internal/tools/register_meta.go +++ b/internal/tools/register_meta.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/register_meta_test.go b/internal/tools/register_meta_test.go index 719afe270..58aa7ea34 100644 --- a/internal/tools/register_meta_test.go +++ b/internal/tools/register_meta_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // register_meta_test.go contains benchmarks for meta-surface registration, // measuring it on the Ultimate catalog with a cold and a warm schema cache. package tools diff --git a/internal/tools/register_test.go b/internal/tools/register_test.go index 1d5a482d7..7e3c4cebf 100644 --- a/internal/tools/register_test.go +++ b/internal/tools/register_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // register_test.go contains unit tests for tool registration: the individual // surface through RegisterAll, and the meta surface through the assembly // cmd/server makes. Tests verify tool names, annotation presence, and diff --git a/internal/tools/releaselinks/action_specs.go b/internal/tools/releaselinks/action_specs.go index 116b2ff04..fe37ee035 100644 --- a/internal/tools/releaselinks/action_specs.go +++ b/internal/tools/releaselinks/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package releaselinks import ( diff --git a/internal/tools/releaselinks/action_specs_test.go b/internal/tools/releaselinks/action_specs_test.go index d52906f11..144e608d5 100644 --- a/internal/tools/releaselinks/action_specs_test.go +++ b/internal/tools/releaselinks/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for release asset link actions. package releaselinks diff --git a/internal/tools/releaselinks/doc.go b/internal/tools/releaselinks/doc.go index d0749937e..afb7511ea 100644 --- a/internal/tools/releaselinks/doc.go +++ b/internal/tools/releaselinks/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package releaselinks implements MCP tools for GitLab release asset link // operations. // diff --git a/internal/tools/releaselinks/markdown.go b/internal/tools/releaselinks/markdown.go index 2a4f2308a..d0d72b21d 100644 --- a/internal/tools/releaselinks/markdown.go +++ b/internal/tools/releaselinks/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package releaselinks import ( diff --git a/internal/tools/releaselinks/release_links.go b/internal/tools/releaselinks/release_links.go index 0fbdcc1b3..e50755695 100644 --- a/internal/tools/releaselinks/release_links.go +++ b/internal/tools/releaselinks/release_links.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package releaselinks import ( diff --git a/internal/tools/releaselinks/release_links_test.go b/internal/tools/releaselinks/release_links_test.go index 4ffe85827..71a8ede40 100644 --- a/internal/tools/releaselinks/release_links_test.go +++ b/internal/tools/releaselinks/release_links_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // release_links_test.go contains unit tests for GitLab release asset link // operations (create, delete, list). Tests use httptest to mock the GitLab // Release Links API and verify both success and error paths. diff --git a/internal/tools/releases/action_specs.go b/internal/tools/releases/action_specs.go index 80aad76a1..12c613158 100644 --- a/internal/tools/releases/action_specs.go +++ b/internal/tools/releases/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package releases import ( diff --git a/internal/tools/releases/action_specs_test.go b/internal/tools/releases/action_specs_test.go index a3172ae64..5bdedb2ec 100644 --- a/internal/tools/releases/action_specs_test.go +++ b/internal/tools/releases/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds every canonical action ID this package publishes // against the catalog the server really builds. // diff --git a/internal/tools/releases/doc.go b/internal/tools/releases/doc.go index b4680fe42..8f2b7558c 100644 --- a/internal/tools/releases/doc.go +++ b/internal/tools/releases/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package releases implements MCP tools for GitLab release operations. // // The package wraps the GitLab Releases API: diff --git a/internal/tools/releases/markdown.go b/internal/tools/releases/markdown.go index 720297f22..5bf33a513 100644 --- a/internal/tools/releases/markdown.go +++ b/internal/tools/releases/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package releases import ( diff --git a/internal/tools/releases/releases.go b/internal/tools/releases/releases.go index 55932cd61..12023234f 100644 --- a/internal/tools/releases/releases.go +++ b/internal/tools/releases/releases.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package releases import ( diff --git a/internal/tools/releases/releases_test.go b/internal/tools/releases/releases_test.go index 56aa35973..322e80807 100644 --- a/internal/tools/releases/releases_test.go +++ b/internal/tools/releases/releases_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // releases_test.go contains unit tests for GitLab release operations // (create, update, delete, get, list). Tests use httptest to mock the // GitLab Releases API and verify both success and error paths. diff --git a/internal/tools/releases/shapes.go b/internal/tools/releases/shapes.go index 5b94b2331..819a5e7f8 100644 --- a/internal/tools/releases/shapes.go +++ b/internal/tools/releases/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package releases import ( diff --git a/internal/tools/repository/action_specs.go b/internal/tools/repository/action_specs.go index ec9b61531..50a8b0b47 100644 --- a/internal/tools/repository/action_specs.go +++ b/internal/tools/repository/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repository import ( diff --git a/internal/tools/repository/action_specs_test.go b/internal/tools/repository/action_specs_test.go index c9b3e9aad..4efe64347 100644 --- a/internal/tools/repository/action_specs_test.go +++ b/internal/tools/repository/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the changelog actions' input schemas to the // semantic version GitLab requires of a release's version. package repository diff --git a/internal/tools/repository/doc.go b/internal/tools/repository/doc.go index 51d9ee9e2..25a376452 100644 --- a/internal/tools/repository/doc.go +++ b/internal/tools/repository/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package repository implements MCP tools for GitLab repository tree, compare, // archive, blob, and contributor operations. // diff --git a/internal/tools/repository/markdown.go b/internal/tools/repository/markdown.go index 9ec76872e..7a9695b4f 100644 --- a/internal/tools/repository/markdown.go +++ b/internal/tools/repository/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repository import ( diff --git a/internal/tools/repository/repository.go b/internal/tools/repository/repository.go index 3e82009b1..dc8391ad3 100644 --- a/internal/tools/repository/repository.go +++ b/internal/tools/repository/repository.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repository import ( diff --git a/internal/tools/repository/repository_test.go b/internal/tools/repository/repository_test.go index 175101c49..444aec3d0 100644 --- a/internal/tools/repository/repository_test.go +++ b/internal/tools/repository/repository_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // repository_test.go contains unit tests for GitLab repository operations // (tree listing and branch/tag comparison). Tests use httptest to mock the // GitLab API and verify both success and error paths. diff --git a/internal/tools/repositorysubmodules/action_specs.go b/internal/tools/repositorysubmodules/action_specs.go index bfc00f2d2..633183a51 100644 --- a/internal/tools/repositorysubmodules/action_specs.go +++ b/internal/tools/repositorysubmodules/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repositorysubmodules import ( diff --git a/internal/tools/repositorysubmodules/action_specs_test.go b/internal/tools/repositorysubmodules/action_specs_test.go index 74848b9b7..cad47745b 100644 --- a/internal/tools/repositorysubmodules/action_specs_test.go +++ b/internal/tools/repositorysubmodules/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds every canonical action ID this package publishes // against the catalog the server really builds. // diff --git a/internal/tools/repositorysubmodules/doc.go b/internal/tools/repositorysubmodules/doc.go index d66a2401d..929b3e70a 100644 --- a/internal/tools/repositorysubmodules/doc.go +++ b/internal/tools/repositorysubmodules/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package repositorysubmodules implements MCP tools for GitLab repository // submodule operations. // diff --git a/internal/tools/repositorysubmodules/list.go b/internal/tools/repositorysubmodules/list.go index e7ec74f85..aadb5637b 100644 --- a/internal/tools/repositorysubmodules/list.go +++ b/internal/tools/repositorysubmodules/list.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repositorysubmodules import ( diff --git a/internal/tools/repositorysubmodules/list_test.go b/internal/tools/repositorysubmodules/list_test.go index d998a0533..42e4d00cb 100644 --- a/internal/tools/repositorysubmodules/list_test.go +++ b/internal/tools/repositorysubmodules/list_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // list_test.go contains unit tests for the repository submodule MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/repositorysubmodules/markdown.go b/internal/tools/repositorysubmodules/markdown.go index 7e5397cea..6c3c28d92 100644 --- a/internal/tools/repositorysubmodules/markdown.go +++ b/internal/tools/repositorysubmodules/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repositorysubmodules import ( diff --git a/internal/tools/repositorysubmodules/markdown_test.go b/internal/tools/repositorysubmodules/markdown_test.go index 80969bcbe..7cc67d5b3 100644 --- a/internal/tools/repositorysubmodules/markdown_test.go +++ b/internal/tools/repositorysubmodules/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repositorysubmodules import ( diff --git a/internal/tools/repositorysubmodules/read.go b/internal/tools/repositorysubmodules/read.go index 93c9a89ff..38ddc9903 100644 --- a/internal/tools/repositorysubmodules/read.go +++ b/internal/tools/repositorysubmodules/read.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repositorysubmodules import ( diff --git a/internal/tools/repositorysubmodules/read_test.go b/internal/tools/repositorysubmodules/read_test.go index a5aeecc92..2fc6d6e2e 100644 --- a/internal/tools/repositorysubmodules/read_test.go +++ b/internal/tools/repositorysubmodules/read_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // read_test.go contains unit tests for the repository submodule MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/repositorysubmodules/repository_submodules.go b/internal/tools/repositorysubmodules/repository_submodules.go index 9b90b7a55..36e0e9031 100644 --- a/internal/tools/repositorysubmodules/repository_submodules.go +++ b/internal/tools/repositorysubmodules/repository_submodules.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package repositorysubmodules import ( diff --git a/internal/tools/repositorysubmodules/repository_submodules_test.go b/internal/tools/repositorysubmodules/repository_submodules_test.go index 9e2723800..36d7124ca 100644 --- a/internal/tools/repositorysubmodules/repository_submodules_test.go +++ b/internal/tools/repositorysubmodules/repository_submodules_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // repository_submodules_test.go contains unit tests for the repository submodule MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/resourceevents/action_specs.go b/internal/tools/resourceevents/action_specs.go index 0c4aab871..e866d75da 100644 --- a/internal/tools/resourceevents/action_specs.go +++ b/internal/tools/resourceevents/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourceevents import ( diff --git a/internal/tools/resourceevents/action_specs_catalog_test.go b/internal/tools/resourceevents/action_specs_catalog_test.go index 8964da3d6..293091bfd 100644 --- a/internal/tools/resourceevents/action_specs_catalog_test.go +++ b/internal/tools/resourceevents/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the canonical action IDs this package // publishes against the catalog the server builds. // diff --git a/internal/tools/resourceevents/action_specs_test.go b/internal/tools/resourceevents/action_specs_test.go index 3f41538d8..2682b6b2b 100644 --- a/internal/tools/resourceevents/action_specs_test.go +++ b/internal/tools/resourceevents/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourceevents import ( diff --git a/internal/tools/resourceevents/doc.go b/internal/tools/resourceevents/doc.go index 60cdf8921..a21961187 100644 --- a/internal/tools/resourceevents/doc.go +++ b/internal/tools/resourceevents/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package resourceevents implements MCP tools for GitLab resource state event // operations. // diff --git a/internal/tools/resourceevents/export_test.go b/internal/tools/resourceevents/export_test.go index ce674bdb0..8635fdfe5 100644 --- a/internal/tools/resourceevents/export_test.go +++ b/internal/tools/resourceevents/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourceevents // PublishedActionIDs is the block of canonical action ID constants at the top diff --git a/internal/tools/resourceevents/markdown.go b/internal/tools/resourceevents/markdown.go index ab0f0fed2..a306aae3f 100644 --- a/internal/tools/resourceevents/markdown.go +++ b/internal/tools/resourceevents/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourceevents import ( diff --git a/internal/tools/resourceevents/resource_events.go b/internal/tools/resourceevents/resource_events.go index d1ec2d2e7..cffb5f697 100644 --- a/internal/tools/resourceevents/resource_events.go +++ b/internal/tools/resourceevents/resource_events.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourceevents import ( diff --git a/internal/tools/resourceevents/resource_events_test.go b/internal/tools/resourceevents/resource_events_test.go index 89e7219af..e4f22ca87 100644 --- a/internal/tools/resourceevents/resource_events_test.go +++ b/internal/tools/resourceevents/resource_events_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // resource_events_test.go contains unit tests for the resource event MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/resourceevents/shapes.go b/internal/tools/resourceevents/shapes.go index 96bc60fe7..a647e33af 100644 --- a/internal/tools/resourceevents/shapes.go +++ b/internal/tools/resourceevents/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourceevents import ( diff --git a/internal/tools/resourceevents/shapes_test.go b/internal/tools/resourceevents/shapes_test.go index 103237a19..90d449cc9 100644 --- a/internal/tools/resourceevents/shapes_test.go +++ b/internal/tools/resourceevents/shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shapes_test.go covers the resource-event sub-object mirrors, the list-option // helper, and the metadata decorator branches not exercised by the // handler-level tests. diff --git a/internal/tools/resourcegroups/action_specs.go b/internal/tools/resourcegroups/action_specs.go index 350d1b69f..38bee0731 100644 --- a/internal/tools/resourcegroups/action_specs.go +++ b/internal/tools/resourcegroups/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourcegroups import ( diff --git a/internal/tools/resourcegroups/doc.go b/internal/tools/resourcegroups/doc.go index 949865d6a..c28e38021 100644 --- a/internal/tools/resourcegroups/doc.go +++ b/internal/tools/resourcegroups/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package resourcegroups implements MCP tools for GitLab CI/CD resource group // operations. // diff --git a/internal/tools/resourcegroups/markdown.go b/internal/tools/resourcegroups/markdown.go index 8751fbe85..11e059e50 100644 --- a/internal/tools/resourcegroups/markdown.go +++ b/internal/tools/resourcegroups/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourcegroups import ( diff --git a/internal/tools/resourcegroups/resource_groups.go b/internal/tools/resourcegroups/resource_groups.go index 3a64bb343..141b8089f 100644 --- a/internal/tools/resourcegroups/resource_groups.go +++ b/internal/tools/resourcegroups/resource_groups.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourcegroups import ( diff --git a/internal/tools/resourcegroups/resource_groups_test.go b/internal/tools/resourcegroups/resource_groups_test.go index 99a89f052..f80a55e7d 100644 --- a/internal/tools/resourcegroups/resource_groups_test.go +++ b/internal/tools/resourcegroups/resource_groups_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // resource_groups_test.go contains unit tests for the resource group MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/resourcegroups/sent_shapes.go b/internal/tools/resourcegroups/sent_shapes.go index 01478c453..e142c718d 100644 --- a/internal/tools/resourcegroups/sent_shapes.go +++ b/internal/tools/resourcegroups/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package resourcegroups import ( diff --git a/internal/tools/runnercontrollers/action_specs.go b/internal/tools/runnercontrollers/action_specs.go index 99869fdeb..0f994cb3e 100644 --- a/internal/tools/runnercontrollers/action_specs.go +++ b/internal/tools/runnercontrollers/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollers import ( diff --git a/internal/tools/runnercontrollers/action_specs_test.go b/internal/tools/runnercontrollers/action_specs_test.go index 1fc3cbc1f..fccdcb4b6 100644 --- a/internal/tools/runnercontrollers/action_specs_test.go +++ b/internal/tools/runnercontrollers/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for runner controller actions. package runnercontrollers diff --git a/internal/tools/runnercontrollers/doc.go b/internal/tools/runnercontrollers/doc.go index e1aa72417..16cd702c5 100644 --- a/internal/tools/runnercontrollers/doc.go +++ b/internal/tools/runnercontrollers/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package runnercontrollers implements MCP tools for GitLab runner controller // operations. // diff --git a/internal/tools/runnercontrollers/markdown.go b/internal/tools/runnercontrollers/markdown.go index 7b49ef039..142dda86a 100644 --- a/internal/tools/runnercontrollers/markdown.go +++ b/internal/tools/runnercontrollers/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollers import ( diff --git a/internal/tools/runnercontrollers/runner_controllers.go b/internal/tools/runnercontrollers/runner_controllers.go index 71d59e0f1..47b6c5281 100644 --- a/internal/tools/runnercontrollers/runner_controllers.go +++ b/internal/tools/runnercontrollers/runner_controllers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollers import ( diff --git a/internal/tools/runnercontrollers/runner_controllers_test.go b/internal/tools/runnercontrollers/runner_controllers_test.go index 1b87ae445..ef88ec376 100644 --- a/internal/tools/runnercontrollers/runner_controllers_test.go +++ b/internal/tools/runnercontrollers/runner_controllers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // runner_controllers_test.go contains unit tests for the runner controller MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/runnercontrollerscopes/action_specs.go b/internal/tools/runnercontrollerscopes/action_specs.go index 5d5dfc462..020ac18b6 100644 --- a/internal/tools/runnercontrollerscopes/action_specs.go +++ b/internal/tools/runnercontrollerscopes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollerscopes import ( diff --git a/internal/tools/runnercontrollerscopes/action_specs_test.go b/internal/tools/runnercontrollerscopes/action_specs_test.go index aab655ce2..9c5aca60f 100644 --- a/internal/tools/runnercontrollerscopes/action_specs_test.go +++ b/internal/tools/runnercontrollerscopes/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for runner controller scope actions. package runnercontrollerscopes diff --git a/internal/tools/runnercontrollerscopes/doc.go b/internal/tools/runnercontrollerscopes/doc.go index 4dc96ca28..359b329d8 100644 --- a/internal/tools/runnercontrollerscopes/doc.go +++ b/internal/tools/runnercontrollerscopes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package runnercontrollerscopes implements MCP tools for GitLab runner // controller scope operations. // diff --git a/internal/tools/runnercontrollerscopes/markdown.go b/internal/tools/runnercontrollerscopes/markdown.go index d933d5232..148b1cf26 100644 --- a/internal/tools/runnercontrollerscopes/markdown.go +++ b/internal/tools/runnercontrollerscopes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollerscopes import ( diff --git a/internal/tools/runnercontrollerscopes/runner_controller_scopes.go b/internal/tools/runnercontrollerscopes/runner_controller_scopes.go index a31899802..444265587 100644 --- a/internal/tools/runnercontrollerscopes/runner_controller_scopes.go +++ b/internal/tools/runnercontrollerscopes/runner_controller_scopes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollerscopes import ( diff --git a/internal/tools/runnercontrollerscopes/runner_controller_scopes_test.go b/internal/tools/runnercontrollerscopes/runner_controller_scopes_test.go index 2096fcf71..829445afd 100644 --- a/internal/tools/runnercontrollerscopes/runner_controller_scopes_test.go +++ b/internal/tools/runnercontrollerscopes/runner_controller_scopes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // runner_controller_scopes_test.go contains unit tests for the runner controller scope MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/runnercontrollertokens/action_specs.go b/internal/tools/runnercontrollertokens/action_specs.go index 1d79cac44..28169c876 100644 --- a/internal/tools/runnercontrollertokens/action_specs.go +++ b/internal/tools/runnercontrollertokens/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollertokens import ( diff --git a/internal/tools/runnercontrollertokens/action_specs_test.go b/internal/tools/runnercontrollertokens/action_specs_test.go index 512a2e10b..e3f490625 100644 --- a/internal/tools/runnercontrollertokens/action_specs_test.go +++ b/internal/tools/runnercontrollertokens/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for runner controller token actions. package runnercontrollertokens diff --git a/internal/tools/runnercontrollertokens/doc.go b/internal/tools/runnercontrollertokens/doc.go index c64e701e1..5c2ab4262 100644 --- a/internal/tools/runnercontrollertokens/doc.go +++ b/internal/tools/runnercontrollertokens/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package runnercontrollertokens implements MCP tools for GitLab runner // controller token operations. // diff --git a/internal/tools/runnercontrollertokens/markdown.go b/internal/tools/runnercontrollertokens/markdown.go index 2bfeef297..f54066f56 100644 --- a/internal/tools/runnercontrollertokens/markdown.go +++ b/internal/tools/runnercontrollertokens/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollertokens import ( diff --git a/internal/tools/runnercontrollertokens/runner_controller_tokens.go b/internal/tools/runnercontrollertokens/runner_controller_tokens.go index eecb50177..0de2c2c17 100644 --- a/internal/tools/runnercontrollertokens/runner_controller_tokens.go +++ b/internal/tools/runnercontrollertokens/runner_controller_tokens.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runnercontrollertokens import ( diff --git a/internal/tools/runnercontrollertokens/runner_controller_tokens_test.go b/internal/tools/runnercontrollertokens/runner_controller_tokens_test.go index 80ca27858..5de1b1aea 100644 --- a/internal/tools/runnercontrollertokens/runner_controller_tokens_test.go +++ b/internal/tools/runnercontrollertokens/runner_controller_tokens_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // runner_controller_tokens_test.go contains unit tests for the runner controller token MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/runners/action_specs.go b/internal/tools/runners/action_specs.go index b4c4f1064..2d5a227a4 100644 --- a/internal/tools/runners/action_specs.go +++ b/internal/tools/runners/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runners import ( diff --git a/internal/tools/runners/action_specs_test.go b/internal/tools/runners/action_specs_test.go index fdc239e9a..f51086112 100644 --- a/internal/tools/runners/action_specs_test.go +++ b/internal/tools/runners/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for runner actions. package runners diff --git a/internal/tools/runners/doc.go b/internal/tools/runners/doc.go index f8175d68e..0652f3595 100644 --- a/internal/tools/runners/doc.go +++ b/internal/tools/runners/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package runners implements MCP tools for GitLab runner operations. // // The package wraps the GitLab Runners API: diff --git a/internal/tools/runners/markdown.go b/internal/tools/runners/markdown.go index 0004ac96b..79da0d40f 100644 --- a/internal/tools/runners/markdown.go +++ b/internal/tools/runners/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runners import ( diff --git a/internal/tools/runners/runners.go b/internal/tools/runners/runners.go index f01973823..a0920bda9 100644 --- a/internal/tools/runners/runners.go +++ b/internal/tools/runners/runners.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package runners import ( diff --git a/internal/tools/runners/runners_test.go b/internal/tools/runners/runners_test.go index 2078a3dd1..eb25a9af2 100644 --- a/internal/tools/runners/runners_test.go +++ b/internal/tools/runners/runners_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // runners_test.go contains unit tests for the runner MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/safe_mode.go b/internal/tools/safe_mode.go index 4d5695c54..1a93cc66b 100644 --- a/internal/tools/safe_mode.go +++ b/internal/tools/safe_mode.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/safe_mode_test.go b/internal/tools/safe_mode_test.go index 3d9bf6386..d15cfdc88 100644 --- a/internal/tools/safe_mode_test.go +++ b/internal/tools/safe_mode_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // safe_mode_test.go contains unit tests for GITLAB_MCP_SAFE_MODE behavior: // WrapMutatingToolsForSafeMode intercepts mutating tools and returns a // SafeModePreview, while read-only tools continue to call the real handler. diff --git a/internal/tools/scope_filter.go b/internal/tools/scope_filter.go index 4a18b6f2d..2178f5e9d 100644 --- a/internal/tools/scope_filter.go +++ b/internal/tools/scope_filter.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/scope_filter_test.go b/internal/tools/scope_filter_test.go index 357630ad4..423989198 100644 --- a/internal/tools/scope_filter_test.go +++ b/internal/tools/scope_filter_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // scope_filter_test.go contains unit tests for PAT scope-based tool filtering. package tools diff --git a/internal/tools/search/action_specs.go b/internal/tools/search/action_specs.go index 08503a206..55f025061 100644 --- a/internal/tools/search/action_specs.go +++ b/internal/tools/search/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package search import ( diff --git a/internal/tools/search/action_specs_test.go b/internal/tools/search/action_specs_test.go index 9559b66ef..fd53464b0 100644 --- a/internal/tools/search/action_specs_test.go +++ b/internal/tools/search/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds the tests over the canonical action IDs the // search specs publish as cross-links. package search diff --git a/internal/tools/search/doc.go b/internal/tools/search/doc.go index 97ba8e688..7264ec40c 100644 --- a/internal/tools/search/doc.go +++ b/internal/tools/search/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package search implements MCP tools for GitLab global, group, project, code, // issue, and merge request search operations. // diff --git a/internal/tools/search/markdown.go b/internal/tools/search/markdown.go index 366859f0b..c683161ac 100644 --- a/internal/tools/search/markdown.go +++ b/internal/tools/search/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package search import ( diff --git a/internal/tools/search/markdown_test.go b/internal/tools/search/markdown_test.go index 5a4830c38..8e0a4cadd 100644 --- a/internal/tools/search/markdown_test.go +++ b/internal/tools/search/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go holds the code search Markdown to what GitLab sent for // each result: the table names each result and the line its snippet starts // on, and each snippet follows it in a fence of its own, cut to a bounded diff --git a/internal/tools/search/routes.go b/internal/tools/search/routes.go index 3bc442d8c..8382e5553 100644 --- a/internal/tools/search/routes.go +++ b/internal/tools/search/routes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package search import ( diff --git a/internal/tools/search/search.go b/internal/tools/search/search.go index 1bc8848ad..caa799ac9 100644 --- a/internal/tools/search/search.go +++ b/internal/tools/search/search.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package search import ( diff --git a/internal/tools/search/search_params.go b/internal/tools/search/search_params.go index 4c6cfb84f..6f4903c03 100644 --- a/internal/tools/search/search_params.go +++ b/internal/tools/search/search_params.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package search import ( diff --git a/internal/tools/search/search_params_test.go b/internal/tools/search/search_params_test.go index a3fb397c4..8544b5774 100644 --- a/internal/tools/search/search_params_test.go +++ b/internal/tools/search/search_params_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // search_params_test.go holds the two code search parameters client-go's // SearchOptions does not model, num_context_lines and regex, to what GitLab // declares for them: each reaches the query of every scope exactly as the diff --git a/internal/tools/search/search_test.go b/internal/tools/search/search_test.go index 35733fbae..a4712e886 100644 --- a/internal/tools/search/search_test.go +++ b/internal/tools/search/search_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // search_test.go contains unit tests for GitLab search operations // (code search and merge request search). Tests use httptest to mock // the GitLab Search API and verify both success and error paths. diff --git a/internal/tools/search/snippet_window.go b/internal/tools/search/snippet_window.go index 4756114c6..32f3b30ff 100644 --- a/internal/tools/search/snippet_window.go +++ b/internal/tools/search/snippet_window.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package search // GitLab sends no match line with a code search result (API::Entities::Blob diff --git a/internal/tools/search/snippet_window_test.go b/internal/tools/search/snippet_window_test.go index 6bb6035df..06fed1f88 100644 --- a/internal/tools/search/snippet_window_test.go +++ b/internal/tools/search/snippet_window_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // snippet_window_test.go holds the window the Markdown shows of a code search // snippet to the line that matched. GitLab sends no match line, so where the // match sits is read from what each backend builds a snippet from: the diff --git a/internal/tools/securefiles/doc.go b/internal/tools/securefiles/doc.go index 65ed2c760..f8a68473b 100644 --- a/internal/tools/securefiles/doc.go +++ b/internal/tools/securefiles/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package securefiles implements MCP tools for GitLab project secure file // operations. // diff --git a/internal/tools/securefiles/markdown.go b/internal/tools/securefiles/markdown.go index c3935bcc2..31f74186d 100644 --- a/internal/tools/securefiles/markdown.go +++ b/internal/tools/securefiles/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securefiles import ( diff --git a/internal/tools/securefiles/secure_files.go b/internal/tools/securefiles/secure_files.go index c57de6de8..adba8f17f 100644 --- a/internal/tools/securefiles/secure_files.go +++ b/internal/tools/securefiles/secure_files.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securefiles import ( diff --git a/internal/tools/securefiles/secure_files_test.go b/internal/tools/securefiles/secure_files_test.go index 1a3ea06fd..ad55c1a49 100644 --- a/internal/tools/securefiles/secure_files_test.go +++ b/internal/tools/securefiles/secure_files_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // secure_files_test.go contains unit tests for the secure file MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/securityattributes/action_specs.go b/internal/tools/securityattributes/action_specs.go index 67326e50a..05c29ae7b 100644 --- a/internal/tools/securityattributes/action_specs.go +++ b/internal/tools/securityattributes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityattributes import ( diff --git a/internal/tools/securityattributes/doc.go b/internal/tools/securityattributes/doc.go index 3ce131c93..5b96680bd 100644 --- a/internal/tools/securityattributes/doc.go +++ b/internal/tools/securityattributes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package securityattributes implements MCP tools for GitLab security attributes. // // The package exposes catalog-backed actions for creating, updating, deleting, diff --git a/internal/tools/securityattributes/markdown.go b/internal/tools/securityattributes/markdown.go index 22bd458aa..a7ed549ee 100644 --- a/internal/tools/securityattributes/markdown.go +++ b/internal/tools/securityattributes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityattributes import ( diff --git a/internal/tools/securityattributes/security_attributes.go b/internal/tools/securityattributes/security_attributes.go index 24bc63d83..a1de43af4 100644 --- a/internal/tools/securityattributes/security_attributes.go +++ b/internal/tools/securityattributes/security_attributes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityattributes import ( diff --git a/internal/tools/securityattributes/security_attributes_test.go b/internal/tools/securityattributes/security_attributes_test.go index 8b667e65a..33406acb8 100644 --- a/internal/tools/securityattributes/security_attributes_test.go +++ b/internal/tools/securityattributes/security_attributes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // security_attributes_test.go contains unit tests for GitLab security attribute operations. // // The tests mock GitLab GraphQL mutations with [testutil.GraphQLHandler], then diff --git a/internal/tools/securitycategories/action_specs.go b/internal/tools/securitycategories/action_specs.go index a99744dbb..4e5e07546 100644 --- a/internal/tools/securitycategories/action_specs.go +++ b/internal/tools/securitycategories/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securitycategories import ( diff --git a/internal/tools/securitycategories/doc.go b/internal/tools/securitycategories/doc.go index 02567412f..8e34ecd84 100644 --- a/internal/tools/securitycategories/doc.go +++ b/internal/tools/securitycategories/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package securitycategories implements MCP tools for GitLab security categories. // // The package exposes catalog-backed actions for creating, updating, and diff --git a/internal/tools/securitycategories/markdown.go b/internal/tools/securitycategories/markdown.go index c289a23ea..a6283a144 100644 --- a/internal/tools/securitycategories/markdown.go +++ b/internal/tools/securitycategories/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securitycategories import ( diff --git a/internal/tools/securitycategories/security_categories.go b/internal/tools/securitycategories/security_categories.go index a935e8f2f..532d2b6e1 100644 --- a/internal/tools/securitycategories/security_categories.go +++ b/internal/tools/securitycategories/security_categories.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securitycategories import ( diff --git a/internal/tools/securitycategories/security_categories_test.go b/internal/tools/securitycategories/security_categories_test.go index d4a7c44f8..d76b05ced 100644 --- a/internal/tools/securitycategories/security_categories_test.go +++ b/internal/tools/securitycategories/security_categories_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // security_categories_test.go contains unit tests for GitLab security category operations. // // The tests mock GitLab GraphQL mutations with [testutil.GraphQLHandler], then diff --git a/internal/tools/securityfindings/action_specs.go b/internal/tools/securityfindings/action_specs.go index 6e81eb503..bed02c63a 100644 --- a/internal/tools/securityfindings/action_specs.go +++ b/internal/tools/securityfindings/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityfindings import ( diff --git a/internal/tools/securityfindings/doc.go b/internal/tools/securityfindings/doc.go index 6f165a9c9..ae2ec0301 100644 --- a/internal/tools/securityfindings/doc.go +++ b/internal/tools/securityfindings/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package securityfindings implements MCP tools for GitLab vulnerability // finding operations. // diff --git a/internal/tools/securityfindings/markdown.go b/internal/tools/securityfindings/markdown.go index ffb62ae48..8869fcb79 100644 --- a/internal/tools/securityfindings/markdown.go +++ b/internal/tools/securityfindings/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityfindings import ( diff --git a/internal/tools/securityfindings/security_findings.go b/internal/tools/securityfindings/security_findings.go index a133780ca..33d426623 100644 --- a/internal/tools/securityfindings/security_findings.go +++ b/internal/tools/securityfindings/security_findings.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityfindings import ( diff --git a/internal/tools/securityfindings/security_findings_test.go b/internal/tools/securityfindings/security_findings_test.go index 6a8959bf6..52e766019 100644 --- a/internal/tools/securityfindings/security_findings_test.go +++ b/internal/tools/securityfindings/security_findings_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // security_findings_test.go contains unit tests for GitLab security finding // operations. Tests use httptest to mock the GitLab Security Findings API. package securityfindings diff --git a/internal/tools/securityscanprofiles/action_specs.go b/internal/tools/securityscanprofiles/action_specs.go index 90ed823a3..cb3a73407 100644 --- a/internal/tools/securityscanprofiles/action_specs.go +++ b/internal/tools/securityscanprofiles/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityscanprofiles import ( diff --git a/internal/tools/securityscanprofiles/doc.go b/internal/tools/securityscanprofiles/doc.go index eced64844..b8e4a412a 100644 --- a/internal/tools/securityscanprofiles/doc.go +++ b/internal/tools/securityscanprofiles/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package securityscanprofiles implements MCP tools for GitLab security scan // profiles through the GraphQL API. // diff --git a/internal/tools/securityscanprofiles/markdown.go b/internal/tools/securityscanprofiles/markdown.go index ce9a2924b..3544be213 100644 --- a/internal/tools/securityscanprofiles/markdown.go +++ b/internal/tools/securityscanprofiles/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityscanprofiles import ( diff --git a/internal/tools/securityscanprofiles/security_scan_profiles.go b/internal/tools/securityscanprofiles/security_scan_profiles.go index 38c56f4f8..707985a3d 100644 --- a/internal/tools/securityscanprofiles/security_scan_profiles.go +++ b/internal/tools/securityscanprofiles/security_scan_profiles.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securityscanprofiles import ( diff --git a/internal/tools/securityscanprofiles/security_scan_profiles_test.go b/internal/tools/securityscanprofiles/security_scan_profiles_test.go index 6568666b2..e28d7b229 100644 --- a/internal/tools/securityscanprofiles/security_scan_profiles_test.go +++ b/internal/tools/securityscanprofiles/security_scan_profiles_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // security_scan_profiles_test.go contains unit tests for GitLab security scan // profile operations. // diff --git a/internal/tools/securitysettings/action_specs.go b/internal/tools/securitysettings/action_specs.go index 6b0024559..a0b00b817 100644 --- a/internal/tools/securitysettings/action_specs.go +++ b/internal/tools/securitysettings/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securitysettings import ( diff --git a/internal/tools/securitysettings/action_specs_test.go b/internal/tools/securitysettings/action_specs_test.go index 3b96dd0d6..50c1ca836 100644 --- a/internal/tools/securitysettings/action_specs_test.go +++ b/internal/tools/securitysettings/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the security settings tool // closures in ActionSpecs routes with a mock GitLab API. package securitysettings diff --git a/internal/tools/securitysettings/doc.go b/internal/tools/securitysettings/doc.go index da4aa1326..89d9f4cfe 100644 --- a/internal/tools/securitysettings/doc.go +++ b/internal/tools/securitysettings/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package securitysettings implements MCP tools for GitLab project security // settings. // diff --git a/internal/tools/securitysettings/markdown.go b/internal/tools/securitysettings/markdown.go index 86e5c28b5..ef75d246c 100644 --- a/internal/tools/securitysettings/markdown.go +++ b/internal/tools/securitysettings/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securitysettings import ( diff --git a/internal/tools/securitysettings/markdown_test.go b/internal/tools/securitysettings/markdown_test.go index ad2e7f8aa..bdc40fc09 100644 --- a/internal/tools/securitysettings/markdown_test.go +++ b/internal/tools/securitysettings/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for security settings Markdown // formatting functions. package securitysettings diff --git a/internal/tools/securitysettings/security_settings.go b/internal/tools/securitysettings/security_settings.go index 2ccba637b..e40905fd7 100644 --- a/internal/tools/securitysettings/security_settings.go +++ b/internal/tools/securitysettings/security_settings.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package securitysettings import ( diff --git a/internal/tools/securitysettings/security_settings_test.go b/internal/tools/securitysettings/security_settings_test.go index ac2bf9c00..36a25c85b 100644 --- a/internal/tools/securitysettings/security_settings_test.go +++ b/internal/tools/securitysettings/security_settings_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // security_settings_test.go contains unit tests for GitLab project security // settings operations. Tests use httptest to mock the GitLab API. package securitysettings diff --git a/internal/tools/settings/doc.go b/internal/tools/settings/doc.go index 21b6b9066..7e3ed79a3 100644 --- a/internal/tools/settings/doc.go +++ b/internal/tools/settings/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package settings implements MCP tools for GitLab instance application // settings. // diff --git a/internal/tools/settings/markdown.go b/internal/tools/settings/markdown.go index b509032ee..315f80064 100644 --- a/internal/tools/settings/markdown.go +++ b/internal/tools/settings/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package settings import ( diff --git a/internal/tools/settings/settings.go b/internal/tools/settings/settings.go index 49f7d2522..3128ce7a3 100644 --- a/internal/tools/settings/settings.go +++ b/internal/tools/settings/settings.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package settings import ( diff --git a/internal/tools/settings/settings_test.go b/internal/tools/settings/settings_test.go index 980682bb5..fd4d953a3 100644 --- a/internal/tools/settings/settings_test.go +++ b/internal/tools/settings/settings_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // settings_test.go contains unit tests for the application settings MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/shared_catalog.go b/internal/tools/shared_catalog.go index 1f66fbe9b..ed981cc8b 100644 --- a/internal/tools/shared_catalog.go +++ b/internal/tools/shared_catalog.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // shared_catalog.go builds each catalog once per configuration and hands every // server a copy bound to its own client. // diff --git a/internal/tools/shared_catalog_test.go b/internal/tools/shared_catalog_test.go index f882bffc9..e0002e800 100644 --- a/internal/tools/shared_catalog_test.go +++ b/internal/tools/shared_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/sidekiq/doc.go b/internal/tools/sidekiq/doc.go index 57b72d2aa..59ce800ce 100644 --- a/internal/tools/sidekiq/doc.go +++ b/internal/tools/sidekiq/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package sidekiq implements MCP tools for GitLab Sidekiq metrics. // // The package wraps the GitLab Sidekiq metrics API: diff --git a/internal/tools/sidekiq/markdown.go b/internal/tools/sidekiq/markdown.go index 5b826b72c..d9a68bee7 100644 --- a/internal/tools/sidekiq/markdown.go +++ b/internal/tools/sidekiq/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sidekiq import ( diff --git a/internal/tools/sidekiq/sidekiq.go b/internal/tools/sidekiq/sidekiq.go index 02f72fb0d..929cb0ceb 100644 --- a/internal/tools/sidekiq/sidekiq.go +++ b/internal/tools/sidekiq/sidekiq.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package sidekiq import ( diff --git a/internal/tools/sidekiq/sidekiq_test.go b/internal/tools/sidekiq/sidekiq_test.go index 9aa7d5002..07e057f7e 100644 --- a/internal/tools/sidekiq/sidekiq_test.go +++ b/internal/tools/sidekiq/sidekiq_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // sidekiq_test.go contains unit tests for the Sidekiq MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/snippetdiscussions/action_specs.go b/internal/tools/snippetdiscussions/action_specs.go index 61193f645..417669fec 100644 --- a/internal/tools/snippetdiscussions/action_specs.go +++ b/internal/tools/snippetdiscussions/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetdiscussions import ( diff --git a/internal/tools/snippetdiscussions/action_specs_test.go b/internal/tools/snippetdiscussions/action_specs_test.go index 3e0215ab9..2649d48cf 100644 --- a/internal/tools/snippetdiscussions/action_specs_test.go +++ b/internal/tools/snippetdiscussions/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for snippet discussion actions. package snippetdiscussions diff --git a/internal/tools/snippetdiscussions/doc.go b/internal/tools/snippetdiscussions/doc.go index 6c532c23d..d470bd42f 100644 --- a/internal/tools/snippetdiscussions/doc.go +++ b/internal/tools/snippetdiscussions/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package snippetdiscussions implements MCP tools for GitLab snippet // discussion operations. // diff --git a/internal/tools/snippetdiscussions/markdown.go b/internal/tools/snippetdiscussions/markdown.go index 172be3078..62081b298 100644 --- a/internal/tools/snippetdiscussions/markdown.go +++ b/internal/tools/snippetdiscussions/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetdiscussions import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/snippetdiscussions/snippet_discussions.go b/internal/tools/snippetdiscussions/snippet_discussions.go index 39c78665d..1d24edc62 100644 --- a/internal/tools/snippetdiscussions/snippet_discussions.go +++ b/internal/tools/snippetdiscussions/snippet_discussions.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetdiscussions import ( diff --git a/internal/tools/snippetdiscussions/snippet_discussions_test.go b/internal/tools/snippetdiscussions/snippet_discussions_test.go index fdf6ced1b..7978aebf7 100644 --- a/internal/tools/snippetdiscussions/snippet_discussions_test.go +++ b/internal/tools/snippetdiscussions/snippet_discussions_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // snippet_discussions_test.go contains unit tests for the snippet discussion MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/snippetnotes/action_specs.go b/internal/tools/snippetnotes/action_specs.go index 1cd5d9451..867c4fb00 100644 --- a/internal/tools/snippetnotes/action_specs.go +++ b/internal/tools/snippetnotes/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetnotes import ( diff --git a/internal/tools/snippetnotes/action_specs_test.go b/internal/tools/snippetnotes/action_specs_test.go index 473654229..11e273805 100644 --- a/internal/tools/snippetnotes/action_specs_test.go +++ b/internal/tools/snippetnotes/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for snippet note actions. package snippetnotes diff --git a/internal/tools/snippetnotes/doc.go b/internal/tools/snippetnotes/doc.go index b479b3b08..b37a7268b 100644 --- a/internal/tools/snippetnotes/doc.go +++ b/internal/tools/snippetnotes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package snippetnotes implements MCP tools for GitLab snippet note // operations. // diff --git a/internal/tools/snippetnotes/markdown.go b/internal/tools/snippetnotes/markdown.go index d984b0918..548298354 100644 --- a/internal/tools/snippetnotes/markdown.go +++ b/internal/tools/snippetnotes/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetnotes import "github.com/jmrplens/gitlab-mcp-server/v3/internal/toolutil" diff --git a/internal/tools/snippetnotes/snippet_notes.go b/internal/tools/snippetnotes/snippet_notes.go index bdd80d591..84c9325ed 100644 --- a/internal/tools/snippetnotes/snippet_notes.go +++ b/internal/tools/snippetnotes/snippet_notes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetnotes import ( diff --git a/internal/tools/snippetnotes/snippet_notes_test.go b/internal/tools/snippetnotes/snippet_notes_test.go index f60bc955b..8605524ec 100644 --- a/internal/tools/snippetnotes/snippet_notes_test.go +++ b/internal/tools/snippetnotes/snippet_notes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // snippet_notes_test.go contains unit tests for GitLab snippet note operations. // Tests use httptest to mock the GitLab Snippet Notes API. package snippetnotes diff --git a/internal/tools/snippets/action_specs.go b/internal/tools/snippets/action_specs.go index 9a4414412..229318961 100644 --- a/internal/tools/snippets/action_specs.go +++ b/internal/tools/snippets/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippets import ( diff --git a/internal/tools/snippets/action_specs_test.go b/internal/tools/snippets/action_specs_test.go index 3fba88325..b38df59f2 100644 --- a/internal/tools/snippets/action_specs_test.go +++ b/internal/tools/snippets/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the snippets ActionSpec // metadata: the decorator no-op on unknown tools, populated metadata, and // the expected action count. diff --git a/internal/tools/snippets/doc.go b/internal/tools/snippets/doc.go index d7e153e57..8e6a7fb69 100644 --- a/internal/tools/snippets/doc.go +++ b/internal/tools/snippets/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package snippets implements MCP tools for GitLab personal and project // snippets. // diff --git a/internal/tools/snippets/input_schema.go b/internal/tools/snippets/input_schema.go index 81409cb72..8e0a9896b 100644 --- a/internal/tools/snippets/input_schema.go +++ b/internal/tools/snippets/input_schema.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippets import ( diff --git a/internal/tools/snippets/markdown.go b/internal/tools/snippets/markdown.go index f163a7cb2..b58ea7de9 100644 --- a/internal/tools/snippets/markdown.go +++ b/internal/tools/snippets/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippets import ( diff --git a/internal/tools/snippets/project_snippets.go b/internal/tools/snippets/project_snippets.go index 1c538cfba..c6d2e6ead 100644 --- a/internal/tools/snippets/project_snippets.go +++ b/internal/tools/snippets/project_snippets.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippets import ( diff --git a/internal/tools/snippets/project_snippets_test.go b/internal/tools/snippets/project_snippets_test.go index 8a84a8dfa..5ec0b6c41 100644 --- a/internal/tools/snippets/project_snippets_test.go +++ b/internal/tools/snippets/project_snippets_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // project_snippets_test.go contains unit tests for the snippet MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/snippets/snippets.go b/internal/tools/snippets/snippets.go index 9672052e6..4e74a00fa 100644 --- a/internal/tools/snippets/snippets.go +++ b/internal/tools/snippets/snippets.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippets import ( diff --git a/internal/tools/snippets/snippets_test.go b/internal/tools/snippets/snippets_test.go index 22a339b01..5932fe9fe 100644 --- a/internal/tools/snippets/snippets_test.go +++ b/internal/tools/snippets/snippets_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // snippets_test.go contains unit tests for the snippet MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/snippetstoragemoves/action_specs.go b/internal/tools/snippetstoragemoves/action_specs.go index 1f181e06c..85799e5b6 100644 --- a/internal/tools/snippetstoragemoves/action_specs.go +++ b/internal/tools/snippetstoragemoves/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetstoragemoves import ( diff --git a/internal/tools/snippetstoragemoves/action_specs_test.go b/internal/tools/snippetstoragemoves/action_specs_test.go index b4c86c0f8..9ffeca0db 100644 --- a/internal/tools/snippetstoragemoves/action_specs_test.go +++ b/internal/tools/snippetstoragemoves/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the snippet storage move // tool closures in ActionSpecs routes with a mock GitLab API. package snippetstoragemoves diff --git a/internal/tools/snippetstoragemoves/doc.go b/internal/tools/snippetstoragemoves/doc.go index 654fee291..cec414543 100644 --- a/internal/tools/snippetstoragemoves/doc.go +++ b/internal/tools/snippetstoragemoves/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package snippetstoragemoves implements MCP tools for GitLab snippet // repository storage move operations. // diff --git a/internal/tools/snippetstoragemoves/markdown.go b/internal/tools/snippetstoragemoves/markdown.go index 7941bd801..53f22cde9 100644 --- a/internal/tools/snippetstoragemoves/markdown.go +++ b/internal/tools/snippetstoragemoves/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetstoragemoves import ( diff --git a/internal/tools/snippetstoragemoves/snippet_storage_moves.go b/internal/tools/snippetstoragemoves/snippet_storage_moves.go index 002a7a72c..d5cee101b 100644 --- a/internal/tools/snippetstoragemoves/snippet_storage_moves.go +++ b/internal/tools/snippetstoragemoves/snippet_storage_moves.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package snippetstoragemoves import ( diff --git a/internal/tools/snippetstoragemoves/snippet_storage_moves_test.go b/internal/tools/snippetstoragemoves/snippet_storage_moves_test.go index 3184bcbf5..6ade5e525 100644 --- a/internal/tools/snippetstoragemoves/snippet_storage_moves_test.go +++ b/internal/tools/snippetstoragemoves/snippet_storage_moves_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // snippet_storage_moves_test.go contains unit tests for GitLab snippet storage // move operations. Tests use httptest to mock the GitLab Snippet Storage Moves API. package snippetstoragemoves diff --git a/internal/tools/surface_tools.go b/internal/tools/surface_tools.go index 7e369c4c0..b3c2e3093 100644 --- a/internal/tools/surface_tools.go +++ b/internal/tools/surface_tools.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tools import ( diff --git a/internal/tools/surface_tools_test.go b/internal/tools/surface_tools_test.go index f99d37684..c00d28287 100644 --- a/internal/tools/surface_tools_test.go +++ b/internal/tools/surface_tools_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // surface_tools_test.go covers the projection of standalone surface tools: the // utility tools that are registered directly rather than through a meta-tool // dispatcher, and what happens when one of them cannot be projected at all. diff --git a/internal/tools/surfaces/doc.go b/internal/tools/surfaces/doc.go index 44281d2b2..0487a591a 100644 --- a/internal/tools/surfaces/doc.go +++ b/internal/tools/surfaces/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package surfaces projects standalone runtime and interactive tool specs into // visible MCP surfaces and dynamic catalog routes. package surfaces diff --git a/internal/tools/surfaces/surface_tools.go b/internal/tools/surfaces/surface_tools.go index d45ac3696..6cbf0a028 100644 --- a/internal/tools/surfaces/surface_tools.go +++ b/internal/tools/surfaces/surface_tools.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package surfaces import ( diff --git a/internal/tools/surfaces/surface_tools_test.go b/internal/tools/surfaces/surface_tools_test.go index ea60c9e47..17e554bab 100644 --- a/internal/tools/surfaces/surface_tools_test.go +++ b/internal/tools/surfaces/surface_tools_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // surface_tools_test.go holds the unit tests for standalone surface // projection: which visible tools this package publishes outside the ordinary // GitLab meta-tool dispatchers, what metadata each of them carries, and how diff --git a/internal/tools/systemhooks/doc.go b/internal/tools/systemhooks/doc.go index a6272e372..acdfde0eb 100644 --- a/internal/tools/systemhooks/doc.go +++ b/internal/tools/systemhooks/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package systemhooks implements MCP tools for GitLab instance system hooks. // // The package wraps the GitLab System hooks API: diff --git a/internal/tools/systemhooks/markdown.go b/internal/tools/systemhooks/markdown.go index 030ac2108..1ff0ef8a7 100644 --- a/internal/tools/systemhooks/markdown.go +++ b/internal/tools/systemhooks/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package systemhooks import ( diff --git a/internal/tools/systemhooks/markdown_test.go b/internal/tools/systemhooks/markdown_test.go index b65877c6e..06b801a51 100644 --- a/internal/tools/systemhooks/markdown_test.go +++ b/internal/tools/systemhooks/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go asserts the whole Markdown document each system hook // formatter writes: the list table with the delivery status GitLab records, the // hook card with its redacted key tables, and the test result, which reports diff --git a/internal/tools/systemhooks/system_hooks.go b/internal/tools/systemhooks/system_hooks.go index 0cce82791..5e732f65a 100644 --- a/internal/tools/systemhooks/system_hooks.go +++ b/internal/tools/systemhooks/system_hooks.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package systemhooks import ( diff --git a/internal/tools/systemhooks/system_hooks_test.go b/internal/tools/systemhooks/system_hooks_test.go index f257abc14..863cb4ce6 100644 --- a/internal/tools/systemhooks/system_hooks_test.go +++ b/internal/tools/systemhooks/system_hooks_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // system_hooks_test.go contains unit tests for the system hook MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/tags/action_specs.go b/internal/tools/tags/action_specs.go index 89481255a..6e2b3e2c7 100644 --- a/internal/tools/tags/action_specs.go +++ b/internal/tools/tags/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tags import ( diff --git a/internal/tools/tags/action_specs_test.go b/internal/tools/tags/action_specs_test.go index f79151605..4e0f82f3d 100644 --- a/internal/tools/tags/action_specs_test.go +++ b/internal/tools/tags/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains catalog-surface and route tests for behavior that // used to live in register.go: destructive confirmation, not-found formatting, // and route error propagation. diff --git a/internal/tools/tags/doc.go b/internal/tools/tags/doc.go index 38e14ac5b..b1b08ed29 100644 --- a/internal/tools/tags/doc.go +++ b/internal/tools/tags/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package tags implements MCP tools for GitLab tag and protected tag // operations. // diff --git a/internal/tools/tags/markdown.go b/internal/tools/tags/markdown.go index 1ca3d24d5..448924314 100644 --- a/internal/tools/tags/markdown.go +++ b/internal/tools/tags/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tags import ( diff --git a/internal/tools/tags/tags.go b/internal/tools/tags/tags.go index 71a3ea00c..c0d864cba 100644 --- a/internal/tools/tags/tags.go +++ b/internal/tools/tags/tags.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package tags import ( diff --git a/internal/tools/tags/tags_test.go b/internal/tools/tags/tags_test.go index d648edb5a..6c11725ad 100644 --- a/internal/tools/tags/tags_test.go +++ b/internal/tools/tags/tags_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // tags_test.go contains unit tests for GitLab tag operations (create, delete, // get, list, signature, protected tag CRUD). Tests use httptest to mock the // GitLab API and verify success, error, canceled-context, and markdown paths. diff --git a/internal/tools/terraformstates/doc.go b/internal/tools/terraformstates/doc.go index 675cc6203..0be3ea586 100644 --- a/internal/tools/terraformstates/doc.go +++ b/internal/tools/terraformstates/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package terraformstates implements MCP tools for GitLab Terraform state // operations. // diff --git a/internal/tools/terraformstates/markdown.go b/internal/tools/terraformstates/markdown.go index 467525672..984996099 100644 --- a/internal/tools/terraformstates/markdown.go +++ b/internal/tools/terraformstates/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package terraformstates import ( diff --git a/internal/tools/terraformstates/terraform_states.go b/internal/tools/terraformstates/terraform_states.go index 408b00bb9..5c5627561 100644 --- a/internal/tools/terraformstates/terraform_states.go +++ b/internal/tools/terraformstates/terraform_states.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package terraformstates import ( diff --git a/internal/tools/terraformstates/terraform_states_test.go b/internal/tools/terraformstates/terraform_states_test.go index 4d28903b3..9831e2c18 100644 --- a/internal/tools/terraformstates/terraform_states_test.go +++ b/internal/tools/terraformstates/terraform_states_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // terraform_states_test.go contains unit tests for the Terraform state MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/todos/action_specs.go b/internal/tools/todos/action_specs.go index d22fec95b..01a60a112 100644 --- a/internal/tools/todos/action_specs.go +++ b/internal/tools/todos/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package todos import ( diff --git a/internal/tools/todos/action_specs_test.go b/internal/tools/todos/action_specs_test.go index f91695ad1..fdef5f394 100644 --- a/internal/tools/todos/action_specs_test.go +++ b/internal/tools/todos/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go holds every canonical action ID this package publishes // against the catalog the server really builds. // diff --git a/internal/tools/todos/doc.go b/internal/tools/todos/doc.go index 8d7f34697..aa6cbeb67 100644 --- a/internal/tools/todos/doc.go +++ b/internal/tools/todos/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package todos implements MCP tools for GitLab todo operations. // // The package wraps the GitLab Todos API: diff --git a/internal/tools/todos/export_test.go b/internal/tools/todos/export_test.go index ecfa99d32..86f88f20f 100644 --- a/internal/tools/todos/export_test.go +++ b/internal/tools/todos/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package todos // PublishedActionIDs is every canonical catalog ID this package hands a model: diff --git a/internal/tools/todos/markdown.go b/internal/tools/todos/markdown.go index 0e2bdde77..639912bc7 100644 --- a/internal/tools/todos/markdown.go +++ b/internal/tools/todos/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package todos import ( diff --git a/internal/tools/todos/markdown_test.go b/internal/tools/todos/markdown_test.go index 221acd2b6..b4132d8f7 100644 --- a/internal/tools/todos/markdown_test.go +++ b/internal/tools/todos/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains tests for the to-do Markdown formatters. Every // expectation is the whole rendered document: the card used to be four // bullet-less label lines that a renderer joins into one run-on paragraph, and diff --git a/internal/tools/todos/shapes.go b/internal/tools/todos/shapes.go index eadb55a93..4c6876eab 100644 --- a/internal/tools/todos/shapes.go +++ b/internal/tools/todos/shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package todos import ( diff --git a/internal/tools/todos/todos.go b/internal/tools/todos/todos.go index eb3a1c841..6f1f3134f 100644 --- a/internal/tools/todos/todos.go +++ b/internal/tools/todos/todos.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package todos import ( diff --git a/internal/tools/todos/todos_test.go b/internal/tools/todos/todos_test.go index 5171ee578..3362ab615 100644 --- a/internal/tools/todos/todos_test.go +++ b/internal/tools/todos/todos_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // todos_test.go contains unit tests for the to-do MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/toolvisibility/doc.go b/internal/tools/toolvisibility/doc.go index d2c1e5720..e3dc3460e 100644 --- a/internal/tools/toolvisibility/doc.go +++ b/internal/tools/toolvisibility/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package toolvisibility decides which registered tool a narrowed deployment // serves, for every caller that registers a tool surface the way the server // does. diff --git a/internal/tools/toolvisibility/fine_grained.go b/internal/tools/toolvisibility/fine_grained.go index 45eb2c1cb..b11c93078 100644 --- a/internal/tools/toolvisibility/fine_grained.go +++ b/internal/tools/toolvisibility/fine_grained.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolvisibility import ( diff --git a/internal/tools/toolvisibility/fine_grained_test.go b/internal/tools/toolvisibility/fine_grained_test.go index 4fd2e3d61..65d49c040 100644 --- a/internal/tools/toolvisibility/fine_grained_test.go +++ b/internal/tools/toolvisibility/fine_grained_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // fine_grained_test.go pins what a fine-grained session is listed and what a // call to a registered tool is checked against before its arguments are // decoded: the per-tool action sets of each surface, the listing decision, the diff --git a/internal/tools/toolvisibility/visibility.go b/internal/tools/toolvisibility/visibility.go index 39061741a..55f9cc8a2 100644 --- a/internal/tools/toolvisibility/visibility.go +++ b/internal/tools/toolvisibility/visibility.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolvisibility import ( diff --git a/internal/tools/toolvisibility/visibility_test.go b/internal/tools/toolvisibility/visibility_test.go index 2e5a688f2..bd436fc82 100644 --- a/internal/tools/toolvisibility/visibility_test.go +++ b/internal/tools/toolvisibility/visibility_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // visibility_test.go pins the one pass that decides which registered tool a // narrowed deployment serves: what each of its four steps removes or wraps, // what it leaves alone, which tools safe mode exempts on each surface, and diff --git a/internal/tools/topics/doc.go b/internal/tools/topics/doc.go index ad0152698..8c7da5dd8 100644 --- a/internal/tools/topics/doc.go +++ b/internal/tools/topics/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package topics implements MCP tools for GitLab project topic operations. // // The package wraps the GitLab Topics API: diff --git a/internal/tools/topics/markdown.go b/internal/tools/topics/markdown.go index 3a31066cf..a50e91dba 100644 --- a/internal/tools/topics/markdown.go +++ b/internal/tools/topics/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package topics import ( diff --git a/internal/tools/topics/markdown_test.go b/internal/tools/topics/markdown_test.go index 4eb33e81c..b9ee51838 100644 --- a/internal/tools/topics/markdown_test.go +++ b/internal/tools/topics/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the topic Markdown formatters: the // topic card and the topic list. // diff --git a/internal/tools/topics/topics.go b/internal/tools/topics/topics.go index 18b3ff36a..5789cc473 100644 --- a/internal/tools/topics/topics.go +++ b/internal/tools/topics/topics.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package topics import ( diff --git a/internal/tools/topics/topics_test.go b/internal/tools/topics/topics_test.go index 35cc2b606..04ea572f6 100644 --- a/internal/tools/topics/topics_test.go +++ b/internal/tools/topics/topics_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // topics_test.go contains unit tests for the topic MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/uploads/action_specs.go b/internal/tools/uploads/action_specs.go index 49d35c499..92af58cb3 100644 --- a/internal/tools/uploads/action_specs.go +++ b/internal/tools/uploads/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package uploads import ( diff --git a/internal/tools/uploads/action_specs_catalog_test.go b/internal/tools/uploads/action_specs_catalog_test.go index 363e9322e..4f4d4ddff 100644 --- a/internal/tools/uploads/action_specs_catalog_test.go +++ b/internal/tools/uploads/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds this package's published action IDs // against the catalog that has to resolve them. // diff --git a/internal/tools/uploads/action_specs_test.go b/internal/tools/uploads/action_specs_test.go index 14bf36e5d..1e23e4f5f 100644 --- a/internal/tools/uploads/action_specs_test.go +++ b/internal/tools/uploads/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for project upload actions. package uploads diff --git a/internal/tools/uploads/doc.go b/internal/tools/uploads/doc.go index 566de0f09..635f8c985 100644 --- a/internal/tools/uploads/doc.go +++ b/internal/tools/uploads/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package uploads implements MCP tools for GitLab project upload operations. // // The package wraps the GitLab Project uploads API: diff --git a/internal/tools/uploads/markdown.go b/internal/tools/uploads/markdown.go index 176f710f7..a8c412056 100644 --- a/internal/tools/uploads/markdown.go +++ b/internal/tools/uploads/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package uploads import ( diff --git a/internal/tools/uploads/uploads.go b/internal/tools/uploads/uploads.go index 340b90114..bcd07c2b0 100644 --- a/internal/tools/uploads/uploads.go +++ b/internal/tools/uploads/uploads.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package uploads import ( diff --git a/internal/tools/uploads/uploads_test.go b/internal/tools/uploads/uploads_test.go index 9aca1b981..617e3ad43 100644 --- a/internal/tools/uploads/uploads_test.go +++ b/internal/tools/uploads/uploads_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // uploads_test.go contains unit tests for GitLab project file upload // operations. Tests use httptest to mock the GitLab API and verify successful // uploads, base64 decoding validation, file content integrity, API errors, diff --git a/internal/tools/usagedata/doc.go b/internal/tools/usagedata/doc.go index 0c9e52727..bcb4705b4 100644 --- a/internal/tools/usagedata/doc.go +++ b/internal/tools/usagedata/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package usagedata implements MCP tools for GitLab usage data and service // ping metrics. // diff --git a/internal/tools/usagedata/markdown.go b/internal/tools/usagedata/markdown.go index aff4a1b68..42c016b92 100644 --- a/internal/tools/usagedata/markdown.go +++ b/internal/tools/usagedata/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package usagedata import ( diff --git a/internal/tools/usagedata/usage_data.go b/internal/tools/usagedata/usage_data.go index b009b60d0..5cd1d38bd 100644 --- a/internal/tools/usagedata/usage_data.go +++ b/internal/tools/usagedata/usage_data.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package usagedata import ( diff --git a/internal/tools/usagedata/usage_data_test.go b/internal/tools/usagedata/usage_data_test.go index c7ebd695e..7f58a8753 100644 --- a/internal/tools/usagedata/usage_data_test.go +++ b/internal/tools/usagedata/usage_data_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // usage_data_test.go contains unit tests for the usage data MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/useremails/action_specs.go b/internal/tools/useremails/action_specs.go index f51f339b0..2e92f197d 100644 --- a/internal/tools/useremails/action_specs.go +++ b/internal/tools/useremails/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package useremails import ( diff --git a/internal/tools/useremails/action_specs_test.go b/internal/tools/useremails/action_specs_test.go index d84ae6819..0c3ba247b 100644 --- a/internal/tools/useremails/action_specs_test.go +++ b/internal/tools/useremails/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the user email tool // closures in ActionSpecs routes with a mock GitLab API. package useremails diff --git a/internal/tools/useremails/doc.go b/internal/tools/useremails/doc.go index 66636bdfb..b8e5f29ec 100644 --- a/internal/tools/useremails/doc.go +++ b/internal/tools/useremails/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package useremails implements MCP tools for GitLab user email operations. // // The package wraps the GitLab User emails API: diff --git a/internal/tools/useremails/markdown.go b/internal/tools/useremails/markdown.go index c4823ad8c..bb619da6e 100644 --- a/internal/tools/useremails/markdown.go +++ b/internal/tools/useremails/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package useremails import ( diff --git a/internal/tools/useremails/user_emails.go b/internal/tools/useremails/user_emails.go index 877db4de2..b8329d728 100644 --- a/internal/tools/useremails/user_emails.go +++ b/internal/tools/useremails/user_emails.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package useremails import ( diff --git a/internal/tools/useremails/user_emails_test.go b/internal/tools/useremails/user_emails_test.go index 557bb90a1..b4de6e4fc 100644 --- a/internal/tools/useremails/user_emails_test.go +++ b/internal/tools/useremails/user_emails_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // user_emails_test.go contains unit tests for GitLab user email operations. // Tests use httptest to mock the GitLab User Emails API. package useremails diff --git a/internal/tools/usergpgkeys/action_specs.go b/internal/tools/usergpgkeys/action_specs.go index ad1de46e9..6515efbef 100644 --- a/internal/tools/usergpgkeys/action_specs.go +++ b/internal/tools/usergpgkeys/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package usergpgkeys import ( diff --git a/internal/tools/usergpgkeys/action_specs_test.go b/internal/tools/usergpgkeys/action_specs_test.go index c2e2ce57f..91d84c3e5 100644 --- a/internal/tools/usergpgkeys/action_specs_test.go +++ b/internal/tools/usergpgkeys/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the user GPG key tool // closures in ActionSpecs routes with a mock GitLab API. package usergpgkeys diff --git a/internal/tools/usergpgkeys/doc.go b/internal/tools/usergpgkeys/doc.go index 963fbfe0c..6de8f6b87 100644 --- a/internal/tools/usergpgkeys/doc.go +++ b/internal/tools/usergpgkeys/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package usergpgkeys implements MCP tools for GitLab user GPG key operations. // // The package wraps the GitLab User GPG keys API: diff --git a/internal/tools/usergpgkeys/markdown.go b/internal/tools/usergpgkeys/markdown.go index be8ff37cb..72b5e64ac 100644 --- a/internal/tools/usergpgkeys/markdown.go +++ b/internal/tools/usergpgkeys/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package usergpgkeys import ( diff --git a/internal/tools/usergpgkeys/user_gpg_keys.go b/internal/tools/usergpgkeys/user_gpg_keys.go index 93e5c317d..0600fbba2 100644 --- a/internal/tools/usergpgkeys/user_gpg_keys.go +++ b/internal/tools/usergpgkeys/user_gpg_keys.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package usergpgkeys import ( diff --git a/internal/tools/usergpgkeys/user_gpg_keys_test.go b/internal/tools/usergpgkeys/user_gpg_keys_test.go index 64546d8e0..c72366f27 100644 --- a/internal/tools/usergpgkeys/user_gpg_keys_test.go +++ b/internal/tools/usergpgkeys/user_gpg_keys_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // user_gpg_keys_test.go contains unit tests for GitLab user GPG key operations. // Tests use httptest to mock the GitLab User GPG Keys API. package usergpgkeys diff --git a/internal/tools/users/action_specs.go b/internal/tools/users/action_specs.go index ca3f9b21e..906dbefe1 100644 --- a/internal/tools/users/action_specs.go +++ b/internal/tools/users/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/action_specs_test.go b/internal/tools/users/action_specs_test.go index 648cf9752..8ec5aa1c9 100644 --- a/internal/tools/users/action_specs_test.go +++ b/internal/tools/users/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for user actions. package users diff --git a/internal/tools/users/doc.go b/internal/tools/users/doc.go index 8b0bd4539..6a2f3c442 100644 --- a/internal/tools/users/doc.go +++ b/internal/tools/users/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package users implements GitLab user MCP tools for the current authenticated // user, administrator user management, user CRUD, SSH keys, service accounts, // personal access tokens, memberships, activities, runner details, and identity diff --git a/internal/tools/users/markdown.go b/internal/tools/users/markdown.go index a0d990b9a..0104f94d4 100644 --- a/internal/tools/users/markdown.go +++ b/internal/tools/users/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/user_admin.go b/internal/tools/users/user_admin.go index c7f6c689d..a1fb4a0c6 100644 --- a/internal/tools/users/user_admin.go +++ b/internal/tools/users/user_admin.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/user_admin_test.go b/internal/tools/users/user_admin_test.go index 4ed962ee3..e800bd7c1 100644 --- a/internal/tools/users/user_admin_test.go +++ b/internal/tools/users/user_admin_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // user_admin_test.go contains unit tests for GitLab user administration // operations. Tests use httptest to mock the GitLab Users API. package users diff --git a/internal/tools/users/user_crud.go b/internal/tools/users/user_crud.go index deed641de..41966b98d 100644 --- a/internal/tools/users/user_crud.go +++ b/internal/tools/users/user_crud.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/user_crud_test.go b/internal/tools/users/user_crud_test.go index 74941203b..9f759f9c4 100644 --- a/internal/tools/users/user_crud_test.go +++ b/internal/tools/users/user_crud_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // user_crud_test.go contains unit tests for GitLab user create, read, update, // and delete operations. Tests use httptest to mock the GitLab Users API. package users diff --git a/internal/tools/users/user_misc.go b/internal/tools/users/user_misc.go index fdf197aa6..927465629 100644 --- a/internal/tools/users/user_misc.go +++ b/internal/tools/users/user_misc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/user_misc_test.go b/internal/tools/users/user_misc_test.go index e6ebd03d5..adf402a70 100644 --- a/internal/tools/users/user_misc_test.go +++ b/internal/tools/users/user_misc_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // user_misc_test.go contains unit tests for miscellaneous GitLab user // operations (impersonation tokens, memberships, etc.). // Tests use httptest to mock the GitLab Users API. diff --git a/internal/tools/users/user_service_accounts.go b/internal/tools/users/user_service_accounts.go index bfbb06ae3..1dcca3da1 100644 --- a/internal/tools/users/user_service_accounts.go +++ b/internal/tools/users/user_service_accounts.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/user_service_accounts_test.go b/internal/tools/users/user_service_accounts_test.go index 3f9b43a33..11130479a 100644 --- a/internal/tools/users/user_service_accounts_test.go +++ b/internal/tools/users/user_service_accounts_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // user_service_accounts_test.go contains unit tests for GitLab service account // operations. Tests use httptest to mock the GitLab Users API. package users diff --git a/internal/tools/users/user_ssh_keys.go b/internal/tools/users/user_ssh_keys.go index 7b316db8b..7d781b795 100644 --- a/internal/tools/users/user_ssh_keys.go +++ b/internal/tools/users/user_ssh_keys.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/user_ssh_keys_test.go b/internal/tools/users/user_ssh_keys_test.go index 2dbe06d12..b6fc24490 100644 --- a/internal/tools/users/user_ssh_keys_test.go +++ b/internal/tools/users/user_ssh_keys_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // user_ssh_keys_test.go contains unit tests for GitLab user SSH key // management operations. Tests use httptest to mock the GitLab Users API. package users diff --git a/internal/tools/users/users.go b/internal/tools/users/users.go index 2ca5689ac..64b7d0465 100644 --- a/internal/tools/users/users.go +++ b/internal/tools/users/users.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package users import ( diff --git a/internal/tools/users/users_test.go b/internal/tools/users/users_test.go index c331d98df..41d8640c3 100644 --- a/internal/tools/users/users_test.go +++ b/internal/tools/users/users_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // users_test.go contains unit tests for GitLab user operations. package users diff --git a/internal/tools/vulnerabilities/action_specs.go b/internal/tools/vulnerabilities/action_specs.go index 956972baf..fa80f1d50 100644 --- a/internal/tools/vulnerabilities/action_specs.go +++ b/internal/tools/vulnerabilities/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package vulnerabilities import ( diff --git a/internal/tools/vulnerabilities/action_specs_test.go b/internal/tools/vulnerabilities/action_specs_test.go index ffb8de2e3..ed4e4f235 100644 --- a/internal/tools/vulnerabilities/action_specs_test.go +++ b/internal/tools/vulnerabilities/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains integration tests for the vulnerability tool // closures in ActionSpecs routes with a mock GitLab API. package vulnerabilities diff --git a/internal/tools/vulnerabilities/doc.go b/internal/tools/vulnerabilities/doc.go index e02f7e7b2..6c59f2991 100644 --- a/internal/tools/vulnerabilities/doc.go +++ b/internal/tools/vulnerabilities/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package vulnerabilities implements MCP tools for GitLab vulnerability // management through the GraphQL API. // diff --git a/internal/tools/vulnerabilities/markdown.go b/internal/tools/vulnerabilities/markdown.go index 855348f0e..df9236cc5 100644 --- a/internal/tools/vulnerabilities/markdown.go +++ b/internal/tools/vulnerabilities/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package vulnerabilities import ( diff --git a/internal/tools/vulnerabilities/mutations.go b/internal/tools/vulnerabilities/mutations.go index 619acb956..6c509c9df 100644 --- a/internal/tools/vulnerabilities/mutations.go +++ b/internal/tools/vulnerabilities/mutations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package vulnerabilities import ( diff --git a/internal/tools/vulnerabilities/summary.go b/internal/tools/vulnerabilities/summary.go index 29a98d3c8..0259fe62d 100644 --- a/internal/tools/vulnerabilities/summary.go +++ b/internal/tools/vulnerabilities/summary.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package vulnerabilities import ( diff --git a/internal/tools/vulnerabilities/summary_test.go b/internal/tools/vulnerabilities/summary_test.go index 34e4f7e83..d938f6957 100644 --- a/internal/tools/vulnerabilities/summary_test.go +++ b/internal/tools/vulnerabilities/summary_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // summary_test.go contains unit tests for GitLab vulnerability summary // retrieval operations. Tests use httptest to mock the GitLab Vulnerabilities API. package vulnerabilities diff --git a/internal/tools/vulnerabilities/vulnerabilities.go b/internal/tools/vulnerabilities/vulnerabilities.go index 28c356901..11908146f 100644 --- a/internal/tools/vulnerabilities/vulnerabilities.go +++ b/internal/tools/vulnerabilities/vulnerabilities.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package vulnerabilities import ( diff --git a/internal/tools/vulnerabilities/vulnerabilities_test.go b/internal/tools/vulnerabilities/vulnerabilities_test.go index b0a0b6ad5..ba1035295 100644 --- a/internal/tools/vulnerabilities/vulnerabilities_test.go +++ b/internal/tools/vulnerabilities/vulnerabilities_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // vulnerabilities_test.go contains unit tests for GitLab vulnerability listing // and retrieval operations. Tests use httptest to mock the GitLab Vulnerabilities API. package vulnerabilities diff --git a/internal/tools/waitpoll/doc.go b/internal/tools/waitpoll/doc.go index 987a25a53..3cbe81b9e 100644 --- a/internal/tools/waitpoll/doc.go +++ b/internal/tools/waitpoll/doc.go @@ -1,2 +1,5 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package waitpoll provides shared polling loops for wait-style tools. package waitpoll diff --git a/internal/tools/waitpoll/transfer_failure.go b/internal/tools/waitpoll/transfer_failure.go index 37648ae4c..e89e55a43 100644 --- a/internal/tools/waitpoll/transfer_failure.go +++ b/internal/tools/waitpoll/transfer_failure.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package waitpoll import ( diff --git a/internal/tools/waitpoll/transfer_failure_test.go b/internal/tools/waitpoll/transfer_failure_test.go index 078709fca..3977094a0 100644 --- a/internal/tools/waitpoll/transfer_failure_test.go +++ b/internal/tools/waitpoll/transfer_failure_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package waitpoll import ( diff --git a/internal/tools/waitpoll/until.go b/internal/tools/waitpoll/until.go index 7f9024a00..f7ea978bd 100644 --- a/internal/tools/waitpoll/until.go +++ b/internal/tools/waitpoll/until.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package waitpoll import ( diff --git a/internal/tools/waitpoll/until_test.go b/internal/tools/waitpoll/until_test.go index 52c29206b..30f29bba9 100644 --- a/internal/tools/waitpoll/until_test.go +++ b/internal/tools/waitpoll/until_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package waitpoll import ( diff --git a/internal/tools/waitpoll/wait_poll.go b/internal/tools/waitpoll/wait_poll.go index 60b1f1caa..be5d19a69 100644 --- a/internal/tools/waitpoll/wait_poll.go +++ b/internal/tools/waitpoll/wait_poll.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package waitpoll import ( diff --git a/internal/tools/waitpoll/wait_poll_test.go b/internal/tools/waitpoll/wait_poll_test.go index 87d0b7338..df2719c7b 100644 --- a/internal/tools/waitpoll/wait_poll_test.go +++ b/internal/tools/waitpoll/wait_poll_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package waitpoll import ( diff --git a/internal/tools/wikis/action_specs.go b/internal/tools/wikis/action_specs.go index f2e70109b..374536aa6 100644 --- a/internal/tools/wikis/action_specs.go +++ b/internal/tools/wikis/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package wikis import ( diff --git a/internal/tools/wikis/action_specs_test.go b/internal/tools/wikis/action_specs_test.go index 21d5bbf6d..7e8ca44f2 100644 --- a/internal/tools/wikis/action_specs_test.go +++ b/internal/tools/wikis/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains route and catalog-surface tests for behavior that // used to live in register.go (not-found output and destructive confirmation), // alongside the discovery metadata and input-schema assertions each spec carries. diff --git a/internal/tools/wikis/doc.go b/internal/tools/wikis/doc.go index 7ed9c56b6..44d6f1273 100644 --- a/internal/tools/wikis/doc.go +++ b/internal/tools/wikis/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package wikis implements MCP tools for GitLab project wiki operations. // // The package wraps the GitLab Wikis API: diff --git a/internal/tools/wikis/markdown.go b/internal/tools/wikis/markdown.go index 497a84452..1c4fce614 100644 --- a/internal/tools/wikis/markdown.go +++ b/internal/tools/wikis/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package wikis import ( diff --git a/internal/tools/wikis/wikis.go b/internal/tools/wikis/wikis.go index 17379e33e..47234ed68 100644 --- a/internal/tools/wikis/wikis.go +++ b/internal/tools/wikis/wikis.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package wikis import ( diff --git a/internal/tools/wikis/wikis_test.go b/internal/tools/wikis/wikis_test.go index ec11b529b..2aa3dc383 100644 --- a/internal/tools/wikis/wikis_test.go +++ b/internal/tools/wikis/wikis_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // wikis_test.go contains unit tests for GitLab wiki page operations. // Tests use httptest to mock the GitLab Wikis API. package wikis diff --git a/internal/tools/workitems/action_specs.go b/internal/tools/workitems/action_specs.go index 9563b2394..276575f72 100644 --- a/internal/tools/workitems/action_specs.go +++ b/internal/tools/workitems/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitems import ( diff --git a/internal/tools/workitems/action_specs_catalog_test.go b/internal/tools/workitems/action_specs_catalog_test.go index f1a7197ca..9d56216ad 100644 --- a/internal/tools/workitems/action_specs_catalog_test.go +++ b/internal/tools/workitems/action_specs_catalog_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_catalog_test.go holds the canonical action IDs this package // publishes against the catalog the server builds. // diff --git a/internal/tools/workitems/action_specs_test.go b/internal/tools/workitems/action_specs_test.go index 366174344..2a09430b8 100644 --- a/internal/tools/workitems/action_specs_test.go +++ b/internal/tools/workitems/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains canonical-route tests for work item actions. package workitems diff --git a/internal/tools/workitems/clear_guard.go b/internal/tools/workitems/clear_guard.go index 9196353c4..bd9c4e035 100644 --- a/internal/tools/workitems/clear_guard.go +++ b/internal/tools/workitems/clear_guard.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // clear_guard.go guards the work item update paths that silently discard data: // an explicit empty assignee or CRM contact list replaces the current one with // nothing. diff --git a/internal/tools/workitems/clear_guard_test.go b/internal/tools/workitems/clear_guard_test.go index 056cb4232..7b3fd06c2 100644 --- a/internal/tools/workitems/clear_guard_test.go +++ b/internal/tools/workitems/clear_guard_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // clear_guard_test.go covers the guard that stands between a work item update // and the two lists GitLab replaces wholesale. An explicit empty array is a // legitimate way to remove every assignee or CRM contact, and it is also what diff --git a/internal/tools/workitems/doc.go b/internal/tools/workitems/doc.go index 0308bb705..e5c308725 100644 --- a/internal/tools/workitems/doc.go +++ b/internal/tools/workitems/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package workitems implements MCP tools for GitLab work item operations // exposed through issue workflows. // diff --git a/internal/tools/workitems/export_test.go b/internal/tools/workitems/export_test.go index d7d665885..80c748936 100644 --- a/internal/tools/workitems/export_test.go +++ b/internal/tools/workitems/export_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitems // PublishedActionIDs is every canonical action ID this package hands a model: diff --git a/internal/tools/workitems/markdown.go b/internal/tools/workitems/markdown.go index 350586762..e426a44ef 100644 --- a/internal/tools/workitems/markdown.go +++ b/internal/tools/workitems/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitems import ( diff --git a/internal/tools/workitems/markdown_test.go b/internal/tools/workitems/markdown_test.go index d51ec5c19..0b6e64c75 100644 --- a/internal/tools/workitems/markdown_test.go +++ b/internal/tools/workitems/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitems import ( diff --git a/internal/tools/workitems/work_items.go b/internal/tools/workitems/work_items.go index 67f9d5b8e..8441e6129 100644 --- a/internal/tools/workitems/work_items.go +++ b/internal/tools/workitems/work_items.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitems import ( diff --git a/internal/tools/workitems/work_items_test.go b/internal/tools/workitems/work_items_test.go index 7f08596e0..b15e9ae5d 100644 --- a/internal/tools/workitems/work_items_test.go +++ b/internal/tools/workitems/work_items_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // work_items_test.go contains unit tests for the work item MCP tool handlers. // Tests use httptest to mock GitLab API responses and verify success, error, // and edge-case paths. diff --git a/internal/tools/workitemsavedviews/action_specs.go b/internal/tools/workitemsavedviews/action_specs.go index 078443040..01117d5c2 100644 --- a/internal/tools/workitemsavedviews/action_specs.go +++ b/internal/tools/workitemsavedviews/action_specs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitemsavedviews import ( diff --git a/internal/tools/workitemsavedviews/action_specs_test.go b/internal/tools/workitemsavedviews/action_specs_test.go index e62a16c17..478c9291d 100644 --- a/internal/tools/workitemsavedviews/action_specs_test.go +++ b/internal/tools/workitemsavedviews/action_specs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_specs_test.go contains unit tests for the canonical action metadata of // the work item saved view domain: the action set, its read/write/destructive // classification, the discovery metadata every action carries, and the diff --git a/internal/tools/workitemsavedviews/doc.go b/internal/tools/workitemsavedviews/doc.go index c57288ddf..523255466 100644 --- a/internal/tools/workitemsavedviews/doc.go +++ b/internal/tools/workitemsavedviews/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package workitemsavedviews implements MCP tools for GitLab work item saved // views through the GraphQL API. // diff --git a/internal/tools/workitemsavedviews/filters.go b/internal/tools/workitemsavedviews/filters.go index 2e416d8c8..8bcb0f4b5 100644 --- a/internal/tools/workitemsavedviews/filters.go +++ b/internal/tools/workitemsavedviews/filters.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitemsavedviews import ( diff --git a/internal/tools/workitemsavedviews/filters_test.go b/internal/tools/workitemsavedviews/filters_test.go index 7ff4cff39..5f857294a 100644 --- a/internal/tools/workitemsavedviews/filters_test.go +++ b/internal/tools/workitemsavedviews/filters_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // filters_test.go contains unit tests for the conversion between the MCP filter // shape and the SDK's WorkItemSavedViewFilters, covering every nested // sub-filter, the pointer/empty-string distinction, and timestamp parsing. diff --git a/internal/tools/workitemsavedviews/markdown.go b/internal/tools/workitemsavedviews/markdown.go index 091fdf830..384eac787 100644 --- a/internal/tools/workitemsavedviews/markdown.go +++ b/internal/tools/workitemsavedviews/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitemsavedviews import ( diff --git a/internal/tools/workitemsavedviews/markdown_test.go b/internal/tools/workitemsavedviews/markdown_test.go index f7c3c7c9f..d4742b0ab 100644 --- a/internal/tools/workitemsavedviews/markdown_test.go +++ b/internal/tools/workitemsavedviews/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for the Markdown renderings of work item // saved views, covering the detail, list, and mutation shapes plus the empty and // undecodable edge cases. diff --git a/internal/tools/workitemsavedviews/work_item_saved_views.go b/internal/tools/workitemsavedviews/work_item_saved_views.go index 7f718211a..544c06a27 100644 --- a/internal/tools/workitemsavedviews/work_item_saved_views.go +++ b/internal/tools/workitemsavedviews/work_item_saved_views.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package workitemsavedviews import ( diff --git a/internal/tools/workitemsavedviews/work_item_saved_views_test.go b/internal/tools/workitemsavedviews/work_item_saved_views_test.go index b2a42943a..8367cdd62 100644 --- a/internal/tools/workitemsavedviews/work_item_saved_views_test.go +++ b/internal/tools/workitemsavedviews/work_item_saved_views_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // work_item_saved_views_test.go contains unit tests for GitLab work item saved // view operations. // diff --git a/internal/toolutil/access_level.go b/internal/toolutil/access_level.go index 76d12b2d4..64e45ecf6 100644 --- a/internal/toolutil/access_level.go +++ b/internal/toolutil/access_level.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/access_level_test.go b/internal/toolutil/access_level_test.go index ccc791640..ce16fc161 100644 --- a/internal/toolutil/access_level_test.go +++ b/internal/toolutil/access_level_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // access_level_test.go verifies the human-readable label mapping for GitLab // access level constants used in project/group member outputs. package toolutil diff --git a/internal/toolutil/action_meta.go b/internal/toolutil/action_meta.go index 5b08a401a..cdbc53fff 100644 --- a/internal/toolutil/action_meta.go +++ b/internal/toolutil/action_meta.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil // ActionMetaEntry holds the per-action discovery metadata that domains overlay diff --git a/internal/toolutil/action_meta_test.go b/internal/toolutil/action_meta_test.go index 8647270fb..01d9b5ae7 100644 --- a/internal/toolutil/action_meta_test.go +++ b/internal/toolutil/action_meta_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/action_schema_override.go b/internal/toolutil/action_schema_override.go index 766d9c043..208440725 100644 --- a/internal/toolutil/action_schema_override.go +++ b/internal/toolutil/action_schema_override.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/action_schema_override_test.go b/internal/toolutil/action_schema_override_test.go index 2d6fc9080..22df54041 100644 --- a/internal/toolutil/action_schema_override_test.go +++ b/internal/toolutil/action_schema_override_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_schema_override_test.go tests the canonical parameter injections // applied to every action input schema: the pagination bounds, the date/time, // URI and email formats, and the instance-wide enums; the patterns an action diff --git a/internal/toolutil/action_spec.go b/internal/toolutil/action_spec.go index f8ce1d6a2..6d8124018 100644 --- a/internal/toolutil/action_spec.go +++ b/internal/toolutil/action_spec.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/action_spec_individual.go b/internal/toolutil/action_spec_individual.go index 5f30cd4a1..3b57b7a87 100644 --- a/internal/toolutil/action_spec_individual.go +++ b/internal/toolutil/action_spec_individual.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/action_spec_individual_test.go b/internal/toolutil/action_spec_individual_test.go index cb9164e7e..059a226f3 100644 --- a/internal/toolutil/action_spec_individual_test.go +++ b/internal/toolutil/action_spec_individual_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/action_spec_test.go b/internal/toolutil/action_spec_test.go index 1dc6150b2..eaca49f7b 100644 --- a/internal/toolutil/action_spec_test.go +++ b/internal/toolutil/action_spec_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/action_timeout.go b/internal/toolutil/action_timeout.go index a50530edc..89fe5969d 100644 --- a/internal/toolutil/action_timeout.go +++ b/internal/toolutil/action_timeout.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_timeout.go bounds how long one action may run. // // Every action passes through one of the four WrapAction functions, which diff --git a/internal/toolutil/action_timeout_test.go b/internal/toolutil/action_timeout_test.go index badaed7b4..e90d87b6c 100644 --- a/internal/toolutil/action_timeout_test.go +++ b/internal/toolutil/action_timeout_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // action_timeout_test.go covers the deadline every action runs under. package toolutil diff --git a/internal/toolutil/annotations.go b/internal/toolutil/annotations.go index b093a6de9..c4001b2f8 100644 --- a/internal/toolutil/annotations.go +++ b/internal/toolutil/annotations.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import "github.com/modelcontextprotocol/go-sdk/mcp" diff --git a/internal/toolutil/annotations_test.go b/internal/toolutil/annotations_test.go index 05dc71112..473619209 100644 --- a/internal/toolutil/annotations_test.go +++ b/internal/toolutil/annotations_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // annotations_test.go contains unit tests for the shared MCP annotation // presets applied to tool results and resource declarations. package toolutil diff --git a/internal/toolutil/approver_ids.go b/internal/toolutil/approver_ids.go index 6cfe23381..439cd54a5 100644 --- a/internal/toolutil/approver_ids.go +++ b/internal/toolutil/approver_ids.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/approver_ids_test.go b/internal/toolutil/approver_ids_test.go index 22198405a..192ee56ea 100644 --- a/internal/toolutil/approver_ids_test.go +++ b/internal/toolutil/approver_ids_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // approver_ids_test.go contains unit tests for the approver filter that // mirrors GitLab's approver_ids / approved_by_ids parameters, covering the // numeric-ID form, the "Any"/"None" literals, and the invalid combinations diff --git a/internal/toolutil/board_markdown.go b/internal/toolutil/board_markdown.go index a36739f9f..b2c7edffb 100644 --- a/internal/toolutil/board_markdown.go +++ b/internal/toolutil/board_markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/board_markdown_test.go b/internal/toolutil/board_markdown_test.go index 06709a53f..aa9f7274f 100644 --- a/internal/toolutil/board_markdown_test.go +++ b/internal/toolutil/board_markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/board_shapes.go b/internal/toolutil/board_shapes.go index f01e21fc7..8215d8c82 100644 --- a/internal/toolutil/board_shapes.go +++ b/internal/toolutil/board_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/board_shapes_test.go b/internal/toolutil/board_shapes_test.go index 021ee1257..36ca2debb 100644 --- a/internal/toolutil/board_shapes_test.go +++ b/internal/toolutil/board_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/card.go b/internal/toolutil/card.go index 5813f78bf..ef778d8d7 100644 --- a/internal/toolutil/card.go +++ b/internal/toolutil/card.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/card_test.go b/internal/toolutil/card_test.go index 0d176e0e3..fdfccd4fd 100644 --- a/internal/toolutil/card_test.go +++ b/internal/toolutil/card_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // card_test.go pins the one card shape byte for byte: every test compares the // whole rendered document with an expected string, never a substring, because // a substring is what let two interleaved cards in the tree print a table row diff --git a/internal/toolutil/collection_shape.go b/internal/toolutil/collection_shape.go index 0459f5222..09e22f6d4 100644 --- a/internal/toolutil/collection_shape.go +++ b/internal/toolutil/collection_shape.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/collection_shape_test.go b/internal/toolutil/collection_shape_test.go index 08b8187f8..4c32c9c65 100644 --- a/internal/toolutil/collection_shape_test.go +++ b/internal/toolutil/collection_shape_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // collection_shape_test.go pins CollectionShapeOf, the one reading of an // output type that R-PAGE and ResolveContentKind both rest on: which types are // the envelope of a list, and which publish a pagination block. diff --git a/internal/toolutil/confirm.go b/internal/toolutil/confirm.go index 7369abe21..f081bf75d 100644 --- a/internal/toolutil/confirm.go +++ b/internal/toolutil/confirm.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/confirm_test.go b/internal/toolutil/confirm_test.go index 9fa6516df..ead05edbb 100644 --- a/internal/toolutil/confirm_test.go +++ b/internal/toolutil/confirm_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // confirm_test.go contains unit tests for user confirmation helpers. package toolutil diff --git a/internal/toolutil/constants.go b/internal/toolutil/constants.go index 22a361f4c..2d1395eae 100644 --- a/internal/toolutil/constants.go +++ b/internal/toolutil/constants.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil // ErrMsgContextCanceled is the operation label passed to WrapErr when a tool diff --git a/internal/toolutil/diff.go b/internal/toolutil/diff.go index dec81b318..6963a7800 100644 --- a/internal/toolutil/diff.go +++ b/internal/toolutil/diff.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/diff_position.go b/internal/toolutil/diff_position.go index 304961379..b86c8b42a 100644 --- a/internal/toolutil/diff_position.go +++ b/internal/toolutil/diff_position.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/diff_position_test.go b/internal/toolutil/diff_position_test.go index fa72b456c..3182e3b15 100644 --- a/internal/toolutil/diff_position_test.go +++ b/internal/toolutil/diff_position_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // diff_position_test.go contains unit tests for unified diff parsing and // position validation helpers. package toolutil diff --git a/internal/toolutil/diff_test.go b/internal/toolutil/diff_test.go index 2a3fc1e4b..f40690821 100644 --- a/internal/toolutil/diff_test.go +++ b/internal/toolutil/diff_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/discussion_guidance.go b/internal/toolutil/discussion_guidance.go index 6bef56ef1..89a8ce0a8 100644 --- a/internal/toolutil/discussion_guidance.go +++ b/internal/toolutil/discussion_guidance.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil // DiscussionIDParamGuidance returns the canonical parameter guidance for the diff --git a/internal/toolutil/discussion_guidance_test.go b/internal/toolutil/discussion_guidance_test.go index ad11105bd..056249437 100644 --- a/internal/toolutil/discussion_guidance_test.go +++ b/internal/toolutil/discussion_guidance_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import "testing" diff --git a/internal/toolutil/doc.go b/internal/toolutil/doc.go index e6f0edbb2..4e685e0f6 100644 --- a/internal/toolutil/doc.go +++ b/internal/toolutil/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Package toolutil provides shared utilities for MCP tool handler sub-packages. // It contains error handling, pagination, logging, text processing, Markdown // formatting helpers, and meta-tool infrastructure used across all domain diff --git a/internal/toolutil/download_ceiling.go b/internal/toolutil/download_ceiling.go index bb86126aa..09e6c773f 100644 --- a/internal/toolutil/download_ceiling.go +++ b/internal/toolutil/download_ceiling.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/download_ceiling_test.go b/internal/toolutil/download_ceiling_test.go index 5ea80d700..16996705c 100644 --- a/internal/toolutil/download_ceiling_test.go +++ b/internal/toolutil/download_ceiling_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // download_ceiling_test.go holds the shared download ceiling to its two // promises: a body that fits is returned whole, and one that does not, or // that a response ceiling stopped on the way in, is refused with the way out diff --git a/internal/toolutil/download_output.go b/internal/toolutil/download_output.go index 92b22b7c2..dd5bb56a7 100644 --- a/internal/toolutil/download_output.go +++ b/internal/toolutil/download_output.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/download_output_other.go b/internal/toolutil/download_output_other.go index 3ff652902..19ea5f2af 100644 --- a/internal/toolutil/download_output_other.go +++ b/internal/toolutil/download_output_other.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !unix // download_output_other.go stands in for the directory sync on platforms diff --git a/internal/toolutil/download_output_test.go b/internal/toolutil/download_output_test.go index a1d9ea1eb..a8bb63de8 100644 --- a/internal/toolutil/download_output_test.go +++ b/internal/toolutil/download_output_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // download_output_test.go covers WriteDownloadOutputFile: that a download // reaches its destination only when every byte of it did, and that anything // short of that leaves the destination as it was and takes the temporary file diff --git a/internal/toolutil/download_output_unix.go b/internal/toolutil/download_output_unix.go index 4d407eece..276ae46f3 100644 --- a/internal/toolutil/download_output_unix.go +++ b/internal/toolutil/download_output_unix.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build unix // download_output_unix.go syncs the directory a download was renamed into, diff --git a/internal/toolutil/download_output_unix_test.go b/internal/toolutil/download_output_unix_test.go index 054a2762a..5431e8023 100644 --- a/internal/toolutil/download_output_unix_test.go +++ b/internal/toolutil/download_output_unix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build unix // download_output_unix_test.go covers the directory sync a download's rename diff --git a/internal/toolutil/embed.go b/internal/toolutil/embed.go index 798001ee0..f8eea8756 100644 --- a/internal/toolutil/embed.go +++ b/internal/toolutil/embed.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/embed_template.go b/internal/toolutil/embed_template.go index d0c4fff6e..83c6541d4 100644 --- a/internal/toolutil/embed_template.go +++ b/internal/toolutil/embed_template.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/embed_template_test.go b/internal/toolutil/embed_template_test.go index 53af896cb..71905ce16 100644 --- a/internal/toolutil/embed_template_test.go +++ b/internal/toolutil/embed_template_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/embed_test.go b/internal/toolutil/embed_test.go index a74bb8b8a..c42e026cc 100644 --- a/internal/toolutil/embed_test.go +++ b/internal/toolutil/embed_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // embed_test.go verifies embedded MCP resource helpers that append JSON or raw // resource content to [mcp.CallToolResult] values when the feature flag is on. package toolutil diff --git a/internal/toolutil/environment_access.go b/internal/toolutil/environment_access.go index 4b56030cf..0daa3d0df 100644 --- a/internal/toolutil/environment_access.go +++ b/internal/toolutil/environment_access.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/environment_access_test.go b/internal/toolutil/environment_access_test.go index 967e7726f..ed6b48e88 100644 --- a/internal/toolutil/environment_access_test.go +++ b/internal/toolutil/environment_access_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // environment_access_test.go tests the rules a protected environment's deploy // access levels and approval rules are held to before a protect or an update // is sent, and the input schema overrides that state the same rules. diff --git a/internal/toolutil/errors.go b/internal/toolutil/errors.go index dd61b8a96..f840c6583 100644 --- a/internal/toolutil/errors.go +++ b/internal/toolutil/errors.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/errors_test.go b/internal/toolutil/errors_test.go index f31acbb2b..13ff64afb 100644 --- a/internal/toolutil/errors_test.go +++ b/internal/toolutil/errors_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // errors_test.go contains unit tests for ToolError formatting, the WrapErr // helper, ClassifyError semantic classification, isConnectionRefused, and // ClassifyHTTPStatus. diff --git a/internal/toolutil/file_source.go b/internal/toolutil/file_source.go index 60cb12ff0..5997646da 100644 --- a/internal/toolutil/file_source.go +++ b/internal/toolutil/file_source.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/file_source_test.go b/internal/toolutil/file_source_test.go index c20a12c81..e09b1cea9 100644 --- a/internal/toolutil/file_source_test.go +++ b/internal/toolutil/file_source_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/file_utils.go b/internal/toolutil/file_utils.go index 2f4d93271..ec23a4103 100644 --- a/internal/toolutil/file_utils.go +++ b/internal/toolutil/file_utils.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/file_utils_other.go b/internal/toolutil/file_utils_other.go index 4fd69be95..e2757050d 100644 --- a/internal/toolutil/file_utils_other.go +++ b/internal/toolutil/file_utils_other.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build !unix // file_utils_other.go carries the leaf-open primitives for platforms with no diff --git a/internal/toolutil/file_utils_test.go b/internal/toolutil/file_utils_test.go index f80d10b7d..d1a322368 100644 --- a/internal/toolutil/file_utils_test.go +++ b/internal/toolutil/file_utils_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // file_utils_test.go contains unit tests for shared file utility functions // including file validation, SHA-256 checksum computation, progress tracking, // and package name validation. diff --git a/internal/toolutil/file_utils_unix.go b/internal/toolutil/file_utils_unix.go index 7b8114dc3..97130a4de 100644 --- a/internal/toolutil/file_utils_unix.go +++ b/internal/toolutil/file_utils_unix.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build unix // file_utils_unix.go opens caller-supplied local paths without following a diff --git a/internal/toolutil/file_utils_unix_test.go b/internal/toolutil/file_utils_unix_test.go index 100b4c56b..49f22a653 100644 --- a/internal/toolutil/file_utils_unix_test.go +++ b/internal/toolutil/file_utils_unix_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + //go:build unix // file_utils_unix_test.go contains Unix-only unit tests for file_utils.go that diff --git a/internal/toolutil/fine_grained.go b/internal/toolutil/fine_grained.go index 9195b83ab..b7fc6897d 100644 --- a/internal/toolutil/fine_grained.go +++ b/internal/toolutil/fine_grained.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/fine_grained_test.go b/internal/toolutil/fine_grained_test.go index 548e3c14c..a51d320e3 100644 --- a/internal/toolutil/fine_grained_test.go +++ b/internal/toolutil/fine_grained_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/graphql.go b/internal/toolutil/graphql.go index 44c42efa6..c1843cb8d 100644 --- a/internal/toolutil/graphql.go +++ b/internal/toolutil/graphql.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/graphql_note_mutation.go b/internal/toolutil/graphql_note_mutation.go index 2863b0a91..71967fa27 100644 --- a/internal/toolutil/graphql_note_mutation.go +++ b/internal/toolutil/graphql_note_mutation.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/graphql_note_mutation_test.go b/internal/toolutil/graphql_note_mutation_test.go index 094d9646b..f17e17cd1 100644 --- a/internal/toolutil/graphql_note_mutation_test.go +++ b/internal/toolutil/graphql_note_mutation_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/graphql_test.go b/internal/toolutil/graphql_test.go index 734f9aadb..701a1f907 100644 --- a/internal/toolutil/graphql_test.go +++ b/internal/toolutil/graphql_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // graphql_test.go contains unit tests for GraphQL shared utilities: // FormatGID and ParseGID round-tripping, the two pagination inputs // (EffectiveFirst, Resolve, Variables and the declaration scan that keeps a diff --git a/internal/toolutil/hints.go b/internal/toolutil/hints.go index b52543715..dfc029bb0 100644 --- a/internal/toolutil/hints.go +++ b/internal/toolutil/hints.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/hints_test.go b/internal/toolutil/hints_test.go index a05ce8ac7..511a1f045 100644 --- a/internal/toolutil/hints_test.go +++ b/internal/toolutil/hints_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // hints_test.go contains unit tests for WriteHints and ExtractHints helpers. package toolutil diff --git a/internal/toolutil/icons.go b/internal/toolutil/icons.go index 7ddcf409d..f9f4a5801 100644 --- a/internal/toolutil/icons.go +++ b/internal/toolutil/icons.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/icons_test.go b/internal/toolutil/icons_test.go index f5ca67477..c98b4992d 100644 --- a/internal/toolutil/icons_test.go +++ b/internal/toolutil/icons_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // icons_test.go validates that all icon constants are properly formed. package toolutil diff --git a/internal/toolutil/identity.go b/internal/toolutil/identity.go index 03001f06b..fb9989830 100644 --- a/internal/toolutil/identity.go +++ b/internal/toolutil/identity.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/identity_test.go b/internal/toolutil/identity_test.go index c99f2cca5..3342b9b35 100644 --- a/internal/toolutil/identity_test.go +++ b/internal/toolutil/identity_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // identity_test.go contains unit tests for user identity resolution helpers: // UserIdentity.IsAuthenticated, IdentityToContext/IdentityFromContext // round-tripping, and ResolveIdentity priority (OAuth TokenInfo > context). diff --git a/internal/toolutil/instance_url.go b/internal/toolutil/instance_url.go index fc01a63ff..4dda8fb68 100644 --- a/internal/toolutil/instance_url.go +++ b/internal/toolutil/instance_url.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/instance_url_test.go b/internal/toolutil/instance_url_test.go index 116c9d25c..3f0eaaacb 100644 --- a/internal/toolutil/instance_url_test.go +++ b/internal/toolutil/instance_url_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // instance_url_test.go holds InstanceWebURL and PathBelowInstanceWeb to the // rule GitLab's own SubmoduleHelper applies to a URL on the instance: a // prefix match on the web URL, relative root included, for http and https diff --git a/internal/toolutil/issue_shapes.go b/internal/toolutil/issue_shapes.go index 5840ebf00..4414e5183 100644 --- a/internal/toolutil/issue_shapes.go +++ b/internal/toolutil/issue_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/issue_shapes_test.go b/internal/toolutil/issue_shapes_test.go index 413e73421..fc096cdb7 100644 --- a/internal/toolutil/issue_shapes_test.go +++ b/internal/toolutil/issue_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // issue_shapes_test.go contains unit tests for the shared issue-shape // converters exposed by toolutil. The previous per-package tests were // retained by deleting the local shapes.go definitions; this file diff --git a/internal/toolutil/json_body.go b/internal/toolutil/json_body.go index ee4d00ccc..d95cf7f35 100644 --- a/internal/toolutil/json_body.go +++ b/internal/toolutil/json_body.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/json_body_test.go b/internal/toolutil/json_body_test.go index de50ad576..f060a2608 100644 --- a/internal/toolutil/json_body_test.go +++ b/internal/toolutil/json_body_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/label_markdown.go b/internal/toolutil/label_markdown.go index 791123886..0aa17dd2d 100644 --- a/internal/toolutil/label_markdown.go +++ b/internal/toolutil/label_markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/label_markdown_test.go b/internal/toolutil/label_markdown_test.go index fc5fb0397..c97828ef3 100644 --- a/internal/toolutil/label_markdown_test.go +++ b/internal/toolutil/label_markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/logging.go b/internal/toolutil/logging.go index e2b6f2321..ba72174f1 100644 --- a/internal/toolutil/logging.go +++ b/internal/toolutil/logging.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/logging_test.go b/internal/toolutil/logging_test.go index 84969c078..6af91d67a 100644 --- a/internal/toolutil/logging_test.go +++ b/internal/toolutil/logging_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // logging_test.go contains unit tests for the LogToolCall, LogToolCallAll, // and logToolCallWithUser helpers. Tests capture slog output and assert that // the correct log level, tool name, and structured fields are present. diff --git a/internal/toolutil/markdown.go b/internal/toolutil/markdown.go index d17aed4a3..6010bfa97 100644 --- a/internal/toolutil/markdown.go +++ b/internal/toolutil/markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/markdown_test.go b/internal/toolutil/markdown_test.go index 43e5c1ac0..87cdd4092 100644 --- a/internal/toolutil/markdown_test.go +++ b/internal/toolutil/markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // markdown_test.go contains unit tests for shared Markdown utility functions. package toolutil diff --git a/internal/toolutil/md_registry.go b/internal/toolutil/md_registry.go index fd93d5291..6be573d10 100644 --- a/internal/toolutil/md_registry.go +++ b/internal/toolutil/md_registry.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/md_registry_test.go b/internal/toolutil/md_registry_test.go index 102233ef2..36160ffb3 100644 --- a/internal/toolutil/md_registry_test.go +++ b/internal/toolutil/md_registry_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // md_registry_test.go contains unit tests for the type-based Markdown formatter // registry: RegisterMarkdown, RegisterMarkdownResult, MarkdownForResult dispatch, // result formatter priority over string formatters, concurrent-safety of diff --git a/internal/toolutil/member_capture.go b/internal/toolutil/member_capture.go index bf1f0a5ef..c39c39dcb 100644 --- a/internal/toolutil/member_capture.go +++ b/internal/toolutil/member_capture.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/member_capture_test.go b/internal/toolutil/member_capture_test.go index c1a87a49f..0c5a5d2fa 100644 --- a/internal/toolutil/member_capture_test.go +++ b/internal/toolutil/member_capture_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/member_shapes.go b/internal/toolutil/member_shapes.go index 619ebdfae..8f3ad69e5 100644 --- a/internal/toolutil/member_shapes.go +++ b/internal/toolutil/member_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/member_shapes_test.go b/internal/toolutil/member_shapes_test.go index 74fb7c993..c45908172 100644 --- a/internal/toolutil/member_shapes_test.go +++ b/internal/toolutil/member_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/meta_schema.go b/internal/toolutil/meta_schema.go index 04479429d..abd80a988 100644 --- a/internal/toolutil/meta_schema.go +++ b/internal/toolutil/meta_schema.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/meta_schema_test.go b/internal/toolutil/meta_schema_test.go index b55affb99..e574dcbd4 100644 --- a/internal/toolutil/meta_schema_test.go +++ b/internal/toolutil/meta_schema_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/meta_tool.go b/internal/toolutil/meta_tool.go index 7ae9fb8d5..725c0af71 100644 --- a/internal/toolutil/meta_tool.go +++ b/internal/toolutil/meta_tool.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/meta_tool_test.go b/internal/toolutil/meta_tool_test.go index d76f904e7..1cb67bbab 100644 --- a/internal/toolutil/meta_tool_test.go +++ b/internal/toolutil/meta_tool_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // meta_tool_test.go tests the generic meta-tool dispatch infrastructure: // UnmarshalParams, WrapAction, WrapVoidAction, MakeMetaHandler, // defaultFormatResult, ValidActionsString, MetaToolSchema, diff --git a/internal/toolutil/moved_project.go b/internal/toolutil/moved_project.go index 01b147921..194b0675b 100644 --- a/internal/toolutil/moved_project.go +++ b/internal/toolutil/moved_project.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/moved_project_test.go b/internal/toolutil/moved_project_test.go index 4080ef710..d65ae1ef3 100644 --- a/internal/toolutil/moved_project_test.go +++ b/internal/toolutil/moved_project_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // moved_project_test.go verifies IsMovedProjectRefusal, the reading of // GitLab's refusal of a request that names a moved project by its old path. package toolutil diff --git a/internal/toolutil/mr_shapes.go b/internal/toolutil/mr_shapes.go index 21e06a3ee..6e81b02db 100644 --- a/internal/toolutil/mr_shapes.go +++ b/internal/toolutil/mr_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/mr_shapes_test.go b/internal/toolutil/mr_shapes_test.go index 647bedd35..82868a0b3 100644 --- a/internal/toolutil/mr_shapes_test.go +++ b/internal/toolutil/mr_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // mr_shapes_test.go contains unit tests for the shared MR-shape // converters exposed by toolutil. The previous per-package tests were // retained by deleting the local shapes.go definitions; this file diff --git a/internal/toolutil/names.go b/internal/toolutil/names.go index a3dcb1afc..7058d16e3 100644 --- a/internal/toolutil/names.go +++ b/internal/toolutil/names.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/names_test.go b/internal/toolutil/names_test.go index bbd4c4f11..e06e9224c 100644 --- a/internal/toolutil/names_test.go +++ b/internal/toolutil/names_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // names_test.go pins the tool-name heuristics that annotation derivation and // the surface-quality audit share, so the two keep agreeing on what a name // says about the operation behind it. diff --git a/internal/toolutil/not_found.go b/internal/toolutil/not_found.go index a1ac4fa81..1a60999ff 100644 --- a/internal/toolutil/not_found.go +++ b/internal/toolutil/not_found.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/not_found_test.go b/internal/toolutil/not_found_test.go index 86636434b..ea1181a23 100644 --- a/internal/toolutil/not_found_test.go +++ b/internal/toolutil/not_found_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // not_found_test.go verifies the structured 404 result builder used by // get-handlers across all domain sub-packages when a resource is not found. package toolutil diff --git a/internal/toolutil/note_capture.go b/internal/toolutil/note_capture.go index a5418375a..900a2546d 100644 --- a/internal/toolutil/note_capture.go +++ b/internal/toolutil/note_capture.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/note_capture_test.go b/internal/toolutil/note_capture_test.go index b7f1c8e96..77c275f17 100644 --- a/internal/toolutil/note_capture_test.go +++ b/internal/toolutil/note_capture_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/note_shapes.go b/internal/toolutil/note_shapes.go index 851f63203..c098e358b 100644 --- a/internal/toolutil/note_shapes.go +++ b/internal/toolutil/note_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/note_shapes_test.go b/internal/toolutil/note_shapes_test.go index 813fade35..d4dc2eaef 100644 --- a/internal/toolutil/note_shapes_test.go +++ b/internal/toolutil/note_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // note_shapes_test.go contains unit tests for the shared note-shape // converters exposed by toolutil. The previous per-package tests were // retained by deleting the local shapes.go files; this file replaces diff --git a/internal/toolutil/once_map.go b/internal/toolutil/once_map.go index 0fcfd41ee..ec2aa42e8 100644 --- a/internal/toolutil/once_map.go +++ b/internal/toolutil/once_map.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import "sync" diff --git a/internal/toolutil/once_map_test.go b/internal/toolutil/once_map_test.go index 9b5f17646..1ecff09b7 100644 --- a/internal/toolutil/once_map_test.go +++ b/internal/toolutil/once_map_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/output.go b/internal/toolutil/output.go index d31611cde..064182905 100644 --- a/internal/toolutil/output.go +++ b/internal/toolutil/output.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/output_test.go b/internal/toolutil/output_test.go index f0d3b311b..915187060 100644 --- a/internal/toolutil/output_test.go +++ b/internal/toolutil/output_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // output_test.go contains unit tests for MCP tool output helpers. package toolutil diff --git a/internal/toolutil/pagination.go b/internal/toolutil/pagination.go index a027c1b60..d08b6edc3 100644 --- a/internal/toolutil/pagination.go +++ b/internal/toolutil/pagination.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/pagination_test.go b/internal/toolutil/pagination_test.go index 7bd7f392a..37a3e277c 100644 --- a/internal/toolutil/pagination_test.go +++ b/internal/toolutil/pagination_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pagination_test.go contains unit tests for PaginationFromResponse, // PaginationRequestOption, KeysetContinuation and DeleteResult. Tests cover // nil response, fully populated headers, single-page results, the keyset diff --git a/internal/toolutil/pipeline_inputs.go b/internal/toolutil/pipeline_inputs.go index 989feab82..cb5880d58 100644 --- a/internal/toolutil/pipeline_inputs.go +++ b/internal/toolutil/pipeline_inputs.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/pipeline_inputs_test.go b/internal/toolutil/pipeline_inputs_test.go index 90d37e28f..3f051546f 100644 --- a/internal/toolutil/pipeline_inputs_test.go +++ b/internal/toolutil/pipeline_inputs_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pipeline_inputs_test.go verifies BuildPipelineInputs, the shared conversion // from JSON-decoded spec:inputs values to the SDK's PipelineInputsOption, and // PipelineInputsSchema, the input-schema override that advertises exactly the diff --git a/internal/toolutil/pipeline_shapes.go b/internal/toolutil/pipeline_shapes.go index ea1fdf270..cfd8d72d8 100644 --- a/internal/toolutil/pipeline_shapes.go +++ b/internal/toolutil/pipeline_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/pipeline_shapes_test.go b/internal/toolutil/pipeline_shapes_test.go index a28a1ef37..a7c5be788 100644 --- a/internal/toolutil/pipeline_shapes_test.go +++ b/internal/toolutil/pipeline_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // pipeline_shapes_test.go contains unit tests for the shared pipeline-shape // converters exposed by toolutil. The previous per-package tests were // retained by deleting the local shapes.go definitions; this file replaces diff --git a/internal/toolutil/polling.go b/internal/toolutil/polling.go index 5e6d9b3ee..d79193c40 100644 --- a/internal/toolutil/polling.go +++ b/internal/toolutil/polling.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil // Polling bounds and defaults (all values in seconds) for tools that wait on diff --git a/internal/toolutil/polling_test.go b/internal/toolutil/polling_test.go index 5dd110de1..959b7a28a 100644 --- a/internal/toolutil/polling_test.go +++ b/internal/toolutil/polling_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // polling_test.go contains unit tests for the polling helper functions // ClampPollInterval, ClampPollTimeout, and IsTerminalStatus. package toolutil diff --git a/internal/toolutil/rate_limit.go b/internal/toolutil/rate_limit.go index de4c0367c..e32eaceeb 100644 --- a/internal/toolutil/rate_limit.go +++ b/internal/toolutil/rate_limit.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/rate_limit_test.go b/internal/toolutil/rate_limit_test.go index 14a370b27..269e324b0 100644 --- a/internal/toolutil/rate_limit_test.go +++ b/internal/toolutil/rate_limit_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // rate_limit_test.go verifies the token-bucket rate limiter and the MCP // receiving middleware that converts over-budget tools/call requests into // structured tool error results. diff --git a/internal/toolutil/release_shapes.go b/internal/toolutil/release_shapes.go index 358edc030..8381a94d1 100644 --- a/internal/toolutil/release_shapes.go +++ b/internal/toolutil/release_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/release_shapes_test.go b/internal/toolutil/release_shapes_test.go index 01536d951..854be9b34 100644 --- a/internal/toolutil/release_shapes_test.go +++ b/internal/toolutil/release_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // release_shapes_test.go contains unit tests for the shared release-shape // converters exposed by toolutil. The previous per-package tests were // retained by deleting the local shapes.go definitions; this file replaces diff --git a/internal/toolutil/result_type.go b/internal/toolutil/result_type.go index 55490e8d6..2bb9fce06 100644 --- a/internal/toolutil/result_type.go +++ b/internal/toolutil/result_type.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/result_type_test.go b/internal/toolutil/result_type_test.go index 3e7c7ac75..a2096566d 100644 --- a/internal/toolutil/result_type_test.go +++ b/internal/toolutil/result_type_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // result_type_test.go verifies LabelForRevision, which gives a tools/call // result a receiving middleware makes the resultType revision 2026-07-28 // requires, and pins the go-sdk behavior it works around. diff --git a/internal/toolutil/rpc_code.go b/internal/toolutil/rpc_code.go index e1a56da94..5fde8559d 100644 --- a/internal/toolutil/rpc_code.go +++ b/internal/toolutil/rpc_code.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // rpc_code.go classifies errors with the JSON-RPC codes the MCP specification // names, so a client can tell what it is expected to do about a failure. diff --git a/internal/toolutil/rpc_code_test.go b/internal/toolutil/rpc_code_test.go index 9d751749a..e742f1a5c 100644 --- a/internal/toolutil/rpc_code_test.go +++ b/internal/toolutil/rpc_code_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // rpc_code_test.go verifies the JSON-RPC classification wrapper: which code a // failure travels out under, and that wrapping nothing produces nothing. package toolutil diff --git a/internal/toolutil/safe_mode.go b/internal/toolutil/safe_mode.go index d14e58554..083ea4f00 100644 --- a/internal/toolutil/safe_mode.go +++ b/internal/toolutil/safe_mode.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // safe_mode.go carries the shared Safe Mode preview contract used by every // tool surface: individual tool wrapping, meta-tool dispatch, and the dynamic // execute tool. diff --git a/internal/toolutil/safe_mode_test.go b/internal/toolutil/safe_mode_test.go index c8d7877c6..0ceba8c5c 100644 --- a/internal/toolutil/safe_mode_test.go +++ b/internal/toolutil/safe_mode_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // safe_mode_test.go verifies the preview safe mode returns instead of executing // a mutating action. package toolutil diff --git a/internal/toolutil/schema_compile.go b/internal/toolutil/schema_compile.go index 9fa84eda3..0585f0a69 100644 --- a/internal/toolutil/schema_compile.go +++ b/internal/toolutil/schema_compile.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_compile_test.go b/internal/toolutil/schema_compile_test.go index b7a3a6ccb..99287eb2f 100644 --- a/internal/toolutil/schema_compile_test.go +++ b/internal/toolutil/schema_compile_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_lockdown.go b/internal/toolutil/schema_lockdown.go index edab6d7d3..351362f0a 100644 --- a/internal/toolutil/schema_lockdown.go +++ b/internal/toolutil/schema_lockdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_lockdown_test.go b/internal/toolutil/schema_lockdown_test.go index a4666a30f..e880c0ddd 100644 --- a/internal/toolutil/schema_lockdown_test.go +++ b/internal/toolutil/schema_lockdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // schema_lockdown_test.go verifies JSON Schema lockdown behavior for root, // nested, and preconfigured additionalProperties values in MCP tool schemas. package toolutil diff --git a/internal/toolutil/schema_middleware.go b/internal/toolutil/schema_middleware.go index 9be82f560..20cdda507 100644 --- a/internal/toolutil/schema_middleware.go +++ b/internal/toolutil/schema_middleware.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_middleware_test.go b/internal/toolutil/schema_middleware_test.go index 33247576d..4273448b5 100644 --- a/internal/toolutil/schema_middleware_test.go +++ b/internal/toolutil/schema_middleware_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // schema_middleware_test.go contains unit tests for the receiving middleware // that visits the tools of the first successful tools/list response, which the // schema lockdown and the pagination schema rewrite both register. diff --git a/internal/toolutil/schema_pagination.go b/internal/toolutil/schema_pagination.go index ad87dccca..711cb5708 100644 --- a/internal/toolutil/schema_pagination.go +++ b/internal/toolutil/schema_pagination.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_pagination_test.go b/internal/toolutil/schema_pagination_test.go index d5247a886..1d6d1d93c 100644 --- a/internal/toolutil/schema_pagination_test.go +++ b/internal/toolutil/schema_pagination_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // schema_pagination_test.go verifies pagination constraint enrichment across // root and nested JSON Schema nodes. package toolutil diff --git a/internal/toolutil/schema_share.go b/internal/toolutil/schema_share.go index 06e073c01..96d776988 100644 --- a/internal/toolutil/schema_share.go +++ b/internal/toolutil/schema_share.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_share_test.go b/internal/toolutil/schema_share_test.go index eba4649b0..e7b344ed9 100644 --- a/internal/toolutil/schema_share_test.go +++ b/internal/toolutil/schema_share_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_type_overrides.go b/internal/toolutil/schema_type_overrides.go index f07da07ff..96276fe48 100644 --- a/internal/toolutil/schema_type_overrides.go +++ b/internal/toolutil/schema_type_overrides.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/schema_type_overrides_test.go b/internal/toolutil/schema_type_overrides_test.go index 5cf8edf64..9476be971 100644 --- a/internal/toolutil/schema_type_overrides_test.go +++ b/internal/toolutil/schema_type_overrides_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/sent_shapes.go b/internal/toolutil/sent_shapes.go index 800c4d67b..2aa7b0a16 100644 --- a/internal/toolutil/sent_shapes.go +++ b/internal/toolutil/sent_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/sent_shapes_test.go b/internal/toolutil/sent_shapes_test.go index 52a3da6a3..713ffdcce 100644 --- a/internal/toolutil/sent_shapes_test.go +++ b/internal/toolutil/sent_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/served_input_schema.go b/internal/toolutil/served_input_schema.go index 84285edad..0f7a51630 100644 --- a/internal/toolutil/served_input_schema.go +++ b/internal/toolutil/served_input_schema.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/served_input_schema_test.go b/internal/toolutil/served_input_schema_test.go index 02bd0b99d..bad34dbfe 100644 --- a/internal/toolutil/served_input_schema_test.go +++ b/internal/toolutil/served_input_schema_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/string_or_int.go b/internal/toolutil/string_or_int.go index 0fb34a187..a339cd287 100644 --- a/internal/toolutil/string_or_int.go +++ b/internal/toolutil/string_or_int.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/string_or_int_test.go b/internal/toolutil/string_or_int_test.go index 74281b892..caa78a519 100644 --- a/internal/toolutil/string_or_int_test.go +++ b/internal/toolutil/string_or_int_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // string_or_int_test.go contains unit tests for the StringOrInt JSON // unmarshaling type. package toolutil diff --git a/internal/toolutil/surface_tool.go b/internal/toolutil/surface_tool.go index 999c4276d..8cd1ae6bd 100644 --- a/internal/toolutil/surface_tool.go +++ b/internal/toolutil/surface_tool.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/surface_tool_test.go b/internal/toolutil/surface_tool_test.go index 0bbd2fdd2..4adf3ec68 100644 --- a/internal/toolutil/surface_tool_test.go +++ b/internal/toolutil/surface_tool_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/template_markdown.go b/internal/toolutil/template_markdown.go index aaa243dbb..529aded36 100644 --- a/internal/toolutil/template_markdown.go +++ b/internal/toolutil/template_markdown.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/template_markdown_test.go b/internal/toolutil/template_markdown_test.go index 560f62083..b340b94b3 100644 --- a/internal/toolutil/template_markdown_test.go +++ b/internal/toolutil/template_markdown_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/text.go b/internal/toolutil/text.go index 49e01b52f..6eaf81155 100644 --- a/internal/toolutil/text.go +++ b/internal/toolutil/text.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/text_test.go b/internal/toolutil/text_test.go index 670ed0209..0adf91ee5 100644 --- a/internal/toolutil/text_test.go +++ b/internal/toolutil/text_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // text_test.go contains table-driven tests for the NormalizeText function, // verifying that literal escape sequences are converted to real characters. package toolutil diff --git a/internal/toolutil/time_helpers.go b/internal/toolutil/time_helpers.go index 2ece72f72..42e708636 100644 --- a/internal/toolutil/time_helpers.go +++ b/internal/toolutil/time_helpers.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/time_helpers_test.go b/internal/toolutil/time_helpers_test.go index d32dc00e0..2783ccb1c 100644 --- a/internal/toolutil/time_helpers_test.go +++ b/internal/toolutil/time_helpers_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // time_helpers_test.go contains unit tests for time formatting and parsing helpers. package toolutil diff --git a/internal/toolutil/tool_listing.go b/internal/toolutil/tool_listing.go index 35d8dd13c..685900c55 100644 --- a/internal/toolutil/tool_listing.go +++ b/internal/toolutil/tool_listing.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/tool_listing_test.go b/internal/toolutil/tool_listing_test.go index dab4bc1b0..7d8027603 100644 --- a/internal/toolutil/tool_listing_test.go +++ b/internal/toolutil/tool_listing_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/unconfirmed_write.go b/internal/toolutil/unconfirmed_write.go index 32c3178f0..e083a72a3 100644 --- a/internal/toolutil/unconfirmed_write.go +++ b/internal/toolutil/unconfirmed_write.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/unconfirmed_write_test.go b/internal/toolutil/unconfirmed_write_test.go index 1a0839d7e..d12306150 100644 --- a/internal/toolutil/unconfirmed_write_test.go +++ b/internal/toolutil/unconfirmed_write_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/url_redact.go b/internal/toolutil/url_redact.go index 7b5a3716a..7b4b14db8 100644 --- a/internal/toolutil/url_redact.go +++ b/internal/toolutil/url_redact.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/url_redact_test.go b/internal/toolutil/url_redact_test.go index 62587c07e..a7cb4d5b9 100644 --- a/internal/toolutil/url_redact_test.go +++ b/internal/toolutil/url_redact_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/user_id_filter.go b/internal/toolutil/user_id_filter.go index bf058ca1c..286f9af5c 100644 --- a/internal/toolutil/user_id_filter.go +++ b/internal/toolutil/user_id_filter.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/user_id_filter_test.go b/internal/toolutil/user_id_filter_test.go index 440bb829f..d87b5bc7a 100644 --- a/internal/toolutil/user_id_filter_test.go +++ b/internal/toolutil/user_id_filter_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/user_shapes.go b/internal/toolutil/user_shapes.go index 19ad918f0..31f9efdf7 100644 --- a/internal/toolutil/user_shapes.go +++ b/internal/toolutil/user_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/user_shapes_test.go b/internal/toolutil/user_shapes_test.go index 9a0d3467a..c8b408b71 100644 --- a/internal/toolutil/user_shapes_test.go +++ b/internal/toolutil/user_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/vulnerability_shapes.go b/internal/toolutil/vulnerability_shapes.go index 12125563d..56d442a36 100644 --- a/internal/toolutil/vulnerability_shapes.go +++ b/internal/toolutil/vulnerability_shapes.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/vulnerability_shapes_test.go b/internal/toolutil/vulnerability_shapes_test.go index 347260790..97e453327 100644 --- a/internal/toolutil/vulnerability_shapes_test.go +++ b/internal/toolutil/vulnerability_shapes_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + package toolutil import ( diff --git a/internal/toolutil/work_item_widgets.go b/internal/toolutil/work_item_widgets.go index 239261a5a..e9e5e2ea9 100644 --- a/internal/toolutil/work_item_widgets.go +++ b/internal/toolutil/work_item_widgets.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // work_item_widgets.go reads the inputs of a work item update that GitLab can // be asked to remove, and makes a removal reach GitLab as the null its schema // asks for, which client-go cannot send. diff --git a/internal/toolutil/work_item_widgets_test.go b/internal/toolutil/work_item_widgets_test.go index 7605641ca..89cabe8dd 100644 --- a/internal/toolutil/work_item_widgets_test.go +++ b/internal/toolutil/work_item_widgets_test.go @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // work_item_widgets_test.go holds the work item update inputs GitLab can be // asked to remove to the request client-go sends: a value reaches the option // struct, a removal reaches the mutation as null, and nothing else changes. diff --git a/mcpb/linux/launch.sh b/mcpb/linux/launch.sh index b6e540a42..69a74d6b3 100755 --- a/mcpb/linux/launch.sh +++ b/mcpb/linux/launch.sh @@ -1,4 +1,7 @@ #!/bin/sh +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Linux entry point of the Claude Desktop extension: the Linux bundle # (gitlab-mcp-server-linux.mcpb) and the universal one (gitlab-mcp-server.mcpb). # diff --git a/mcpb/platform.jq b/mcpb/platform.jq index eb36ac2f0..63f2bcf67 100644 --- a/mcpb/platform.jq +++ b/mcpb/platform.jq @@ -1,3 +1,6 @@ +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Derives the manifest of the bundle for one operating system from the # manifest beside this file, which describes the universal bundle: # diff --git a/npm/gitlab-mcp-server/cli.js b/npm/gitlab-mcp-server/cli.js index 407ded3c2..8a8a713b3 100644 --- a/npm/gitlab-mcp-server/cli.js +++ b/npm/gitlab-mcp-server/cli.js @@ -1,4 +1,7 @@ #!/usr/bin/env node +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // cli.js resolves the prebuilt gitlab-mcp-server binary for the current // platform and hands control to it. The binary ships inside a per-platform // optional dependency (see the package's optionalDependencies); npm installs diff --git a/scripts/build-mcpb.sh b/scripts/build-mcpb.sh index b5e8293d5..4a16af1cb 100755 --- a/scripts/build-mcpb.sh +++ b/scripts/build-mcpb.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Build the Claude Desktop extension bundles (.mcpb). # # One run builds four bundles from the same release binaries produced by diff --git a/scripts/build-npm.mjs b/scripts/build-npm.mjs index 5c3d664ad..fa9fa1802 100644 --- a/scripts/build-npm.mjs +++ b/scripts/build-npm.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // build-npm.mjs assembles the npm publish set from the release binaries. // // The npm distribution is one thin launcher package plus one package per diff --git a/scripts/build_mcpb_sh_test.py b/scripts/build_mcpb_sh_test.py index 66c5470ab..3210847a3 100644 --- a/scripts/build_mcpb_sh_test.py +++ b/scripts/build_mcpb_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/build-mcpb.sh, which packs the Claude Desktop bundles and checks what it packed. One run packs four bundles: one per operating system, which server.json diff --git a/scripts/build_nuget.py b/scripts/build_nuget.py index 3d4828826..6f0408cce 100755 --- a/scripts/build_nuget.py +++ b/scripts/build_nuget.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Assemble the NuGet distribution from released binaries. Builds the seven packages of a .NET tool whose entry point is a native diff --git a/scripts/build_pypi.py b/scripts/build_pypi.py index 3a114d2ce..e9892c070 100755 --- a/scripts/build_pypi.py +++ b/scripts/build_pypi.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Assemble the PyPI distribution from released binaries. Builds one platform wheel per release binary, the esbuild/uv/ruff model diff --git a/scripts/check-doc-links.mjs b/scripts/check-doc-links.mjs index c00ef411c..6a2d94de3 100644 --- a/scripts/check-doc-links.mjs +++ b/scripts/check-doc-links.mjs @@ -1,4 +1,6 @@ #!/usr/bin/env node +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT import { execFileSync } from "node:child_process"; import { existsSync, readFileSync, statSync } from "node:fs"; diff --git a/scripts/check-em-dash.sh b/scripts/check-em-dash.sh index bec6a5e5b..6fdcfd23b 100755 --- a/scripts/check-em-dash.sh +++ b/scripts/check-em-dash.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Refuse an em dash (U+2014) in the text a pull request lands in main, and # refuse a review bot's generated block or a skip command in its description. # diff --git a/scripts/check-openplugin.sh b/scripts/check-openplugin.sh index 9ac7c0da9..44295732c 100755 --- a/scripts/check-openplugin.sh +++ b/scripts/check-openplugin.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Validate the Agent Plugins manifests (root plugin.json + mcp.json) and the # legacy Open Plugins manifest (.plugin/plugin.json) kept for older hosts. # diff --git a/scripts/check-spec-conditions.sh b/scripts/check-spec-conditions.sh index c0f838ae7..77d7fc3c9 100755 --- a/scripts/check-spec-conditions.sh +++ b/scripts/check-spec-conditions.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Condition coverage over the action_specs.go of the packages a branch # touches, which is the one shape mutation testing keeps finding and no gate # reads: a per-action metadata table plus a dispatch on the tool name, where diff --git a/scripts/check_doc_links_test.py b/scripts/check_doc_links_test.py index bd548125e..2b8ae8b91 100644 --- a/scripts/check_doc_links_test.py +++ b/scripts/check_doc_links_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how scripts/check-doc-links.mjs (`make check-doc-links`) reads a link to the site. Issue 1163 made the documentation site the one home of the user diff --git a/scripts/check_elf_interp.py b/scripts/check_elf_interp.py index 113e757b6..4a54b38eb 100644 --- a/scripts/check_elf_interp.py +++ b/scripts/check_elf_interp.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Hold each Linux release binary to the ELF interpreter its channels promise. The release binaries are built with -buildmode=pie, which makes them diff --git a/scripts/check_elf_interp_test.py b/scripts/check_elf_interp_test.py index bcdb036d4..7175b6318 100644 --- a/scripts/check_elf_interp_test.py +++ b/scripts/check_elf_interp_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/check_elf_interp.py, the release's PT_INTERP check. The images are built here, byte by byte, rather than read from a release: diff --git a/scripts/check_em_dash_sh_test.py b/scripts/check_em_dash_sh_test.py index 61b1bf236..5729c2fb0 100644 --- a/scripts/check_em_dash_sh_test.py +++ b/scripts/check_em_dash_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests the description half of scripts/check-em-dash.sh (`make check-pr-description`). This repository squash merges, so a pull request's title and body become the diff --git a/scripts/check_spec_conditions_sh_test.py b/scripts/check_spec_conditions_sh_test.py index b896c1f19..5b4498c1e 100644 --- a/scripts/check_spec_conditions_sh_test.py +++ b/scripts/check_spec_conditions_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/check-spec-conditions.sh, the gate behind `make check-spec-conditions`. The gate runs gobco, through scripts/coverage-conditions.sh, over every diff --git a/scripts/coverage-conditions.sh b/scripts/coverage-conditions.sh index d79cf94b4..eeec8d0d3 100755 --- a/scripts/coverage-conditions.sh +++ b/scripts/coverage-conditions.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Run gobco over one package, over exactly the files the go command builds. # # gobco reads a package by handing every file whose name ends in .go to diff --git a/scripts/coverage-mutants.sh b/scripts/coverage-mutants.sh index 1be44e97c..5b5b17926 100755 --- a/scripts/coverage-mutants.sh +++ b/scripts/coverage-mutants.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Run gremlins over one package and make its verdicts mean what they say. # # gremlins decides which package to run the tests in by walking up from the diff --git a/scripts/coverage_conditions_sh_test.py b/scripts/coverage_conditions_sh_test.py index 916161078..05ddc9cc9 100644 --- a/scripts/coverage_conditions_sh_test.py +++ b/scripts/coverage_conditions_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/coverage-conditions.sh, the recipe behind `make coverage-conditions`. gobco parses every file of a directory whose name ends in .go and diff --git a/scripts/coverage_mutants_sh_test.py b/scripts/coverage_mutants_sh_test.py index 2923af3bc..94d446e04 100644 --- a/scripts/coverage_mutants_sh_test.py +++ b/scripts/coverage_mutants_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/coverage-mutants.sh, the recipe behind `make coverage-mutants`. The script decides how long gremlins gives each mutant. gremlins multiplies diff --git a/scripts/e2e_docker_images_test.py b/scripts/e2e_docker_images_test.py index 3c6223f29..bb3ac77a4 100644 --- a/scripts/e2e_docker_images_test.py +++ b/scripts/e2e_docker_images_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests which image a Docker e2e run tests, and when it pulls a newer one. test/e2e/scripts/run-docker-e2e.sh used to leave the images to `docker diff --git a/scripts/e2e_fixture_addresses_test.py b/scripts/e2e_fixture_addresses_test.py index 7716864ae..cd5348513 100644 --- a/scripts/e2e_fixture_addresses_test.py +++ b/scripts/e2e_fixture_addresses_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests where the e2e Docker fixture's side services are looked for. test/e2e/scripts/run-docker-e2e.sh reads the host out of the GitLab URL and diff --git a/scripts/e2e_gitlab_exceptions_test.py b/scripts/e2e_gitlab_exceptions_test.py index aa8ed5983..8e0b4c75a 100644 --- a/scripts/e2e_gitlab_exceptions_test.py +++ b/scripts/e2e_gitlab_exceptions_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how a Docker e2e run keeps what GitLab logged as an exception. A scenario that meets a 500 learns only that GitLab raised something: the diff --git a/scripts/e2e_release_gate_test.py b/scripts/e2e_release_gate_test.py index 8ebfd17ae..b520c8f63 100644 --- a/scripts/e2e_release_gate_test.py +++ b/scripts/e2e_release_gate_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how a Docker e2e run reaches the release gate (issue 1155). A Docker run against a GitLab newer than the release the fine-grained action diff --git a/scripts/e2e_skip_gate_test.py b/scripts/e2e_skip_gate_test.py index dedf5c117..c5a64fe46 100644 --- a/scripts/e2e_skip_gate_test.py +++ b/scripts/e2e_skip_gate_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how a complete Docker e2e run reaches the skip gate. A complete run, make test-e2e-ce or make test-e2e-ee, fails on a skip nobody diff --git a/scripts/ensure-playwright-chromium.sh b/scripts/ensure-playwright-chromium.sh index 2c6bc26fa..412c399bc 100755 --- a/scripts/ensure-playwright-chromium.sh +++ b/scripts/ensure-playwright-chromium.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Make Playwright's Chromium launchable for the documentation site's build, # and touch apt only when the browser cannot start without it. # diff --git a/scripts/ensure_playwright_chromium_sh_test.py b/scripts/ensure_playwright_chromium_sh_test.py index 13f48e01a..da758f81f 100644 --- a/scripts/ensure_playwright_chromium_sh_test.py +++ b/scripts/ensure_playwright_chromium_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/ensure-playwright-chromium.sh, the Chromium step of both site builds. The site build renders its Mermaid diagrams with Playwright's Chromium, and diff --git a/scripts/fetch-release-assets.sh b/scripts/fetch-release-assets.sh index 79a2f2798..06a928f22 100755 --- a/scripts/fetch-release-assets.sh +++ b/scripts/fetch-release-assets.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # fetch-release-assets.sh — download published release assets and verify them # before anything repackages them. # diff --git a/scripts/fetch_release_assets_sh_test.py b/scripts/fetch_release_assets_sh_test.py index 3b93015d9..4083914e2 100644 --- a/scripts/fetch_release_assets_sh_test.py +++ b/scripts/fetch_release_assets_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how scripts/fetch-release-assets.sh fetches and verifies the Claude Desktop bundles. A release publishes one bundle per operating system (gitlab-mcp-server-darwin diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 39ff63e3f..3d26c474c 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -1,4 +1,7 @@ #!/usr/bin/env pwsh +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + <# .SYNOPSIS Download the gitlab-mcp-server binary for Windows from the latest GitHub diff --git a/scripts/install.sh b/scripts/install.sh index 3fd3ffe39..2476f8bd9 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,4 +1,7 @@ #!/bin/sh +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # install.sh — download the gitlab-mcp-server binary for this OS/arch from the # latest GitHub Release, verify its checksum, and install it onto PATH. # diff --git a/scripts/install_sh_test.py b/scripts/install_sh_test.py index 54f8d3605..cc4fbc3bf 100644 --- a/scripts/install_sh_test.py +++ b/scripts/install_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/install.sh against a local fixture release. The installer downloads a binary and a checksums.txt from the same GitHub diff --git a/scripts/mcpb_launch_sh_test.py b/scripts/mcpb_launch_sh_test.py index 6e93b2dde..e832c82e9 100644 --- a/scripts/mcpb_launch_sh_test.py +++ b/scripts/mcpb_launch_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests mcpb/linux/launch.sh, the Linux entry point of the Claude Desktop bundle. The bundle's linux override runs `/bin/sh ${__dirname}/server/linux/launch.sh`, diff --git a/scripts/mcpb_manifest_test.py b/scripts/mcpb_manifest_test.py index 34cac0bac..cc8c0c96f 100644 --- a/scripts/mcpb_manifest_test.py +++ b/scripts/mcpb_manifest_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests mcpb/manifest.json, the Claude Desktop bundle's manifest, for what its schema cannot say. `make check-mcpb` validates the manifest against the MCPB schema, and the diff --git a/scripts/npm_cli_js_test.py b/scripts/npm_cli_js_test.py index 3cebaa73b..ef183f18d 100644 --- a/scripts/npm_cli_js_test.py +++ b/scripts/npm_cli_js_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests npm/gitlab-mcp-server/cli.js, the launcher the npm package runs. The launcher resolves the platform package's binary and runs it with stdio diff --git a/scripts/packaging_checksums_test.py b/scripts/packaging_checksums_test.py index 1db7fff63..04adc01e2 100644 --- a/scripts/packaging_checksums_test.py +++ b/scripts/packaging_checksums_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests that the npm, PyPI and NuGet builders refuse unverified release binaries. The first two distributions used to be assembled from an unverified copy of diff --git a/scripts/publish-npm.sh b/scripts/publish-npm.sh index ce2f1857e..a97054519 100755 --- a/scripts/publish-npm.sh +++ b/scripts/publish-npm.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # publish-npm.sh assembles and publishes the npm distribution for one release: # the six per-platform binary packages first, then the launcher that depends on # them. The order is load-bearing — a consumer installing between the two diff --git a/scripts/publish-nuget.sh b/scripts/publish-nuget.sh index df533e97e..eb31af93f 100755 --- a/scripts/publish-nuget.sh +++ b/scripts/publish-nuget.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # publish-nuget.sh assembles, validates and pushes the NuGet distribution for # one release: the six runtime-identifier packages first, then the pointer # package that names them. The order is load-bearing, exactly as it is for diff --git a/scripts/publish-pypi.sh b/scripts/publish-pypi.sh index 3f72114e9..e8d600780 100755 --- a/scripts/publish-pypi.sh +++ b/scripts/publish-pypi.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # publish-pypi.sh assembles, validates and publishes the PyPI distribution for # one release: the six platform wheels scripts/build_pypi.py writes. # diff --git a/scripts/publish_npm_sh_test.py b/scripts/publish_npm_sh_test.py index 754a4aaba..e1246ef37 100644 --- a/scripts/publish_npm_sh_test.py +++ b/scripts/publish_npm_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/publish-npm.sh against a stand-in npm. The script publishes the six platform packages and then the launcher that diff --git a/scripts/publish_pypi_sh_test.py b/scripts/publish_pypi_sh_test.py index 0bf48b8c9..1d121d0df 100644 --- a/scripts/publish_pypi_sh_test.py +++ b/scripts/publish_pypi_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/publish-pypi.sh against a stand-in python3, curl, dirname and venv. Release.yml's pypi job published through pypa/gh-action-pypi-publish, whose diff --git a/scripts/release-order.sh b/scripts/release-order.sh index 6ec4235b8..9e26658f5 100755 --- a/scripts/release-order.sh +++ b/scripts/release-order.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # release-order.sh decides, for the tag a release is cut from, whether it may # be released at all and whether it is the newest release, which is what the # release workflow's preflight asks before anything publishes (issue 1323). diff --git a/scripts/release_order_sh_test.py b/scripts/release_order_sh_test.py index 609860ca9..31ff43537 100644 --- a/scripts/release_order_sh_test.py +++ b/scripts/release_order_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/release-order.sh, the release workflow's decision about latest. Every v* tag used to publish the image as :latest, mark the GitHub release diff --git a/scripts/setup-orbit-fixtures.sh b/scripts/setup-orbit-fixtures.sh index 5b04aabb1..74322bc49 100755 --- a/scripts/setup-orbit-fixtures.sh +++ b/scripts/setup-orbit-fixtures.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # setup-orbit-fixtures.sh — create reproducible Orbit knowledge-graph # fixtures in any GitLab.com group. Idempotent: re-running it on an # already-provisioned namespace is a no-op. diff --git a/scripts/setup_orbit_fixtures_sh_test.py b/scripts/setup_orbit_fixtures_sh_test.py index 49dd2c3a2..70d14aec5 100644 --- a/scripts/setup_orbit_fixtures_sh_test.py +++ b/scripts/setup_orbit_fixtures_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests what scripts/setup-orbit-fixtures.sh asks GitLab for. The script provisions the Orbit live test fixtures on GitLab.com, and every diff --git a/scripts/site_check_i18n_code_test.py b/scripts/site_check_i18n_code_test.py index ec7ab82a9..d10c8de2a 100644 --- a/scripts/site_check_i18n_code_test.py +++ b/scripts/site_check_i18n_code_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how site/scripts/check-i18n-code.mjs holds a Spanish page's code blocks to English. Issue 1110 decided that a code block on a Spanish page is the English block diff --git a/scripts/site_normalize_html_test.py b/scripts/site_normalize_html_test.py index 86b5f3e41..42386456b 100644 --- a/scripts/site_normalize_html_test.py +++ b/scripts/site_normalize_html_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests the site's post-build pass over dist/, site/scripts/normalize-html.mjs. The pass rewrites what html-validate refuses in the built pages, and since diff --git a/scripts/site_version_token_test.py b/scripts/site_version_token_test.py index d1d733bbb..5490dedf5 100644 --- a/scripts/site_version_token_test.py +++ b/scripts/site_version_token_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how the documentation site names the current release. A page writes %%VERSION%% where it means the release you install today, and diff --git a/scripts/smoke-test-image.sh b/scripts/smoke-test-image.sh index e7d785153..a45b35f70 100755 --- a/scripts/smoke-test-image.sh +++ b/scripts/smoke-test-image.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # smoke-test-image.sh — start the container image on every platform it claims # to support and check it prints the expected version, that its binary records # that version in its build information, and that it carries the licence and diff --git a/scripts/smoke_test_image_sh_test.py b/scripts/smoke_test_image_sh_test.py index c44a721fe..e0e08ff98 100644 --- a/scripts/smoke_test_image_sh_test.py +++ b/scripts/smoke_test_image_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/smoke-test-image.sh against a stand-in docker. The smoke test starts the image on each platform it claims and checks four diff --git a/scripts/sonar-scan.sh b/scripts/sonar-scan.sh index 2d5dd1533..e6473c15d 100755 --- a/scripts/sonar-scan.sh +++ b/scripts/sonar-scan.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # # sonar-scan.sh — run the SonarCloud analysis pipeline locally, mirroring CI. # diff --git a/scripts/update-homebrew-tap.sh b/scripts/update-homebrew-tap.sh index 5ffe359ff..a26c1e359 100755 --- a/scripts/update-homebrew-tap.sh +++ b/scripts/update-homebrew-tap.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Regenerate the Homebrew tap formula (jmrplens/homebrew-tap) for a release. # # Renders Formula/gitlab-mcp-server.rb from the release version and the diff --git a/scripts/update-server-json-sha.sh b/scripts/update-server-json-sha.sh index 1b45176c9..3fd08af8c 100755 --- a/scripts/update-server-json-sha.sh +++ b/scripts/update-server-json-sha.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Update server.json (MCP Registry manifest) and .plugin/plugin.json # (Open Plugins manifest) with the release version, version-pinned download # URLs, and SHA256 hashes from GoReleaser's checksums.txt. diff --git a/scripts/update_homebrew_tap_sh_test.py b/scripts/update_homebrew_tap_sh_test.py index e815dd41c..38d8c1d27 100644 --- a/scripts/update_homebrew_tap_sh_test.py +++ b/scripts/update_homebrew_tap_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/update-homebrew-tap.sh in its dry-run mode. The script renders the tap formula from a release's checksums.txt, checks it diff --git a/scripts/update_server_json_sha_sh_test.py b/scripts/update_server_json_sha_sh_test.py index f53ffc68d..9d177b379 100644 --- a/scripts/update_server_json_sha_sh_test.py +++ b/scripts/update_server_json_sha_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests how scripts/update-server-json-sha.sh declares the Claude Desktop bundles in server.json. The release stamps server.json with the bundles it built. A registry entry has diff --git a/scripts/validate-npm.mjs b/scripts/validate-npm.mjs index 2c1285a74..9cc56a671 100644 --- a/scripts/validate-npm.mjs +++ b/scripts/validate-npm.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // validate-npm.mjs checks the assembled npm distribution before it is // published. A published npm version is permanent — the registry refuses to // replace it — so a broken tarball caught here is cheap and caught after diff --git a/scripts/validate-server-json-packages.sh b/scripts/validate-server-json-packages.sh index adb44adf8..aefff3653 100755 --- a/scripts/validate-server-json-packages.sh +++ b/scripts/validate-server-json-packages.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + # Validate that every package server.json declares is actually published and is # actually what it claims to be. # diff --git a/scripts/validate_npm_test.py b/scripts/validate_npm_test.py index d579bdfa7..bf9667919 100644 --- a/scripts/validate_npm_test.py +++ b/scripts/validate_npm_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/build-npm.mjs and scripts/validate-npm.mjs on packages assembled from stand-in binaries. diff --git a/scripts/validate_nuget.py b/scripts/validate_nuget.py index ccd876e49..686efb367 100755 --- a/scripts/validate_nuget.py +++ b/scripts/validate_nuget.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Validate the NuGet packages before anything is pushed. A pushed NuGet version can be unlisted but never replaced or deleted, so diff --git a/scripts/validate_nuget_test.py b/scripts/validate_nuget_test.py index 98fb21175..30d60846f 100644 --- a/scripts/validate_nuget_test.py +++ b/scripts/validate_nuget_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/build_nuget.py, scripts/validate_nuget.py and scripts/publish-nuget.sh against packages packed from fake binaries. diff --git a/scripts/validate_pypi.py b/scripts/validate_pypi.py index 0206390a9..994a06856 100755 --- a/scripts/validate_pypi.py +++ b/scripts/validate_pypi.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Validate the PyPI wheelhouse before anything is uploaded. A published PyPI file name is burned forever (deleting a release does not diff --git a/scripts/validate_pypi_test.py b/scripts/validate_pypi_test.py index b1317be1e..29d28569b 100644 --- a/scripts/validate_pypi_test.py +++ b/scripts/validate_pypi_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests scripts/build_pypi.py and scripts/validate_pypi.py on wheels built from fake binaries. diff --git a/scripts/validate_server_json_packages_sh_test.py b/scripts/validate_server_json_packages_sh_test.py index 0e25f03c2..5e3b2afbd 100644 --- a/scripts/validate_server_json_packages_sh_test.py +++ b/scripts/validate_server_json_packages_sh_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests the Claude Desktop bundle checks of scripts/validate-server-json-packages.sh. `make check-server-json-packages` downloads every package server.json declares. diff --git a/scripts/verify_published_packages.py b/scripts/verify_published_packages.py index 02ff5e8ca..b1f731d8c 100755 --- a/scripts/verify_published_packages.py +++ b/scripts/verify_published_packages.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Compare what npm, PyPI and NuGet actually serve with the release's signed checksums. Usage: diff --git a/scripts/verify_published_packages_test.py b/scripts/verify_published_packages_test.py index 53230979f..3464e4676 100644 --- a/scripts/verify_published_packages_test.py +++ b/scripts/verify_published_packages_test.py @@ -1,4 +1,7 @@ #!/usr/bin/env python3 +# Copyright (c) 2026 José M. Requena Plens +# SPDX-License-Identifier: MIT + """Tests the retry behaviour of scripts/verify_published_packages.py. That script became a hard gate: mcp-registry and commit-manifests both wait on diff --git a/site/astro.config.mjs b/site/astro.config.mjs index bb17cd6c8..c0206c839 100644 --- a/site/astro.config.mjs +++ b/site/astro.config.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + import { execFileSync } from "node:child_process"; import { rehypeWideTables } from "./src/lib/wide-tables.mjs"; import { readRelease, remarkVersionToken } from "./src/lib/version-token.mjs"; diff --git a/site/eslint.config.mjs b/site/eslint.config.mjs index c742ab32c..a5eec50f7 100644 --- a/site/eslint.config.mjs +++ b/site/eslint.config.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + import eslintPluginAstro from "eslint-plugin-astro"; import eslintConfigPrettier from "eslint-config-prettier"; diff --git a/site/scripts/add-sitemap-lastmod.mjs b/site/scripts/add-sitemap-lastmod.mjs index 1ab733e6c..94707e11d 100644 --- a/site/scripts/add-sitemap-lastmod.mjs +++ b/site/scripts/add-sitemap-lastmod.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Injects into the generated sitemap. // // Starlight's built-in sitemap (via @astrojs/sitemap) emits entries with diff --git a/site/scripts/check-chips.mjs b/site/scripts/check-chips.mjs index c98d44dbc..22fd37b42 100644 --- a/site/scripts/check-chips.mjs +++ b/site/scripts/check-chips.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Chip parity and link audit for the page-title chips. // // Two invariants, both of the kind a reviewer cannot hold in their head diff --git a/site/scripts/check-contrast.mjs b/site/scripts/check-contrast.mjs index d59fb242a..d36e0a2de 100644 --- a/site/scripts/check-contrast.mjs +++ b/site/scripts/check-contrast.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Contrast audit for the site palette. // // Parses src/styles/theme.css, resolves the light and the dark theme exactly as diff --git a/site/scripts/check-facts.mjs b/site/scripts/check-facts.mjs index 24f611f30..677c7b28e 100644 --- a/site/scripts/check-facts.mjs +++ b/site/scripts/check-facts.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Structural audit of the spec sheets (src/components/docs/Facts.astro). // // Three jobs, and the first two gate. diff --git a/site/scripts/check-headings-labels.mjs b/site/scripts/check-headings-labels.mjs index d1ef36339..aba5a9677 100644 --- a/site/scripts/check-headings-labels.mjs +++ b/site/scripts/check-headings-labels.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Guards heading structure and accessible names across the built site. // // html-validate and htmlhint check markup validity; neither checks that every diff --git a/site/scripts/check-i18n-code.mjs b/site/scripts/check-i18n-code.mjs index e1d259c2f..f8c534d6d 100644 --- a/site/scripts/check-i18n-code.mjs +++ b/site/scripts/check-i18n-code.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Holds every code block of a Spanish page to its English twin. // // A code block is something a reader copies and runs, pastes into a client diff --git a/site/scripts/check-i18n-parity.mjs b/site/scripts/check-i18n-parity.mjs index de5593dcb..109ff503a 100644 --- a/site/scripts/check-i18n-parity.mjs +++ b/site/scripts/check-i18n-parity.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Validates EN/ES translation parity: every English page under // src/content/docs/ (outside es/) must have a Spanish counterpart at the same // relative path under src/content/docs/es/, and vice-versa. Exits non-zero on diff --git a/site/scripts/check-version-token.mjs b/site/scripts/check-version-token.mjs index d77633d35..cfaf7754d 100644 --- a/site/scripts/check-version-token.mjs +++ b/site/scripts/check-version-token.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Holds the documentation to the one way it names the current release. // // A page writes %%VERSION%% where it means the release you install today, and diff --git a/site/scripts/gen-llms.mjs b/site/scripts/gen-llms.mjs index c72e91553..1da867a83 100644 --- a/site/scripts/gen-llms.mjs +++ b/site/scripts/gen-llms.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Builds what the documentation domain serves under /llms.txt, and republishes // the repository's machine-readable references alongside it. // diff --git a/site/scripts/normalize-html.mjs b/site/scripts/normalize-html.mjs index e7db5f2c4..2f72a1a62 100644 --- a/site/scripts/normalize-html.mjs +++ b/site/scripts/normalize-html.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Post-build HTML normalisation. // // Three fixes, all applied in one pass over dist/**/*.html: diff --git a/site/scripts/version-literals.mjs b/site/scripts/version-literals.mjs index aafdb2bb9..60aa074b5 100644 --- a/site/scripts/version-literals.mjs +++ b/site/scripts/version-literals.mjs @@ -1,3 +1,6 @@ +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // The release numbers a page keeps literal in a shape that usually means "the // release you install today", each with the reason it is not the current one. // diff --git a/site/src/components/ChartPair.astro b/site/src/components/ChartPair.astro index 711e02ef8..80439356e 100644 --- a/site/src/components/ChartPair.astro +++ b/site/src/components/ChartPair.astro @@ -1,4 +1,7 @@ --- +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + /** * One benchmark figure, in the reader's theme. * diff --git a/site/src/components/FAQ.astro b/site/src/components/FAQ.astro index 8fd01b3c3..181238542 100644 --- a/site/src/components/FAQ.astro +++ b/site/src/components/FAQ.astro @@ -1,4 +1,7 @@ --- +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Renders a page's visible "Frequently asked questions" section from the same // `faq:` frontmatter that feeds the FAQPage JSON-LD in Head.astro. // diff --git a/site/src/components/Footer.astro b/site/src/components/Footer.astro index 00865b9ef..888aa7b52 100644 --- a/site/src/components/Footer.astro +++ b/site/src/components/Footer.astro @@ -1,4 +1,7 @@ --- +// Copyright (c) 2026 José M. Requena Plens +// SPDX-License-Identifier: MIT + // Custom Starlight