From 8662a9f1d621d7aa567581dc0c9153ad4160037e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20BIDON?= Date: Mon, 4 May 2026 21:33:15 +0200 Subject: [PATCH] doc: aligned docs with org-level docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Frédéric BIDON --- .github/CONTRIBUTING.md | 251 ---------------------------------------- .github/DCO.md | 40 ------- .gitignore | 1 + README.md | 23 ++-- docs/MAINTAINERS.md | 185 ----------------------------- docs/STYLE.md | 117 ------------------- go.work.sum | 119 ------------------- 7 files changed, 10 insertions(+), 726 deletions(-) delete mode 100644 .github/CONTRIBUTING.md delete mode 100644 .github/DCO.md delete mode 100644 docs/MAINTAINERS.md delete mode 100644 docs/STYLE.md delete mode 100644 go.work.sum diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index bf4474d4..00000000 --- a/.github/CONTRIBUTING.md +++ /dev/null @@ -1,251 +0,0 @@ -You'll find here general guidelines to contribute to this project. -They mostly correspond to standard practices for open source repositories. - -We have tried to keep things as simple as possible. - -> [!NOTE] -> If you're an experienced go developer on github, then you should just feel at home with us -> and you may well skip the rest of this document. -> -> You'll essentially apply the usual guidelines for a go library project on github. - -These guidelines are common to all libraries published on github by the `go-openapi` organization, -so you'll feel at home with any of our projects. - -You'll find more detailed (or repo-specific) instructions in the [maintainer's docs][maintainers-doc]. - -[maintainers-doc]: ../docs/MAINTAINERS.md - -## How can I contribute - -There are many ways in which you can contribute, not just code. Here are a few ideas: - -- Reporting issues or bugs -- Suggesting improvements -- Documentation -- Art work that makes the project look great -- Code - - proposing bug fixes and new features that are within the main project scope - - improving test coverage - - addressing code quality issues - -## Questions & issues - -### Asking a question - -You may inquire anything about this library by reporting a "Question" issue on github. - -You may also join our discord server where you may discuss issues or requests. - -[![Discord Server][discord-badge]][discord-url] - -[discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue -[discord-url]: https://discord.gg/FfnFYaC3k5 - -### Reporting issues - -Reporting a problem with our libraries _is_ a valuable contribution. -You can do this on the github issues page of this repository. - -Please be as specific as possible when describing your issue. - -Whenever relevant, please provide information about your environment (go version, OS). - -Adding a code snippet to reproduce the issue is great, and a big time saver for maintainers. - -### Triaging issues - -You can help triage issues which may include: - -* reproducing bug reports -* asking for important information, such as version numbers or reproduction instructions -* answering questions and sharing your insight in issue comments - -## Code contributions - -### Pull requests are always welcome - -We are always thrilled to receive pull requests, and we do our best to -process them as fast as possible. - -Not sure if that typo is worth a pull request? Do it! We will appreciate it. - -If your pull request is not accepted on the first try, don't be discouraged! -If there's a problem with the implementation, hopefully you've received feedback on what to improve. - -If you have a lot of ideas or a lot of issues to solve, try to refrain a bit and post focused -pull requests. -Think that they must be reviewed by a maintainer and it is easy to lose track of things on big PRs. - -We're trying very hard to keep the go-openapi packages lean and focused. - -Together, these packages constitute a toolkit for go developers: -it won't do everything for everybody out of the box, -but everybody can use it to do just about everything related to OpenAPI. - -This means that we might decide against incorporating a new feature. - -However, there might be a way to implement that feature *on top of* our libraries. - -### Environment - -You just need a `go` compiler to be installed. No special tools are needed to work with our libraries. - -The minimal go compiler version required is always the old stable (latest minor go version - 1). - -Our libraries are designed and tested to work on `Linux`, `MacOS` and `Windows`. - -If you're used to work with `go` you should already have everything in place. - -Although not required, you'll be certainly more productive with a local installation of `golangci-lint`, -the meta-linter our CI uses. - -If you don't have it, you may install it like so: - -```sh -go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest -``` - -### Conventions - -#### Git flow - -Fork the repo and make changes to your fork in a feature branch. - -To submit a pull request, push your branch to your fork (e.g. `upstream` remote): -github will propose to open a pull request on the original repository. - -Typically you'd follow some common naming conventions: - -- if it's a bug fixing branch, name it `fix/XXX-something` where XXX is the number of the - issue on github -- if it's a feature branch, create an enhancement issue to announce your - intentions, and name it `feature/XXX-something` where XXX is the number of the issue. - -NOTE: we don't enforce naming conventions on branches: it's your fork after all. - -#### Tests - -Submit unit tests for your changes. - -Go has a great built-in test framework ; use it! - -Take a look at existing tests for inspiration, and run the full test suite on your branch -before submitting a pull request. - -Our CI measures test coverage and the test coverage of every patch. - -Although not a blocking step - because there are so many special cases - -this is an indicator that maintainers consider when approving a PR. -Please try your best to cover at least 80% of your patch. - -#### Code style - -You may read our stance on code style [there](../docs/STYLE.md). - -#### Documentation - -Don't forget to update the documentation when creating or modifying a feature. - -Most documentation for this library is directly found in code as comments for godoc. - -The documentation for this go-openapi package is published on [the public go docs site][go-doc]. - ---- - -Check your documentation changes for clarity, concision, and correctness. - -If you want to assess the rendering of your changes when published to `pkg.go.dev`, you may -want to install the `pkgsite` tool proposed by `golang.org`. - -```sh -go install golang.org/x/pkgsite/cmd/pkgsite@latest -``` - -Then run on the repository folder: - -```sh -pkgsite . -``` - -This will run a godoc server locally where you may see the documentation generated from your local repository. - -[go-doc]: https://pkg.go.dev/github.com/go-openapi/runtime - -#### Commit messages - -Pull requests descriptions should be as clear as possible and include a -reference to all the issues that they address. - -Pull requests must not contain commits from other users or branches. - -Commit messages are not required to follow the "conventional commit" rule, but it's certainly a good -thing to follow that convention (e.g. "fix: fixed panic in XYZ", "ci: did this", "feat: did that" ...). - -The title in your commit message is used directly to produce our release notes: try to keep them neat. - -The commit message body should detail your changes. - -If an issue should be closed by a commit, please add this reference in the commit body: - -``` -* fixes #{issue number} -``` - -#### Code review - -Code review comments may be added to your pull request. - -Discuss, then make the suggested modifications and push additional commits to your feature branch. - -Be sure to post a comment after pushing. The new commits will show up in the pull -request automatically, but the reviewers will not be notified unless you comment. - -Before the pull request is merged, -**make sure that you've squashed your commits into logical units of work** -using `git rebase -i` and `git push -f`. - -After every commit the test suite should be passing. - -Include documentation changes in the same commit so that a revert would remove all traces of the feature or fix. - -#### Sign your work - -Software is developed by real people. - -The sign-off is a simple line at the end of your commit message, -which certifies that you wrote it or otherwise have the right to -pass it on as an open-source patch. - -We require the simple DCO below with an email signing your commit. -PGP-signed commit are greatly appreciated but not required. - -The rules are pretty simple: - -- read our [DCO][dco-doc] (from [developercertificate.org][dco-source]) -- if you agree with these terms, then you just add a line to every git commit message - -``` -Signed-off-by: Joe Smith -``` - -using your real name (sorry, no pseudonyms or anonymous contributions.) - -You can add the sign-off when creating the git commit via `git commit -s`. - -[dco-doc]: ./DCO.md -[dco-source]: https://developercertificate.org - -## Code contributions by AI agents - -Our agentic friends are welcome to contribute! - -We only have a few demands to keep-up with human maintainers. - -1. Issues and PRs written or posted by agents should always mention the original (human) poster for reference -2. We don't accept PRs attributed to agents. We don't want commits signed like "author: @claude.code". - Agents or bots may coauthor commits, though. -3. Security vulnerability reports by agents should always be reported privately and mention the original (human) poster - (see also [Security Policy][security-doc]). - -[security-doc]: ../SECURITY.md diff --git a/.github/DCO.md b/.github/DCO.md deleted file mode 100644 index 78a2d64f..00000000 --- a/.github/DCO.md +++ /dev/null @@ -1,40 +0,0 @@ -# Developer's Certificate of Origin - -``` -Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. -660 York Street, Suite 102, -San Francisco, CA 94110 USA - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. -``` diff --git a/.gitignore b/.gitignore index d8f4186f..bbdffea7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .idea .env .mcp.json +go.work.sum diff --git a/README.md b/README.md index fa749062..befd3d64 100644 --- a/README.md +++ b/README.md @@ -16,15 +16,9 @@ A runtime for go OpenAPI toolkit. The runtime component for use in code generation or as untyped usage. + ## Status @@ -64,9 +58,9 @@ on top of which it has been built. * [FAQ](docs/FAQ.md) * [All-time contributors](./CONTRIBUTORS.md) -* [Contributing guidelines](.github/CONTRIBUTING.md) -* [Maintainers documentation](docs/MAINTAINERS.md) -* [Code style](docs/STYLE.md) +* [Contributing guidelines][contributing-doc-site] +* [Maintainers documentation][maintainers-doc-site] +* [Code style][style-doc-site] ## Cutting a new release @@ -97,9 +91,6 @@ Maintainers can cut a new release by either: [godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/runtime [godoc-url]: http://pkg.go.dev/github.com/go-openapi/runtime -[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png -[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM -[slack-url]: https://goswagger.slack.com/archives/C04R30YMU [discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue [discord-url]: https://discord.gg/FfnFYaC3k5 @@ -111,3 +102,7 @@ Maintainers can cut a new release by either: [goversion-url]: https://github.com/go-openapi/runtime/blob/master/go.mod [top-badge]: https://img.shields.io/github/languages/top/go-openapi/runtime [commits-badge]: https://img.shields.io/github/commits-since/go-openapi/runtime/latest + +[contributing-doc-site]: https://go-openapi.github.io/doc-site/contributing/contributing/index.html +[maintainers-doc-site]: https://go-openapi.github.io/doc-site/maintainers/index.html +[style-doc-site]: https://go-openapi.github.io/doc-site/contributing/style/index.html diff --git a/docs/MAINTAINERS.md b/docs/MAINTAINERS.md deleted file mode 100644 index 6ae59801..00000000 --- a/docs/MAINTAINERS.md +++ /dev/null @@ -1,185 +0,0 @@ -> [!NOTE] -> Comprehensive guide for maintainers covering repository structure, CI/CD workflows, release procedures, and development practices. -> Essential reading for anyone contributing to or maintaining this project. - -## Repo structure - -This project is organized as a monorepo with multiple go modules. - -## Repo configuration - -* Default branch: master -* Protected branches: master -* Branch protection rules: - * require pull requests and approval - * required status checks: - * DCO (simple email sign-off) - * Lint - * All tests completed -* Auto-merge enabled (used for dependabot updates and other auto-merged PR's, e.g. contributors update) - -## Continuous Integration - -### Code Quality checks - -* meta-linter: [golangci-lint][golangci-url] -* linter config: [`.golangci.yml`][linter-config] (see our [posture][style-doc] on linters) -* Code quality assessment: [CodeFactor][codefactor-url] -* Code quality badges - * [go report card][gocard-url] - * [CodeFactor][codefactor-url] - -> **NOTES** -> -> codefactor inherits roles from github. There is no need to create a dedicated account. -> -> The codefactor app is installed at the organization level (`github.com/go-openapi`). -> -> There is no special token to setup in github for CI usage. - -### Testing - -* Test reports - * Uploaded to codecov: -* Test coverage reports - * Uploaded to codecov: - -* Fuzz testing - * Fuzz tests are handled separately by CI and may reuse a cached version of the fuzzing corpus. - At this moment, cache may not be shared between feature branches or feature branch and master. - The minimized corpus produced on failure is uploaded as an artifact and should be added manually - to `testdata/fuzz/...`. - -Coverage threshold status is informative and not blocking. -This is because the thresholds are difficult to tune and codecov oftentimes reports false negatives -or may fail to upload coverage. - -All tests across `go-openapi` use our fork of `stretchr/runtime` (this repo): `github.com/go-openapi/runtime`. -This allows for minimal test dependencies. - -> **NOTES** -> -> codecov inherits roles from github. There is no need to create a dedicated account. -> However, there is only 1 maintainer allowed to be the admin of the organization on codecov -> with their free plan. -> -> The codecov app is installed at the organization level (`github.com/go-openapi`). -> -> There is no special token to setup in github for CI usage. -> A organization-level token used to upload coverage and test reports is managed at codecov: -> no setup is required on github. - -### Automated updates - -* dependabot - * configuration: [`dependabot.yaml`][dependabot-config] - - Principle: - - * codecov applies updates and security patches to the github-actions and golang ecosystems. - * all updates from "trusted" dependencies (github actions, golang.org packages, go-openapi packages - are auto-merged if they successfully pass CI. - -* go version updates - - Principle: - - * we support the 2 latest minor versions of the go compiler (`stable`, `oldstable`) - * `go.mod` should be updated (manually) whenever there is a new go minor release - (e.g. every 6 months). - - > This means that our projects always have a 6 months lag to enforce new features from the go compiler. - > - > However, new features of go may be used with a "go:build" tag: this allows users of the newer - > version to benefit the new feature while users still running with `oldstable` use another version - > that still builds. - -* contributors - * a [`CONTRIBUTORS.md`][contributors-doc] file is updated weekly, with all-time contributors to the repository - * the `github-actions[bot]` posts a pull request to do that automatically - * at this moment, this pull request is not auto-approved/auto-merged (bot cannot approve its own PRs) - -### Vulnerability scanners - -There are 3 complementary scanners - obviously, there is some overlap, but each has a different focus. - -* GitHub `CodeQL` -* `trivy` -* `govulnscan` - -None of these tools require an additional account or token. - -Github CodeQL configuration is set to "Advanced", so we may collect a CI status for this check (e.g. for badges). - -Scanners run on every commit to master and at least once a week. - -Reports are centralized in github security reports for code scanning tools. - -## Releases - -**For single module repos:** - -A bump release workflow can be triggered from the github actions UI to cut a release with a few clicks. - -The release process is minimalist: - -* push a semver tag (i.e v{major}.{minor}.{patch}) to the master branch. -* the CI handles this to generate a github release with release notes - -* release notes generator: git-cliff -* configuration: the `.cliff.toml` is defined as a share configuration on - remote repo [`ci-workflows/.cliff.toml`][remote-cliff-config] - -Commits from maintainers are preferably PGP-signed. - -Tags are preferably PGP-signed. - -We want our releases to show as "verified" on github. - -The tag message introduces the release notes (e.g. a summary of this release). - -The release notes generator does not assume that commits are necessarily "conventional commits". - -**For mono-repos with multiple modules:** - -The release process is slightly different because we need to update cross-module dependencies -before pushing a tag. - -A bump release workflow (mono-repo) can be triggered from the github actions UI to cut a release with a few clicks. - -It works with the same input as the one for single module repos, and first creates a PR (auto-merged) -that updates the different go.mod files _before_ pushing the desired git tag. - -Commits and tags pushed by the workflow bot are PGP-signed ("go-openapi[bot]"). - -## Other files - -Standard documentation: - -* [CONTRIBUTING.md][contributing-doc] guidelines -* [DCO.md][dco-doc] terms for first-time contributors to read -* [CODE_OF_CONDUCT.md][coc-doc] -* [SECURITY.md][security-doc] policy: how to report vulnerabilities privately -* [LICENSE][license-doc] terms -* [NOTICE][notice-doc] on supplementary license terms (original authors, copied code etc) - -Reference documentation (released): - -* [pkg.go.dev (fka godoc)][godoc-url] - - -[linter-config]: https://github.com/go-openapi/runtime/blob/master/.golangci.yml -[remote-cliff-config]: https://github.com/go-openapi/ci-workflows/blob/master/.cliff.toml -[dependabot-config]: https://github.com/go-openapi/runtime/blob/master/.github/dependabot.yaml -[gocard-url]: https://goreportcard.com/report/github.com/go-openapi/runtime -[codefactor-url]: https://www.codefactor.io/repository/github/go-openapi/runtime -[golangci-url]: https://golangci-lint.run/ -[godoc-url]: https://pkg.go.dev/github.com/go-openapi/runtime -[contributors-doc]: ../CONTRIBUTORS.md -[contributing-doc]: ../.github/CONTRIBUTING.md -[dco-doc]: ../.github/DCO.md -[style-doc]: STYLE.md -[coc-doc]: ../CODE_OF_CONDUCT.md -[security-doc]: ../SECURITY.md -[license-doc]: ../LICENSE -[notice-doc]: ../NOTICE diff --git a/docs/STYLE.md b/docs/STYLE.md deleted file mode 100644 index e32e74a3..00000000 --- a/docs/STYLE.md +++ /dev/null @@ -1,117 +0,0 @@ -# Coding style at `go-openapi` - -> **TL;DR** -> -> Let's be honest: at `go-openapi` and `go-swagger` we've never been super-strict on code style and linting. -> -> But perhaps now (2025) is the time to adopt a different stance. - -Even though our repos have been early adopters of `golangci-lint` years ago -(we used some other metalinter before), our decade-old codebase is only realigned to new rules from time to time. - -Now go-openapi and go-swagger together make up a really large codebase, which is taxing to maintain and keep afloat. - -Code quality and the harmonization of rules have thus become things that we need now. - -## Meta-linter - -Universally formatted go code promotes ease of writing, reading, and maintenance. - -You should run `golangci-lint run` before committing your changes. - -Many editors have plugins that do that automatically. - -> We use the `golangci-lint` meta-linter. The configuration lies in -> [`.golangci.yml`][golangci-yml]. -> You may read [the linter's configuration reference][golangci-doc] for additional reference. - -This configuration is essentially the same across all `go-openapi` projects. - -Some projects may require slightly different settings. - -## Linting rules posture - -Thanks to go's original design, we developers don't have to waste much time arguing about code figures of style. - -However, the number of available linters has been growing to the point that we need to pick a choice. - -### Our approach: evaluate, don't consume blindly - -As early adopters of `golangci-lint` (and its predecessors), we've watched linting orthodoxy -shift back and forth over the years. Patterns that were idiomatic one year get flagged the next; -rules that seemed reasonable in isolation produce noise at scale. Conversations with maintainers -of other large Go projects confirmed what our own experience taught us: -**the default linter set is a starting point, not a prescription**. - -Our stance is deliberate: - -- **Start from `default: all`**, then consciously disable what doesn't earn its keep. - This forces us to evaluate every linter and articulate why we reject it — the disabled list - is a design rationale, not technical debt. -- **Tune thresholds rather than disable** when a linter's principle is sound but its defaults - are too aggressive for a mature codebase. -- **Require justification for every `//nolint`** directive. Each one must carry an inline comment - explaining why it's there. -- **Prefer disabling a linter over scattering `//nolint`** across the codebase. If a linter - produces systematic false positives on patterns we use intentionally, the linter goes — - not our code. -- **Keep the configuration consistent** across all `go-openapi` repositories. Per-repo - divergence is a maintenance tax we don't want to pay. - -We enable all linters published by `golangci-lint` by default, then disable a few ones. - -Here are the reasons why they are disabled (update: Feb. 2026, `golangci-lint v2.8.0`). - -```yaml - disable: - - depguard # we don't want to configure rules to constrain import. That's the reviewer's job - - exhaustruct # we don't want to configure regexp's to check type name. That's the reviewer's job - - funlen # we accept cognitive complexity as a meaningful metric, but function length is relevant - - godox # we don't see any value in forbidding TODO's etc in code - - nlreturn # we usually apply this "blank line" rule to make code less compact. We just don't want to enforce it - - nonamedreturns # we don't see any valid reason why we couldn't used named returns - - noinlineerr # there is no value added forbidding inlined err - - paralleltest # we like parallel tests. We just don't want them to be enforced everywhere - - recvcheck # we like the idea of having pointer and non-pointer receivers - - testpackage # we like test packages. We just don't want them to be enforced everywhere - - thelper # too many false positives on test case factories returning func(*testing.T). See note below - - tparallel # see paralleltest - - varnamelen # sometimes, we like short variables. The linter doesn't catch cases when a short name is good - - whitespace # no added value - - wrapcheck # although there is some sense with this linter's general idea, it produces too much noise - - wsl # no added value. Noise - - wsl_v5 # no added value. Noise -``` - -As you may see, we agree with the objective of most linters, at least the principle they are supposed to enforce. -But all linters do not support fine-grained tuning to tolerate some cases and not some others. - -**Relaxed linter settings** - -When this is possible, we enable linters with relaxed constraints. - -```yaml - settings: - dupl: - threshold: 200 # in a older code base such as ours, we have to be tolerant with a little redundancy - # Hopefully, we'll be able to gradually get rid of those. - goconst: - min-len: 2 - min-occurrences: 3 - cyclop: - max-complexity: 20 # the default is too low for most of our functions. 20 is a nicer trade-off - gocyclo: - min-complexity: 20 - exhaustive: # when using default in switch, this should be good enough - default-signifies-exhaustive: true - default-case-required: true - lll: - line-length: 180 # we just want to avoid extremely long lines. - # It is no big deal if a line or two don't fit on your terminal. -``` - -Final note: since we have switched to a forked version of `stretchr/testify`, -we no longer benefit from the great `testifylint` linter for tests. - -[golangci-yml]: https://github.com/go-openapi/runtime/blob/master/.golangci.yml -[golangci-doc]: https://golangci-lint.run/docs/linters/configuration/ diff --git a/go.work.sum b/go.work.sum deleted file mode 100644 index eaf8fddf..00000000 --- a/go.work.sum +++ /dev/null @@ -1,119 +0,0 @@ -github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/go-openapi/errors v0.22.2/go.mod h1:+n/5UdIqdVnLIJ6Q9Se8HNGUXYaY6CN8ImWzfi/Gzp0= -github.com/go-openapi/jsonpointer v0.22.0/go.mod h1:xt3jV88UtExdIkkL7NloURjRQjbeUgcxFblMjq2iaiU= -github.com/go-openapi/jsonreference v0.21.1/go.mod h1:PWs8rO4xxTUqKGu+lEvvCxD5k2X7QYkKAepJyCmSTT8= -github.com/go-openapi/swag v0.24.1/go.mod h1:sm8I3lCPlspsBBwUm1t5oZeWZS0s7m/A+Psg0ooRU0A= -github.com/go-openapi/swag/cmdutils v0.24.0/go.mod h1:uxib2FAeQMByyHomTlsP8h1TtPd54Msu2ZDU/H5Vuf8= -github.com/go-openapi/swag/conv v0.24.0/go.mod h1:jbn140mZd7EW2g8a8Y5bwm8/Wy1slLySQQ0ND6DPc2c= -github.com/go-openapi/swag/fileutils v0.24.0/go.mod h1:3SCrCSBHyP1/N+3oErQ1gP+OX1GV2QYFSnrTbzwli90= -github.com/go-openapi/swag/jsonname v0.24.0/go.mod h1:GXqrPzGJe611P7LG4QB9JKPtUZ7flE4DOVechNaDd7Q= -github.com/go-openapi/swag/jsonutils v0.24.0/go.mod h1:vBowZtF5Z4DDApIoxcIVfR8v0l9oq5PpYRUuteVu6f0= -github.com/go-openapi/swag/loading v0.24.0/go.mod h1:gShCN4woKZYIxPxbfbyHgjXAhO61m88tmjy0lp/LkJk= -github.com/go-openapi/swag/mangling v0.24.0/go.mod h1:Jm5Go9LHkycsz0wfoaBDkdc4CkpuSnIEf62brzyCbhc= -github.com/go-openapi/swag/netutils v0.24.0/go.mod h1:WRgiHcYTnx+IqfMCtu0hy9oOaPR0HnPbmArSRN1SkZM= -github.com/go-openapi/swag/stringutils v0.24.0/go.mod h1:5nUXB4xA0kw2df5PRipZDslPJgJut+NjL7D25zPZ/4w= -github.com/go-openapi/swag/typeutils v0.24.0/go.mod h1:q8C3Kmk/vh2VhpCLaoR2MVWOGP8y7Jc8l82qCTd1DYI= -github.com/go-openapi/swag/yamlutils v0.24.0/go.mod h1:DpKv5aYuaGm/sULePoeiG8uwMpZSfReo1HR3Ik0yaG8= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.0/go.mod h1:14iV8jyyQlinc9StD7w1xVPW3CO3q1Gj04Jy//Kw4VM= -github.com/go-openapi/testify/v2 v2.4.0/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30 h1:BHT1/DKsYDGkUgQ2jmMaozVcdk+sVfz0+1ZJq4zkWgw= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= -github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mongodb.org/mongo-driver v1.17.6/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= -golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= -golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= -golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= -golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= -golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= -golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= -golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= -golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= -golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= -golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= -golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= -golang.org/x/telemetry v0.0.0-20250807160809-1a19826ec488/go.mod h1:fGb/2+tgXXjhjHsTNdVEEMZNWA0quBnfrO+AfoDSAKw= -golang.org/x/telemetry v0.0.0-20260109210033-bd525da824e2/go.mod h1:b7fPSJ0pKZ3ccUh8gnTONJxhn3c/PS6tyzQvyqw4iA8= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= -golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= -golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= -golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= -golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= -golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= -golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= -golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= -golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= -golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= -golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=