Full Code of tektoncd/hub for AI

main f50dd6be253d cached
8059 files
68.1 MB
18.3M tokens
192407 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (73,319K chars total). Download the full file to get everything.
Repository: tektoncd/hub
Branch: main
Commit: f50dd6be253d
Files: 8059
Total size: 68.1 MB

Directory structure:
gitextract_9bfs5kdj/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.md
│   │   ├── feature-request.md
│   │   └── free-form.md
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── chatops_retest.yaml
│       ├── cherry-pick-command.yaml
│       ├── ci.yaml
│       ├── goa-gen-dependabot.yml
│       ├── golangci-lint.yaml
│       └── slash.yaml
├── .gitignore
├── .golangci.yml
├── .yamllint
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── OWNERS
├── README.md
├── ROADMAP.md
├── api/
│   ├── .gitignore
│   ├── cmd/
│   │   ├── api/
│   │   │   ├── http.go
│   │   │   └── main.go
│   │   ├── api-cli/
│   │   │   ├── http.go
│   │   │   └── main.go
│   │   ├── db/
│   │   │   └── main.go
│   │   └── tkn-hub/
│   │       └── main.go
│   ├── design/
│   │   ├── admin.go
│   │   ├── api.go
│   │   ├── catalog.go
│   │   ├── category.go
│   │   ├── rating.go
│   │   ├── resource.go
│   │   ├── status.go
│   │   ├── swagger.go
│   │   └── types/
│   │       └── type.go
│   ├── gen/
│   │   ├── admin/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   ├── catalog/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   ├── service.go
│   │   │   └── views/
│   │   │       └── view.go
│   │   ├── category/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   ├── http/
│   │   │   ├── admin/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── catalog/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── category/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── cli/
│   │   │   │   └── hub/
│   │   │   │       └── cli.go
│   │   │   ├── openapi.json
│   │   │   ├── openapi.yaml
│   │   │   ├── openapi3.json
│   │   │   ├── openapi3.yaml
│   │   │   ├── rating/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── resource/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── status/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   └── swagger/
│   │   │       ├── client/
│   │   │       │   ├── client.go
│   │   │       │   ├── encode_decode.go
│   │   │       │   ├── paths.go
│   │   │       │   └── types.go
│   │   │       └── server/
│   │   │           ├── paths.go
│   │   │           ├── server.go
│   │   │           └── types.go
│   │   ├── rating/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   ├── resource/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   ├── service.go
│   │   │   └── views/
│   │   │       └── view.go
│   │   ├── status/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   └── swagger/
│   │       ├── client.go
│   │       ├── endpoints.go
│   │       └── service.go
│   ├── pkg/
│   │   ├── app/
│   │   │   ├── api_logger.go
│   │   │   ├── app.go
│   │   │   ├── app_test.go
│   │   │   ├── data.go
│   │   │   ├── gorm_logger.go
│   │   │   └── service.go
│   │   ├── auth/
│   │   │   ├── app/
│   │   │   │   └── app.go
│   │   │   ├── base.go
│   │   │   ├── provider/
│   │   │   │   ├── bitbucket.go
│   │   │   │   ├── github.go
│   │   │   │   └── gitlab.go
│   │   │   └── service/
│   │   │       ├── auth.go
│   │   │       ├── auth_test.go
│   │   │       └── service.go
│   │   ├── cli/
│   │   │   ├── app/
│   │   │   │   └── app.go
│   │   │   ├── cmd/
│   │   │   │   ├── check_upgrade/
│   │   │   │   │   ├── check_upgrade_test.go
│   │   │   │   │   ├── check_uprade.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestNoUpdateAvailable.golden
│   │   │   │   │       ├── TestNoUpdateAvailable_TaskNotInstalledViaHubCLI.golden
│   │   │   │   │       ├── TestUpdateAvailable.golden
│   │   │   │   │       ├── TestUpdateAvailable_PipelinesUnknown.golden
│   │   │   │   │       ├── TestUpdateAvailable_WithSkippedTasks.golden
│   │   │   │   │       ├── TestUpdateAvailable_WithSkippedTasks_PipelinesUnknown.golden
│   │   │   │   │       ├── TestV1NoUpdateAvailable.golden
│   │   │   │   │       ├── TestV1NoUpdateAvailable_TaskNotInstalledViaHubCLI.golden
│   │   │   │   │       ├── TestV1UpdateAvailable.golden
│   │   │   │   │       ├── TestV1UpdateAvailable_PipelinesUnknown.golden
│   │   │   │   │       ├── TestV1UpdateAvailable_WithSkippedTasks.golden
│   │   │   │   │       └── TestV1UpdateAvailable_WithSkippedTasks_PipelinesUnknown.golden
│   │   │   │   ├── downgrade/
│   │   │   │   │   ├── downgrade.go
│   │   │   │   │   ├── downgrade_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── foo-v0.2.yaml
│   │   │   │   │       └── foo-v0.3.yaml
│   │   │   │   ├── get/
│   │   │   │   │   ├── get.go
│   │   │   │   │   ├── get_test.go
│   │   │   │   │   ├── task.go
│   │   │   │   │   ├── task_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestGetResource_WithNewVersion.golden
│   │   │   │   │       ├── TestGetResource_WithOldVersion.golden
│   │   │   │   │       ├── TestGetTask_WithNewVersion.golden
│   │   │   │   │       ├── foo-v0.1.yaml
│   │   │   │   │       ├── foo-v0.3.yaml
│   │   │   │   │       ├── pipeline-apple-v0.1.yaml
│   │   │   │   │       ├── pipeline-mango-v0.2.yaml
│   │   │   │   │       └── pipeline-mango-v0.3.yaml
│   │   │   │   ├── info/
│   │   │   │   │   ├── info.go
│   │   │   │   │   ├── info_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestInfoTask_WithLatestVersion.golden
│   │   │   │   │       ├── TestInfoTask_WithOldVersion.golden
│   │   │   │   │       └── TestPipelineTask_MultiLineDescription.golden
│   │   │   │   ├── install/
│   │   │   │   │   ├── install.go
│   │   │   │   │   ├── install_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── foo-v0.2.yaml
│   │   │   │   │       └── foo-v0.3.yaml
│   │   │   │   ├── reinstall/
│   │   │   │   │   ├── reinstall.go
│   │   │   │   │   ├── reinstall_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       └── foo-v0.3.yaml
│   │   │   │   ├── root.go
│   │   │   │   ├── search/
│   │   │   │   │   ├── search.go
│   │   │   │   │   ├── search_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestSearch_JSONFormat.golden
│   │   │   │   │       └── TestSearch_TableFormat.golden
│   │   │   │   └── upgrade/
│   │   │   │       ├── testdata/
│   │   │   │       │   └── foo-v0.3.yaml
│   │   │   │       ├── upgrade.go
│   │   │   │       └── upgrade_test.go
│   │   │   ├── flag/
│   │   │   │   ├── validate.go
│   │   │   │   └── validate_test.go
│   │   │   ├── formatter/
│   │   │   │   ├── field.go
│   │   │   │   ├── field_test.go
│   │   │   │   ├── json.go
│   │   │   │   └── json_test.go
│   │   │   ├── gvr/
│   │   │   │   └── gvr.go
│   │   │   ├── hub/
│   │   │   │   ├── get_catalog.go
│   │   │   │   ├── get_catalog_test.go
│   │   │   │   ├── get_resource.go
│   │   │   │   ├── get_resource_test.go
│   │   │   │   ├── get_resource_version.go
│   │   │   │   ├── get_resource_version_test.go
│   │   │   │   ├── hub.go
│   │   │   │   ├── hub_test.go
│   │   │   │   ├── search.go
│   │   │   │   └── search_test.go
│   │   │   ├── installer/
│   │   │   │   ├── action.go
│   │   │   │   ├── action_test.go
│   │   │   │   ├── config.go
│   │   │   │   └── kube_action.go
│   │   │   ├── kube/
│   │   │   │   └── client.go
│   │   │   ├── options/
│   │   │   │   ├── select_options.go
│   │   │   │   └── select_options_test.go
│   │   │   ├── printer/
│   │   │   │   └── print.go
│   │   │   ├── test/
│   │   │   │   ├── builder/
│   │   │   │   │   ├── apiresource.go
│   │   │   │   │   └── unstructured.go
│   │   │   │   ├── client.go
│   │   │   │   ├── config.go
│   │   │   │   ├── dynamictestclient.go
│   │   │   │   ├── helpers.go
│   │   │   │   ├── prompt/
│   │   │   │   │   └── prompt.go
│   │   │   │   └── v1beta.go
│   │   │   └── version/
│   │   │       ├── version.go
│   │   │       └── version_test.go
│   │   ├── db/
│   │   │   ├── initializer/
│   │   │   │   └── initializer.go
│   │   │   ├── migration/
│   │   │   │   ├── 202010061403_rename_name_to_agent_name_in_user.go
│   │   │   │   ├── 202010071100_create_config_table.go
│   │   │   │   ├── 202010271300_add_refresh_token_checksum_col_in_user_table.go
│   │   │   │   ├── 202102171333_update_catalog_branch_to_main.go
│   │   │   │   ├── 202103161200_add_avatar_url_column_in_users_table.go
│   │   │   │   ├── 202106031300_update_resources_category_table.go
│   │   │   │   ├── 202106281500_create_platform_tables.go
│   │   │   │   ├── 202106282200_add_deprecated_col_in_resource_version_table.go
│   │   │   │   ├── 202107221500_add_ondelete_constraints.go
│   │   │   │   ├── 202107291608_refresh_all_tables.go
│   │   │   │   ├── 202109151102_add_provider_in_catalog_table.go
│   │   │   │   ├── 202109201733_add-code_col_in_user_table.go
│   │   │   │   ├── 202111091037_backup_users_add_account_table_and_update_data.go
│   │   │   │   ├── 202202191725_add_ssh_url_column_in_catalogs_table.go
│   │   │   │   └── migration.go
│   │   │   ├── model/
│   │   │   │   ├── model.go
│   │   │   │   └── sync_job.go
│   │   │   └── validation/
│   │   │       └── validation_test.go
│   │   ├── git/
│   │   │   ├── fetch_spec.go
│   │   │   ├── git.go
│   │   │   └── repo.go
│   │   ├── parser/
│   │   │   ├── catalog.go
│   │   │   ├── catalog_test.go
│   │   │   ├── kind.go
│   │   │   ├── parser.go
│   │   │   ├── resource.go
│   │   │   ├── result.go
│   │   │   └── testdata/
│   │   │       └── catalogs/
│   │   │           ├── invalid-task/
│   │   │           │   └── task/
│   │   │           │       └── git-cli/
│   │   │           │           └── 0.1/
│   │   │           │               └── git-cli.yaml
│   │   │           ├── invalid-taskname/
│   │   │           │   └── task/
│   │   │           │       ├── git-cli/
│   │   │           │       │   └── 0.1/
│   │   │           │       │       └── git-invalid-name.yaml
│   │   │           │       ├── git-clone/
│   │   │           │       │   ├── 0.1/
│   │   │           │       │   │   └── got-cloned.yaml
│   │   │           │       │   └── 0.2/
│   │   │           │       │       └── git-clone.yaml
│   │   │           │       └── maven/
│   │   │           │           ├── 0.1/
│   │   │           │           │   └── maven.yaml
│   │   │           │           └── 0.2/
│   │   │           │               └── maven.yaml
│   │   │           └── valid/
│   │   │               └── task/
│   │   │                   ├── git-cli/
│   │   │                   │   └── 0.1/
│   │   │                   │       └── git-cli.yaml
│   │   │                   └── maven/
│   │   │                       ├── 0.1/
│   │   │                       │   └── maven.yaml
│   │   │                       └── 0.2/
│   │   │                           └── maven.yaml
│   │   ├── service/
│   │   │   ├── admin/
│   │   │   │   ├── admin.go
│   │   │   │   ├── admin_http_test.go
│   │   │   │   └── admin_test.go
│   │   │   ├── catalog/
│   │   │   │   ├── catalog.go
│   │   │   │   ├── catalog_http_test.go
│   │   │   │   ├── catalog_test.go
│   │   │   │   ├── syncer.go
│   │   │   │   └── testdata/
│   │   │   │       ├── TestCatalogError_Http.golden
│   │   │   │       └── TestCatalogError_HttpHavingNoError.golden
│   │   │   ├── category/
│   │   │   │   ├── category.go
│   │   │   │   ├── category_http_test.go
│   │   │   │   ├── category_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── TestCategories_List_Http.golden
│   │   │   │       └── TestCategories_List_Http_V1.golden
│   │   │   ├── rating/
│   │   │   │   ├── rating.go
│   │   │   │   ├── rating_http_test.go
│   │   │   │   └── rating_test.go
│   │   │   ├── resource/
│   │   │   │   ├── resource.go
│   │   │   │   └── resource_test.go
│   │   │   ├── status/
│   │   │   │   ├── status.go
│   │   │   │   ├── status_http_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── TestDB_NotOK.golden
│   │   │   │       └── TestOk_http.golden
│   │   │   └── validator/
│   │   │       └── validator.go
│   │   ├── shared/
│   │   │   └── resource/
│   │   │       ├── resource.go
│   │   │       └── resource_test.go
│   │   ├── testutils/
│   │   │   ├── config.go
│   │   │   ├── db.go
│   │   │   ├── run.go
│   │   │   └── utils.go
│   │   ├── token/
│   │   │   ├── jwt.go
│   │   │   └── user.go
│   │   └── user/
│   │       ├── app/
│   │       │   └── app.go
│   │       ├── base.go
│   │       └── service/
│   │           ├── service.go
│   │           ├── service_test.go
│   │           ├── user.go
│   │           └── user_test.go
│   ├── test/
│   │   ├── cli/
│   │   │   └── cli.go
│   │   ├── config/
│   │   │   ├── config.yaml
│   │   │   └── env.test
│   │   ├── e2e/
│   │   │   ├── get/
│   │   │   │   └── get_test.go
│   │   │   └── info/
│   │   │       └── info_test.go
│   │   └── fixtures/
│   │       ├── accounts.yaml
│   │       ├── catalog_errors.yaml
│   │       ├── catalogs.yaml
│   │       ├── categories.yaml
│   │       ├── configs.yaml
│   │       ├── platforms.yaml
│   │       ├── resource_categories.yaml
│   │       ├── resource_platforms.yaml
│   │       ├── resource_tags.yaml
│   │       ├── resource_versions.yaml
│   │       ├── resources.yaml
│   │       ├── scopes.yaml
│   │       ├── sync_jobs.yaml
│   │       ├── tags.yaml
│   │       ├── user_resource_ratings.yaml
│   │       ├── user_scopes.yaml
│   │       ├── users.yaml
│   │       └── version_platforms.yaml
│   ├── update-golden-files.sh
│   └── v1/
│       ├── design/
│       │   ├── api.go
│       │   ├── catalog.go
│       │   ├── resource.go
│       │   └── swagger.go
│       ├── gen/
│       │   ├── catalog/
│       │   │   ├── client.go
│       │   │   ├── endpoints.go
│       │   │   ├── service.go
│       │   │   └── views/
│       │   │       └── view.go
│       │   ├── http/
│       │   │   ├── catalog/
│       │   │   │   ├── client/
│       │   │   │   │   ├── cli.go
│       │   │   │   │   ├── client.go
│       │   │   │   │   ├── encode_decode.go
│       │   │   │   │   ├── paths.go
│       │   │   │   │   └── types.go
│       │   │   │   └── server/
│       │   │   │       ├── encode_decode.go
│       │   │   │       ├── paths.go
│       │   │   │       ├── server.go
│       │   │   │       └── types.go
│       │   │   ├── cli/
│       │   │   │   └── hub/
│       │   │   │       └── cli.go
│       │   │   ├── openapi.json
│       │   │   ├── openapi.yaml
│       │   │   ├── openapi3.json
│       │   │   ├── openapi3.yaml
│       │   │   ├── resource/
│       │   │   │   ├── client/
│       │   │   │   │   ├── cli.go
│       │   │   │   │   ├── client.go
│       │   │   │   │   ├── encode_decode.go
│       │   │   │   │   ├── paths.go
│       │   │   │   │   └── types.go
│       │   │   │   └── server/
│       │   │   │       ├── encode_decode.go
│       │   │   │       ├── paths.go
│       │   │   │       ├── server.go
│       │   │   │       └── types.go
│       │   │   └── swagger/
│       │   │       ├── client/
│       │   │       │   ├── client.go
│       │   │       │   ├── encode_decode.go
│       │   │       │   ├── paths.go
│       │   │       │   └── types.go
│       │   │       └── server/
│       │   │           ├── paths.go
│       │   │           ├── server.go
│       │   │           └── types.go
│       │   ├── resource/
│       │   │   ├── client.go
│       │   │   ├── endpoints.go
│       │   │   ├── service.go
│       │   │   └── views/
│       │   │       └── view.go
│       │   └── swagger/
│       │       ├── client.go
│       │       ├── endpoints.go
│       │       └── service.go
│       └── service/
│           ├── catalog/
│           │   ├── catalog.go
│           │   ├── catalog_http_test.go
│           │   ├── catalog_test.go
│           │   └── testdata/
│           │       └── TestCatalog_List_Http.golden
│           └── resource/
│               ├── resource.go
│               ├── resource_http_test.go
│               ├── resource_test.go
│               └── testdata/
│                   ├── TestByCatalogKindNameVersionReadme_Http.golden
│                   ├── TestByCatalogKindNameVersionYaml_Http.golden
│                   ├── TestByCatalogKindNameVersion_Http.golden
│                   ├── TestByCatalogKindName_CompatibleVersion_Http.golden
│                   ├── TestByCatalogKindName_Http.golden
│                   ├── TestByEnterpriseCatalogKindName_Http.golden
│                   ├── TestByID_Http.golden
│                   ├── TestByVersionID_Http.golden
│                   ├── TestDeprecationByVersionID_Http.golden
│                   ├── TestLatestVersionDeprecationByID_Http.golden
│                   ├── TestList_Http_NoLimit.golden
│                   ├── TestList_Http_WithLimit.golden
│                   ├── TestQueryWithAllParams_Http.golden
│                   ├── TestQueryWithCategoriesAndKinds_Http.golden
│                   ├── TestQueryWithCategoriesAndName_Http.golden
│                   ├── TestQueryWithCategoriesAndTags_Http.golden
│                   ├── TestQueryWithCategories_Http.golden
│                   ├── TestQueryWithExactName_Http.golden
│                   ├── TestQueryWithKindsAndTags_Http.golden
│                   ├── TestQueryWithKinds_Http.golden
│                   ├── TestQueryWithNameAndKinds_Http.golden
│                   ├── TestQueryWithNameAndTags_Http.golden
│                   ├── TestQueryWithPlatforms_Http.golden
│                   ├── TestQueryWithTags_Http.golden
│                   ├── TestQuery_Http.golden
│                   ├── TestVersionsByID_Http.golden
│                   └── catalog/
│                       └── catalog-official/
│                           └── task/
│                               └── tkn/
│                                   ├── 0.1/
│                                   │   ├── README.md
│                                   │   └── tkn.yaml
│                                   └── 0.2/
│                                       ├── README.md
│                                       └── tkn.yaml
├── code-of-conduct.md
├── config/
│   ├── 00-init/
│   │   ├── 00-namespace.yaml
│   │   ├── 01-db-secret.yaml
│   │   ├── 02-db-pvc.yaml
│   │   ├── 03-db-deployment.yaml
│   │   └── 04-db-service.yaml
│   ├── 01-db/
│   │   └── 10-db-migration.yaml
│   ├── 02-api/
│   │   ├── 20-api-pvc.yaml
│   │   ├── 20-api-secret.yaml
│   │   ├── 21-api-configmap.yaml
│   │   ├── 22-api-deployment.yaml
│   │   └── 23-api-service.yaml
│   ├── 03-ui/
│   │   ├── 30-ui-configmap.yaml
│   │   ├── 31-ui-deployment.yaml
│   │   └── 32-ui-service.yaml
│   ├── 04-kubernetes/
│   │   ├── 40-api-ingress.yaml
│   │   ├── 40-auth-ingress.yaml
│   │   ├── 41-gke-hub-config.yaml
│   │   ├── 42-hub-preview-redirect-ingress.yaml
│   │   └── 42-ui-ingress.yaml
│   ├── 04-openshift/
│   │   ├── 40-api-route.yaml
│   │   ├── 40-auth-route.yaml
│   │   └── 41-ui-route.yaml
│   ├── 05-catalog-refresh-cj/
│   │   ├── 50-catalog-refresh-secret.yaml
│   │   └── 51-catalog-refresh-cronjob.yaml
│   ├── 06-swagger/
│   │   ├── 00-config/
│   │   │   ├── 00-swagger-configmap.yaml
│   │   │   ├── 01-swagger-deployment.yaml
│   │   │   └── 02-swagger-service.yaml
│   │   ├── 01-kubernetes/
│   │   │   └── 01-swagger-ingress.yaml
│   │   └── 01-openshift/
│   │       └── 01-swagger-route.yaml
│   └── 07-hub-info/
│       ├── hub-info.yaml
│       └── role-binding.yaml
├── config.yaml
├── docs/
│   ├── ADD_NEW_CATALOG.md
│   ├── ADD_NEW_CATEGORY.md
│   ├── API_POLICY.md
│   ├── DEPLOYMENT.md
│   ├── DEVELOPMENT.md
│   └── UPGRADE_V1.6.0_TO_V1.7.0.md
├── go.mod
├── go.sum
├── hack/
│   └── verify-codegen.sh
├── images/
│   ├── api.Dockerfile
│   ├── db.Dockerfile
│   └── ui.Dockerfile
├── release/
│   └── RELEASE.md
├── release.sh
├── swagger/
│   ├── .eslintignore
│   ├── .eslintrc.json
│   ├── .gitignore
│   ├── .prettierignore
│   ├── .prettierrc
│   ├── Dockerfile
│   ├── README.md
│   ├── image/
│   │   ├── nginx.conf
│   │   └── start.sh
│   ├── package.json
│   ├── public/
│   │   ├── config.js
│   │   ├── index.html
│   │   └── robots.txt
│   ├── src/
│   │   ├── components/
│   │   │   └── App/
│   │   │       ├── App.css
│   │   │       ├── App.test.tsx
│   │   │       ├── __snapshots__/
│   │   │       │   └── App.test.tsx.snap
│   │   │       └── index.tsx
│   │   ├── config/
│   │   │   └── constants.tsx
│   │   ├── index.css
│   │   ├── index.tsx
│   │   ├── react-app-env.d.ts
│   │   └── setupTests.ts
│   └── tsconfig.json
├── tekton/
│   ├── README.md
│   ├── api/
│   │   ├── golang-db-test.yaml
│   │   └── pipeline.yaml
│   ├── release.sh
│   └── ui/
│       └── pipeline.yaml
├── test/
│   ├── hack.go
│   └── presubmit-tests.sh
├── tools.go
├── ui/
│   ├── .eslintignore
│   ├── .eslintrc.json
│   ├── .gitignore
│   ├── .npmrc
│   ├── .prettierignore
│   ├── .prettierrc
│   ├── README.md
│   ├── config-overrides.js
│   ├── image/
│   │   ├── config-js.conf
│   │   ├── location.locations
│   │   ├── nginx.conf
│   │   └── start.sh
│   ├── jest.config.js
│   ├── package.json
│   ├── public/
│   │   ├── config.js
│   │   ├── index.html
│   │   ├── manifest.json
│   │   └── robots.txt
│   ├── src/
│   │   ├── __mocks__/
│   │   │   └── axios.js
│   │   ├── __test__/
│   │   │   └── __mocks__/
│   │   │       ├── react-markdown.js
│   │   │       └── rehype-external-links.js
│   │   ├── api/
│   │   │   ├── index.ts
│   │   │   └── testutil.ts
│   │   ├── common/
│   │   │   ├── errors.ts
│   │   │   ├── icons.ts
│   │   │   ├── params.ts
│   │   │   ├── scrollToTop.test.ts
│   │   │   ├── scrollToTop.ts
│   │   │   ├── testutils.ts
│   │   │   ├── titlecase.test.ts
│   │   │   ├── titlecase.ts
│   │   │   ├── trimUrl.test.ts
│   │   │   └── trimUrl.ts
│   │   ├── components/
│   │   │   ├── AlertDisplay/
│   │   │   │   ├── AlertDisplay.css
│   │   │   │   ├── AlertDisplay.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── AlertDisplay.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Background/
│   │   │   │   ├── Background.css
│   │   │   │   ├── Background.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Background.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Cards/
│   │   │   │   ├── Cards.css
│   │   │   │   ├── Cards.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Cards.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Description/
│   │   │   │   ├── Description.css
│   │   │   │   ├── Description.test.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── Filter/
│   │   │   │   ├── Filter.css
│   │   │   │   ├── Filter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Filter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Footer/
│   │   │   │   ├── Footer.css
│   │   │   │   ├── Footer.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Footer.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── HomePage/
│   │   │   │   ├── HomePage.css
│   │   │   │   ├── HomePage.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── HomePage.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Icon/
│   │   │   │   ├── Icon.css
│   │   │   │   ├── Icon.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Icon.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── LeftPane/
│   │   │   │   ├── LeftPane.css
│   │   │   │   ├── LeftPane.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── LeftPane.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── PageNotFound/
│   │   │   │   ├── PageNotFound.css
│   │   │   │   ├── PageNotFound.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── PageNotFound.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Readme/
│   │   │   │   ├── Readme.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Readme.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── ResourceDetailsPage/
│   │   │   │   ├── ResourceDetailsPage.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ResourceDetailsPage.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── TooltipDisplay/
│   │   │   │   ├── TooltipDisplay.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── TooltipDisplay.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   └── Yaml/
│   │   │       ├── Yaml.test.tsx
│   │   │       ├── __snapshots__/
│   │   │       │   └── Yaml.test.tsx.snap
│   │   │       └── index.tsx
│   │   ├── config/
│   │   │   ├── constant.d.ts
│   │   │   └── constants.tsx
│   │   ├── containers/
│   │   │   ├── App/
│   │   │   │   ├── App.css
│   │   │   │   ├── App.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── App.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── BasicDetails/
│   │   │   │   ├── BasicDetails.css
│   │   │   │   ├── BasicDetails.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── BasicDetails.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── CatalogFilter/
│   │   │   │   ├── CatalogFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CatalogFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── CategoryFilter/
│   │   │   │   ├── CategoryFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CategoryFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Details/
│   │   │   │   ├── Details.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Details.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Header/
│   │   │   │   ├── Header.css
│   │   │   │   ├── Header.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Header.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── KindFilter/
│   │   │   │   ├── KindFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── KindFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── ParseUrl/
│   │   │   │   ├── ParseUrl.test.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── PlatformFilter/
│   │   │   │   ├── PlatformFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── PlatformFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Rating/
│   │   │   │   ├── Rating.css
│   │   │   │   ├── Rating.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Rating.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Resources/
│   │   │   │   ├── Resources.css
│   │   │   │   ├── Resources.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Resources.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Search/
│   │   │   │   ├── Search.css
│   │   │   │   ├── Search.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Search.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── SortDropDown/
│   │   │   │   ├── SortDropDown.css
│   │   │   │   ├── SortDropDown.test.tsx
│   │   │   │   └── index.tsx
│   │   │   └── UserProfile/
│   │   │       ├── UserProfile.css
│   │   │       ├── UserProfile.test.tsx
│   │   │       └── index.tsx
│   │   ├── index.css
│   │   ├── index.tsx
│   │   ├── react-app-env.d.ts
│   │   ├── serviceWorker.ts
│   │   ├── setupTests.ts
│   │   ├── store/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── catalog.test.ts.snap
│   │   │   │   ├── category.test.ts.snap
│   │   │   │   ├── kind.test.ts.snap
│   │   │   │   ├── platform.test.ts.snap
│   │   │   │   ├── provider.test.ts.snap
│   │   │   │   ├── resource.test.ts.snap
│   │   │   │   └── tag.test.ts.snap
│   │   │   ├── auth.test.ts
│   │   │   ├── auth.ts
│   │   │   ├── catalog.test.ts
│   │   │   ├── catalog.ts
│   │   │   ├── category.test.ts
│   │   │   ├── category.ts
│   │   │   ├── kind.test.ts
│   │   │   ├── kind.ts
│   │   │   ├── platform.test.ts
│   │   │   ├── platform.ts
│   │   │   ├── provider.test.ts
│   │   │   ├── provider.ts
│   │   │   ├── resource.test.ts
│   │   │   ├── resource.ts
│   │   │   ├── root.tsx
│   │   │   ├── tag.test.ts
│   │   │   ├── tag.ts
│   │   │   ├── testdata/
│   │   │   │   ├── access_token.json
│   │   │   │   ├── authentication.json
│   │   │   │   ├── buildah-Readme.md
│   │   │   │   ├── buildah.yaml
│   │   │   │   ├── catalogs.json
│   │   │   │   ├── categories.json
│   │   │   │   ├── provider.json
│   │   │   │   ├── refresh_token.json
│   │   │   │   ├── resource_versions_13.json
│   │   │   │   ├── resources.json
│   │   │   │   ├── userInfo.json
│   │   │   │   ├── version_details_105.json
│   │   │   │   └── version_details_13.json
│   │   │   ├── utils.test.ts
│   │   │   └── utils.ts
│   │   └── utils/
│   │       ├── updateUrl.test.ts
│   │       └── updateUrl.ts
│   └── tsconfig.json
└── vendor/
    ├── cel.dev/
    │   └── expr/
    │       ├── .bazelversion
    │       ├── .gitattributes
    │       ├── .gitignore
    │       ├── BUILD.bazel
    │       ├── CODE_OF_CONDUCT.md
    │       ├── CONTRIBUTING.md
    │       ├── GOVERNANCE.md
    │       ├── LICENSE
    │       ├── MAINTAINERS.md
    │       ├── MODULE.bazel
    │       ├── README.md
    │       ├── WORKSPACE
    │       ├── WORKSPACE.bzlmod
    │       ├── checked.pb.go
    │       ├── cloudbuild.yaml
    │       ├── eval.pb.go
    │       ├── explain.pb.go
    │       ├── regen_go_proto.sh
    │       ├── regen_go_proto_canonical_protos.sh
    │       ├── syntax.pb.go
    │       └── value.pb.go
    ├── contrib.go.opencensus.io/
    │   └── exporter/
    │       ├── ocagent/
    │       │   ├── .gitignore
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── common.go
    │       │   ├── connection.go
    │       │   ├── nodeinfo.go
    │       │   ├── ocagent.go
    │       │   ├── options.go
    │       │   ├── span_config.go
    │       │   ├── transform_spans.go
    │       │   ├── transform_stats_to_metrics.go
    │       │   └── version.go
    │       └── prometheus/
    │           ├── .gitignore
    │           ├── .golangci.yml
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── Makefile
    │           ├── README.md
    │           ├── prometheus.go
    │           └── sanitize.go
    ├── github.com/
    │   ├── ActiveState/
    │   │   └── vt10x/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── color.go
    │   │       ├── csi.go
    │   │       ├── doc.go
    │   │       ├── expect.go
    │   │       ├── ioctl_other.go
    │   │       ├── ioctl_posix.go
    │   │       ├── parse.go
    │   │       ├── state.go
    │   │       ├── str.go
    │   │       ├── strip.go
    │   │       └── vt.go
    │   ├── AlecAivazis/
    │   │   └── survey/
    │   │       └── v2/
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── confirm.go
    │   │           ├── core/
    │   │           │   ├── template.go
    │   │           │   └── write.go
    │   │           ├── editor.go
    │   │           ├── filter.go
    │   │           ├── input.go
    │   │           ├── multiline.go
    │   │           ├── multiselect.go
    │   │           ├── password.go
    │   │           ├── renderer.go
    │   │           ├── select.go
    │   │           ├── survey.go
    │   │           ├── terminal/
    │   │           │   ├── LICENSE.txt
    │   │           │   ├── README.md
    │   │           │   ├── buffered_reader.go
    │   │           │   ├── cursor.go
    │   │           │   ├── cursor_windows.go
    │   │           │   ├── display.go
    │   │           │   ├── display_posix.go
    │   │           │   ├── display_windows.go
    │   │           │   ├── error.go
    │   │           │   ├── output.go
    │   │           │   ├── output_windows.go
    │   │           │   ├── runereader.go
    │   │           │   ├── runereader_bsd.go
    │   │           │   ├── runereader_linux.go
    │   │           │   ├── runereader_posix.go
    │   │           │   ├── runereader_ppc64le.go
    │   │           │   ├── runereader_windows.go
    │   │           │   ├── sequences.go
    │   │           │   ├── stdio.go
    │   │           │   ├── syscall_windows.go
    │   │           │   └── terminal.go
    │   │           ├── transform.go
    │   │           └── validate.go
    │   ├── Masterminds/
    │   │   └── semver/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE.txt
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── collection.go
    │   │           ├── constraints.go
    │   │           ├── doc.go
    │   │           └── version.go
    │   ├── Netflix/
    │   │   └── go-expect/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── OSSMETADATA
    │   │       ├── README.md
    │   │       ├── console.go
    │   │       ├── doc.go
    │   │       ├── expect.go
    │   │       ├── expect_opt.go
    │   │       ├── passthrough_pipe.go
    │   │       ├── reader_lease.go
    │   │       └── test_log.go
    │   ├── antlr4-go/
    │   │   └── antlr/
    │   │       └── v4/
    │   │           ├── .gitignore
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── antlrdoc.go
    │   │           ├── atn.go
    │   │           ├── atn_config.go
    │   │           ├── atn_config_set.go
    │   │           ├── atn_deserialization_options.go
    │   │           ├── atn_deserializer.go
    │   │           ├── atn_simulator.go
    │   │           ├── atn_state.go
    │   │           ├── atn_type.go
    │   │           ├── char_stream.go
    │   │           ├── common_token_factory.go
    │   │           ├── common_token_stream.go
    │   │           ├── comparators.go
    │   │           ├── configuration.go
    │   │           ├── dfa.go
    │   │           ├── dfa_serializer.go
    │   │           ├── dfa_state.go
    │   │           ├── diagnostic_error_listener.go
    │   │           ├── error_listener.go
    │   │           ├── error_strategy.go
    │   │           ├── errors.go
    │   │           ├── file_stream.go
    │   │           ├── input_stream.go
    │   │           ├── int_stream.go
    │   │           ├── interval_set.go
    │   │           ├── jcollect.go
    │   │           ├── lexer.go
    │   │           ├── lexer_action.go
    │   │           ├── lexer_action_executor.go
    │   │           ├── lexer_atn_simulator.go
    │   │           ├── ll1_analyzer.go
    │   │           ├── nostatistics.go
    │   │           ├── parser.go
    │   │           ├── parser_atn_simulator.go
    │   │           ├── parser_rule_context.go
    │   │           ├── prediction_context.go
    │   │           ├── prediction_context_cache.go
    │   │           ├── prediction_mode.go
    │   │           ├── recognizer.go
    │   │           ├── rule_context.go
    │   │           ├── semantic_context.go
    │   │           ├── statistics.go
    │   │           ├── stats_data.go
    │   │           ├── token.go
    │   │           ├── token_source.go
    │   │           ├── token_stream.go
    │   │           ├── tokenstream_rewriter.go
    │   │           ├── trace_listener.go
    │   │           ├── transition.go
    │   │           ├── tree.go
    │   │           ├── trees.go
    │   │           └── utils.go
    │   ├── beorn7/
    │   │   └── perks/
    │   │       ├── LICENSE
    │   │       └── quantile/
    │   │           ├── exampledata.txt
    │   │           └── stream.go
    │   ├── census-instrumentation/
    │   │   └── opencensus-proto/
    │   │       ├── AUTHORS
    │   │       ├── LICENSE
    │   │       └── gen-go/
    │   │           ├── agent/
    │   │           │   ├── common/
    │   │           │   │   └── v1/
    │   │           │   │       └── common.pb.go
    │   │           │   ├── metrics/
    │   │           │   │   └── v1/
    │   │           │   │       ├── metrics_service.pb.go
    │   │           │   │       └── metrics_service.pb.gw.go
    │   │           │   └── trace/
    │   │           │       └── v1/
    │   │           │           ├── trace_service.pb.go
    │   │           │           └── trace_service.pb.gw.go
    │   │           ├── metrics/
    │   │           │   └── v1/
    │   │           │       └── metrics.pb.go
    │   │           ├── resource/
    │   │           │   └── v1/
    │   │           │       └── resource.pb.go
    │   │           └── trace/
    │   │               └── v1/
    │   │                   ├── trace.pb.go
    │   │                   └── trace_config.pb.go
    │   ├── cespare/
    │   │   └── xxhash/
    │   │       └── v2/
    │   │           ├── LICENSE.txt
    │   │           ├── README.md
    │   │           ├── testall.sh
    │   │           ├── xxhash.go
    │   │           ├── xxhash_amd64.s
    │   │           ├── xxhash_arm64.s
    │   │           ├── xxhash_asm.go
    │   │           ├── xxhash_other.go
    │   │           ├── xxhash_safe.go
    │   │           └── xxhash_unsafe.go
    │   ├── cloudevents/
    │   │   └── sdk-go/
    │   │       └── v2/
    │   │           ├── LICENSE
    │   │           ├── alias.go
    │   │           ├── binding/
    │   │           │   ├── binary_writer.go
    │   │           │   ├── doc.go
    │   │           │   ├── encoding.go
    │   │           │   ├── event_message.go
    │   │           │   ├── finish_message.go
    │   │           │   ├── format/
    │   │           │   │   ├── doc.go
    │   │           │   │   └── format.go
    │   │           │   ├── message.go
    │   │           │   ├── spec/
    │   │           │   │   ├── attributes.go
    │   │           │   │   ├── doc.go
    │   │           │   │   ├── match_exact_version.go
    │   │           │   │   └── spec.go
    │   │           │   ├── structured_writer.go
    │   │           │   ├── to_event.go
    │   │           │   ├── transformer.go
    │   │           │   └── write.go
    │   │           ├── client/
    │   │           │   ├── client.go
    │   │           │   ├── client_http.go
    │   │           │   ├── client_observed.go
    │   │           │   ├── defaulters.go
    │   │           │   ├── doc.go
    │   │           │   ├── http_receiver.go
    │   │           │   ├── invoker.go
    │   │           │   ├── observability.go
    │   │           │   ├── options.go
    │   │           │   └── receiver.go
    │   │           ├── context/
    │   │           │   ├── context.go
    │   │           │   ├── delegating.go
    │   │           │   ├── doc.go
    │   │           │   ├── logger.go
    │   │           │   └── retry.go
    │   │           ├── event/
    │   │           │   ├── content_type.go
    │   │           │   ├── data_content_encoding.go
    │   │           │   ├── datacodec/
    │   │           │   │   ├── codec.go
    │   │           │   │   ├── doc.go
    │   │           │   │   ├── json/
    │   │           │   │   │   ├── data.go
    │   │           │   │   │   └── doc.go
    │   │           │   │   ├── text/
    │   │           │   │   │   ├── data.go
    │   │           │   │   │   └── doc.go
    │   │           │   │   └── xml/
    │   │           │   │       ├── data.go
    │   │           │   │       └── doc.go
    │   │           │   ├── doc.go
    │   │           │   ├── event.go
    │   │           │   ├── event_data.go
    │   │           │   ├── event_interface.go
    │   │           │   ├── event_marshal.go
    │   │           │   ├── event_reader.go
    │   │           │   ├── event_unmarshal.go
    │   │           │   ├── event_validation.go
    │   │           │   ├── event_writer.go
    │   │           │   ├── eventcontext.go
    │   │           │   ├── eventcontext_v03.go
    │   │           │   ├── eventcontext_v03_reader.go
    │   │           │   ├── eventcontext_v03_writer.go
    │   │           │   ├── eventcontext_v1.go
    │   │           │   ├── eventcontext_v1_reader.go
    │   │           │   ├── eventcontext_v1_writer.go
    │   │           │   └── extensions.go
    │   │           ├── protocol/
    │   │           │   ├── doc.go
    │   │           │   ├── error.go
    │   │           │   ├── http/
    │   │           │   │   ├── abuse_protection.go
    │   │           │   │   ├── context.go
    │   │           │   │   ├── doc.go
    │   │           │   │   ├── headers.go
    │   │           │   │   ├── message.go
    │   │           │   │   ├── options.go
    │   │           │   │   ├── protocol.go
    │   │           │   │   ├── protocol_lifecycle.go
    │   │           │   │   ├── protocol_rate.go
    │   │           │   │   ├── protocol_retry.go
    │   │           │   │   ├── result.go
    │   │           │   │   ├── retries_result.go
    │   │           │   │   ├── utility.go
    │   │           │   │   ├── write_request.go
    │   │           │   │   └── write_responsewriter.go
    │   │           │   ├── inbound.go
    │   │           │   ├── lifecycle.go
    │   │           │   ├── outbound.go
    │   │           │   └── result.go
    │   │           ├── staticcheck.conf
    │   │           └── types/
    │   │               ├── allocate.go
    │   │               ├── doc.go
    │   │               ├── timestamp.go
    │   │               ├── uri.go
    │   │               ├── uriref.go
    │   │               └── value.go
    │   ├── containerd/
    │   │   └── stargz-snapshotter/
    │   │       └── estargz/
    │   │           ├── LICENSE
    │   │           ├── build.go
    │   │           ├── errorutil/
    │   │           │   └── errors.go
    │   │           ├── estargz.go
    │   │           ├── gzip.go
    │   │           ├── testutil.go
    │   │           └── types.go
    │   ├── creack/
    │   │   └── pty/
    │   │       ├── .gitignore
    │   │       ├── Dockerfile.golang
    │   │       ├── Dockerfile.riscv
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── asm_solaris_amd64.s
    │   │       ├── doc.go
    │   │       ├── ioctl.go
    │   │       ├── ioctl_bsd.go
    │   │       ├── ioctl_solaris.go
    │   │       ├── mktypes.bash
    │   │       ├── pty_darwin.go
    │   │       ├── pty_dragonfly.go
    │   │       ├── pty_freebsd.go
    │   │       ├── pty_linux.go
    │   │       ├── pty_netbsd.go
    │   │       ├── pty_openbsd.go
    │   │       ├── pty_solaris.go
    │   │       ├── pty_unsupported.go
    │   │       ├── run.go
    │   │       ├── test_crosscompile.sh
    │   │       ├── winsize.go
    │   │       ├── winsize_unix.go
    │   │       ├── winsize_unsupported.go
    │   │       ├── ztypes_386.go
    │   │       ├── ztypes_amd64.go
    │   │       ├── ztypes_arm.go
    │   │       ├── ztypes_arm64.go
    │   │       ├── ztypes_dragonfly_amd64.go
    │   │       ├── ztypes_freebsd_386.go
    │   │       ├── ztypes_freebsd_amd64.go
    │   │       ├── ztypes_freebsd_arm.go
    │   │       ├── ztypes_freebsd_arm64.go
    │   │       ├── ztypes_freebsd_ppc64.go
    │   │       ├── ztypes_loong64.go
    │   │       ├── ztypes_mipsx.go
    │   │       ├── ztypes_netbsd_32bit_int.go
    │   │       ├── ztypes_openbsd_32bit_int.go
    │   │       ├── ztypes_ppc64.go
    │   │       ├── ztypes_ppc64le.go
    │   │       ├── ztypes_riscvx.go
    │   │       └── ztypes_s390x.go
    │   ├── davecgh/
    │   │   └── go-spew/
    │   │       ├── LICENSE
    │   │       └── spew/
    │   │           ├── bypass.go
    │   │           ├── bypasssafe.go
    │   │           ├── common.go
    │   │           ├── config.go
    │   │           ├── doc.go
    │   │           ├── dump.go
    │   │           ├── format.go
    │   │           └── spew.go
    │   ├── dimfeld/
    │   │   └── httppath/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── path.go
    │   ├── docker/
    │   │   ├── cli/
    │   │   │   ├── AUTHORS
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── cli/
    │   │   │       └── config/
    │   │   │           ├── config.go
    │   │   │           ├── configfile/
    │   │   │           │   ├── file.go
    │   │   │           │   ├── file_unix.go
    │   │   │           │   └── file_windows.go
    │   │   │           ├── credentials/
    │   │   │           │   ├── credentials.go
    │   │   │           │   ├── default_store.go
    │   │   │           │   ├── default_store_darwin.go
    │   │   │           │   ├── default_store_linux.go
    │   │   │           │   ├── default_store_unsupported.go
    │   │   │           │   ├── default_store_windows.go
    │   │   │           │   ├── file_store.go
    │   │   │           │   └── native_store.go
    │   │   │           └── types/
    │   │   │               └── authconfig.go
    │   │   ├── distribution/
    │   │   │   ├── LICENSE
    │   │   │   └── registry/
    │   │   │       └── client/
    │   │   │           └── auth/
    │   │   │               └── challenge/
    │   │   │                   ├── addr.go
    │   │   │                   └── authchallenge.go
    │   │   └── docker-credential-helpers/
    │   │       ├── LICENSE
    │   │       ├── client/
    │   │       │   ├── client.go
    │   │       │   └── command.go
    │   │       └── credentials/
    │   │           ├── credentials.go
    │   │           ├── error.go
    │   │           ├── helper.go
    │   │           └── version.go
    │   ├── emicklei/
    │   │   └── go-restful/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .goconvey
    │   │           ├── .travis.yml
    │   │           ├── CHANGES.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── Srcfile
    │   │           ├── bench_test.sh
    │   │           ├── compress.go
    │   │           ├── compressor_cache.go
    │   │           ├── compressor_pools.go
    │   │           ├── compressors.go
    │   │           ├── constants.go
    │   │           ├── container.go
    │   │           ├── cors_filter.go
    │   │           ├── coverage.sh
    │   │           ├── curly.go
    │   │           ├── curly_route.go
    │   │           ├── custom_verb.go
    │   │           ├── doc.go
    │   │           ├── entity_accessors.go
    │   │           ├── extensions.go
    │   │           ├── filter.go
    │   │           ├── filter_adapter.go
    │   │           ├── jsr311.go
    │   │           ├── log/
    │   │           │   └── log.go
    │   │           ├── logger.go
    │   │           ├── mime.go
    │   │           ├── options_filter.go
    │   │           ├── parameter.go
    │   │           ├── path_expression.go
    │   │           ├── path_processor.go
    │   │           ├── request.go
    │   │           ├── response.go
    │   │           ├── route.go
    │   │           ├── route_builder.go
    │   │           ├── route_reader.go
    │   │           ├── router.go
    │   │           ├── service_error.go
    │   │           ├── web_service.go
    │   │           └── web_service_container.go
    │   ├── evanphx/
    │   │   └── json-patch/
    │   │       └── v5/
    │   │           ├── LICENSE
    │   │           ├── errors.go
    │   │           ├── internal/
    │   │           │   └── json/
    │   │           │       ├── decode.go
    │   │           │       ├── encode.go
    │   │           │       ├── fold.go
    │   │           │       ├── fuzz.go
    │   │           │       ├── indent.go
    │   │           │       ├── scanner.go
    │   │           │       ├── stream.go
    │   │           │       ├── tables.go
    │   │           │       └── tags.go
    │   │           ├── merge.go
    │   │           └── patch.go
    │   ├── fatih/
    │   │   └── color/
    │   │       ├── LICENSE.md
    │   │       ├── README.md
    │   │       ├── color.go
    │   │       ├── color_windows.go
    │   │       └── doc.go
    │   ├── felixge/
    │   │   └── httpsnoop/
    │   │       ├── .gitignore
    │   │       ├── LICENSE.txt
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── capture_metrics.go
    │   │       ├── docs.go
    │   │       ├── wrap_generated_gteq_1.8.go
    │   │       └── wrap_generated_lt_1.8.go
    │   ├── fsnotify/
    │   │   └── fsnotify/
    │   │       ├── .cirrus.yml
    │   │       ├── .gitignore
    │   │       ├── .mailmap
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── backend_fen.go
    │   │       ├── backend_inotify.go
    │   │       ├── backend_kqueue.go
    │   │       ├── backend_other.go
    │   │       ├── backend_windows.go
    │   │       ├── fsnotify.go
    │   │       ├── internal/
    │   │       │   ├── darwin.go
    │   │       │   ├── debug_darwin.go
    │   │       │   ├── debug_dragonfly.go
    │   │       │   ├── debug_freebsd.go
    │   │       │   ├── debug_kqueue.go
    │   │       │   ├── debug_linux.go
    │   │       │   ├── debug_netbsd.go
    │   │       │   ├── debug_openbsd.go
    │   │       │   ├── debug_solaris.go
    │   │       │   ├── debug_windows.go
    │   │       │   ├── freebsd.go
    │   │       │   ├── internal.go
    │   │       │   ├── unix.go
    │   │       │   ├── unix2.go
    │   │       │   └── windows.go
    │   │       ├── shared.go
    │   │       ├── staticcheck.conf
    │   │       ├── system_bsd.go
    │   │       └── system_darwin.go
    │   ├── fxamacker/
    │   │   └── cbor/
    │   │       └── v2/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── CODE_OF_CONDUCT.md
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── bytestring.go
    │   │           ├── cache.go
    │   │           ├── common.go
    │   │           ├── decode.go
    │   │           ├── diagnose.go
    │   │           ├── doc.go
    │   │           ├── encode.go
    │   │           ├── encode_map.go
    │   │           ├── encode_map_go117.go
    │   │           ├── simplevalue.go
    │   │           ├── stream.go
    │   │           ├── structfields.go
    │   │           ├── tag.go
    │   │           └── valid.go
    │   ├── go-chi/
    │   │   └── chi/
    │   │       └── v5/
    │   │           ├── .gitignore
    │   │           ├── CHANGELOG.md
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── chain.go
    │   │           ├── chi.go
    │   │           ├── context.go
    │   │           ├── mux.go
    │   │           ├── path_value.go
    │   │           ├── path_value_fallback.go
    │   │           ├── pattern.go
    │   │           ├── pattern_fallback.go
    │   │           └── tree.go
    │   ├── go-gormigrate/
    │   │   └── gormigrate/
    │   │       └── v2/
    │   │           ├── .gitignore
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── Taskfile.yml
    │   │           └── gormigrate.go
    │   ├── go-jose/
    │   │   └── go-jose/
    │   │       └── v4/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── .travis.yml
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── asymmetric.go
    │   │           ├── cipher/
    │   │           │   ├── cbc_hmac.go
    │   │           │   ├── concat_kdf.go
    │   │           │   ├── ecdh_es.go
    │   │           │   └── key_wrap.go
    │   │           ├── crypter.go
    │   │           ├── doc.go
    │   │           ├── encoding.go
    │   │           ├── json/
    │   │           │   ├── LICENSE
    │   │           │   ├── README.md
    │   │           │   ├── decode.go
    │   │           │   ├── encode.go
    │   │           │   ├── indent.go
    │   │           │   ├── scanner.go
    │   │           │   ├── stream.go
    │   │           │   └── tags.go
    │   │           ├── jwe.go
    │   │           ├── jwk.go
    │   │           ├── jws.go
    │   │           ├── opaque.go
    │   │           ├── shared.go
    │   │           ├── signing.go
    │   │           ├── symmetric.go
    │   │           ├── symmetric_go124.go
    │   │           └── symmetric_legacy.go
    │   ├── go-kit/
    │   │   └── log/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── doc.go
    │   │       ├── json_logger.go
    │   │       ├── level/
    │   │       │   ├── doc.go
    │   │       │   └── level.go
    │   │       ├── log.go
    │   │       ├── logfmt_logger.go
    │   │       ├── nop_logger.go
    │   │       ├── staticcheck.conf
    │   │       ├── stdlib.go
    │   │       ├── sync.go
    │   │       └── value.go
    │   ├── go-logfmt/
    │   │   └── logfmt/
    │   │       ├── .gitignore
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── decode.go
    │   │       ├── doc.go
    │   │       ├── encode.go
    │   │       └── jsonstring.go
    │   ├── go-logr/
    │   │   └── logr/
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── context.go
    │   │       ├── context_noslog.go
    │   │       ├── context_slog.go
    │   │       ├── discard.go
    │   │       ├── logr.go
    │   │       ├── sloghandler.go
    │   │       ├── slogr.go
    │   │       └── slogsink.go
    │   ├── go-openapi/
    │   │   ├── jsonpointer/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pointer.go
    │   │   └── jsonreference/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── internal/
    │   │       │   └── normalize_url.go
    │   │       └── reference.go
    │   ├── go-testfixtures/
    │   │   └── testfixtures/
    │   │       └── v3/
    │   │           ├── .editorconfig
    │   │           ├── .gitattributes
    │   │           ├── .gitignore
    │   │           ├── .goreleaser.yml
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── Taskfile.yml
    │   │           ├── bytes.go
    │   │           ├── clickhouse.go
    │   │           ├── default_fs.go
    │   │           ├── dump.go
    │   │           ├── go.work
    │   │           ├── go.work.sum
    │   │           ├── helper.go
    │   │           ├── json.go
    │   │           ├── mysql.go
    │   │           ├── postgresql.go
    │   │           ├── shared/
    │   │           │   └── shared.go
    │   │           ├── spanner.go
    │   │           ├── sqlite.go
    │   │           ├── sqlserver.go
    │   │           ├── testfixtures.go
    │   │           └── time.go
    │   ├── go-viper/
    │   │   └── mapstructure/
    │   │       └── v2/
    │   │           ├── .editorconfig
    │   │           ├── .envrc
    │   │           ├── .gitignore
    │   │           ├── .golangci.yaml
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── decode_hooks.go
    │   │           ├── errors.go
    │   │           ├── flake.nix
    │   │           ├── internal/
    │   │           │   └── errors/
    │   │           │       ├── errors.go
    │   │           │       ├── join.go
    │   │           │       └── join_go1_19.go
    │   │           ├── mapstructure.go
    │   │           ├── reflect_go1_19.go
    │   │           └── reflect_go1_20.go
    │   ├── goccy/
    │   │   └── go-yaml/
    │   │       ├── .codecov.yml
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── ast/
    │   │       │   └── ast.go
    │   │       ├── context.go
    │   │       ├── decode.go
    │   │       ├── encode.go
    │   │       ├── error.go
    │   │       ├── internal/
    │   │       │   ├── errors/
    │   │       │   │   └── error.go
    │   │       │   └── format/
    │   │       │       └── format.go
    │   │       ├── lexer/
    │   │       │   └── lexer.go
    │   │       ├── option.go
    │   │       ├── parser/
    │   │       │   ├── color.go
    │   │       │   ├── context.go
    │   │       │   ├── node.go
    │   │       │   ├── option.go
    │   │       │   ├── parser.go
    │   │       │   └── token.go
    │   │       ├── path.go
    │   │       ├── printer/
    │   │       │   ├── color.go
    │   │       │   └── printer.go
    │   │       ├── scanner/
    │   │       │   ├── context.go
    │   │       │   ├── error.go
    │   │       │   └── scanner.go
    │   │       ├── stdlib_quote.go
    │   │       ├── struct.go
    │   │       ├── token/
    │   │       │   └── token.go
    │   │       ├── validate.go
    │   │       └── yaml.go
    │   ├── gogo/
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── Makefile
    │   │       │   ├── clone.go
    │   │       │   ├── custom_gogo.go
    │   │       │   ├── decode.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── duration.go
    │   │       │   ├── duration_gogo.go
    │   │       │   ├── encode.go
    │   │       │   ├── encode_gogo.go
    │   │       │   ├── equal.go
    │   │       │   ├── extensions.go
    │   │       │   ├── extensions_gogo.go
    │   │       │   ├── lib.go
    │   │       │   ├── lib_gogo.go
    │   │       │   ├── message_set.go
    │   │       │   ├── pointer_reflect.go
    │   │       │   ├── pointer_reflect_gogo.go
    │   │       │   ├── pointer_unsafe.go
    │   │       │   ├── pointer_unsafe_gogo.go
    │   │       │   ├── properties.go
    │   │       │   ├── properties_gogo.go
    │   │       │   ├── skip_gogo.go
    │   │       │   ├── table_marshal.go
    │   │       │   ├── table_marshal_gogo.go
    │   │       │   ├── table_merge.go
    │   │       │   ├── table_unmarshal.go
    │   │       │   ├── table_unmarshal_gogo.go
    │   │       │   ├── text.go
    │   │       │   ├── text_gogo.go
    │   │       │   ├── text_parser.go
    │   │       │   ├── timestamp.go
    │   │       │   ├── timestamp_gogo.go
    │   │       │   ├── wrappers.go
    │   │       │   └── wrappers_gogo.go
    │   │       └── sortkeys/
    │   │           └── sortkeys.go
    │   ├── gohugoio/
    │   │   └── hashstructure/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── errors.go
    │   │       ├── hashstructure.go
    │   │       └── include.go
    │   ├── golang/
    │   │   ├── groupcache/
    │   │   │   ├── LICENSE
    │   │   │   └── lru/
    │   │   │       └── lru.go
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── buffer.go
    │   │       │   ├── defaults.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── extensions.go
    │   │       │   ├── properties.go
    │   │       │   ├── proto.go
    │   │       │   ├── registry.go
    │   │       │   ├── text_decode.go
    │   │       │   ├── text_encode.go
    │   │       │   ├── wire.go
    │   │       │   └── wrappers.go
    │   │       └── ptypes/
    │   │           └── timestamp/
    │   │               └── timestamp.pb.go
    │   ├── golang-jwt/
    │   │   └── jwt/
    │   │       └── v4/
    │   │           ├── .gitignore
    │   │           ├── LICENSE
    │   │           ├── MIGRATION_GUIDE.md
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── VERSION_HISTORY.md
    │   │           ├── claims.go
    │   │           ├── doc.go
    │   │           ├── ecdsa.go
    │   │           ├── ecdsa_utils.go
    │   │           ├── ed25519.go
    │   │           ├── ed25519_utils.go
    │   │           ├── errors.go
    │   │           ├── hmac.go
    │   │           ├── map_claims.go
    │   │           ├── none.go
    │   │           ├── parser.go
    │   │           ├── parser_option.go
    │   │           ├── rsa.go
    │   │           ├── rsa_pss.go
    │   │           ├── rsa_utils.go
    │   │           ├── signing_method.go
    │   │           ├── staticcheck.conf
    │   │           ├── token.go
    │   │           └── types.go
    │   ├── google/
    │   │   ├── cel-go/
    │   │   │   ├── LICENSE
    │   │   │   ├── cel/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── cel.go
    │   │   │   │   ├── decls.go
    │   │   │   │   ├── env.go
    │   │   │   │   ├── folding.go
    │   │   │   │   ├── inlining.go
    │   │   │   │   ├── io.go
    │   │   │   │   ├── library.go
    │   │   │   │   ├── macro.go
    │   │   │   │   ├── optimizer.go
    │   │   │   │   ├── options.go
    │   │   │   │   ├── program.go
    │   │   │   │   ├── prompt.go
    │   │   │   │   ├── templates/
    │   │   │   │   │   └── authoring.tmpl
    │   │   │   │   └── validator.go
    │   │   │   ├── checker/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── checker.go
    │   │   │   │   ├── cost.go
    │   │   │   │   ├── decls/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── decls.go
    │   │   │   │   ├── env.go
    │   │   │   │   ├── errors.go
    │   │   │   │   ├── format.go
    │   │   │   │   ├── mapping.go
    │   │   │   │   ├── options.go
    │   │   │   │   ├── printer.go
    │   │   │   │   ├── scopes.go
    │   │   │   │   └── types.go
    │   │   │   ├── common/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── ast/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   ├── ast.go
    │   │   │   │   │   ├── conversion.go
    │   │   │   │   │   ├── expr.go
    │   │   │   │   │   ├── factory.go
    │   │   │   │   │   └── navigable.go
    │   │   │   │   ├── containers/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── container.go
    │   │   │   │   ├── cost.go
    │   │   │   │   ├── debug/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── debug.go
    │   │   │   │   ├── decls/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── decls.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── env/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── env.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── errors.go
    │   │   │   │   ├── functions/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── functions.go
    │   │   │   │   ├── location.go
    │   │   │   │   ├── operators/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── operators.go
    │   │   │   │   ├── overloads/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── overloads.go
    │   │   │   │   ├── runes/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── buffer.go
    │   │   │   │   ├── source.go
    │   │   │   │   ├── stdlib/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── standard.go
    │   │   │   │   └── types/
    │   │   │   │       ├── BUILD.bazel
    │   │   │   │       ├── any_value.go
    │   │   │   │       ├── bool.go
    │   │   │   │       ├── bytes.go
    │   │   │   │       ├── compare.go
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── double.go
    │   │   │   │       ├── duration.go
    │   │   │   │       ├── err.go
    │   │   │   │       ├── format.go
    │   │   │   │       ├── int.go
    │   │   │   │       ├── iterator.go
    │   │   │   │       ├── json_value.go
    │   │   │   │       ├── list.go
    │   │   │   │       ├── map.go
    │   │   │   │       ├── null.go
    │   │   │   │       ├── object.go
    │   │   │   │       ├── optional.go
    │   │   │   │       ├── overflow.go
    │   │   │   │       ├── pb/
    │   │   │   │       │   ├── BUILD.bazel
    │   │   │   │       │   ├── checked.go
    │   │   │   │       │   ├── enum.go
    │   │   │   │       │   ├── equal.go
    │   │   │   │       │   ├── file.go
    │   │   │   │       │   ├── pb.go
    │   │   │   │       │   └── type.go
    │   │   │   │       ├── provider.go
    │   │   │   │       ├── ref/
    │   │   │   │       │   ├── BUILD.bazel
    │   │   │   │       │   ├── provider.go
    │   │   │   │       │   └── reference.go
    │   │   │   │       ├── string.go
    │   │   │   │       ├── timestamp.go
    │   │   │   │       ├── traits/
    │   │   │   │       │   ├── BUILD.bazel
    │   │   │   │       │   ├── comparer.go
    │   │   │   │       │   ├── container.go
    │   │   │   │       │   ├── field_tester.go
    │   │   │   │       │   ├── indexer.go
    │   │   │   │       │   ├── iterator.go
    │   │   │   │       │   ├── lister.go
    │   │   │   │       │   ├── mapper.go
    │   │   │   │       │   ├── matcher.go
    │   │   │   │       │   ├── math.go
    │   │   │   │       │   ├── receiver.go
    │   │   │   │       │   ├── sizer.go
    │   │   │   │       │   ├── traits.go
    │   │   │   │       │   └── zeroer.go
    │   │   │   │       ├── types.go
    │   │   │   │       ├── uint.go
    │   │   │   │       ├── unknown.go
    │   │   │   │       └── util.go
    │   │   │   ├── interpreter/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── activation.go
    │   │   │   │   ├── attribute_patterns.go
    │   │   │   │   ├── attributes.go
    │   │   │   │   ├── decorators.go
    │   │   │   │   ├── dispatcher.go
    │   │   │   │   ├── evalstate.go
    │   │   │   │   ├── interpretable.go
    │   │   │   │   ├── interpreter.go
    │   │   │   │   ├── optimizations.go
    │   │   │   │   ├── planner.go
    │   │   │   │   ├── prune.go
    │   │   │   │   └── runtimecost.go
    │   │   │   └── parser/
    │   │   │       ├── BUILD.bazel
    │   │   │       ├── errors.go
    │   │   │       ├── gen/
    │   │   │       │   ├── BUILD.bazel
    │   │   │       │   ├── CEL.g4
    │   │   │       │   ├── CEL.interp
    │   │   │       │   ├── CEL.tokens
    │   │   │       │   ├── CELLexer.interp
    │   │   │       │   ├── CELLexer.tokens
    │   │   │       │   ├── cel_base_listener.go
    │   │   │       │   ├── cel_base_visitor.go
    │   │   │       │   ├── cel_lexer.go
    │   │   │       │   ├── cel_listener.go
    │   │   │       │   ├── cel_parser.go
    │   │   │       │   ├── cel_visitor.go
    │   │   │       │   ├── doc.go
    │   │   │       │   └── generate.sh
    │   │   │       ├── helper.go
    │   │   │       ├── input.go
    │   │   │       ├── macro.go
    │   │   │       ├── options.go
    │   │   │       ├── parser.go
    │   │   │       ├── unescape.go
    │   │   │       └── unparser.go
    │   │   ├── gnostic-models/
    │   │   │   ├── LICENSE
    │   │   │   ├── compiler/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── context.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extensions.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   ├── main.go
    │   │   │   │   └── reader.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── extension.pb.go
    │   │   │   │   ├── extension.proto
    │   │   │   │   └── extensions.go
    │   │   │   ├── jsonschema/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── base.go
    │   │   │   │   ├── display.go
    │   │   │   │   ├── models.go
    │   │   │   │   ├── operations.go
    │   │   │   │   ├── reader.go
    │   │   │   │   ├── schema.json
    │   │   │   │   └── writer.go
    │   │   │   ├── openapiv2/
    │   │   │   │   ├── OpenAPIv2.go
    │   │   │   │   ├── OpenAPIv2.pb.go
    │   │   │   │   ├── OpenAPIv2.proto
    │   │   │   │   ├── README.md
    │   │   │   │   ├── document.go
    │   │   │   │   └── openapi-2.0.json
    │   │   │   └── openapiv3/
    │   │   │       ├── OpenAPIv3.go
    │   │   │       ├── OpenAPIv3.pb.go
    │   │   │       ├── OpenAPIv3.proto
    │   │   │       ├── README.md
    │   │   │       ├── annotations.pb.go
    │   │   │       ├── annotations.proto
    │   │   │       └── document.go
    │   │   ├── go-cmp/
    │   │   │   ├── LICENSE
    │   │   │   └── cmp/
    │   │   │       ├── cmpopts/
    │   │   │       │   ├── equate.go
    │   │   │       │   ├── ignore.go
    │   │   │       │   ├── sort.go
    │   │   │       │   ├── struct_filter.go
    │   │   │       │   └── xform.go
    │   │   │       ├── compare.go
    │   │   │       ├── export.go
    │   │   │       ├── internal/
    │   │   │       │   ├── diff/
    │   │   │       │   │   ├── debug_disable.go
    │   │   │       │   │   ├── debug_enable.go
    │   │   │       │   │   └── diff.go
    │   │   │       │   ├── flags/
    │   │   │       │   │   └── flags.go
    │   │   │       │   ├── function/
    │   │   │       │   │   └── func.go
    │   │   │       │   └── value/
    │   │   │       │       ├── name.go
    │   │   │       │       ├── pointer.go
    │   │   │       │       └── sort.go
    │   │   │       ├── options.go
    │   │   │       ├── path.go
    │   │   │       ├── report.go
    │   │   │       ├── report_compare.go
    │   │   │       ├── report_references.go
    │   │   │       ├── report_reflect.go
    │   │   │       ├── report_slices.go
    │   │   │       ├── report_text.go
    │   │   │       └── report_value.go
    │   │   ├── go-containerregistry/
    │   │   │   ├── LICENSE
    │   │   │   ├── internal/
    │   │   │   │   ├── and/
    │   │   │   │   │   └── and_closer.go
    │   │   │   │   ├── compression/
    │   │   │   │   │   └── compression.go
    │   │   │   │   ├── estargz/
    │   │   │   │   │   └── estargz.go
    │   │   │   │   ├── gzip/
    │   │   │   │   │   └── zip.go
    │   │   │   │   ├── redact/
    │   │   │   │   │   └── redact.go
    │   │   │   │   ├── retry/
    │   │   │   │   │   ├── retry.go
    │   │   │   │   │   └── wait/
    │   │   │   │   │       └── kubernetes_apimachinery_wait.go
    │   │   │   │   ├── verify/
    │   │   │   │   │   └── verify.go
    │   │   │   │   └── zstd/
    │   │   │   │       └── zstd.go
    │   │   │   └── pkg/
    │   │   │       ├── authn/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── anon.go
    │   │   │       │   ├── auth.go
    │   │   │       │   ├── authn.go
    │   │   │       │   ├── basic.go
    │   │   │       │   ├── bearer.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── keychain.go
    │   │   │       │   └── multikeychain.go
    │   │   │       ├── compression/
    │   │   │       │   └── compression.go
    │   │   │       ├── logs/
    │   │   │       │   └── logs.go
    │   │   │       ├── name/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── check.go
    │   │   │       │   ├── digest.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── errors.go
    │   │   │       │   ├── options.go
    │   │   │       │   ├── ref.go
    │   │   │       │   ├── registry.go
    │   │   │       │   ├── repository.go
    │   │   │       │   └── tag.go
    │   │   │       └── v1/
    │   │   │           ├── config.go
    │   │   │           ├── doc.go
    │   │   │           ├── empty/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   └── index.go
    │   │   │           ├── hash.go
    │   │   │           ├── image.go
    │   │   │           ├── index.go
    │   │   │           ├── layer.go
    │   │   │           ├── manifest.go
    │   │   │           ├── match/
    │   │   │           │   └── match.go
    │   │   │           ├── mutate/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── index.go
    │   │   │           │   ├── mutate.go
    │   │   │           │   └── rebase.go
    │   │   │           ├── partial/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── compressed.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── index.go
    │   │   │           │   ├── uncompressed.go
    │   │   │           │   └── with.go
    │   │   │           ├── platform.go
    │   │   │           ├── progress.go
    │   │   │           ├── remote/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── catalog.go
    │   │   │           │   ├── check.go
    │   │   │           │   ├── delete.go
    │   │   │           │   ├── descriptor.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── fetcher.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── index.go
    │   │   │           │   ├── layer.go
    │   │   │           │   ├── list.go
    │   │   │           │   ├── mount.go
    │   │   │           │   ├── multi_write.go
    │   │   │           │   ├── options.go
    │   │   │           │   ├── progress.go
    │   │   │           │   ├── puller.go
    │   │   │           │   ├── pusher.go
    │   │   │           │   ├── referrers.go
    │   │   │           │   ├── schema1.go
    │   │   │           │   ├── transport/
    │   │   │           │   │   ├── README.md
    │   │   │           │   │   ├── basic.go
    │   │   │           │   │   ├── bearer.go
    │   │   │           │   │   ├── doc.go
    │   │   │           │   │   ├── error.go
    │   │   │           │   │   ├── logger.go
    │   │   │           │   │   ├── ping.go
    │   │   │           │   │   ├── retry.go
    │   │   │           │   │   ├── schemer.go
    │   │   │           │   │   ├── scope.go
    │   │   │           │   │   ├── transport.go
    │   │   │           │   │   └── useragent.go
    │   │   │           │   └── write.go
    │   │   │           ├── stream/
    │   │   │           │   ├── README.md
    │   │   │           │   └── layer.go
    │   │   │           ├── tarball/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── layer.go
    │   │   │           │   └── write.go
    │   │   │           ├── types/
    │   │   │           │   └── types.go
    │   │   │           └── zz_deepcopy_generated.go
    │   │   ├── gofuzz/
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── bytesource/
    │   │   │   │   └── bytesource.go
    │   │   │   ├── doc.go
    │   │   │   └── fuzz.go
    │   │   └── uuid/
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       ├── version4.go
    │   │       ├── version6.go
    │   │       └── version7.go
    │   ├── gorilla/
    │   │   ├── handlers/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── canonical.go
    │   │   │   ├── compress.go
    │   │   │   ├── cors.go
    │   │   │   ├── doc.go
    │   │   │   ├── handlers.go
    │   │   │   ├── logging.go
    │   │   │   ├── proxy_headers.go
    │   │   │   └── recovery.go
    │   │   ├── mux/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── doc.go
    │   │   │   ├── middleware.go
    │   │   │   ├── mux.go
    │   │   │   ├── regexp.go
    │   │   │   ├── route.go
    │   │   │   └── test_helpers.go
    │   │   ├── securecookie/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── doc.go
    │   │   │   └── securecookie.go
    │   │   ├── sessions/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── cookie.go
    │   │   │   ├── cookie_go111.go
    │   │   │   ├── doc.go
    │   │   │   ├── lex.go
    │   │   │   ├── options.go
    │   │   │   ├── options_go111.go
    │   │   │   ├── sessions.go
    │   │   │   └── store.go
    │   │   └── websocket/
    │   │       ├── .gitignore
    │   │       ├── AUTHORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── client.go
    │   │       ├── compression.go
    │   │       ├── conn.go
    │   │       ├── doc.go
    │   │       ├── join.go
    │   │       ├── json.go
    │   │       ├── mask.go
    │   │       ├── mask_safe.go
    │   │       ├── prepared.go
    │   │       ├── proxy.go
    │   │       ├── server.go
    │   │       ├── tls_handshake.go
    │   │       ├── tls_handshake_116.go
    │   │       ├── util.go
    │   │       └── x_net_proxy.go
    │   ├── grpc-ecosystem/
    │   │   └── grpc-gateway/
    │   │       └── v2/
    │   │           ├── LICENSE
    │   │           ├── internal/
    │   │           │   └── httprule/
    │   │           │       ├── BUILD.bazel
    │   │           │       ├── compile.go
    │   │           │       ├── fuzz.go
    │   │           │       ├── parse.go
    │   │           │       └── types.go
    │   │           ├── runtime/
    │   │           │   ├── BUILD.bazel
    │   │           │   ├── context.go
    │   │           │   ├── convert.go
    │   │           │   ├── doc.go
    │   │           │   ├── errors.go
    │   │           │   ├── fieldmask.go
    │   │           │   ├── handler.go
    │   │           │   ├── marshal_httpbodyproto.go
    │   │           │   ├── marshal_json.go
    │   │           │   ├── marshal_jsonpb.go
    │   │           │   ├── marshal_proto.go
    │   │           │   ├── marshaler.go
    │   │           │   ├── marshaler_registry.go
    │   │           │   ├── mux.go
    │   │           │   ├── pattern.go
    │   │           │   ├── proto2_convert.go
    │   │           │   └── query.go
    │   │           └── utilities/
    │   │               ├── BUILD.bazel
    │   │               ├── doc.go
    │   │               ├── pattern.go
    │   │               ├── readerfactory.go
    │   │               ├── string_array_flag.go
    │   │               └── trie.go
    │   ├── h2non/
    │   │   └── parth/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── parth.go
    │   │       ├── segindex.go
    │   │       └── segtostr.go
    │   ├── hako/
    │   │   └── durafmt/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── durafmt.go
    │   │       └── unit.go
    │   ├── hashicorp/
    │   │   └── golang-lru/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── 2q.go
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── arc.go
    │   │       ├── doc.go
    │   │       ├── lru.go
    │   │       ├── simplelru/
    │   │       │   ├── lru.go
    │   │       │   └── lru_interface.go
    │   │       └── testing.go
    │   ├── ikawaha/
    │   │   ├── goahttpcheck/
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   └── checker.go
    │   │   └── httpcheck/
    │   │       ├── .deepsource.toml
    │   │       ├── .golangci.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── checker.go
    │   │       ├── tester.go
    │   │       ├── tester_auth.go
    │   │       ├── tester_body.go
    │   │       ├── tester_body_json.go
    │   │       ├── tester_body_xml.go
    │   │       ├── tester_cookie.go
    │   │       ├── tester_header.go
    │   │       ├── tester_multipart.go
    │   │       └── tester_status.go
    │   ├── inconshreveable/
    │   │   └── mousetrap/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── trap_others.go
    │   │       └── trap_windows.go
    │   ├── itchyny/
    │   │   ├── gojq/
    │   │   │   ├── .dockerignore
    │   │   │   ├── .gitattributes
    │   │   │   ├── .gitignore
    │   │   │   ├── CHANGELOG.md
    │   │   │   ├── Dockerfile
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── _gojq
    │   │   │   ├── builtin.go
    │   │   │   ├── builtin.jq
    │   │   │   ├── code.go
    │   │   │   ├── compare.go
    │   │   │   ├── compiler.go
    │   │   │   ├── debug.go
    │   │   │   ├── encoder.go
    │   │   │   ├── env.go
    │   │   │   ├── error.go
    │   │   │   ├── execute.go
    │   │   │   ├── func.go
    │   │   │   ├── go.dev.mod
    │   │   │   ├── go.dev.sum
    │   │   │   ├── gojq.go
    │   │   │   ├── iter.go
    │   │   │   ├── lexer.go
    │   │   │   ├── module_loader.go
    │   │   │   ├── normalize.go
    │   │   │   ├── operator.go
    │   │   │   ├── option.go
    │   │   │   ├── parser.go
    │   │   │   ├── parser.go.y
    │   │   │   ├── preview.go
    │   │   │   ├── query.go
    │   │   │   ├── release.go
    │   │   │   ├── scope_stack.go
    │   │   │   ├── stack.go
    │   │   │   ├── term_type.go
    │   │   │   └── type.go
    │   │   └── timefmt-go/
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── format.go
    │   │       ├── parse.go
    │   │       └── timefmt.go
    │   ├── jackc/
    │   │   ├── pgpassfile/
    │   │   │   ├── .travis.yml
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pgpass.go
    │   │   ├── pgservicefile/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pgservicefile.go
    │   │   ├── pgx/
    │   │   │   └── v5/
    │   │   │       ├── .gitignore
    │   │   │       ├── CHANGELOG.md
    │   │   │       ├── CONTRIBUTING.md
    │   │   │       ├── LICENSE
    │   │   │       ├── README.md
    │   │   │       ├── Rakefile
    │   │   │       ├── batch.go
    │   │   │       ├── conn.go
    │   │   │       ├── copy_from.go
    │   │   │       ├── doc.go
    │   │   │       ├── extended_query_builder.go
    │   │   │       ├── internal/
    │   │   │       │   ├── anynil/
    │   │   │       │   │   └── anynil.go
    │   │   │       │   ├── iobufpool/
    │   │   │       │   │   └── iobufpool.go
    │   │   │       │   ├── pgio/
    │   │   │       │   │   ├── README.md
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   └── write.go
    │   │   │       │   ├── sanitize/
    │   │   │       │   │   └── sanitize.go
    │   │   │       │   └── stmtcache/
    │   │   │       │       ├── lru_cache.go
    │   │   │       │       ├── stmtcache.go
    │   │   │       │       └── unlimited_cache.go
    │   │   │       ├── large_objects.go
    │   │   │       ├── named_args.go
    │   │   │       ├── pgconn/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── auth_scram.go
    │   │   │       │   ├── config.go
    │   │   │       │   ├── defaults.go
    │   │   │       │   ├── defaults_windows.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── errors.go
    │   │   │       │   ├── internal/
    │   │   │       │   │   ├── bgreader/
    │   │   │       │   │   │   └── bgreader.go
    │   │   │       │   │   └── ctxwatch/
    │   │   │       │   │       └── context_watcher.go
    │   │   │       │   ├── krb5.go
    │   │   │       │   └── pgconn.go
    │   │   │       ├── pgproto3/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── authentication_cleartext_password.go
    │   │   │       │   ├── authentication_gss.go
    │   │   │       │   ├── authentication_gss_continue.go
    │   │   │       │   ├── authentication_md5_password.go
    │   │   │       │   ├── authentication_ok.go
    │   │   │       │   ├── authentication_sasl.go
    │   │   │       │   ├── authentication_sasl_continue.go
    │   │   │       │   ├── authentication_sasl_final.go
    │   │   │       │   ├── backend.go
    │   │   │       │   ├── backend_key_data.go
    │   │   │       │   ├── big_endian.go
    │   │   │       │   ├── bind.go
    │   │   │       │   ├── bind_complete.go
    │   │   │       │   ├── cancel_request.go
    │   │   │       │   ├── chunkreader.go
    │   │   │       │   ├── close.go
    │   │   │       │   ├── close_complete.go
    │   │   │       │   ├── command_complete.go
    │   │   │       │   ├── copy_both_response.go
    │   │   │       │   ├── copy_data.go
    │   │   │       │   ├── copy_done.go
    │   │   │       │   ├── copy_fail.go
    │   │   │       │   ├── copy_in_response.go
    │   │   │       │   ├── copy_out_response.go
    │   │   │       │   ├── data_row.go
    │   │   │       │   ├── describe.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── empty_query_response.go
    │   │   │       │   ├── error_response.go
    │   │   │       │   ├── execute.go
    │   │   │       │   ├── flush.go
    │   │   │       │   ├── frontend.go
    │   │   │       │   ├── function_call.go
    │   │   │       │   ├── function_call_response.go
    │   │   │       │   ├── gss_enc_request.go
    │   │   │       │   ├── gss_response.go
    │   │   │       │   ├── no_data.go
    │   │   │       │   ├── notice_response.go
    │   │   │       │   ├── notification_response.go
    │   │   │       │   ├── parameter_description.go
    │   │   │       │   ├── parameter_status.go
    │   │   │       │   ├── parse.go
    │   │   │       │   ├── parse_complete.go
    │   │   │       │   ├── password_message.go
    │   │   │       │   ├── pgproto3.go
    │   │   │       │   ├── portal_suspended.go
    │   │   │       │   ├── query.go
    │   │   │       │   ├── ready_for_query.go
    │   │   │       │   ├── row_description.go
    │   │   │       │   ├── sasl_initial_response.go
    │   │   │       │   ├── sasl_response.go
    │   │   │       │   ├── ssl_request.go
    │   │   │       │   ├── startup_message.go
    │   │   │       │   ├── sync.go
    │   │   │       │   ├── terminate.go
    │   │   │       │   └── trace.go
    │   │   │       ├── pgtype/
    │   │   │       │   ├── array.go
    │   │   │       │   ├── array_codec.go
    │   │   │       │   ├── bits.go
    │   │   │       │   ├── bool.go
    │   │   │       │   ├── box.go
    │   │   │       │   ├── builtin_wrappers.go
    │   │   │       │   ├── bytea.go
    │   │   │       │   ├── circle.go
    │   │   │       │   ├── composite.go
    │   │   │       │   ├── convert.go
    │   │   │       │   ├── date.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── enum_codec.go
    │   │   │       │   ├── float4.go
    │   │   │       │   ├── float8.go
    │   │   │       │   ├── hstore.go
    │   │   │       │   ├── inet.go
    │   │   │       │   ├── int.go
    │   │   │       │   ├── int.go.erb
    │   │   │       │   ├── int_test.go.erb
    │   │   │       │   ├── integration_benchmark_test.go.erb
    │   │   │       │   ├── integration_benchmark_test_gen.sh
    │   │   │       │   ├── interval.go
    │   │   │       │   ├── json.go
    │   │   │       │   ├── jsonb.go
    │   │   │       │   ├── line.go
    │   │   │       │   ├── lseg.go
    │   │   │       │   ├── ltree.go
    │   │   │       │   ├── macaddr.go
    │   │   │       │   ├── multirange.go
    │   │   │       │   ├── numeric.go
    │   │   │       │   ├── path.go
    │   │   │       │   ├── pgtype.go
    │   │   │       │   ├── pgtype_default.go
    │   │   │       │   ├── point.go
    │   │   │       │   ├── polygon.go
    │   │   │       │   ├── qchar.go
    │   │   │       │   ├── range.go
    │   │   │       │   ├── range_codec.go
    │   │   │       │   ├── record_codec.go
    │   │   │       │   ├── register_default_pg_types.go
    │   │   │       │   ├── register_default_pg_types_disabled.go
    │   │   │       │   ├── text.go
    │   │   │       │   ├── text_format_only_codec.go
    │   │   │       │   ├── tid.go
    │   │   │       │   ├── time.go
    │   │   │       │   ├── timestamp.go
    │   │   │       │   ├── timestamptz.go
    │   │   │       │   ├── uint32.go
    │   │   │       │   └── uuid.go
    │   │   │       ├── pgxpool/
    │   │   │       │   ├── batch_results.go
    │   │   │       │   ├── conn.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── pool.go
    │   │   │       │   ├── rows.go
    │   │   │       │   ├── stat.go
    │   │   │       │   └── tx.go
    │   │   │       ├── rows.go
    │   │   │       ├── stdlib/
    │   │   │       │   └── sql.go
    │   │   │       ├── tracer.go
    │   │   │       ├── tx.go
    │   │   │       └── values.go
    │   │   └── puddle/
    │   │       └── v2/
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── context.go
    │   │           ├── doc.go
    │   │           ├── internal/
    │   │           │   └── genstack/
    │   │           │       ├── gen_stack.go
    │   │           │       └── stack.go
    │   │           ├── log.go
    │   │           ├── nanotime_time.go
    │   │           ├── nanotime_unsafe.go
    │   │           ├── pool.go
    │   │           └── resource_list.go
    │   ├── jinzhu/
    │   │   ├── inflection/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── inflections.go
    │   │   │   └── wercker.yml
    │   │   └── now/
    │   │       ├── Guardfile
    │   │       ├── License
    │   │       ├── README.md
    │   │       ├── main.go
    │   │       ├── now.go
    │   │       └── time.go
    │   ├── joho/
    │   │   └── godotenv/
    │   │       ├── .gitignore
    │   │       ├── LICENCE
    │   │       ├── README.md
    │   │       ├── godotenv.go
    │   │       └── parser.go
    │   ├── josharian/
    │   │   └── intern/
    │   │       ├── README.md
    │   │       ├── intern.go
    │   │       └── license.md
    │   ├── kballard/
    │   │   └── go-shellquote/
    │   │       ├── LICENSE
    │   │       ├── README
    │   │       ├── doc.go
    │   │       ├── quote.go
    │   │       └── unquote.go
    │   ├── kelseyhightower/
    │   │   └── envconfig/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── MAINTAINERS
    │   │       ├── README.md
    │   │       ├── doc.go
    │   │       ├── env_os.go
    │   │       ├── env_syscall.go
    │   │       ├── envconfig.go
    │   │       └── usage.go
    │   ├── klauspost/
    │   │   └── compress/
    │   │       ├── .gitattributes
    │   │       ├── .gitignore
    │   │       ├── .goreleaser.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── compressible.go
    │   │       ├── fse/
    │   │       │   ├── README.md
    │   │       │   ├── bitreader.go
    │   │       │   ├── bitwriter.go
    │   │       │   ├── bytereader.go
    │   │       │   ├── compress.go
    │   │       │   ├── decompress.go
    │   │       │   └── fse.go
    │   │       ├── gen.sh
    │   │       ├── huff0/
    │   │       │   ├── .gitignore
    │   │       │   ├── README.md
    │   │       │   ├── bitreader.go
    │   │       │   ├── bitwriter.go
    │   │       │   ├── compress.go
    │   │       │   ├── decompress.go
    │   │       │   ├── decompress_amd64.go
    │   │       │   ├── decompress_amd64.s
    │   │       │   ├── decompress_generic.go
    │   │       │   └── huff0.go
    │   │       ├── internal/
    │   │       │   ├── cpuinfo/
    │   │       │   │   ├── cpuinfo.go
    │   │       │   │   ├── cpuinfo_amd64.go
    │   │       │   │   └── cpuinfo_amd64.s
    │   │       │   ├── le/
    │   │       │   │   ├── le.go
    │   │       │   │   ├── unsafe_disabled.go
    │   │       │   │   └── unsafe_enabled.go
    │   │       │   └── snapref/
    │   │       │       ├── LICENSE
    │   │       │       ├── decode.go
    │   │       │       ├── decode_other.go
    │   │       │       ├── encode.go
    │   │       │       ├── encode_other.go
    │   │       │       └── snappy.go
    │   │       ├── s2sx.mod
    │   │       ├── s2sx.sum
    │   │       └── zstd/
    │   │           ├── README.md
    │   │           ├── bitreader.go
    │   │           ├── bitwriter.go
    │   │           ├── blockdec.go
    │   │           ├── blockenc.go
    │   │           ├── blocktype_string.go
    │   │           ├── bytebuf.go
    │   │           ├── bytereader.go
    │   │           ├── decodeheader.go
    │   │           ├── decoder.go
    │   │           ├── decoder_options.go
    │   │           ├── dict.go
    │   │           ├── enc_base.go
    │   │           ├── enc_best.go
    │   │           ├── enc_better.go
    │   │           ├── enc_dfast.go
    │   │           ├── enc_fast.go
    │   │           ├── encoder.go
    │   │           ├── encoder_options.go
    │   │           ├── framedec.go
    │   │           ├── frameenc.go
    │   │           ├── fse_decoder.go
    │   │           ├── fse_decoder_amd64.go
    │   │           ├── fse_decoder_amd64.s
    │   │           ├── fse_decoder_generic.go
    │   │           ├── fse_encoder.go
    │   │           ├── fse_predefined.go
    │   │           ├── hash.go
    │   │           ├── history.go
    │   │           ├── internal/
    │   │           │   └── xxhash/
    │   │           │       ├── LICENSE.txt
    │   │           │       ├── README.md
    │   │           │       ├── xxhash.go
    │   │           │       ├── xxhash_amd64.s
    │   │           │       ├── xxhash_arm64.s
    │   │           │       ├── xxhash_asm.go
    │   │           │       ├── xxhash_other.go
    │   │           │       └── xxhash_safe.go
    │   │           ├── matchlen_amd64.go
    │   │           ├── matchlen_amd64.s
    │   │           ├── matchlen_generic.go
    │   │           ├── seqdec.go
    │   │           ├── seqdec_amd64.go
    │   │           ├── seqdec_amd64.s
    │   │           ├── seqdec_generic.go
    │   │           ├── seqenc.go
    │   │           ├── snappy.go
    │   │           ├── zip.go
    │   │           └── zstd.go
    │   ├── kr/
    │   │   └── pty/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── shim.go
    │   ├── letsencrypt/
    │   │   └── boulder/
    │   │       ├── LICENSE.txt
    │   │       ├── core/
    │   │       │   ├── challenges.go
    │   │       │   ├── interfaces.go
    │   │       │   ├── objects.go
    │   │       │   └── util.go
    │   │       ├── goodkey/
    │   │       │   ├── blocked.go
    │   │       │   ├── good_key.go
    │   │       │   └── weak.go
    │   │       ├── identifier/
    │   │       │   └── identifier.go
    │   │       ├── probs/
    │   │       │   └── probs.go
    │   │       ├── revocation/
    │   │       │   └── reasons.go
    │   │       └── strictyaml/
    │   │           └── yaml.go
    │   ├── mailru/
    │   │   └── easyjson/
    │   │       ├── LICENSE
    │   │       ├── buffer/
    │   │       │   └── pool.go
    │   │       ├── jlexer/
    │   │       │   ├── bytestostr.go
    │   │       │   ├── bytestostr_nounsafe.go
    │   │       │   ├── error.go
    │   │       │   └── lexer.go
    │   │       └── jwriter/
    │   │           └── writer.go
    │   ├── manveru/
    │   │   └── faker/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dict.go
    │   │       └── faker.go
    │   ├── mattn/
    │   │   ├── go-colorable/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── colorable_appengine.go
    │   │   │   ├── colorable_others.go
    │   │   │   ├── colorable_windows.go
    │   │   │   ├── go.test.sh
    │   │   │   └── noncolorable.go
    │   │   └── go-isatty/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── doc.go
    │   │       ├── go.test.sh
    │   │       ├── isatty_bsd.go
    │   │       ├── isatty_others.go
    │   │       ├── isatty_plan9.go
    │   │       ├── isatty_solaris.go
    │   │       ├── isatty_tcgets.go
    │   │       └── isatty_windows.go
    │   ├── mgutz/
    │   │   └── ansi/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── ansi.go
    │   │       ├── doc.go
    │   │       └── print.go
    │   ├── mitchellh/
    │   │   └── go-homedir/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── homedir.go
    │   ├── modern-go/
    │   │   └── concurrent/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── executor.go
    │   │       ├── go_above_19.go
    │   │       ├── go_below_19.go
    │   │       ├── log.go
    │   │       ├── test.sh
    │   │       └── unbounded_executor.go
    │   ├── munnerz/
    │   │   └── goautoneg/
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.txt
    │   │       └── autoneg.go
    │   ├── opencontainers/
    │   │   ├── go-digest/
    │   │   │   ├── .mailmap
    │   │   │   ├── .pullapprove.yml
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── LICENSE.docs
    │   │   │   ├── MAINTAINERS
    │   │   │   ├── README.md
    │   │   │   ├── algorithm.go
    │   │   │   ├── digest.go
    │   │   │   ├── digester.go
    │   │   │   ├── doc.go
    │   │   │   └── verifiers.go
    │   │   └── image-spec/
    │   │       ├── LICENSE
    │   │       └── specs-go/
    │   │           ├── v1/
    │   │           │   ├── annotations.go
    │   │           │   ├── config.go
    │   │           │   ├── descriptor.go
    │   │           │   ├── index.go
    │   │           │   ├── layout.go
    │   │           │   ├── manifest.go
    │   │           │   └── mediatype.go
    │   │           ├── version.go
    │   │           └── versioned.go
    │   ├── openzipkin/
    │   │   └── zipkin-go/
    │   │       ├── LICENSE
    │   │       └── model/
    │   │           ├── annotation.go
    │   │           ├── doc.go
    │   │           ├── endpoint.go
    │   │           ├── kind.go
    │   │           ├── span.go
    │   │           ├── span_id.go
    │   │           └── traceid.go
    │   ├── pelletier/
    │   │   └── go-toml/
    │   │       └── v2/
    │   │           ├── .dockerignore
    │   │           ├── .gitattributes
    │   │           ├── .gitignore
    │   │           ├── .golangci.toml
    │   │           ├── .goreleaser.yaml
    │   │           ├── CONTRIBUTING.md
    │   │           ├── Dockerfile
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── ci.sh
    │   │           ├── decode.go
    │   │           ├── doc.go
    │   │           ├── errors.go
    │   │           ├── internal/
    │   │           │   ├── characters/
    │   │           │   │   ├── ascii.go
    │   │           │   │   └── utf8.go
    │   │           │   ├── danger/
    │   │           │   │   ├── danger.go
    │   │           │   │   └── typeid.go
    │   │           │   └── tracker/
    │   │           │       ├── key.go
    │   │           │       ├── seen.go
    │   │           │       └── tracker.go
    │   │           ├── localtime.go
    │   │           ├── marshaler.go
    │   │           ├── strict.go
    │   │           ├── toml.abnf
    │   │           ├── types.go
    │   │           ├── unmarshaler.go
    │   │           └── unstable/
    │   │               ├── ast.go
    │   │               ├── builder.go
    │   │               ├── doc.go
    │   │               ├── kind.go
    │   │               ├── parser.go
    │   │               ├── scanner.go
    │   │               └── unmarshaler.go
    │   ├── pkg/
    │   │   └── errors/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── appveyor.yml
    │   │       ├── errors.go
    │   │       ├── go113.go
    │   │       └── stack.go
    │   ├── pmezard/
    │   │   └── go-difflib/
    │   │       ├── LICENSE
    │   │       └── difflib/
    │   │           └── difflib.go
    │   ├── prometheus/
    │   │   ├── client_golang/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── internal/
    │   │   │   │   └── github.com/
    │   │   │   │       └── golang/
    │   │   │   │           └── gddo/
    │   │   │   │               ├── LICENSE
    │   │   │   │               └── httputil/
    │   │   │   │                   ├── header/
    │   │   │   │                   │   └── header.go
    │   │   │   │                   └── negotiate.go
    │   │   │   └── prometheus/
    │   │   │       ├── .gitignore
    │   │   │       ├── README.md
    │   │   │       ├── build_info_collector.go
    │   │   │       ├── collector.go
    │   │   │       ├── counter.go
    │   │   │       ├── desc.go
    │   │   │       ├── doc.go
    │   │   │       ├── expvar_collector.go
    │   │   │       ├── fnv.go
    │   │   │       ├── gauge.go
    │   │   │       ├── get_pid.go
    │   │   │       ├── get_pid_gopherjs.go
    │   │   │       ├── go_collector.go
    │   │   │       ├── go_collector_go116.go
    │   │   │       ├── go_collector_latest.go
    │   │   │       ├── histogram.go
    │   │   │       ├── internal/
    │   │   │       │   ├── almost_equal.go
    │   │   │       │   ├── difflib.go
    │   │   │       │   ├── go_collector_options.go
    │   │   │       │   ├── go_runtime_metrics.go
    │   │   │       │   └── metric.go
    │   │   │       ├── labels.go
    │   │   │       ├── metric.go
    │   │   │       ├── num_threads.go
    │   │   │       ├── num_threads_gopherjs.go
    │   │   │       ├── observer.go
    │   │   │       ├── process_collector.go
    │   │   │       ├── process_collector_js.go
    │   │   │       ├── process_collector_other.go
    │   │   │       ├── process_collector_wasip1.go
    │   │   │       ├── process_collector_windows.go
    │   │   │       ├── promhttp/
    │   │   │       │   ├── delegator.go
    │   │   │       │   ├── http.go
    │   │   │       │   ├── instrument_client.go
    │   │   │       │   ├── instrument_server.go
    │   │   │       │   └── option.go
    │   │   │       ├── registry.go
    │   │   │       ├── summary.go
    │   │   │       ├── timer.go
    │   │   │       ├── untyped.go
    │   │   │       ├── value.go
    │   │   │       ├── vec.go
    │   │   │       ├── vnext.go
    │   │   │       └── wrap.go
    │   │   ├── client_model/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── go/
    │   │   │       └── metrics.pb.go
    │   │   ├── common/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── expfmt/
    │   │   │   │   ├── decode.go
    │   │   │   │   ├── encode.go
    │   │   │   │   ├── expfmt.go
    │   │   │   │   ├── fuzz.go
    │   │   │   │   ├── openmetrics_create.go
    │   │   │   │   ├── text_create.go
    │   │   │   │   └── text_parse.go
    │   │   │   └── model/
    │   │   │       ├── alert.go
    │   │   │       ├── fingerprinting.go
    │   │   │       ├── fnv.go
    │   │   │       ├── labels.go
    │   │   │       ├── labelset.go
    │   │   │       ├── labelset_string.go
    │   │   │       ├── metadata.go
    │   │   │       ├── metric.go
    │   │   │       ├── model.go
    │   │   │       ├── signature.go
    │   │   │       ├── silence.go
    │   │   │       ├── time.go
    │   │   │       ├── value.go
    │   │   │       ├── value_float.go
    │   │   │       ├── value_histogram.go
    │   │   │       └── value_type.go
    │   │   ├── procfs/
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── MAINTAINERS.md
    │   │   │   ├── Makefile
    │   │   │   ├── Makefile.common
    │   │   │   ├── NOTICE
    │   │   │   ├── README.md
    │   │   │   ├── SECURITY.md
    │   │   │   ├── arp.go
    │   │   │   ├── buddyinfo.go
    │   │   │   ├── cmdline.go
    │   │   │   ├── cpuinfo.go
    │   │   │   ├── cpuinfo_armx.go
    │   │   │   ├── cpuinfo_loong64.go
    │   │   │   ├── cpuinfo_mipsx.go
    │   │   │   ├── cpuinfo_others.go
    │   │   │   ├── cpuinfo_ppcx.go
    │   │   │   ├── cpuinfo_riscvx.go
    │   │   │   ├── cpuinfo_s390x.go
    │   │   │   ├── cpuinfo_x86.go
    │   │   │   ├── crypto.go
    │   │   │   ├── doc.go
    │   │   │   ├── fs.go
    │   │   │   ├── fs_statfs_notype.go
    │   │   │   ├── fs_statfs_type.go
    │   │   │   ├── fscache.go
    │   │   │   ├── internal/
    │   │   │   │   ├── fs/
    │   │   │   │   │   └── fs.go
    │   │   │   │   └── util/
    │   │   │   │       ├── parse.go
    │   │   │   │       ├── readfile.go
    │   │   │   │       ├── sysreadfile.go
    │   │   │   │       ├── sysreadfile_compat.go
    │   │   │   │       └── valueparser.go
    │   │   │   ├── ipvs.go
    │   │   │   ├── kernel_random.go
    │   │   │   ├── loadavg.go
    │   │   │   ├── mdstat.go
    │   │   │   ├── meminfo.go
    │   │   │   ├── mountinfo.go
    │   │   │   ├── mountstats.go
    │   │   │   ├── net_conntrackstat.go
    │   │   │   ├── net_dev.go
    │   │   │   ├── net_ip_socket.go
    │   │   │   ├── net_protocols.go
    │   │   │   ├── net_route.go
    │   │   │   ├── net_sockstat.go
    │   │   │   ├── net_softnet.go
    │   │   │   ├── net_tcp.go
    │   │   │   ├── net_tls_stat.go
    │   │   │   ├── net_udp.go
    │   │   │   ├── net_unix.go
    │   │   │   ├── net_wireless.go
    │   │   │   ├── net_xfrm.go
    │   │   │   ├── netstat.go
    │   │   │   ├── proc.go
    │   │   │   ├── proc_cgroup.go
    │   │   │   ├── proc_cgroups.go
    │   │   │   ├── proc_environ.go
    │   │   │   ├── proc_fdinfo.go
    │   │   │   ├── proc_interrupts.go
    │   │   │   ├── proc_io.go
    │   │   │   ├── proc_limits.go
    │   │   │   ├── proc_maps.go
    │   │   │   ├── proc_netstat.go
    │   │   │   ├── proc_ns.go
    │   │   │   ├── proc_psi.go
    │   │   │   ├── proc_smaps.go
    │   │   │   ├── proc_snmp.go
    │   │   │   ├── proc_snmp6.go
    │   │   │   ├── proc_stat.go
    │   │   │   ├── proc_status.go
    │   │   │   ├── proc_sys.go
    │   │   │   ├── schedstat.go
    │   │   │   ├── slab.go
    │   │   │   ├── softirqs.go
    │   │   │   ├── stat.go
    │   │   │   ├── swaps.go
    │   │   │   ├── thread.go
    │   │   │   ├── ttar
    │   │   │   ├── vm.go
    │   │   │   └── zoneinfo.go
    │   │   └── statsd_exporter/
    │   │       ├── LICENSE
    │   │       ├── NOTICE
    │   │       └── pkg/
    │   │           ├── level/
    │   │           │   └── level.go
    │   │           └── mapper/
    │   │               ├── action.go
    │   │               ├── escape.go
    │   │               ├── fsm/
    │   │               │   ├── README.md
    │   │               │   ├── dump.go
    │   │               │   ├── formatter.go
    │   │               │   ├── fsm.go
    │   │               │   └── minmax.go
    │   │               ├── mapper.go
    │   │               ├── mapper_cache.go
    │   │               ├── mapper_defaults.go
    │   │               ├── mapping.go
    │   │               ├── match.go
    │   │               ├── metric_type.go
    │   │               └── observer.go
    │   ├── robfig/
    │   │   └── cron/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .travis.yml
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── chain.go
    │   │           ├── constantdelay.go
    │   │           ├── cron.go
    │   │           ├── doc.go
    │   │           ├── logger.go
    │   │           ├── option.go
    │   │           ├── parser.go
    │   │           └── spec.go
    │   ├── secure-systems-lab/
    │   │   └── go-securesystemslib/
    │   │       ├── LICENSE
    │   │       └── encrypted/
    │   │           └── encrypted.go
    │   ├── sigstore/
    │   │   ├── protobuf-specs/
    │   │   │   ├── COPYRIGHT.txt
    │   │   │   ├── LICENSE
    │   │   │   └── gen/
    │   │   │       └── pb-go/
    │   │   │           └── common/
    │   │   │               └── v1/
    │   │   │                   └── sigstore_common.pb.go
    │   │   └── sigstore/
    │   │       ├── COPYRIGHT.txt
    │   │       ├── LICENSE
    │   │       └── pkg/
    │   │           ├── cryptoutils/
    │   │           │   ├── certificate.go
    │   │           │   ├── doc.go
    │   │           │   ├── generic.go
    │   │           │   ├── password.go
    │   │           │   ├── privatekey.go
    │   │           │   ├── publickey.go
    │   │           │   └── sans.go
    │   │           └── signature/
    │   │               ├── algorithm_registry.go
    │   │               ├── doc.go
    │   │               ├── ecdsa.go
    │   │               ├── ed25519.go
    │   │               ├── ed25519ph.go
    │   │               ├── message.go
    │   │               ├── options/
    │   │               │   ├── context.go
    │   │               │   ├── digest.go
    │   │               │   ├── doc.go
    │   │               │   ├── keyversion.go
    │   │               │   ├── loadoptions.go
    │   │               │   ├── noop.go
    │   │               │   ├── rand.go
    │   │               │   ├── remoteverification.go
    │   │               │   ├── rpcauth.go
    │   │               │   └── signeropts.go
    │   │               ├── options.go
    │   │               ├── payload/
    │   │               │   ├── doc.go
    │   │               │   └── payload.go
    │   │               ├── publickey.go
    │   │               ├── rsapkcs1v15.go
    │   │               ├── rsapss.go
    │   │               ├── signer.go
    │   │               ├── signerverifier.go
    │   │               ├── util.go
    │   │               └── verifier.go
    │   ├── sourcegraph/
    │   │   └── conc/
    │   │       ├── .golangci.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── panics/
    │   │       │   ├── panics.go
    │   │       │   └── try.go
    │   │       ├── pool/
    │   │       │   ├── context_pool.go
    │   │       │   ├── error_pool.go
    │   │       │   ├── pool.go
    │   │       │   ├── result_context_pool.go
    │   │       │   ├── result_error_pool.go
    │   │       │   └── result_pool.go
    │   │       └── waitgroup.go
    │   ├── spf13/
    │   │   ├── afero/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yaml
    │   │   │   ├── LICENSE.txt
    │   │   │   ├── README.md
    │   │   │   ├── afero.go
    │   │   │   ├── appveyor.yml
    │   │   │   ├── basepath.go
    │   │   │   ├── cacheOnReadFs.go
    │   │   │   ├── const_bsds.go
    │   │   │   ├── const_win_unix.go
    │   │   │   ├── copyOnWriteFs.go
    │   │   │   ├── httpFs.go
    │   │   │   ├── internal/
    │   │   │   │   └── common/
    │   │   │   │       └── adapters.go
    │   │   │   ├── iofs.go
    │   │   │   ├── ioutil.go
    │   │   │   ├── lstater.go
    │   │   │   ├── match.go
    │   │   │   ├── mem/
    │   │   │   │   ├── dir.go
    │   │   │   │   ├── dirmap.go
    │   │   │   │   └── file.go
    │   │   │   ├── memmap.go
    │   │   │   ├── os.go
    │   │   │   ├── path.go
    │   │   │   ├── readonlyfs.go
    │   │   │   ├── regexpfs.go
    │   │   │   ├── symlink.go
    │   │   │   ├── unionFile.go
    │   │   │   └── util.go
    │   │   ├── cast/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yaml
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── alias.go
    │   │   │   ├── basic.go
    │   │   │   ├── cast.go
    │   │   │   ├── indirect.go
    │   │   │   ├── internal/
    │   │   │   │   ├── time.go
    │   │   │   │   └── timeformattype_string.go
    │   │   │   ├── map.go
    │   │   │   ├── number.go
    │   │   │   ├── slice.go
    │   │   │   ├── time.go
    │   │   │   └── zz_generated.go
    │   │   ├── cobra/
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── .mailmap
    │   │   │   ├── CONDUCT.md
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE.txt
    │   │   │   ├── MAINTAINERS
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── SECURITY.md
    │   │   │   ├── active_help.go
    │   │   │   ├── args.go
    │   │   │   ├── bash_completions.go
    │   │   │   ├── bash_completionsV2.go
    │   │   │   ├── cobra.go
    │   │   │   ├── command.go
    │   │   │   ├── command_notwin.go
    │   │   │   ├── command_win.go
    │   │   │   ├── completions.go
    │   │   │   ├── fish_completions.go
    │   │   │   ├── flag_groups.go
    │   │   │   ├── powershell_completions.go
    │   │   │   ├── shell_completions.go
    │   │   │   └── zsh_completions.go
    │   │   └── pflag/
    │   │       ├── .editorconfig
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── bool.go
    │   │       ├── bool_func.go
    │   │       ├── bool_slice.go
    │   │       ├── bytes.go
    │   │       ├── count.go
    │   │       ├── duration.go
    │   │       ├── duration_slice.go
    │   │       ├── errors.go
    │   │       ├── flag.go
    │   │       ├── float32.go
    │   │       ├── float32_slice.go
    │   │       ├── float64.go
    │   │       ├── float64_slice.go
    │   │       ├── func.go
    │   │       ├── golangflag.go
    │   │       ├── int.go
    │   │       ├── int16.go
    │   │       ├── int32.go
    │   │       ├── int32_slice.go
    │   │       ├── int64.go
    │   │       ├── int64_slice.go
    │   │       ├── int8.go
    │   │       ├── int_slice.go
    │   │       ├── ip.go
    │   │       ├── ip_slice.go
    │   │       ├── ipmask.go
    │   │       ├── ipnet.go
    │   │       ├── ipnet_slice.go
    │   │       ├── string.go
    │   │       ├── string_array.go
    │   │       ├── string_slice.go
    │   │       ├── string_to_int.go
    │   │       ├── string_to_int64.go
    │   │       ├── string_to_string.go
    │   │       ├── text.go
    │   │       ├── time.go
    │   │       ├── uint.go
    │   │       ├── uint16.go
    │   │       ├── uint32.go
    │   │       ├── uint64.go
    │   │       ├── uint8.go
    │   │       └── uint_slice.go
    │   ├── stretchr/
    │   │   └── testify/
    │   │       ├── LICENSE
    │   │       ├── assert/
    │   │       │   ├── assertion_compare.go
    │   │       │   ├── assertion_format.go
    │   │       │   ├── assertion_format.go.tmpl
    │   │       │   ├── assertion_forward.go
    │   │       │   ├── assertion_forward.go.tmpl
    │   │       │   ├── assertion_order.go
    │   │       │   ├── assertions.go
    │   │       │   ├── doc.go
    │   │       │   ├── errors.go
    │   │       │   ├── forward_assertions.go
    │   │       │   ├── http_assertions.go
    │   │       │   └── yaml/
    │   │       │       ├── yaml_custom.go
    │   │       │       ├── yaml_default.go
    │   │       │       └── yaml_fail.go
    │   │       └── require/
    │   │           ├── doc.go
    │   │           ├── forward_requirements.go
    │   │           ├── require.go
    │   │           ├── require.go.tmpl
    │   │           ├── require_forward.go
    │   │           ├── require_forward.go.tmpl
    │   │           └── requirements.go
    │   ├── subosito/
    │   │   └── gotenv/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── gotenv.go
    │   ├── tektoncd/
    │   │   ├── pipeline/
    │   │   │   ├── LICENSE
    │   │   │   ├── internal/
    │   │   │   │   └── artifactref/
    │   │   │   │       └── artifactref.go
    │   │   │   ├── pkg/
    │   │   │   │   ├── apis/
    │   │   │   │   │   ├── config/
    │   │   │   │   │   │   ├── default.go
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   ├── events.go
    │   │   │   │   │   │   ├── feature_flags.go
    │   │   │   │   │   │   ├── featureflags_validation.go
    │   │   │   │   │   │   ├── metrics.go
    │   │   │   │   │   │   ├── metrics_notls.go
    │   │   │   │   │   │   ├── metrics_tls.go
    │   │   │   │   │   │   ├── resolver/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── feature_flags.go
    │   │   │   │   │   │   │   ├── store.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   ├── spire_config.go
    │   │   │   │   │   │   ├── store.go
    │   │   │   │   │   │   ├── tracing.go
    │   │   │   │   │   │   ├── wait_exponential_backoff.go
    │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── pipeline/
    │   │   │   │   │   │   ├── constant.go
    │   │   │   │   │   │   ├── controller.go
    │   │   │   │   │   │   ├── errors/
    │   │   │   │   │   │   │   └── errors.go
    │   │   │   │   │   │   ├── images.go
    │   │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   │   └── checksum/
    │   │   │   │   │   │   │       └── checksum.go
    │   │   │   │   │   │   ├── options.go
    │   │   │   │   │   │   ├── paths.go
    │   │   │   │   │   │   ├── pod/
    │   │   │   │   │   │   │   ├── affinity_assitant_template.go
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── template.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   ├── sidecarlogs.go
    │   │   │   │   │   │   ├── v1/
    │   │   │   │   │   │   │   ├── artifact_types.go
    │   │   │   │   │   │   │   ├── container_types.go
    │   │   │   │   │   │   │   ├── container_validation.go
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── matrix_types.go
    │   │   │   │   │   │   │   ├── merge.go
    │   │   │   │   │   │   │   ├── openapi_generated.go
    │   │   │   │   │   │   │   ├── param_types.go
    │   │   │   │   │   │   │   ├── pipeline_conversion.go
    │   │   │   │   │   │   │   ├── pipeline_defaults.go
    │   │   │   │   │   │   │   ├── pipeline_types.go
    │   │   │   │   │   │   │   ├── pipeline_validation.go
    │   │   │   │   │   │   │   ├── pipelineref_types.go
    │   │   │   │   │   │   │   ├── pipelineref_validation.go
    │   │   │   │   │   │   │   ├── pipelinerun_conversion.go
    │   │   │   │   │   │   │   ├── pipelinerun_defaults.go
    │   │   │   │   │   │   │   ├── pipelinerun_types.go
    │   │   │   │   │   │   │   ├── pipelinerun_validation.go
    │   │   │   │   │   │   │   ├── provenance.go
    │   │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   │   ├── resolver_types.go
    │   │   │   │   │   │   │   ├── result_defaults.go
    │   │   │   │   │   │   │   ├── result_types.go
    │   │   │   │   │   │   │   ├── result_validation.go
    │   │   │   │   │   │   │   ├── resultref.go
    │   │   │   │   │   │   │   ├── swagger.json
    │   │   │   │   │   │   │   ├── task_conversion.go
    │   │   │   │   │   │   │   ├── task_defaults.go
    │   │   │   │   │   │   │   ├── task_types.go
    │   │   │   │   │   │   │   ├── task_validation.go
    │   │   │   │   │   │   │   ├── taskref_types.go
    │   │   │   │   │   │   │   ├── taskref_validation.go
    │   │   │   │   │   │   │   ├── taskrun_conversion.go
    │   │   │   │   │   │   │   ├── taskrun_defaults.go
    │   │   │   │   │   │   │   ├── taskrun_types.go
    │   │   │   │   │   │   │   ├── taskrun_validation.go
    │   │   │   │   │   │   │   ├── when_types.go
    │   │   │   │   │   │   │   ├── when_validation.go
    │   │   │   │   │   │   │   ├── workspace_types.go
    │   │   │   │   │   │   │   ├── workspace_validation.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── openapi_generated.go
    │   │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   │   ├── run_defaults.go
    │   │   │   │   │   │   │   ├── run_types.go
    │   │   │   │   │   │   │   ├── run_validation.go
    │   │   │   │   │   │   │   ├── stepaction_conversion.go
    │   │   │   │   │   │   │   ├── stepaction_defaults.go
    │   │   │   │   │   │   │   ├── stepaction_types.go
    │   │   │   │   │   │   │   ├── stepaction_validation.go
    │   │   │   │   │   │   │   ├── swagger.json
    │   │   │   │   │   │   │   ├── verificationpolicy_defaults.go
    │   │   │   │   │   │   │   ├── verificationpolicy_types.go
    │   │   │   │   │   │   │   ├── verificationpolicy_validation.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   └── v1beta1/
    │   │   │   │   │   │       ├── artifact_types.go
    │   │   │   │   │   │       ├── container_conversion.go
    │   │   │   │   │   │       ├── container_types.go
    │   │   │   │   │   │       ├── container_validation.go
    │   │   │   │   │   │       ├── conversion_error.go
    │   │   │   │   │   │       ├── customrun_defaults.go
    │   │   │   │   │   │       ├── customrun_types.go
    │   │   │   │   │   │       ├── customrun_validation.go
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       ├── matrix_types.go
    │   │   │   │   │   │       ├── merge.go
    │   │   │   │   │   │       ├── openapi_generated.go
    │   │   │   │   │   │       ├── param_conversion.go
    │   │   │   │   │   │       ├── param_types.go
    │   │   │   │   │   │       ├── pipeline_conversion.go
    │   │   │   │   │   │       ├── pipeline_defaults.go
    │   │   │   │   │   │       ├── pipeline_interface.go
    │   │   │   │   │   │       ├── pipeline_types.go
    │   │   │   │   │   │       ├── pipeline_validation.go
    │   │   │   │   │   │       ├── pipelineref_conversion.go
    │   │   │   │   │   │       ├── pipelineref_types.go
    │   │   │   │   │   │       ├── pipelineref_validation.go
    │   │   │   │   │   │       ├── pipelinerun_conversion.go
    │   │   │   │   │   │       ├── pipelinerun_defaults.go
    │   │   │   │   │   │       ├── pipelinerun_types.go
    │   │   │   │   │   │       ├── pipelinerun_validation.go
    │   │   │   │   │   │       ├── provenance.go
    │   │   │   │   │   │       ├── provenance_conversion.go
    │   │   │   │   │   │       ├── register.go
    │   │   │   │   │   │       ├── resolver_conversion.go
    │   │   │   │   │   │       ├── resolver_types.go
    │   │   │   │   │   │       ├── resource_types.go
    │   │   │   │   │   │       ├── result_conversion.go
    │   │   │   │   │   │       ├── result_defaults.go
    │   │   │   │   │   │       ├── result_types.go
    │   │   │   │   │   │       ├── result_validation.go
    │   │   │   │   │   │       ├── resultref.go
    │   │   │   │   │   │       ├── run_interface.go
    │   │   │   │   │   │       ├── stepaction_conversion.go
    │   │   │   │   │   │       ├── stepaction_defaults.go
    │   │   │   │   │   │       ├── stepaction_types.go
    │   │   │   │   │   │       ├── stepaction_validation.go
    │   │   │   │   │   │       ├── swagger.json
    │   │   │   │   │   │       ├── task_conversion.go
    │   │   │   │   │   │       ├── task_defaults.go
    │   │   │   │   │   │       ├── task_interface.go
    │   │   │   │   │   │       ├── task_types.go
    │   │   │   │   │   │       ├── task_validation.go
    │   │   │   │   │   │       ├── taskref_conversion.go
    │   │   │   │   │   │       ├── taskref_types.go
    │   │   │   │   │   │       ├── taskref_validation.go
    │   │   │   │   │   │       ├── taskrun_conversion.go
    │   │   │   │   │   │       ├── taskrun_defaults.go
    │   │   │   │   │   │       ├── taskrun_types.go
    │   │   │   │   │   │       ├── taskrun_validation.go
    │   │   │   │   │   │       ├── when_types.go
    │   │   │   │   │   │       ├── when_validation.go
    │   │   │   │   │   │       ├── workspace_conversion.go
    │   │   │   │   │   │       ├── workspace_types.go
    │   │   │   │   │   │       ├── workspace_validation.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── resolution/
    │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   │   ├── resolution_request_conversion.go
    │   │   │   │   │   │   │   ├── resolution_request_defaults.go
    │   │   │   │   │   │   │   ├── resolution_request_lifecycle.go
    │   │   │   │   │   │   │   ├── resolution_request_types.go
    │   │   │   │   │   │   │   ├── resolution_request_validation.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   └── v1beta1/
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       ├── register.go
    │   │   │   │   │   │       ├── resolution_request_conversion.go
    │   │   │   │   │   │       ├── resolution_request_defaults.go
    │   │   │   │   │   │       ├── resolution_request_lifecycle.go
    │   │   │   │   │   │       ├── resolution_request_types.go
    │   │   │   │   │   │       ├── resolution_request_validation.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── resource/
    │   │   │   │   │   │   └── v1alpha1/
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       ├── pipeline_resource_types.go
    │   │   │   │   │   │       ├── register.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── run/
    │   │   │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── runstatus_types.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   └── v1beta1/
    │   │   │   │   │   │       ├── customrunstatus_types.go
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── validate/
    │   │   │   │   │   │   └── metadata.go
    │   │   │   │   │   └── version/
    │   │   │   │   │       ├── conversion.go
    │   │   │   │   │       └── featureflags_validation.go
    │   │   │   │   ├── client/
    │   │   │   │   │   ├── clientset/
    │   │   │   │   │   │   └── versioned/
    │   │   │   │   │   │       ├── clientset.go
    │   │   │   │   │   │       ├── fake/
    │   │   │   │   │   │       │   ├── clientset_generated.go
    │   │   │   │   │   │       │   ├── doc.go
    │   │   │   │   │   │       │   └── register.go
    │   │   │   │   │   │       ├── scheme/
    │   │   │   │   │   │       │   ├── doc.go
    │   │   │   │   │   │       │   └── register.go
    │   │   │   │   │   │       └── typed/
    │   │   │   │   │   │           └── pipeline/
    │   │   │   │   │   │               ├── v1/
    │   │   │   │   │   │               │   ├── doc.go
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   ├── doc.go
    │   │   │   │   │   │               │   │   ├── fake_pipeline.go
    │   │   │   │   │   │               │   │   ├── fake_pipeline_client.go
    │   │   │   │   │   │               │   │   ├── fake_pipelinerun.go
    │   │   │   │   │   │               │   │   ├── fake_task.go
    │   │   │   │   │   │               │   │   └── fake_taskrun.go
    │   │   │   │   │   │               │   ├── generated_expansion.go
    │   │   │   │   │   │               │   ├── pipeline.go
    │   │   │   │   │   │               │   ├── pipeline_client.go
    │   │   │   │   │   │               │   ├── pipelinerun.go
    │   │   │   │   │   │               │   ├── task.go
    │   │   │   │   │   │               │   └── taskrun.go
    │   │   │   │   │   │               ├── v1alpha1/
    │   │   │   │   │   │               │   ├── doc.go
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   ├── doc.go
    │   │   │   │   │   │               │   │   ├── fake_pipeline_client.go
    │   │   │   │   │   │               │   │   ├── fake_run.go
    │   │   │   │   │   │               │   │   ├── fake_stepaction.go
    │   │   │   │   │   │               │   │   └── fake_verificationpolicy.go
    │   │   │   │   │   │               │   ├── generated_expansion.go
    │   │   │   │   │   │               │   ├── pipeline_client.go
    │   │   │   │   │   │               │   ├── run.go
    │   │   │   │   │   │               │   ├── stepaction.go
    │   │   │   │   │   │               │   └── verificationpolicy.go
    │   │   │   │   │   │               └── v1beta1/
    │   │   │   │   │   │                   ├── customrun.go
    │   │   │   │   │   │                   ├── doc.go
    │   │   │   │   │   │                   ├── fake/
    │   │   │   │   │   │                   │   ├── doc.go
    │   │   │   │   │   │                   │   ├── fake_customrun.go
    │   │   │   │   │   │                   │   ├── fake_pipeline.go
    │   │   │   │   │   │                   │   ├── fake_pipeline_client.go
    │   │   │   │   │   │                   │   ├── fake_pipelinerun.go
    │   │   │   │   │   │                   │   ├── fake_stepaction.go
    │   │   │   │   │   │                   │   ├── fake_task.go
    │   │   │   │   │   │                   │   └── fake_taskrun.go
    │   │   │   │   │   │                   ├── generated_expansion.go
    │   │   │   │   │   │                   ├── pipeline.go
    │   │   │   │   │   │                   ├── pipeline_client.go
    │   │   │   │   │   │                   ├── pipelinerun.go
    │   │   │   │   │   │                   ├── stepaction.go
    │   │   │   │   │   │                   ├── task.go
    │   │   │   │   │   │                   └── taskrun.go
    │   │   │   │   │   ├── informers/
    │   │   │   │   │   │   └── externalversions/
    │   │   │   │   │   │       ├── factory.go
    │   │   │   │   │   │       ├── generic.go
    │   │   │   │   │   │       ├── internalinterfaces/
    │   │   │   │   │   │       │   └── factory_interfaces.go
    │   │   │   │   │   │       └── pipeline/
    │   │   │   │   │   │           ├── interface.go
    │   │   │   │   │   │           ├── v1/
    │   │   │   │   │   │           │   ├── interface.go
    │   │   │   │   │   │           │   ├── pipeline.go
    │   │   │   │   │   │           │   ├── pipelinerun.go
    │   │   │   │   │   │           │   ├── task.go
    │   │   │   │   │   │           │   └── taskrun.go
    │   │   │   │   │   │           ├── v1alpha1/
    │   │   │   │   │   │           │   ├── interface.go
    │   │   │   │   │   │           │   ├── run.go
    │   │   │   │   │   │           │   ├── stepaction.go
    │   │   │   │   │   │           │   └── verificationpolicy.go
    │   │   │   │   │   │           └── v1beta1/
    │   │   │   │   │   │               ├── customrun.go
    │   │   │   │   │   │               ├── interface.go
    │   │   │   │   │   │               ├── pipeline.go
    │   │   │   │   │   │               ├── pipelinerun.go
    │   │   │   │   │   │               ├── stepaction.go
    │   │   │   │   │   │               ├── task.go
    │   │   │   │   │   │               └── taskrun.go
    │   │   │   │   │   ├── injection/
    │   │   │   │   │   │   ├── client/
    │   │   │   │   │   │   │   ├── client.go
    │   │   │   │   │   │   │   └── fake/
    │   │   │   │   │   │   │       └── fake.go
    │   │   │   │   │   │   └── informers/
    │   │   │   │   │   │       ├── factory/
    │   │   │   │   │   │       │   ├── factory.go
    │   │   │   │   │   │       │   └── fake/
    │   │   │   │   │   │       │       └── fake.go
    │   │   │   │   │   │       └── pipeline/
    │   │   │   │   │   │           ├── v1/
    │   │   │   │   │   │           │   ├── pipeline/
    │   │   │   │   │   │           │   │   ├── fake/
    │   │   │   │   │   │           │   │   │   └── fake.go
    │   │   │   │   │   │           │   │   └── pipeline.go
    │   │   │   │   │   │           │   ├── pipelinerun/
    │   │   │   │   │   │           │   │   ├── fake/
    │   │   │   │   │   │           │   │   │   └── fake.go
    │   │   │   │   │   │           │   │   └── pipelinerun.go
    │   │   │   │   │   │           │   ├── task/
    │   │   │   │   │   │           │   │   ├── fake/
    │   │   │   │   │   │           │   │   │   └── fake.go
    │   │   │   │   │   │           │   │   └── task.go
    │   │   │   │   │   │           │   └── taskrun/
    │   │   │   │   │   │           │       ├── fake/
    │   │   │   │   │   │           │       │   └── fake.go
    │   │   │   │   │   │           │       └── taskrun.go
    │   │   │   │   │   │           ├── v1alpha1/
    │   │   │   │   │   │           │   └── verificationpolicy/
    │   │   │   │   │   │           │       ├── fake/
    │   │   │   │   │   │           │       │   └── fake.go
    │   │   │   │   │   │           │       └── verificationpolicy.go
    │   │   │   │   │   │           └── v1beta1/
    │   │   │   │   │   │               ├── customrun/
    │   │   │   │   │   │               │   ├── customrun.go
    │   │   │   │   │   │               │   └── fake/
    │   │   │   │   │   │               │       └── fake.go
    │   │   │   │   │   │               ├── pipeline/
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   └── fake.go
    │   │   │   │   │   │               │   └── pipeline.go
    │   │   │   │   │   │               ├── stepaction/
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   └── fake.go
    │   │   │   │   │   │               │   └── stepaction.go
    │   │   │   │   │   │               └── task/
    │   │   │   │   │   │                   ├── fake/
    │   │   │   │   │   │                   │   └── fake.go
    │   │   │   │   │   │                   └── task.go
    │   │   │   │   │   ├── listers/
    │   │   │   │   │   │   └── pipeline/
    │   │   │   │   │   │       ├── v1/
    │   │   │   │   │   │       │   ├── expansion_generated.go
    │   │   │   │   │   │       │   ├── pipeline.go
    │   │   │   │   │   │       │   ├── pipelinerun.go
    │   │   │   │   │   │       │   ├── task.go
    │   │   │   │   │   │       │   └── taskrun.go
    │   │   │   │   │   │       ├── v1alpha1/
    │   │   │   │   │   │       │   ├── expansion_generated.go
    │   │   │   │   │   │       │   ├── run.go
    │   │   │   │   │   │       │   ├── stepaction.go
    │   │   │   │   │   │       │   └── verificationpolicy.go
    │   │   │   │   │   │       └── v1beta1/
    │   │   │   │   │   │           ├── customrun.go
    │   │   │   │   │   │           ├── expansion_generated.go
    │   │   │   │   │   │           ├── pipeline.go
    │   │   │   │   │   │           ├── pipelinerun.go
    │   │   │   │   │   │           ├── stepaction.go
    │   │   │   │   │   │           ├── task.go
    │   │   │   │   │   │           └── taskrun.go
    │   │   │   │   │   └── resolution/
    │   │   │   │   │       ├── clientset/
    │   │   │   │   │       │   └── versioned/
    │   │   │   │   │       │       ├── clientset.go
    │   │   │   │   │       │       ├── fake/
    │   │   │   │   │       │       │   ├── clientset_generated.go
    │   │   │   │   │       │       │   ├── doc.go
    │   │   │   │   │       │       │   └── register.go
    │   │   │   │   │       │       ├── scheme/
    │   │   │   │   │       │       │   ├── doc.go
    │   │   │   │   │       │       │   └── register.go
    │   │   │   │   │       │       └── typed/
    │   │   │   │   │       │           └── resolution/
    │   │   │   │   │       │               ├── v1alpha1/
    │   │   │   │   │       │               │   ├── doc.go
    │   │   │   │   │       │               │   ├── fake/
    │   │   │   │   │       │               │   │   ├── doc.go
    │   │   │   │   │       │               │   │   ├── fake_resolution_client.go
    │   │   │   │   │       │               │   │   └── fake_resolutionrequest.go
    │   │   │   │   │       │               │   ├── generated_expansion.go
    │   │   │   │   │       │               │   ├── resolution_client.go
    │   │   │   │   │       │               │   └── resolutionrequest.go
    │   │   │   │   │       │               └── v1beta1/
    │   │   │   │   │       │                   ├── doc.go
    │   │   │   │   │       │                   ├── fake/
    │   │   │   │   │       │                   │   ├── doc.go
    │   │   │   │   │       │                   │   ├── fake_resolution_client.go
    │   │   │   │   │       │                   │   └── fake_resolutionrequest.go
    │   │   │   │   │       │                   ├── generated_expansion.go
    │   │   │   │   │       │                   ├── resolution_client.go
    │   │   │   │   │       │                   └── resolutionrequest.go
    │   │   │   │   │       ├── informers/
    │   │   │   │   │       │   └── externalversions/
    │   │   │   │   │       │       ├── factory.go
    │   │   │   │   │       │       ├── generic.go
    │   │   │   │   │       │       ├── internalinterfaces/
    │   │   │   │   │       │       │   └── factory_interfaces.go
    │   │   │   │   │       │       └── resolution/
    │   │   │   │   │       │           ├── interface.go
    │   │   │   │   │       │           ├── v1alpha1/
    │   │   │   │   │       │           │   ├── interface.go
    │   │   │   │   │       │           │   └── resolutionrequest.go
    │   │   │   │   │       │           └── v1beta1/
    │   │   │   │   │       │               ├── interface.go
    │   │   │   │   │       │               └── resolutionrequest.go
    │   │   │   │   │       ├── injection/
    │   │   │   │   │       │   ├── client/
    │   │   │   │   │       │   │   ├── client.go
    │   │   │   │   │       │   │   └── fake/
    │   │   │   │   │       │   │       └── fake.go
    │   │   │   │   │       │   └── informers/
    │   │   │   │   │       │       ├── factory/
    │   │   │   │   │       │       │   ├── factory.go
    │   │   │   │   │       │       │   └── fake/
    │   │   │   │   │       │       │       └── fake.go
    │   │   │   │   │       │       └── resolution/
    │   │   │   │   │       │           └── v1beta1/
    │   │   │   │   │       │               └── resolutionrequest/
    │   │   │   │   │       │                   ├── fake/
    │   │   │   │   │       │                   │   └── fake.go
    │   │   │   │   │       │                   └── resolutionrequest.go
    │   │   │   │   │       └── listers/
    │   │   │   │   │           └── resolution/
    │   │   │   │   │               ├── v1alpha1/
    │   │   │   │   │               │   ├── expansion_generated.go
    │   │   │   │   │               │   └── resolutionrequest.go
    │   │   │   │   │               └── v1beta1/
    │   │   │   │   │                   ├── expansion_generated.go
    │   │   │   │   │                   └── resolutionrequest.go
    │   │   │   │   ├── internal/
    │   │   │   │   │   └── resultref/
    │   │   │   │   │       └── resultref.go
    │   │   │   │   ├── list/
    │   │   │   │   │   └── diff.go
    │   │   │   │   ├── names/
    │   │   │   │   │   └── generate.go
    │   │   │   │   ├── reconciler/
    │   │   │   │   │   ├── apiserver/
    │   │   │   │   │   │   └── apiserver.go
    │   │   │   │   │   ├── events/
    │   │   │   │   │   │   ├── cache/
    │   │   │   │   │   │   │   ├── cache.go
    │   │   │   │   │   │   │   ├── cacheclient.go
    │   │   │   │   │   │   │   └── cachefakeclient.go
    │   │   │   │   │   │   └── cloudevent/
    │   │   │   │   │   │       ├── cloud_event_controller.go
    │   │   │   │   │   │       ├── cloudevent.go
    │   │   │   │   │   │       ├── cloudeventclient.go
    │   │   │   │   │   │       ├── cloudeventsfakeclient.go
    │   │   │   │   │   │       └── interface.go
    │   │   │   │   │   ├── pipeline/
    │   │   │   │   │   │   └── dag/
    │   │   │   │   │   │       └── dag.go
    │   │   │   │   │   └── testing/
    │   │   │   │   │       ├── configmap.go
    │   │   │   │   │       ├── factory.go
    │   │   │   │   │       ├── logger.go
    │   │   │   │   │       └── status.go
    │   │   │   │   ├── remote/
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── oci/
    │   │   │   │   │   │   └── resolver.go
    │   │   │   │   │   └── resolver.go
    │   │   │   │   ├── remoteresolution/
    │   │   │   │   │   └── resolver/
    │   │   │   │   │       └── framework/
    │   │   │   │   │           └── cache/
    │   │   │   │   │               ├── annotated_resource.go
    │   │   │   │   │               ├── cache.go
    │   │   │   │   │               ├── clock.go
    │   │   │   │   │               ├── configstore.go
    │   │   │   │   │               ├── operations.go
    │   │   │   │   │               └── setup.go
    │   │   │   │   ├── resolution/
    │   │   │   │   │   ├── common/
    │   │   │   │   │   │   ├── annotations.go
    │   │   │   │   │   │   ├── context.go
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   ├── errors.go
    │   │   │   │   │   │   ├── interface.go
    │   │   │   │   │   │   ├── labels.go
    │   │   │   │   │   │   ├── messages.go
    │   │   │   │   │   │   └── statuses.go
    │   │   │   │   │   └── resolver/
    │   │   │   │   │       └── framework/
    │   │   │   │   │           ├── configstore.go
    │   │   │   │   │           ├── controller.go
    │   │   │   │   │           ├── fakeresolver.go
    │   │   │   │   │           ├── interface.go
    │   │   │   │   │           └── reconciler.go
    │   │   │   │   ├── result/
    │   │   │   │   │   └── result.go
    │   │   │   │   ├── spire/
    │   │   │   │   │   └── config/
    │   │   │   │   │       ├── config.go
    │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   └── substitution/
    │   │   │   │       ├── replacements.go
    │   │   │   │       └── substitution.go
    │   │   │   └── test/
    │   │   │       ├── OWNERS
    │   │   │       ├── README.md
    │   │   │       ├── build_logs.go
    │   │   │       ├── clients.go
    │   │   │       ├── columns.txt
    │   │   │       ├── controller.go
    │   │   │       ├── diff/
    │   │   │       │   └── print.go
    │   │   │       ├── doc.go
    │   │   │       ├── e2e-common.sh
    │   │   │       ├── e2e-tests-kind-alpha.env
    │   │   │       ├── e2e-tests-kind-beta.env
    │   │   │       ├── e2e-tests-kind-prow-feature-flags.env
    │   │   │       ├── e2e-tests-kind-stable.env
    │   │   │       ├── e2e-tests-kind.env
    │   │   │       ├── e2e-tests-upgrade.sh
    │   │   │       ├── e2e-tests.sh
    │   │   │       ├── featureflags.go
    │   │   │       ├── kubectl.go
    │   │   │       ├── markdown-lint-config.rc
    │   │   │       ├── multiarch_utils.go
    │   │   │       ├── parse/
    │   │   │       │   └── yaml.go
    │   │   │       ├── path_filtering.go
    │   │   │       ├── presubmit-tests.sh
    │   │   │       ├── remote.go
    │   │   │       ├── secret.go
    │   │   │       ├── trustedresources.go
    │   │   │       ├── util.go
    │   │   │       └── wait.go
    │   │   └── plumbing/
    │   │       ├── .gitignore
    │   │       ├── .yamllint
    │   │       ├── CONTRIBUTING.md
    │   │       ├── DEVELOPMENT.md
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── OWNERS
    │   │       ├── README.md
    │   │       ├── adjustpermissions.py
    │   │       ├── code-of-conduct.md
    │   │       ├── demo
    │   │       ├── dummy.go
    │   │       ├── requirements.txt
    │   │       ├── roadmap.md
    │   │       └── scripts/
    │   │           ├── README.md
    │   │           ├── deploy-release.sh
    │   │           ├── dummy.go
    │   │           ├── e2e-tests.sh
    │   │           ├── library.sh
    │   │           ├── markdown-link-check-config.rc
    │   │           ├── markdown-lint-config.rc
    │   │           └── presubmit-tests.sh
    │   ├── titanous/
    │   │   └── rocacheck/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── rocacheck.go
    │   ├── vbatts/
    │   │   └── tar-split/
    │   │       ├── LICENSE
    │   │       └── archive/
    │   │           └── tar/
    │   │               ├── common.go
    │   │               ├── format.go
    │   │               ├── reader.go
    │   │               ├── stat_actime1.go
    │   │               ├── stat_actime2.go
    │   │               ├── stat_unix.go
    │   │               ├── strconv.go
    │   │               └── writer.go
    │   └── x448/
    │       └── float16/
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── README.md
    │           └── float16.go
    ├── go.opencensus.io/
    │   ├── .gitignore
    │   ├── AUTHORS
    │   ├── CONTRIBUTING.md
    │   ├── LICENSE
    │   ├── Makefile
    │   ├── README.md
    │   ├── appveyor.yml
    │   ├── internal/
    │   │   ├── internal.go
    │   │   ├── sanitize.go
    │   │   ├── tagencoding/
    │   │   │   └── tagencoding.go
    │   │   └── traceinternals.go
    │   ├── metric/
    │   │   ├── metricdata/
    │   │   │   ├── doc.go
    │   │   │   ├── exemplar.go
    │   │   │   ├── label.go
    │   │   │   ├── metric.go
    │   │   │   ├── point.go
    │   │   │   ├── type_string.go
    │   │   │   └── unit.go
    │   │   ├── metricexport/
    │   │   │   ├── doc.go
    │   │   │   ├── export.go
    │   │   │   └── reader.go
    │   │   └── metricproducer/
    │   │       ├── manager.go
    │   │       └── producer.go
    │   ├── opencensus.go
    │   ├── plugin/
    │   │   ├── ocgrpc/
    │   │   │   ├── client.go
    │   │   │   ├── client_metrics.go
    │   │   │   ├── client_stats_handler.go
    │   │   │   ├── doc.go
    │   │   │   ├── server.go
    │   │   │   ├── server_metrics.go
    │   │   │   ├── server_stats_handler.go
    │   │   │   ├── stats_common.go
    │   │   │   └── trace_common.go
    │   │   └── ochttp/
    │   │       ├── client.go
    │   │       ├── client_stats.go
    │   │       ├── doc.go
    │   │       ├── propagation/
    │   │       │   ├── b3/
    │   │       │   │   └── b3.go
    │   │       │   └── tracecontext/
    │   │       │       └── propagation.go
    │   │       ├── route.go
    │   │       ├── server.go
    │   │       ├── span_annotating_client_trace.go
    │   │       ├── stats.go
    │   │       ├── trace.go
    │   │       └── wrapped_body.go
    │   ├── resource/
    │   │   └── resource.go
    │   ├── stats/
    │   │   ├── doc.go
    │   │   ├── internal/
    │   │   │   └── record.go
    │   │   ├── measure.go
    │   │   ├── measure_float64.go
    │   │   ├── measure_int64.go
    │   │   ├── record.go
    │   │   ├── units.go
    │   │   └── view/
    │   │       ├── aggregation.go
    │   │       ├── aggregation_data.go
    │   │       ├── collector.go
    │   │       ├── doc.go
    │   │       ├── export.go
    │   │       ├── view.go
    │   │       ├── view_to_metric.go
    │   │       ├── worker.go
    │   │       └── worker_commands.go
    │   ├── tag/
    │   │   ├── context.go
    │   │   ├── doc.go
    │   │   ├── key.go
    │   │   ├── map.go
    │   │   ├── map_codec.go
    │   │   ├── metadata.go
    │   │   ├── profile_19.go
    │   │   ├── profile_not19.go
    │   │   └── validate.go
    │   └── trace/
    │       ├── basetypes.go
    │       ├── config.go
    │       ├── doc.go
    │       ├── evictedqueue.go
    │       ├── export.go
    │       ├── internal/
    │       │   └── internal.go
    │       ├── lrumap.go
    │       ├── propagation/
    │       │   └── propagation.go
    │       ├── sampling.go
    │       ├── spanbucket.go
    │       ├── spanstore.go
    │       ├── status_codes.go
    │       ├── trace.go
    │       ├── trace_api.go
    │       ├── trace_go11.go
    │       ├── trace_nongo11.go
    │       └── tracestate/
    │           └── tracestate.go
    ├── go.yaml.in/
    │   └── yaml/
    │       ├── v2/
    │       │   ├── .travis.yml
    │       │   ├── LICENSE
    │       │   ├── LICENSE.libyaml
    │       │   ├── NOTICE
    │       │   ├── README.md
    │       │   ├── apic.go
    │       │   ├── decode.go
    │       │   ├── emitterc.go
    │       │   ├── encode.go
    │       │   ├── parserc.go
    │       │   ├── readerc.go
    │       │   ├── resolve.go
    │       │   ├── scannerc.go
    │       │   ├── sorter.go
    │       │   ├── writerc.go
    │       │   ├── yaml.go
    │       │   ├── yamlh.go
    │       │   └── yamlprivateh.go
    │       └── v3/
    │           ├── LICENSE
    │           ├── NOTICE
    │           ├── README.md
    │           ├── apic.go
    │           ├── decode.go
    │           ├── emitterc.go
    │           ├── encode.go
    │           ├── parserc.go
    │           ├── readerc.go
    │           ├── resolve.go
    │           ├── scannerc.go
    │           ├── sorter.go
    │           ├── writerc.go
    │           ├── yaml.go
    │           ├── yamlh.go
    │           └── yamlprivateh.go
    ├── goa.design/
    │   ├── goa/
    │   │   └── v3/
    │   │       ├── LICENSE
    │   │       ├── codegen/
    │   │       │   ├── cli/
    │   │       │   │   ├── cli.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── build_payload.go.tpl
    │   │       │   │   │   ├── command_usage.go.tpl
    │   │       │   │   │   ├── parse_flags.go.tpl
    │   │       │   │   │   ├── usage_commands.go.tpl
    │   │       │   │   │   └── usage_examples.go.tpl
    │   │       │   │   └── templates.go
    │   │       │   ├── doc.go
    │   │       │   ├── example/
    │   │       │   │   ├── docs.go
    │   │       │   │   ├── example_client.go
    │   │       │   │   ├── example_server.go
    │   │       │   │   ├── server_data.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── client_end.go.tpl
    │   │       │   │   │   ├── client_endpoint_init.go.tpl
    │   │       │   │   │   ├── client_start.go.tpl
    │   │       │   │   │   ├── client_usage.go.tpl
    │   │       │   │   │   ├── client_var_init.go.tpl
    │   │       │   │   │   ├── server_end.go.tpl
    │   │       │   │   │   ├── server_endpoints.go.tpl
    │   │       │   │   │   ├── server_handler.go.tpl
    │   │       │   │   │   ├── server_interceptors.go.tpl
    │   │       │   │   │   ├── server_interrupts.go.tpl
    │   │       │   │   │   ├── server_logger.go.tpl
    │   │       │   │   │   ├── server_services.go.tpl
    │   │       │   │   │   └── server_start.go.tpl
    │   │       │   │   └── templates.go
    │   │       │   ├── file.go
    │   │       │   ├── funcs.go
    │   │       │   ├── generator/
    │   │       │   │   ├── docs.go
    │   │       │   │   ├── example.go
    │   │       │   │   ├── generate.go
    │   │       │   │   ├── generators.go
    │   │       │   │   ├── openapi.go
    │   │       │   │   ├── service.go
    │   │       │   │   └── transport.go
    │   │       │   ├── go_transform.go
    │   │       │   ├── goify.go
    │   │       │   ├── header.go
    │   │       │   ├── import.go
    │   │       │   ├── plugin.go
    │   │       │   ├── scope.go
    │   │       │   ├── service/
    │   │       │   │   ├── client.go
    │   │       │   │   ├── convert.go
    │   │       │   │   ├── docs.go
    │   │       │   │   ├── endpoint.go
    │   │       │   │   ├── example_interceptors.go
    │   │       │   │   ├── example_svc.go
    │   │       │   │   ├── interceptors.go
    │   │       │   │   ├── interceptors.md
    │   │       │   │   ├── service.go
    │   │       │   │   ├── service_data.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── client_interceptor_stream_wrapper_types.go.tpl
    │   │       │   │   │   ├── client_interceptor_stream_wrappers.go.tpl
    │   │       │   │   │   ├── client_interceptor_wrappers.go.tpl
    │   │       │   │   │   ├── client_interceptors.go.tpl
    │   │       │   │   │   ├── client_wrappers.go.tpl
    │   │       │   │   │   ├── convert.go.tpl
    │   │       │   │   │   ├── create.go.tpl
    │   │       │   │   │   ├── endpoint.go.tpl
    │   │       │   │   │   ├── endpoint_wrappers.go.tpl
    │   │       │   │   │   ├── error.go.tpl
    │   │       │   │   │   ├── error_init.go.tpl
    │   │       │   │   │   ├── example_client_interceptor.go.tpl
    │   │       │   │   │   ├── example_security_authfuncs.go.tpl
    │   │       │   │   │   ├── example_server_interceptor.go.tpl
    │   │       │   │   │   ├── example_service_init.go.tpl
    │   │       │   │   │   ├── example_service_struct.go.tpl
    │   │       │   │   │   ├── interceptors.go.tpl
    │   │       │   │   │   ├── interceptors_types.go.tpl
    │   │       │   │   │   ├── jsonrpc_handle_stream.go.tpl
    │   │       │   │   │   ├── jsonrpc_streaming_endpoint.go.tpl
    │   │       │   │   │   ├── payload.go.tpl
    │   │       │   │   │   ├── result.go.tpl
    │   │       │   │   │   ├── return_type_init.go.tpl
    │   │       │   │   │   ├── server_interceptor_stream_wrapper_types.go.tpl
    │   │       │   │   │   ├── server_interceptor_stream_wrappers.go.tpl
    │   │       │   │   │   ├── server_interceptor_wrappers.go.tpl
    │   │       │   │   │   ├── server_interceptors.go.tpl
    │   │       │   │   │   ├── service.go.tpl
    │   │       │   │   │   ├── service_client.go.tpl
    │   │       │   │   │   ├── service_client_init.go.tpl
    │   │       │   │   │   ├── service_client_method.go.tpl
    │   │       │   │   │   ├── service_endpoint_method.go.tpl
    │   │       │   │   │   ├── service_endpoint_stream_struct.go.tpl
    │   │       │   │   │   ├── service_endpoints.go.tpl
    │   │       │   │   │   ├── service_endpoints_init.go.tpl
    │   │       │   │   │   ├── service_endpoints_use.go.tpl
    │   │       │   │   │   ├── service_request_body_struct.go.tpl
    │   │       │   │   │   ├── service_response_body_struct.go.tpl
    │   │       │   │   │   ├── streaming_payload.go.tpl
    │   │       │   │   │   ├── transform_helper.go.tpl
    │   │       │   │   │   ├── type_init.go.tpl
    │   │       │   │   │   ├── type_validate.go.tpl
    │   │       │   │   │   ├── union_value_method.go.tpl
    │   │       │   │   │   ├── user_type.go.tpl
    │   │       │   │   │   ├── validate.go.tpl
    │   │       │   │   │   └── viewed_type_map.go.tpl
    │   │       │   │   ├── templates.go
    │   │       │   │   ├── testing.go
    │   │       │   │   └── views.go
    │   │       │   ├── template/
    │   │       │   │   ├── doc.go
    │   │       │   │   └── reader.go
    │   │       │   ├── templates/
    │   │       │   │   ├── header.go.tpl
    │   │       │   │   ├── transform_go_array.go.tpl
    │   │       │   │   ├── transform_go_map.go.tpl
    │   │       │   │   ├── transform_go_object_to_union.go.tpl
    │   │       │   │   ├── transform_go_union.go.tpl
    │   │       │   │   ├── transform_go_union_to_object.go.tpl
    │   │       │   │   └── validation/
    │   │       │   │       ├── array.go.tpl
    │   │       │   │       ├── enum.go.tpl
    │   │       │   │       ├── excl_min_max.go.tpl
    │   │       │   │       ├── format.go.tpl
    │   │       │   │       ├── length.go.tpl
    │   │       │   │       ├── map.go.tpl
    │   │       │   │       ├── min_max.go.tpl
    │   │       │   │       ├── pattern.go.tpl
    │   │       │   │       ├── required.go.tpl
    │   │       │   │       ├── union.go.tpl
    │   │       │   │       └── user.go.tpl
    │   │       │   ├── templates.go
    │   │       │   ├── testing.go
    │   │       │   ├── transformer.go
    │   │       │   ├── types.go
    │   │       │   ├── validation.go
    │   │       │   └── walk.go
    │   │       ├── dsl/
    │   │       │   ├── api.go
    │   │       │   ├── attribute.go
    │   │       │   ├── convert.go
    │   │       │   ├── description.go
    │   │       │   ├── doc.go
    │   │       │   ├── error.go
    │   │       │   ├── grpc.go
    │   │       │   ├── headers.go
    │   │       │   ├── http.go
    │   │       │   ├── http_file_server.go
    │   │       │   ├── http_redirect.go
    │   │       │   ├── interceptor.go
    │   │       │   ├── jsonrpc.go
    │   │       │   ├── meta.go
    │   │       │   ├── method.go
    │   │       │   ├── payload.go
    │   │       │   ├── response.go
    │   │       │   ├── result.go
    │   │       │   ├── result_type.go
    │   │       │   ├── security.go
    │   │       │   ├── server.go
    │   │       │   ├── service.go
    │   │       │   ├── sse.go
    │   │       │   ├── types.go
    │   │       │   ├── user_type.go
    │   │       │   ├── validation.go
    │   │       │   └── value.go
    │   │       ├── eval/
    │   │       │   ├── context.go
    │   │       │   ├── doc.go
    │   │       │   ├── error.go
    │   │       │   ├── eval.go
    │   │       │   └── expression.go
    │   │       ├── expr/
    │   │       │   ├── api.go
    │   │       │   ├── attribute.go
    │   │       │   ├── docs.go
    │   │       │   ├── dup.go
    │   │       │   ├── example.go
    │   │       │   ├── grpc.go
    │   │       │   ├── grpc_endpoint.go
    │   │       │   ├── grpc_error.go
    │   │       │   ├── grpc_response.go
    │   │       │   ├── grpc_service.go
    │   │       │   ├── hasher.go
    │   │       │   ├── helpers.go
    │   │       │   ├── http.go
    │   │       │   ├── http_body_types.go
    │   │       │   ├── http_endpoint.go
    │   │       │   ├── http_error.go
    │   │       │   ├── http_file_server.go
    │   │       │   ├── http_redirect.go
    │   │       │   ├── http_response.go
    │   │       │   ├── http_service.go
    │   │       │   ├── http_sse.go
    │   │       │   ├── init.go
    │   │       │   ├── interceptor.go
    │   │       │   ├── jsonrpc.go
    │   │       │   ├── mapped_attribute.go
    │   │       │   ├── method.go
    │   │       │   ├── random.go
    │   │       │   ├── result_type.go
    │   │       │   ├── result_types_root.go
    │   │       │   ├── root.go
    │   │       │   ├── security.go
    │   │       │   ├── server.go
    │   │       │   ├── service.go
    │   │       │   ├── testing.go
    │   │       │   ├── types.go
    │   │       │   └── user_type.go
    │   │       ├── grpc/
    │   │       │   └── codegen/
    │   │       │       ├── client.go
    │   │       │       ├── client_cli.go
    │   │       │       ├── client_types.go
    │   │       │       ├── doc.go
    │   │       │       ├── example_cli.go
    │   │       │       ├── example_server.go
    │   │       │       ├── funcs.go
    │   │       │       ├── proto.go
    │   │       │       ├── protobuf.go
    │   │       │       ├── protobuf_transform.go
    │   │       │       ├── server.go
    │   │       │       ├── server_types.go
    │   │       │       ├── service_data.go
    │   │       │       ├── templates/
    │   │       │       │   ├── client_endpoint_init.go.tpl
    │   │       │       │   ├── client_init.go.tpl
    │   │       │       │   ├── client_struct.go.tpl
    │   │       │       │   ├── do_grpc_cli.go.tpl
    │   │       │       │   ├── grpc_handler_init.go.tpl
    │   │       │       │   ├── grpc_message.go.tpl
    │   │       │       │   ├── grpc_service.go.tpl
    │   │       │       │   ├── parse_endpoint.go.tpl
    │   │       │       │   ├── partial/
    │   │       │       │   │   ├── convert_string_to_type.go.tpl
    │   │       │       │   │   ├── convert_type_to_string.go.tpl
    │   │       │       │   │   ├── slice_conversion.go.tpl
    │   │       │       │   │   ├── slice_item_conversion.go.tpl
    │   │       │       │   │   ├── string_conversion.go.tpl
    │   │       │       │   │   └── type_conversion.go.tpl
    │   │       │       │   ├── proto_header.go.tpl
    │   │       │       │   ├── proto_start.go.tpl
    │   │       │       │   ├── remote_method_builder.go.tpl
    │   │       │       │   ├── request_decoder.go.tpl
    │   │       │       │   ├── request_encoder.go.tpl
    │   │       │       │   ├── response_decoder.go.tpl
    │   │       │       │   ├── response_encoder.go.tpl
    │   │       │       │   ├── server_grpc_end.go.tpl
    │   │       │       │   ├── server_grpc_init.go.tpl
    │   │       │       │   ├── server_grpc_interface.go.tpl
    │   │       │       │   ├── server_grpc_register.go.tpl
    │   │       │       │   ├── server_grpc_start.go.tpl
    │   │       │       │   ├── server_init.go.tpl
    │   │       │       │   ├── server_struct_type.go.tpl
    │   │       │       │   ├── stream_close.go.tpl
    │   │       │       │   ├── stream_recv.go.tpl
    │   │       │       │   ├── stream_send.go.tpl
    │   │       │       │   ├── stream_set_view.go.tpl
    │   │       │       │   ├── stream_struct_type.go.tpl
    │   │       │       │   ├── transform_go_array.go.tpl
    │   │       │       │   ├── transform_go_map.go.tpl
    │   │       │       │   ├── transform_go_union_from_proto.go.tpl
    │   │       │       │   ├── transform_go_union_to_proto.go.tpl
    │   │       │       │   ├── transform_helper.go.tpl
    │   │       │       │   ├── type_init.go.tpl
    │   │       │       │   └── validate.go.tpl
    │   │       │       ├── templates.go
    │   │       │       └── testing.go
    │   │       ├── http/
    │   │       │   ├── client.go
    │   │       │   ├── codegen/
    │   │       │   │   ├── client.go
    │   │       │   │   ├── client_cli.go
    │   │       │   │   ├── client_types.go
    │   │       │   │   ├── doc.go
    │   │       │   │   ├── example_cli.go
    │   │       │   │   ├── example_server.go
    │   │       │   │   ├── funcs.go
    │   │       │   │   ├── openapi/
    │   │       │   │   │   ├── doc.go
    │   │       │   │   │   ├── docs.go
    │   │       │   │   │   ├── extensions.go
    │   │       │   │   │   ├── json_schema.go
    │   │       │   │   │   ├── marshal.go
    │   │       │   │   │   ├── merge.go
    │   │       │   │   │   ├── tags.go
    │   │       │   │   │   ├── v2/
    │   │       │   │   │   │   ├── builder.go
    │   │       │   │   │   │   ├── doc.go
    │   │       │   │   │   │   ├── files.go
    │   │       │   │   │   │   └── openapi.go
    │   │       │   │   │   └── v3/
    │   │       │   │   │       ├── builder.go
    │   │       │   │   │       ├── doc.go
    │   │       │   │   │       ├── example.go
    │   │       │   │   │       ├── files.go
    │   │       │   │   │       ├── openapi.go
    │   │       │   │   │       ├── parameters.go
    │   │       │   │   │       ├── ref.go
    │   │       │   │   │       ├── response.go
    │   │       │   │   │       └── types.go
    │   │       │   │   ├── openapi.go
    │   │       │   │   ├── paths.go
    │   │       │   │   ├── server.go
    │   │       │   │   ├── server_types.go
    │   │       │   │   ├── service_data.go
    │   │       │   │   ├── sse.go
    │   │       │   │   ├── sse_client.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── append_fs.go.tpl
    │   │       │   │   │   ├── build_stream_request.go.tpl
    │   │       │   │   │   ├── cli_end.go.tpl
    │   │       │   │   │   ├── cli_start.go.tpl
    │   │       │   │   │   ├── cli_streaming.go.tpl
    │   │       │   │   │   ├── cli_usage.go.tpl
    │   │       │   │   │   ├── client_body_init.go.tpl
    │   │       │   │   │   ├── client_endpoint_init.go.tpl
    │   │       │   │   │   ├── client_init.go.tpl
    │   │       │   │   │   ├── client_sse.go.tpl
    │   │       │   │   │   ├── client_struct.go.tpl
    │   │       │   │   │   ├── client_type_init.go.tpl
    │   │       │   │   │   ├── dummy_multipart_request_decoder.go.tpl
    │   │       │   │   │   ├── dummy_multipart_request_encoder.go.tpl
    │   │       │   │   │   ├── error_encoder.go.tpl
    │   │       │   │   │   ├── file_server.go.tpl
    │   │       │   │   │   ├── mount_point_struct.go.tpl
    │   │       │   │   │   ├── multipart_request_decoder.go.tpl
    │   │       │   │   │   ├── multipart_request_decoder_type.go.tpl
    │   │       │   │   │   ├── multipart_request_encoder.go.tpl
    │   │       │   │   │   ├── multipart_request_encoder_type.go.tpl
    │   │       │   │   │   ├── parse_endpoint.go.tpl
    │   │       │   │   │   ├── partial/
    │   │       │   │   │   │   ├── client_map_conversion.go.tpl
    │   │       │   │   │   │   ├── client_type_conversion.go.tpl
    │   │       │   │   │   │   ├── element_slice_conversion.go.tpl
    │   │       │   │   │   │   ├── header_conversion.go.tpl
    │   │       │   │   │   │   ├── path_conversion.go.tpl
    │   │       │   │   │   │   ├── query_map_conversion.go.tpl
    │   │       │   │   │   │   ├── query_slice_conversion.go.tpl
    │   │       │   │   │   │   ├── query_type_conversion.go.tpl
    │   │       │   │   │   │   ├── request_elements.go.tpl
    │   │       │   │   │   │   ├── response.go.tpl
    │   │       │   │   │   │   ├── single_response.go.tpl
    │   │       │   │   │   │   ├── slice_item_conversion.go.tpl
    │   │       │   │   │   │   ├── sse_format.go.tpl
    │   │       │   │   │   │   ├── sse_parse.go.tpl
    │   │       │   │   │   │   └── websocket_upgrade.go.tpl
    │   │       │   │   │   ├── path.go.tpl
    │   │       │   │   │   ├── path_init.go.tpl
    │   │       │   │   │   ├── request_builder.go.tpl
    │   │       │   │   │   ├── request_decoder.go.tpl
    │   │       │   │   │   ├── request_encoder.go.tpl
    │   │       │   │   │   ├── request_init.go.tpl
    │   │       │   │   │   ├── response_decoder.go.tpl
    │   │       │   │   │   ├── response_encoder.go.tpl
    │   │       │   │   │   ├── server_body_init.go.tpl
    │   │       │   │   │   ├── server_configure.go.tpl
    │   │       │   │   │   ├── server_encoding.go.tpl
    │   │       │   │   │   ├── server_end.go.tpl
    │   │       │   │   │   ├── server_error_handler.go.tpl
    │   │       │   │   │   ├── server_handler.go.tpl
    │   │       │   │   │   ├── server_handler_init.go.tpl
    │   │       │   │   │   ├── server_init.go.tpl
    │   │       │   │   │   ├── server_method_names.go.tpl
    │   │       │   │   │   ├── server_middleware.go.tpl
    │   │       │   │   │   ├── server_mount.go.tpl
    │   │       │   │   │   ├── server_mux.go.tpl
    │   │       │   │   │   ├── server_service.go.tpl
    │   │       │   │   │   ├── server_sse.go.tpl
    │   │       │   │   │   ├── server_start.go.tpl
    │   │       │   │   │   ├── server_struct.go.tpl
    │   │       │   │   │   ├── server_type_init.go.tpl
    │   │       │   │   │   ├── server_use.go.tpl
    │   │       │   │   │   ├── transform_helper.go.tpl
    │   │       │   │   │   ├── type_decl.go.tpl
    │   │       │   │   │   ├── validate.go.tpl
    │   │       │   │   │   ├── websocket_close.go.tpl
    │   │       │   │   │   ├── websocket_conn_configurer_struct.go.tpl
    │   │       │   │   │   ├── websocket_conn_configurer_struct_init.go.tpl
    │   │       │   │   │   ├── websocket_recv.go.tpl
    │   │       │   │   │   ├── websocket_send.go.tpl
    │   │       │   │   │   ├── websocket_set_view.go.tpl
    │   │       │   │   │   └── websocket_struct_type.go.tpl
    │   │       │   │   ├── templates.go
    │   │       │   │   ├── testing.go
    │   │       │   │   ├── typedef.go
    │   │       │   │   └── websocket.go
    │   │       │   ├── doc.go
    │   │       │   ├── encoding.go
    │   │       │   ├── error.go
    │   │       │   ├── middleware/
    │   │       │   │   ├── capture.go
    │   │       │   │   ├── chi.go
    │   │       │   │   ├── context.go
    │   │       │   │   ├── ctxkeys.go
    │   │       │   │   ├── debug.go
    │   │       │   │   ├── doc.go
    │   │       │   │   ├── log.go
    │   │       │   │   ├── request.go
    │   │       │   │   ├── requestid.go
    │   │       │   │   └── trace.go
    │   │       │   ├── mux.go
    │   │       │   ├── server.go
    │   │       │   └── websocket.go
    │   │       ├── jsonrpc/
    │   │       │   └── codegen/
    │   │       │       ├── client.go
    │   │       │       ├── client_cli.go
    │   │       │       ├── client_types.go
    │   │       │       ├── example_cli.go
    │   │       │       ├── example_server.go
    │   │       │       ├── paths.go
    │   │       │       ├── server.go
    │   │       │       ├── server_types.go
    │   │       │       ├── sse.go
    │   │       │       ├── sse_server.go
    │   │       │       ├── templates/
    │   │       │       │   ├── client_endpoint_init.go.tpl
    │   │       │       │   ├── client_init.go.tpl
    │   │       │       │   ├── client_struct.go.tpl
    │   │       │       │   ├── minimal_request_encoder.go.tpl
    │   │       │       │   ├── mixed_server_handler.go.tpl
    │   │       │       │   ├── partial/
    │   │       │       │   │   ├── element_slice_conversion.go.tpl
    │   │       │       │   │   ├── query_type_conversion.go.tpl
    │   │       │       │   │   ├── single_response.go.tpl
    │   │       │       │   │   └── slice_item_conversion.go.tpl
    │   │       │       │   ├── response_decoder.go.tpl
    │   │       │       │   ├── server_configure.go.tpl
    │   │       │       │   ├── server_encode_error.go.tpl
    │   │       │       │   ├── server_handler.go.tpl
    │   │       │       │   ├── server_handler_init.go.tpl
    │   │       │       │   ├── server_http_start.go.tpl
    │   │       │       │   ├── server_init.go.tpl
    │   │       │       │   ├── server_method_names.go.tpl
    │   │       │       │   ├── server_mount.go.tpl
    │   │       │       │   ├── server_service.go.tpl
    │   │       │       │   ├── server_struct.go.tpl
    │   │       │       │   ├── server_use.go.tpl
    │   │       │       │   ├── sse_client_stream.go.tpl
    │   │       │       │   ├── sse_server_handler.go.tpl
    │   │       │       │   ├── sse_server_stream.go.tpl
    │   │       │       │   ├── sse_server_stream_impl.go.tpl
    │   │       │       │   ├── websocket_client_conn.go.tpl
    │   │       │       │   ├── websocket_client_stream.go.tpl
    │   │       │       │   ├── websocket_server_close.go.tpl
    │   │       │       │   ├── websocket_server_handler.go.tpl
    │   │       │       │   ├── websocket_server_recv.go.tpl
    │   │       │       │   ├── websocket_server_send.go.tpl
    │   │       │       │   ├── websocket_server_stream.go.tpl
    │   │       │       │   ├── websocket_server_stream_wrapper.go.tpl
    │   │       │       │   └── websocket_stream_error_types.go.tpl
    │   │       │       ├── templates.go
    │   │       │       ├── testing.go
    │   │       │       ├── websocket_client.go
    │   │       │       └── websocket_server.go
    │   │       ├── middleware/
    │   │       │   ├── ctxkeys.go
    │   │       │   ├── doc.go
    │   │       │   ├── log.go
    │   │       │   ├── requestid.go
    │   │       │   ├── sampler.go
    │   │       │   └── trace.go
    │   │       ├── pkg/
    │   │       │   ├── doc.go
    │   │       │   ├── endpoint.go
    │   │       │   ├── error.go
    │   │       │   ├── interceptor.go
    │   │       │   ├── skip_response_writer.go
    │   │       │   ├── validation.go
    │   │       │   └── version.go
    │   │       └── security/
    │   │           └── scheme.go
    │   └── plugins/
    │       └── v3/
    │           ├── LICENSE
    │           ├── cors/
    │           │   ├── .golint_exclude
    │           │   ├── Makefile
    │           │   ├── README.md
    │           │   ├── cors.go
    │           │   ├── dsl/
    │           │   │   └── cors.go
    │           │   ├── expr/
    │           │   │   ├── cors.go
    │           │   │   └── root.go
    │           │   └── generate.go
    │           └── zaplogger/
    │               ├── .golint_exclude
    │               ├── Makefile
    │               ├── README.md
    │               └── update.go
    ├── golang.org/
    │   └── x/
    │       ├── crypto/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── internal/
    │       │   │   ├── alias/
    │       │   │   │   ├── alias.go
    │       │   │   │   └── alias_purego.go
    │       │   │   └── poly1305/
    │       │   │       ├── mac_noasm.go
    │       │   │       ├── poly1305.go
    │       │   │       ├── sum_amd64.s
    │       │   │       ├── sum_asm.go
    │       │   │       ├── sum_generic.go
    │       │   │       ├── sum_loong64.s
    │       │   │       ├── sum_ppc64x.s
    │       │   │       ├── sum_s390x.go
    │       │   │       └── sum_s390x.s
    │       │   ├── nacl/
    │       │   │   └── secretbox/
    │       │   │       └── secretbox.go
    │       │   ├── ocsp/
    │       │   │   └── ocsp.go
    │       │   ├── pbkdf2/
    │       │   │   └── pbkdf2.go
    │       │   ├── salsa20/
    │       │   │   └── salsa/
    │       │   │       ├── hsalsa20.go
    │       │   │       ├── salsa208.go
    │       │   │       ├── salsa20_amd64.go
    │       │   │       ├── salsa20_amd64.s
    │       │   │       ├── salsa20_noasm.go
    │       │   │       └── salsa20_ref.go
    │       │   ├── scrypt/
    │       │   │   └── scrypt.go
    │       │   └── sha3/
    │       │       ├── hashes.go
    │       │       ├── legacy_hash.go
    │       │       ├── legacy_keccakf.go
    │       │       └── shake.go
    │       ├── exp/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   └── slices/
    │       │       ├── slices.go
    │       │       └── sort.go
    │       ├── mod/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── internal/
    │       │   │   └── lazyregexp/
    │       │   │       └── lazyre.go
    │       │   ├── module/
    │       │   │   ├── module.go
    │       │   │   └── pseudo.go
    │       │   └── semver/
    │       │       └── semver.go
    │       ├── net/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── http/
    │       │   │   └── httpguts/
    │       │   │       ├── guts.go
    │       │   │       └── httplex.go
    │       │   ├── http2/
    │       │   │   ├── .gitignore
    │       │   │   ├── ascii.go
    │       │   │   ├── ciphers.go
    │       │   │   ├── client_conn_pool.go
    │       │   │   ├── config.go
    │       │   │   ├── config_go125.go
    │       │   │   ├── config_go126.go
    │       │   │   ├── databuffer.go
    │       │   │   ├── errors.go
    │       │   │   ├── flow.go
    │       │   │   ├── frame.go
    │       │   │   ├── gotrack.go
    │       │   │   ├── h2c/
    │       │   │   │   └── h2c.go
    │       │   │   ├── hpack/
    │       │   │   │   ├── encode.go
    │       │   │   │   ├── hpack.go
    │       │   │   │   ├── huffman.go
    │       │   │   │   ├── static_table.go
    │       │   │   │   └── tables.go
    │       │   │   ├── http2.go
    │       │   │   ├── pipe.go
    │       │   │   ├── server.go
    │       │   │   ├── transport.go
    │       │   │   ├── unencrypted.go
    │       │   │   ├── write.go
    │       │   │   ├── writesched.go
    │       │   │   ├── writesched_priority_rfc7540.go
    │       │   │   ├── writesched_priority_rfc9218.go
    │       │   │   ├── writesched_random.go
    │       │   │   └── writesched_roundrobin.go
    │       │   ├── idna/
    │       │   │   ├── go118.go
    │       │   │   ├── idna10.0.0.go
    │       │   │   ├── idna9.0.0.go
    │       │   │   ├── pre_go118.go
    │       │   │   ├── punycode.go
    │       │   │   ├── tables10.0.0.go
    │       │   │   ├── tables11.0.0.go
    │       │   │   ├── tables12.0.0.go
    │       │   │   ├── tables13.0.0.go
    │       │   │   ├── tables15.0.0.go
    │       │   │   ├── tables9.0.0.go
    │       │   │   ├── trie.go
    │       │   │   ├── trie12.0.0.go
    │       │   │   ├── trie13.0.0.go
    │       │   │   └── trieval.go
    │       │   ├── internal/
    │       │   │   ├── httpcommon/
    │       │   │   │   ├── ascii.go
    │       │   │   │   ├── headermap.go
    │       │   │   │   └── request.go
    │       │   │   └── timeseries/
    │       │   │       └── timeseries.go
    │       │   └── trace/
    │       │       ├── events.go
    │       │       ├── histogram.go
    │       │       └── trace.go
    │       ├── oauth2/
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── deviceauth.go
    │       │   ├── internal/
    │       │   │   ├── doc.go
    │       │   │   ├── oauth2.go
    │       │   │   ├── token.go
    │       │   │   └── transport.go
    │       │   ├── oauth2.go
    │       │   ├── pkce.go
    │       │   ├── token.go
    │       │   └── transport.go
    │       ├── sync/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── errgroup/
    │       │   │   └── errgroup.go
    │       │   └── semaphore/
    │       │       └── semaphore.go
    │       ├── sys/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── cpu/
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_darwin_x86_gc.s
    │       │   │   ├── byteorder.go
    │       │   │   ├── cpu.go
    │       │   │   ├── cpu_aix.go
    │       │   │   ├── cpu_arm.go
    │       │   │   ├── cpu_arm64.go
    │       │   │   ├── cpu_arm64.s
    │       │   │   ├── cpu_darwin_x86.go
    │       │   │   ├── cpu_gc_arm64.go
    │       │   │   ├── cpu_gc_s390x.go
    │       │   │   ├── cpu_gc_x86.go
    │       │   │   ├── cpu_gc_x86.s
    │       │   │   ├── cpu_gccgo_arm64.go
    │       │   │   ├── cpu_gccgo_s390x.go
    │       │   │   ├── cpu_gccgo_x86.c
    │       │   │   ├── cpu_gccgo_x86.go
    │       │   │   ├── cpu_linux.go
    │       │   │   ├── cpu_linux_arm.go
    │       │   │   ├── cpu_linux_arm64.go
    │       │   │   ├── cpu_linux_loong64.go
    │       │   │   ├── cpu_linux_mips64x.go
    │       │   │   ├── cpu_linux_noinit.go
    │       │   │   ├── cpu_linux_ppc64x.go
    │       │   │   ├── cpu_linux_riscv64.go
    │       │   │   ├── cpu_linux_s390x.go
    │       │   │   ├── cpu_loong64.go
    │       │   │   ├── cpu_loong64.s
    │       │   │   ├── cpu_mips64x.go
    │       │   │   ├── cpu_mipsx.go
    │       │   │   ├── cpu_netbsd_arm64.go
    │       │   │   ├── cpu_openbsd_arm64.go
    │       │   │   ├── cpu_openbsd_arm64.s
    │       │   │   ├── cpu_other_arm.go
    │       │   │   ├── cpu_other_arm64.go
    │       │   │   ├── cpu_other_mips64x.go
    │       │   │   ├── cpu_other_ppc64x.go
    │       │   │   ├── cpu_other_riscv64.go
    │       │   │   ├── cpu_other_x86.go
    │       │   │   ├── cpu_ppc64x.go
    │       │   │   ├── cpu_riscv64.go
    │       │   │   ├── cpu_s390x.go
    │       │   │   ├── cpu_s390x.s
    │       │   │   ├── cpu_wasm.go
    │       │   │   ├── cpu_x86.go
    │       │   │   ├── cpu_zos.go
    │       │   │   ├── cpu_zos_s390x.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── hwcap_linux.go
    │       │   │   ├── parse.go
    │       │   │   ├── proc_cpuinfo_linux.go
    │       │   │   ├── runtime_auxv.go
    │       │   │   ├── runtime_auxv_go121.go
    │       │   │   ├── syscall_aix_gccgo.go
    │       │   │   ├── syscall_aix_ppc64_gc.go
    │       │   │   └── syscall_darwin_x86_gc.go
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_bsd_ppc64.s
    │       │   │   ├── asm_bsd_riscv64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── auxv.go
    │       │   │   ├── auxv_unsupported.go
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── bpxsvc_zos.go
    │       │   │   ├── bpxsvc_zos.s
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_signed.go
    │       │   │   ├── ioctl_unsigned.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mmap_nomremap.go
    │       │   │   ├── mremap.go
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── sockcmsg_zos.go
    │       │   │   ├── symaddr_zos_s390x.s
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_freebsd_riscv64.go
    │       │   │   ├── syscall_hurd.go
    │       │   │   ├── syscall_hurd_386.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_libc.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_openbsd_ppc64.go
    │       │   │   ├── syscall_openbsd_riscv64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── vgetrandom_linux.go
    │       │   │   ├── vgetrandom_unsupported.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_freebsd_riscv64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_openbsd_ppc64.go
    │       │   │   ├── zerrors_openbsd_riscv64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsymaddr_zos_s390x.s
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_freebsd_riscv64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_386.s
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_amd64.s
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm.s
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_arm64.s
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_openbsd_mips64.s
    │       │   │   ├── zsyscall_openbsd_ppc64.go
    │       │   │   ├── zsyscall_openbsd_ppc64.s
    │       │   │   ├── zsyscall_openbsd_riscv64.go
    │       │   │   ├── zsyscall_openbsd_riscv64.s
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysctl_openbsd_ppc64.go
    │       │   │   ├── zsysctl_openbsd_riscv64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_freebsd_riscv64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_openbsd_ppc64.go
    │       │   │   ├── zsysnum_openbsd_riscv64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_freebsd_riscv64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_openbsd_ppc64.go
    │       │   │   ├── ztypes_openbsd_riscv64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       ├── term/
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── README.md
    │       │   ├── codereview.cfg
    │       │

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.md
================================================
---
name: Bug Report
about: Template for bug reports
labels: kind/bug
---

# Expected Behavior

# Actual Behavior

# Steps to Reproduce the Problem

1.
2.
3.

# Additional Info

- UI Screenshots(if applicable)

  ```
  (Add ui screenshots here)
  ```
<!-- Any other additional information -->


================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.md
================================================
---
name: Feature Request
about: Template for feature requests
labels: kind/feature
---

### Feature request

<!-- Please describe the feature request and why you would like to have it -->

### Use case

<!-- Please add a concrete use case to demonstrate how such a feature would add value for the user. If you don't have a use case for your feature, please remove this section (however providing a good use case increases the likelihood to be picked up) -->


================================================
FILE: .github/ISSUE_TEMPLATE/free-form.md
================================================
---
name: Free Form
about: Create an unstructured issue
---


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "gomod" # See documentation for possible values
    directory: "/" # Location of package manifests
    schedule:
      interval: "daily"
    labels:
    - "ok-to-test"
    - "dependencies"
    - "go"
    - "release-note-none"
    - "kind/misc"
    ignore:
    - dependency-name: "k8s.io/*"
      update-types: ["version-update:semver-major", "version-update:semver-minor"]
    groups:
      go-k8s-dependencies:
        patterns:
          - "k8s.io/*"

  - package-ecosystem: 'npm'
    directory: '/ui'
    schedule:
      interval: 'daily'
    labels:
    - "ok-to-test"
    - "dependencies"
    - "javascript"
    - "release-note-none"
    - "kind/misc"

  - package-ecosystem: 'npm'
    directory: '/swagger'
    schedule:
      interval: 'daily'
    labels:
    - "ok-to-test"
    - "dependencies"
    - "javascript"
    - "release-note-none"
    - "kind/misc"


  - package-ecosystem: "docker"
    directory: "/images"
    schedule:
      interval: "daily"
    labels:
    - "ok-to-test"
    - "dependencies"
    - "docker"
    - "release-note-none"
    - "kind/misc"


================================================
FILE: .github/pull_request_template.md
================================================
<!-- 🎉🎉🎉 Thank you for the PR!!! 🎉🎉🎉 -->

# Changes

<!-- Describe your changes here- ideally you can get that description straight from
your descriptive commit message(s)! -->

# Submitter Checklist

These are the criteria that every PR should meet, please check them off as you
review them:

- [ ] Includes [tests](https://github.com/tektoncd/community/blob/main/standards.md#principles) (if functionality changed/added)
- [ ] Run API Unit Tests, Lint Checks, API Design, Golden Files with `make api-check`
- [ ] Run UI Unit Tests, Lint Checks with `make ui-check`
- [ ] Commit messages follow [commit message best practices](https://github.com/tektoncd/community/blob/main/standards.md#commit-messages)

_See [the contribution guide](https://github.com/tektoncd/pipeline/blob/main/CONTRIBUTING.md) for more details._

# Release Notes

<!--
Does your PR contain User facing changes?

If so, briefly describe them here so we can include this description in the
release notes for the next release!

For pull requests with a release note:

```release-note
Your release note here
```

For pull requests that require additional action from users switching to the new release, include the string "action required" (case insensitive) in the release note:

```release-note
action required: your release note here
```

For pull requests that don't need to be mentioned at release time, use the `/release-note-none` Prow command to add the `release-note-none` label to the PR. You can also write the string "NONE" as a release note in your PR description:

```release-note
NONE
```
-->

================================================
FILE: .github/workflows/chatops_retest.yaml
================================================
name: Rerun Failed Actions

permissions:
  contents: read

on:
  repository_dispatch:
    types: [retest-command]

jobs:
  retest:
    name: Rerun Failed Actions
    uses: tektoncd/plumbing/.github/workflows/_chatops_retest.yml@8441d6ffad5bf64f631ed0e67e46192fdedaca47
    secrets: inherit


================================================
FILE: .github/workflows/cherry-pick-command.yaml
================================================
# Cherry Pick Command Workflow
#
# This workflow is triggered by the /cherry-pick slash command from the slash.yaml workflow.
# It automatically cherry-picks merged PRs to the specified target branches.
#
# Usage: Comment `/cherry-pick <target-branch> [<target-branch> ...]` on a merged pull request
# Example: `/cherry-pick release-v1.23.x`
# Example: `/cherry-pick release-v1.23.x release-v1.24.x`
#
# Security Notes:
# - Only users with "write" permission can trigger this command (enforced in slash.yaml)
# - Works safely with PRs from forks because it only cherry-picks already-merged commits
# - Uses CHATOPS_TOKEN to create PRs and push to branches
# - The action creates a new branch from the target branch, not from the fork

name: Cherry Pick Command

on:
  repository_dispatch:
    types: [cherry-pick-command]

permissions:
  contents: write
  pull-requests: write
  issues: write

jobs:
  cherry-pick:
    name: Cherry Pick Actions
    uses: tektoncd/plumbing/.github/workflows/_cherry-pick-command.yaml@4b57443b85569e5bb7d9ee440bf5cae99cb642cb
    secrets:
      CHATOPS_TOKEN: ${{ secrets.CHATOPS_TOKEN }}


================================================
FILE: .github/workflows/ci.yaml
================================================
name: Tekton Hub CI

on:
  push:
    branches: [ main, release-* ]
  pull_request:
    branches: [ "**" ]

permissions:
  contents: read

concurrency:
  group: ci-${{ github.ref }}
  cancel-in-progress: true
  
defaults:
  run:
    shell: bash

jobs:
  ui:
    name: UI Build and Test
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash
        working-directory: ui
    steps:
      - name: Checkout
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

      - name: Setup Node
        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
        with:
          node-version: 18
          cache: npm
          cache-dependency-path: ui/package-lock.json

      - name: Install
        run: npm ci
      - name: Lint
        run: npm run lint

      - name: Build
        env:
          CI: true
        run: |
          npm run build
      - name: Unit tests
        env:
          CI: true
        run: |
          npm run test

  api-build:
    name: API Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

      - name: Setup Go
        uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
        with:
          go-version-file: go.mod
          cache: true

      - name: Build
        run: |
          make api-build

  api-unit:
    name: API Unit Tests
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:15
        env:
          POSTGRES_PASSWORD: postgres
          POSTGRES_USER: postgres
        ports:
          - 5432:5432
        options: >-
          --health-cmd="pg_isready -U postgres"
          --health-interval=10s
          --health-timeout=5s
          --health-retries=5
    steps:
      - name: Checkout
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

      - name: Setup Go
        uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
        with:
          go-version-file: go.mod
          cache: true

      - name: Install PostgreSQL client
        run: |
          sudo apt-get update
          sudo apt-get install -y postgresql-client

      - name: Wait for Postgres
        run: |
          until pg_isready -h localhost -p 5432 -U postgres; do sleep 1; done

      - name: Create test database
        env:
          PGPASSWORD: postgres
        run: |
          psql -h localhost -p 5432 -U postgres -c 'create database hub_test;'
  
      - name: Run API unit tests
        env:
          ENVIRONMENT: test
          POSTGRES_HOST: localhost
          POSTGRES_PORT: "5432"
          POSTGRES_DB: hub_test
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          JWT_SIGNING_KEY: TeKtOnHuB
          ACCESS_JWT_EXPIRES_IN: 5m
          REFRESH_JWT_EXPIRES_IN: 1h
          GH_CLIENT_ID: client-id
          GH_CLIENT_SECRET: client-secret
          CONFIG_FILE_URL: file://${{ github.workspace }}/api/test/config/config.yaml
        run: |
          cd api && go mod vendor && go test -p 1 -v ./pkg/... ./v1/service/...
        
  api-integration:
    name: API Integration (E2E)
    runs-on: ubuntu-latest
    needs: [api-unit]
    steps:
      - name: Checkout
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

      - name: Setup Go
        uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
        with:
          go-version-file: go.mod
          cache: true

      - name: Run integration tests
        working-directory: api
        run: |
          go mod vendor
          go build -o tkn-hub ./cmd/tkn-hub
          export TEST_CLIENT_BINARY="${PWD}/tkn-hub"
          go test -count=1 -tags=e2e ./test/...




================================================
FILE: .github/workflows/goa-gen-dependabot.yml
================================================
name: Bump Goa version and updates `gen` directory on main branch

on:
  workflow_dispatch:
  schedule:
  - cron: '0 0 * * *'

jobs:
  bump-payloads:
    name: "Bump payloads"
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
    - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
      with:
        go-version-file: "go.mod"
    - name: Goa bump
      run: |
        export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
        # Get the current version
        currentVersion=$(go list -mod=mod -m all | grep goa.design/goa/v3 | awk '{print $2}')
        echo ${currentVersion}

        # Get the list of all versions
        listAllLatestVersions=( $(go list -mod=mod -m -versions goa.design/goa/v3) )
        echo ${listAllLatestVersions[-1]}

        # Compare the versions
        if [ "${currentVersion}" != "${listAllLatestVersions[-1]}" ]
        then
          # Update goa version in presbumite-test.sh
          go_install_command="go install goa.design/goa/v3/cmd/goa@"
          sed -i "s#${go_install_command}v[0-9]\+\.[0-9]\+\.[0-9]\+#${go_install_command}${listAllLatestVersions[-1]}#" test/presubmit-tests.sh

          # Update goa version in go.mod
          sed -i "s@goa.design/goa/v3 ${currentVersion}@goa.design/goa/v3 ${listAllLatestVersions[-1]}@g" go.mod
          sed -i "s@goa.design/plugins/v3 ${currentVersion}@goa.design/plugins/v3 ${listAllLatestVersions[-1]}@g" go.mod
          go mod tidy
          go mod vendor

          go install goa.design/goa/v3/cmd/goa@v3

          goa version

          echo "----------------------------"
          echo "-- Generating API Design... "
          echo "----------------------------"
          cd api && go mod vendor && goa gen github.com/tektoncd/hub/api/design

          echo "----------------------------"
          echo "- Generating v1 API Design... "
          echo "----------------------------"
          cd v1 && go mod vendor && goa gen github.com/tektoncd/hub/api/v1/design

        fi

    - name: create pull request
      uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
      with:
        token: ${{ secrets.TEKTON_BOT_TOKEN }}
        commit-message: Bumps goa version and updates the gen folder
        committer: tekton-bot <tekton-bot@users.noreply.github.com>
        author: Vincent Demeester <vdemeest@redhat.com>
        # author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
        signoff: true
        delete-branch: true
        title: "[bot] Bump goa version and updates gen folder"
        labels: |
          release-note-none


================================================
FILE: .github/workflows/golangci-lint.yaml
================================================
name: golangci-lint
on:  # yamllint disable-line rule:truthy
  push:
    branches:
      - main
  pull_request:  # yamllint disable-line rule:empty-values
    branches:
      - main 

permissions:
  contents: read
  checks: write  # Used to annotate code in the PR

jobs:
  lint:
    name: golangci-lint
    runs-on: ubuntu-latest
    steps:
    - name: Set up Go
      uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
      with:
        go-version: "1.23.x"

    - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
      with:
        path: |
          ~/.cache/go-build
          ~/.cache/pip
          ~/go/pkg/mod
        key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
        restore-keys: |
          ${{ runner.os }}-go-

    - name: Check out code
      uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

    - uses: alexellis/setup-arkade@b1816384b2260cfd2c023c6798d26075786cfc7f # v3
    - uses: alexellis/arkade-get@9718b1694fa1db91045e0b5ba199732cb18b4387
      with:
        golangci-lint: v1.64.8

    - name: Lint API code
      run: |
        make api-lint



================================================
FILE: .github/workflows/slash.yaml
================================================
name: Slash Command Routing

permissions:
  contents: read

on:
  issue_comment:
    types: [created]

jobs:
  check_comments:
    if: ${{ github.event.issue.pull_request }}
    permissions:
      issues: write # for peter-evans/slash-command-dispatch to create issue reaction
      pull-requests: write # for peter-evans/slash-command-dispatch to create PR reaction
    uses: tektoncd/plumbing/.github/workflows/_slash.yml@8441d6ffad5bf64f631ed0e67e46192fdedaca47
    secrets: inherit


================================================
FILE: .gitignore
================================================

# IntelliJ IDE specific
.idea
.vscode


================================================
FILE: .golangci.yml
================================================
run:
  issues-exit-code: 1
  skip-dirs:
    - vendor
linters-settings:
  staticcheck:
    checks:
      - '-SA1019' # ignore ClusterTask warning



================================================
FILE: .yamllint
================================================
ignore: |
  /vendor
  /api/vendor

rules:
  braces: enable
  brackets: enable
  colons: enable
  commas: enable
  comments:
    level: warning
  comments-indentation:
    level: warning
  document-end: disable
  document-start: disable
  empty-lines: enable
  empty-values: enable
  hyphens: enable
  key-duplicates: enable
  key-ordering: disable
  line-length: disable
  new-line-at-end-of-file: disable
  new-lines: enable
  octal-values: enable
  quoted-strings: disable
  trailing-spaces: enable
  truthy:
    level: warning

  # accept both     key:
  #                   - item
  #
  # and             key:
  #                 - item
  indentation:
    indent-sequences: whatever


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to the catalog repo

Thank you for your interest in contributing!

This doc is about how to contribute to this repo specifically. For how to
contribute to tektoncd projects in general, see [the overview in our README](README.md)
and the individual `CONTRIBUTING.md` files in each respective project.

**All contributors must comply with
[the code of conduct](./code-of-conduct.md).**

PRs are welcome, and will follow
[the tektoncd pull request process](https://github.com/tektoncd/community/tree/main/process#pull-request-process).

## How to Contribute to the Hub

TBD


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: Makefile
================================================
.PHONY: test
test: api-test ui-test ## run all Unit Tests

.PHONY: lint
lint: api-lint ui-lint yaml-lint ## check all Lints

.PHONY: api-check
api-check: goa-gen api-test generated api-lint ## all API checks

.PHONY: ui-check
ui-check: ui-test ui-lint ## all UI checks

.PHONY: goa-gen
goa-gen: ## generate API Design
	@echo "----------------------------"
	@echo "-- Generating API Design... "
	@echo "----------------------------"
	cd api && go mod vendor && goa gen github.com/tektoncd/hub/api/design

	@echo "----------------------------"
	@echo "- Generating v1 API Design... "
	@echo "----------------------------"
	cd api/v1 && go mod vendor && goa gen github.com/tektoncd/hub/api/v1/design

.PHONY: generated
generated: ## update the golden files
	@echo "----------------------------"
	@echo "-- Generating Golden Files... --"
	@echo "----------------------------"
	cd api && go mod vendor && bash update-golden-files.sh

.PHONY: api-lint
api-lint: ## run API Lint
	@echo "----------------------------"
	@echo "-- Linting API Files... --"
	@echo "----------------------------"
	cd api && golangci-lint run -v ./pkg/... ./v1/service/... --timeout=5m


.PHONY: api-test
api-test: ## run API Unit Test
	@echo "----------------------------"
	@echo "-- Running API Unit Tests --"
	@echo "----------------------------"
	@echo "🛢 🛢 🛢  Make sure you have your Database Up and Running 🛢 🛢 🛢"
	@echo "----------------------------"
	cd api && go mod vendor && go test -p 1 -v ./pkg/... ./v1/service/...

.PHONY: api-build
api-build: ## generate the API binary
	@echo "----------------------------"
	@echo "-- Running API Build... --"
	@echo "----------------------------"
	cd api && go mod vendor && go build -mod=vendor ./cmd/...


.PHONY: ui-lint
ui-lint: ## run UI Lint
	@echo "----------------------------"
	@echo "-- Linting UI Files... --"
	@echo "----------------------------"
	cd ui && npm clean-install && npm run lint

.PHONY: ui-test
ui-test: ## run UI Unit Test
	@echo "----------------------------"
	@echo "-- Running UI Unit Tests --"
	@echo "----------------------------"
	cd ui && npm clean-install && CI=true npm test

.PHONY: ui-build
ui-build: ## generate the UI binary
	@echo "----------------------------"
	@echo "-- Running UI Build... --"
	@echo "----------------------------"
	cd ui && npm clean-install && CI=true npm run build

.PHONY: swagger-build
swagger-build: ## generate the UI binary
	@echo "----------------------------"
	@echo "-- Running Swagger Build... --"
	@echo "----------------------------"
	cd swagger && npm install --legacy-peer-deps && CI=true npm run build

.PHONY: yaml-lint
yaml-lint: ## run YAML Lint
	@echo "----------------------------"
	@echo "-- Running Yaml-lint... --"
	@echo "----------------------------"
	yamllint -c .yamllint ./config.yaml ./config

.PHONY: help
help: ## print this help
	@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z0-9_-]+:.*?## / {gsub("\\\\n",sprintf("\n%22c",""), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)


================================================
FILE: OWNERS
================================================
# The OWNERS file is used by prow to automatically merge approved PRs.

approvers:
- vdemeester
- sthaha
- PuneetPunamiya
- pratap0007
- sm43
- vinamra28


================================================
FILE: README.md
================================================
# Tekton Hub

> [!CAUTION]
> **This repository is archived and no longer maintained.**
>
> - The public Tekton Hub instance (hub.tekton.dev) was **shut down on January 8th, 2026**.
> - This repository was **archived on February 10th, 2026** and is now read-only.
>
> **For self-hosted deployments:** If you need to deploy your own instance of Tekton Hub,
> a maintained fork is available at [openshift-pipelines/hub](https://github.com/openshift-pipelines/hub)
> which will continue to receive security fixes.

---

<p align="center">
<img width="250" height="175" src="https://github.com/cdfoundation/artwork/blob/main/tekton/additional-artwork/tekton-hub/color/TektonHub_color.svg" alt="Tekton Hub logo"></img>
</p>

The Tekton Hub was a web based platform for developers to discover,
share and contribute tasks and pipelines for Tekton. This repository
contains the source code of this service.

## Key features

* Tekton Hub provides the following features:

1. Display of resources in a curated way:

     User gets detailed information such as description, YAML, tags and rating of resources.

  2. Filter by  categories :

     This allows user to filter resources based on categories which will help user to get multiple resources.

  3. Search resources on the basis of `name` or `displayName`

  4. Rating

     - User can rate a resource based on the experience
     - This can even help the other user as by knowing the rating they can directly compare and use the resource

  5. Sort resources on the basis of name or rating.

  6. Install resources on cluster :
     - The Tekton Hub provides cluster installation commands for tasks or pipelines.
    
## Hub APIs for Integration

The public hub APIs are exposed for Integration outside hub. You can find the API Policy [here](docs/API_POLICY.md).

For documentation of public APIs, you can use [Hub Swagger](https://swagger.hub.tekton.dev)

## Deploy your own instance

You can deploy your own instance of Tekton Hub. You can find the documentation [here](docs/DEPLOYMENT.md).

## Want to Contribute

We are so excited to have you!

- See [CONTRIBUTING.md](CONTRIBUTING.md) for an overview of our processes
- See [DEVELOPMENT.md](docs/DEVELOPMENT.md) for how to get started
- See [ROADMAP.md](ROADMAP.md) for the current roadmap
- Look at our
  [good first issues](https://github.com/tektoncd/hub/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
  and our
  [help wanted issues](https://github.com/tektoncd/hub/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
- If you are looking for support, enter an [issue][issue] or join our [Slack workspace][slack]


[swagger-def]:https://raw.githubusercontent.com/tektoncd/hub/main/api/v1/gen/http/openapi3.yaml
[issue]:https://github.com/tektoncd/hub/issues/new
[slack]:https://github.com/tektoncd/community/blob/main/contact.md#slack


================================================
FILE: ROADMAP.md
================================================
# Tekton Hub 2021 Roadmap

## Roadmap

### Multi Catalog Support

 - User should be able to provide multi catalogs in config
 - API's should be able to act for multiple catalogs
 - UI should show the resources from all catalogs mentioned and also able to filter based on catalog
 - CLI should be able to work with multiple catalogs

### Add support for Pipeline Kind

 - Hub should support the Pipelines Kind resources
 - APIs created to get Pipeline Kind data
 - CLI should be able to install, upgrade etc for Pipelines
 - Catlin should be able to validate based on Pipeline Structure Proposal

### Handle Deprecated Task in UI

 - UI should have a way to identify deprecated task
 - API should return whether the resource is deprecated or not

### CLI acts based on Minimum Pipeline Version of resource

 - CLI commands like install, upgrade, etc act based on Pipeline version installed on cluster
 - It should warn user in case of mismatch with supported Pipeline version of resource

### Automate Hub Deployment

 - Hub deployment should be automated through script.

### Versioning of the APIs

 - APIs should be versioned.
 - API Policy should be defined.

### Automation of Categories and Tags mapping

 - Comeup with a proposal to remove the manual categories and tags mapping

### Add supported resources of tasks/pipelines in HUB UI

 - Hub should show details about examples, samples, owners etc. of resources.

### Interactive CLI command

 - Hub CLI should ask inputs from users interactively if not provided as args

### Bundle support

 - Hub CLI and Hub UI uses bundles to fetch resource yaml's
 - Can store resource bundle URLs in database

### Support for other git providers

 - Hub should support catalogs hosted on GitHub Enterprise, Gitlab, BitBucket etc.

### UI Refactoring and Enhancements

 - Better User Details
 - Improved searching experience
 - Improvement in filtering and providing URL params


================================================
FILE: api/.gitignore
================================================
# tkn-hub binary 
/tkn-hub


================================================
FILE: api/cmd/api/http.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package main

import (
	"context"
	"net/http"
	"net/url"
	"os"
	"sync"
	"time"

	goahttp "goa.design/goa/v3/http"
	httpmdlwr "goa.design/goa/v3/http/middleware"
	"goa.design/goa/v3/middleware"

	admin "github.com/tektoncd/hub/api/gen/admin"
	catalog "github.com/tektoncd/hub/api/gen/catalog"
	category "github.com/tektoncd/hub/api/gen/category"
	adminsvr "github.com/tektoncd/hub/api/gen/http/admin/server"
	catalogsvr "github.com/tektoncd/hub/api/gen/http/catalog/server"
	categorysvr "github.com/tektoncd/hub/api/gen/http/category/server"
	ratingsvr "github.com/tektoncd/hub/api/gen/http/rating/server"
	resourcesvr "github.com/tektoncd/hub/api/gen/http/resource/server"
	statussvr "github.com/tektoncd/hub/api/gen/http/status/server"
	swaggersvr "github.com/tektoncd/hub/api/gen/http/swagger/server"
	rating "github.com/tektoncd/hub/api/gen/rating"
	resource "github.com/tektoncd/hub/api/gen/resource"
	status "github.com/tektoncd/hub/api/gen/status"
	"github.com/tektoncd/hub/api/pkg/app"
	v1catalog "github.com/tektoncd/hub/api/v1/gen/catalog"
	v1catalogsvr "github.com/tektoncd/hub/api/v1/gen/http/catalog/server"
	v1resourcesvr "github.com/tektoncd/hub/api/v1/gen/http/resource/server"
	v1swaggersvr "github.com/tektoncd/hub/api/v1/gen/http/swagger/server"
	v1resource "github.com/tektoncd/hub/api/v1/gen/resource"
)

// handleHTTPServer starts configures and starts a HTTP server on the given
// URL. It shuts down the server if any error is received in the error channel.
func handleHTTPServer(
	ctx context.Context, u *url.URL,
	adminEndpoints *admin.Endpoints,
	catalogEndpoints *catalog.Endpoints,
	v1catalogEndpoints *v1catalog.Endpoints,
	categoryEndpoints *category.Endpoints,
	ratingEndpoints *rating.Endpoints,
	resourceEndpoints *resource.Endpoints,
	v1resourceEndpoints *v1resource.Endpoints,
	statusEndpoints *status.Endpoints,
	wg *sync.WaitGroup, errc chan error, logger *app.Logger, debug bool) {

	// Setup goa log adapter.
	var (
		adapter middleware.Logger
	)
	{
		adapter = logger
	}

	// Provide the transport specific request decoder and response encoder.
	// The goa http package has built-in support for JSON, XML and gob.
	// Other encodings can be used by providing the corresponding functions,
	// see goa.design/implement/encoding.
	var (
		dec = goahttp.RequestDecoder
		enc = goahttp.ResponseEncoder
	)

	// Build the service HTTP request multiplexer and configure it to serve
	// HTTP requests to the service endpoints.
	var mux goahttp.Muxer
	{
		mux = goahttp.NewMuxer()
	}

	// Wrap the endpoints with the transport specific layers. The generated
	// server packages contains code generated from the design which maps
	// the service input and output data structures to HTTP requests and
	// responses.
	var (
		adminServer      *adminsvr.Server
		catalogServer    *catalogsvr.Server
		v1catalogServer  *v1catalogsvr.Server
		categoryServer   *categorysvr.Server
		ratingServer     *ratingsvr.Server
		resourceServer   *resourcesvr.Server
		v1resourceServer *v1resourcesvr.Server
		statusServer     *statussvr.Server
		swaggerServer    *swaggersvr.Server
		v1swaggerServer  *v1swaggersvr.Server
	)
	{
		eh := errorHandler(logger)
		adminServer = adminsvr.New(adminEndpoints, mux, dec, enc, eh, nil)
		catalogServer = catalogsvr.New(catalogEndpoints, mux, dec, enc, eh, nil)
		v1catalogServer = v1catalogsvr.New(v1catalogEndpoints, mux, dec, enc, eh, nil)
		categoryServer = categorysvr.New(categoryEndpoints, mux, dec, enc, eh, nil)
		ratingServer = ratingsvr.New(ratingEndpoints, mux, dec, enc, eh, nil)
		resourceServer = resourcesvr.New(resourceEndpoints, mux, dec, enc, eh, nil)
		v1resourceServer = v1resourcesvr.New(v1resourceEndpoints, mux, dec, enc, eh, nil)
		statusServer = statussvr.New(statusEndpoints, mux, dec, enc, eh, nil)
		swaggerServer = swaggersvr.New(nil, mux, dec, enc, eh, nil, nil)
		v1swaggerServer = v1swaggersvr.New(nil, mux, dec, enc, eh, nil, nil)

		if debug {
			servers := goahttp.Servers{
				adminServer,
				catalogServer,
				v1catalogServer,
				categoryServer,
				ratingServer,
				resourceServer,
				v1resourceServer,
				statusServer,
				swaggerServer,
				v1swaggerServer,
			}
			servers.Use(httpmdlwr.Debug(mux, os.Stdout))
		}
	}
	// Configure the mux.
	adminsvr.Mount(mux, adminServer)
	catalogsvr.Mount(mux, catalogServer)
	v1catalogsvr.Mount(mux, v1catalogServer)
	categorysvr.Mount(mux, categoryServer)
	ratingsvr.Mount(mux, ratingServer)
	resourcesvr.Mount(mux, resourceServer)
	v1resourcesvr.Mount(mux, v1resourceServer)
	statussvr.Mount(mux, statusServer)
	swaggersvr.Mount(mux, swaggerServer)
	v1swaggersvr.Mount(mux, v1swaggerServer)

	// Wrap the multiplexer with additional middlewares. Middlewares mounted
	// here apply to all the service endpoints.
	var handler http.Handler = mux
	{
		handler = httpmdlwr.Log(adapter)(handler)
		handler = httpmdlwr.RequestID()(handler)
	}

	// Start HTTP server using default configuration, change the code to
	// configure the server as required by your service.
	srv := &http.Server{Addr: u.Host, Handler: handler, ReadTimeout: 15 * time.Second, WriteTimeout: 15 * time.Second, IdleTimeout: 1 * time.Minute, ReadHeaderTimeout: 10 * time.Second}
	for _, m := range adminServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range catalogServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range v1catalogServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range categoryServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range ratingServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range resourceServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range v1resourceServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range statusServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range swaggerServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}
	for _, m := range v1swaggerServer.Mounts {
		logger.Infof("HTTP %q mounted on %s %s", m.Method, m.Verb, m.Pattern)
	}

	(*wg).Add(1)
	go func() {
		defer (*wg).Done()

		// Start HTTP server in a separate goroutine.
		go func() {
			logger.Infof("HTTP server listening on %q", u.Host)
			errc <- srv.ListenAndServe()
		}()

		<-ctx.Done()
		logger.Infof("shutting down HTTP server at %q", u.Host)

		// Shutdown gracefully with a 30s timeout.
		ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
		defer cancel()

		_ = srv.Shutdown(ctx)
	}()
}

// errorHandler returns a function that writes and logs the given error.
// The function also writes and logs the error unique ID so that it's possible
// to correlate.
func errorHandler(logger *app.Logger) func(context.Context, http.ResponseWriter, error) {
	return func(ctx context.Context, w http.ResponseWriter, err error) {
		id := ctx.Value(middleware.RequestIDKey).(string)
		_, _ = w.Write([]byte("[" + id + "] encoding: " + err.Error()))
		logger.With("id", id).Error(err.Error())
	}
}


================================================
FILE: api/cmd/api/main.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package main

import (
	"context"
	"flag"
	"fmt"
	"net/http"
	"net/url"
	"os"
	"os/signal"
	"strings"
	"sync"

	"github.com/gorilla/handlers"
	"github.com/gorilla/mux"
	admin "github.com/tektoncd/hub/api/gen/admin"
	catalog "github.com/tektoncd/hub/api/gen/catalog"
	category "github.com/tektoncd/hub/api/gen/category"
	rating "github.com/tektoncd/hub/api/gen/rating"
	resource "github.com/tektoncd/hub/api/gen/resource"
	status "github.com/tektoncd/hub/api/gen/status"
	"github.com/tektoncd/hub/api/pkg/app"
	auth "github.com/tektoncd/hub/api/pkg/auth"
	"github.com/tektoncd/hub/api/pkg/db/initializer"
	adminsvc "github.com/tektoncd/hub/api/pkg/service/admin"
	catalogsvc "github.com/tektoncd/hub/api/pkg/service/catalog"
	categorysvc "github.com/tektoncd/hub/api/pkg/service/category"
	ratingsvc "github.com/tektoncd/hub/api/pkg/service/rating"
	resourcesvc "github.com/tektoncd/hub/api/pkg/service/resource"
	statussvc "github.com/tektoncd/hub/api/pkg/service/status"
	userSvc "github.com/tektoncd/hub/api/pkg/user"
	v1catalog "github.com/tektoncd/hub/api/v1/gen/catalog"
	v1resource "github.com/tektoncd/hub/api/v1/gen/resource"
	v1catalogsvc "github.com/tektoncd/hub/api/v1/service/catalog"
	v1resourcesvc "github.com/tektoncd/hub/api/v1/service/resource"

	// Go runtime is unaware of CPU quota which means it will set GOMAXPROCS
	// to underlying host vm node. This high value means that GO runtime
	// scheduler assumes that it has more threads and does context switching
	// when it might work with fewer threads.
	// This doesn't happen# with our other controllers and services because
	// sharedmain already import this package for them.
	_ "go.uber.org/automaxprocs"
)

func main() {
	// Define command line flags, add any other flag required to configure the
	// service.
	var (
		hostF     = flag.String("host", "localhost", "Server host (valid values: localhost)")
		domainF   = flag.String("domain", "", "Host domain name (overrides host domain specified in service design)")
		httpPortF = flag.String("http-port", "", "HTTP port (overrides host HTTP port specified in service design)")
		secureF   = flag.Bool("secure", false, "Use secure scheme (https or grpcs)")
		dbgF      = flag.Bool("debug", false, "Log request and response bodies")
	)
	flag.Parse()

	var (
		api    app.Config
		logger *app.Logger
		err    error
	)
	{
		api, err = app.FromEnv()
		if err != nil {
			fmt.Fprintf(os.Stderr, "FATAL: failed to initialise: %s", err)
			os.Exit(1)
		}

		logger = api.Logger("main")
		defer api.Cleanup()
	}

	// Populate Tables
	initializer := initializer.New(api)
	if _, err := initializer.Run(context.Background()); err != nil {
		logger.Fatalf("Failed to populate table: %v", err)
	}

	// Add apiserver-bot user account
	db := initializer.DB(context.Background())
	if err := initializer.CreateApiServerAccount(db, logger); err != nil {
		logger.Fatalf("Failed to add resources: %v", err)
	}

	// Initialize the services.
	var (
		adminSvc      admin.Service
		catalogSvc    catalog.Service
		v1catalogSvc  v1catalog.Service
		categorySvc   category.Service
		ratingSvc     rating.Service
		resourceSvc   resource.Service
		v1resourceSvc v1resource.Service
		statusSvc     status.Service
	)
	{
		adminSvc = adminsvc.New(api)
		catalogSvc = catalogsvc.New(api)
		v1catalogSvc = v1catalogsvc.New(api)
		categorySvc = categorysvc.New(api)
		ratingSvc = ratingsvc.New(api)
		resourceSvc = resourcesvc.New(api)
		v1resourceSvc = v1resourcesvc.New(api)
		statusSvc = statussvc.New(api)
	}

	// Wrap the services in endpoints that can be invoked from other services
	// potentially running in different processes.
	var (
		adminEndpoints      *admin.Endpoints
		catalogEndpoints    *catalog.Endpoints
		v1catalogEndpoints  *v1catalog.Endpoints
		categoryEndpoints   *category.Endpoints
		ratingEndpoints     *rating.Endpoints
		resourceEndpoints   *resource.Endpoints
		v1resourceEndpoints *v1resource.Endpoints
		statusEndpoints     *status.Endpoints
	)
	{
		adminEndpoints = admin.NewEndpoints(adminSvc)
		catalogEndpoints = catalog.NewEndpoints(catalogSvc)
		v1catalogEndpoints = v1catalog.NewEndpoints(v1catalogSvc)
		categoryEndpoints = category.NewEndpoints(categorySvc)
		ratingEndpoints = rating.NewEndpoints(ratingSvc)
		resourceEndpoints = resource.NewEndpoints(resourceSvc)
		v1resourceEndpoints = v1resource.NewEndpoints(v1resourceSvc)
		statusEndpoints = status.NewEndpoints(statusSvc)
	}

	// Create channel used by both the signal handler and server goroutines
	// to notify the main goroutine when to stop the server.
	errc := make(chan error)

	// Setup interrupt handler. This optional step configures the process so
	// that SIGINT and SIGTERM signals cause the services to stop gracefully.
	go func() {
		c := make(chan os.Signal, 1)
		signal.Notify(c, os.Interrupt)
		errc <- fmt.Errorf("%s", <-c)
	}()

	var wg sync.WaitGroup
	ctx, cancel := context.WithCancel(context.Background())

	// Start the servers and send errors (if any) to the error channel.
	switch *hostF {
	case "localhost":
		{
			addr := "http://:8000"
			u, err := url.Parse(addr)
			if err != nil {
				fmt.Fprintf(os.Stderr, "invalid URL %#v: %s\n", addr, err)
				os.Exit(1)
			}
			if *secureF {
				u.Scheme = "https"
			}
			if *domainF != "" {
				u.Host = *domainF
			}
			if *httpPortF != "" {
				h := strings.Split(u.Host, ":")[0]
				u.Host = h + ":" + *httpPortF
			} else if u.Port() == "" {
				u.Host += ":80"
			}
			handleHTTPServer(
				ctx, u,
				adminEndpoints,
				catalogEndpoints,
				v1catalogEndpoints,
				categoryEndpoints,
				ratingEndpoints,
				resourceEndpoints,
				v1resourceEndpoints,
				statusEndpoints,
				&wg, errc, api.Logger("http"), *dbgF,
			)
		}

	default:
		fmt.Fprintf(os.Stderr, "invalid host argument: %q (valid hosts: localhost)\n", *hostF)
	}

	r := mux.NewRouter()

	authPort := "4200"

	auth.AuthProvider(r, api)
	userSvc.User(r, api)
	go func() {
		// start the web server on port and accept requests
		logger.Infof("AUTH server listening on port %q", authPort)
		logger.Fatal(http.ListenAndServe(":"+authPort,
			handlers.CORS(handlers.AllowedHeaders(
				[]string{"Content-Type", "Authorization"}),
				handlers.AllowedMethods([]string{"GET", "POST"}),
				handlers.AllowedOrigins([]string{"*"}))(r)))
	}()

	// Wait for signal.
	logger.Infof("exiting (%v)", <-errc)

	// Send cancellation signal to the goroutines.
	cancel()

	wg.Wait()
	logger.Info("exited")
}


================================================
FILE: api/cmd/api-cli/http.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package main

import (
	"net/http"
	"time"

	cli "github.com/tektoncd/hub/api/gen/http/cli/hub"
	goahttp "goa.design/goa/v3/http"
	goa "goa.design/goa/v3/pkg"
)

func doHTTP(scheme, host string, timeout int, debug bool) (goa.Endpoint, interface{}, error) {
	var (
		doer goahttp.Doer
	)
	{
		doer = &http.Client{Timeout: time.Duration(timeout) * time.Second}
		if debug {
			doer = goahttp.NewDebugDoer(doer)
		}
	}

	return cli.ParseEndpoint(
		scheme,
		host,
		doer,
		goahttp.RequestEncoder,
		goahttp.ResponseDecoder,
		debug,
	)
}

func httpUsageCommands() string {
	return cli.UsageCommands()
}

func httpUsageExamples() string {
	return cli.UsageExamples()
}


================================================
FILE: api/cmd/api-cli/main.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package main

import (
	"context"
	"encoding/json"
	"flag"
	"fmt"
	"net/url"
	"os"
	"strings"

	goa "goa.design/goa/v3/pkg"
)

func main() {
	var (
		hostF = flag.String("host", "localhost", "Server host (valid values: localhost)")
		addrF = flag.String("url", "", "URL to service host")

		verboseF = flag.Bool("verbose", false, "Print request and response details")
		vF       = flag.Bool("v", false, "Print request and response details")
		timeoutF = flag.Int("timeout", 30, "Maximum number of seconds to wait for response")
	)
	flag.Usage = usage
	flag.Parse()
	var (
		addr    string
		timeout int
		debug   bool
	)
	{
		addr = *addrF
		if addr == "" {
			switch *hostF {
			case "localhost":
				addr = "http://localhost:8000"
			default:
				fmt.Fprintf(os.Stderr, "invalid host argument: %q (valid hosts: localhost)\n", *hostF)
				os.Exit(1)
			}
		}
		timeout = *timeoutF
		debug = *verboseF || *vF
	}

	var (
		scheme string
		host   string
	)
	{
		u, err := url.Parse(addr)
		if err != nil {
			fmt.Fprintf(os.Stderr, "invalid URL %#v: %s\n", addr, err)
			os.Exit(1)
		}
		scheme = u.Scheme
		host = u.Host
	}
	var (
		endpoint goa.Endpoint
		payload  interface{}
		err      error
	)
	{
		switch scheme {
		case "http", "https":
			endpoint, payload, err = doHTTP(scheme, host, timeout, debug)
		default:
			fmt.Fprintf(os.Stderr, "invalid scheme: %q (valid schemes: http)\n", scheme)
			os.Exit(1)
		}
	}
	if err != nil {
		if err == flag.ErrHelp {
			os.Exit(0)
		}
		fmt.Fprintln(os.Stderr, err.Error())
		fmt.Fprintln(os.Stderr, "run '"+os.Args[0]+" --help' for detailed usage.")
		os.Exit(1)
	}

	data, err := endpoint(context.Background(), payload)
	if err != nil {
		fmt.Fprintln(os.Stderr, err.Error())
		os.Exit(1)
	}

	if data != nil {
		m, _ := json.MarshalIndent(data, "", "    ")
		fmt.Println(string(m))
	}
}

func usage() {
	fmt.Fprintf(os.Stderr, `%s is a command line client for the hub API.

Usage:
    %s [-host HOST][-url URL][-timeout SECONDS][-verbose|-v] SERVICE ENDPOINT [flags]

    -host HOST:  server host (localhost). valid values: localhost
    -url URL:    specify service URL overriding host URL (http://localhost:8080)
    -timeout:    maximum number of seconds to wait for response (30)
    -verbose|-v: print request and response details (false)

Commands:
%s
Additional help:
    %s SERVICE [ENDPOINT] --help

Example:
%s
`, os.Args[0], os.Args[0], indent(httpUsageCommands()), os.Args[0], indent(httpUsageExamples()))
}

func indent(s string) string {
	if s == "" {
		return ""
	}
	return "    " + strings.Replace(s, "\n", "\n    ", -1)
}


================================================
FILE: api/cmd/db/main.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package main

import (
	"fmt"
	"os"

	"github.com/tektoncd/hub/api/pkg/app"
	"github.com/tektoncd/hub/api/pkg/db/migration"
)

func main() {
	api, err := app.APIBaseFromEnv()
	if err != nil {
		fmt.Fprintf(os.Stderr, "FATAL: failed to initialise: %s", err)
		os.Exit(1)
	}
	defer api.Cleanup()

	logger := api.Logger("main")
	if err = migration.Migrate(api); err != nil {
		logger.Fatalf("DB initialisation failed !!")
		return
	}
	logger.Info("DB initialisation successful !!")
}


================================================
FILE: api/cmd/tkn-hub/main.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package main

import (
	"os"

	"github.com/tektoncd/hub/api/pkg/cli/app"
	"github.com/tektoncd/hub/api/pkg/cli/cmd"
)

func main() {

	cli := app.New()
	hub := cmd.Root(cli)
	if err := hub.Execute(); err != nil {
		os.Exit(1)
	}
}


================================================
FILE: api/design/admin.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import (
	"github.com/tektoncd/hub/api/design/types"
	. "goa.design/goa/v3/dsl"
)

var _ = Service("admin", func() {
	Description("Admin service")

	Error("invalid-payload", ErrorResult, "Invalid request body")
	Error("invalid-token", ErrorResult, "Invalid User token")
	Error("invalid-scopes", ErrorResult, "Invalid Token scopes ")
	Error("internal-error", ErrorResult, "Internal server error")

	token := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9." +
		"eyJleHAiOjE1Nzc4ODAzMDAsImlhdCI6MTU3Nzg4MDAwMCwiaWQiOjExLCJpc3MiOiJUZWt0b24gSHViIiwic2NvcGVzIjpbInJhdGluZzpyZWFkIiwicmF0aW5nOndyaXRlIiwiYWdlbnQ6Y3JlYXRlIl0sInR5cGUiOiJhY2Nlc3MtdG9rZW4ifQ." +
		"6pDmziSKkoSqI1f0rc4-AqVdcfY0Q8wA-tSLzdTCLgM"

	Method("UpdateAgent", func() {
		Description("Create or Update an agent user with required scopes")
		Security(types.JWTAuth, func() {
			Scope("agent:create")
		})
		Payload(func() {
			Token("token", String, "User JWT", func() {
				Example("token", token)
			})
			Attribute("name", String, "Name of Agent", func() {
				Example("name", "abc")
			})
			Attribute("scopes", ArrayOf(String), "Scopes required for Agent", func() {
				Example("scopes", func() {
					Value([]string{"catalog-refresh", "agent:create"})
				})
			})
			Required("name", "scopes", "token")
		})
		Result(func() {
			Attribute("token", String, "Agent JWT", func() {
				Example("token", token)
			})
			Required("token")
		})

		HTTP(func() {
			PUT("/system/user/agent")
			Header("token:Authorization")

			Response(StatusOK)
			Response("invalid-payload", StatusBadRequest)
			Response("invalid-token", StatusUnauthorized)
			Response("invalid-scopes", StatusForbidden)
			Response("internal-error", StatusInternalServerError)
		})
	})

	Method("RefreshConfig", func() {
		Description("Refresh the changes in config file")
		Security(types.JWTAuth, func() {
			Scope("config:refresh")
		})
		Payload(func() {
			Token("token", String, "User JWT", func() {
				Example("token", token)
			})
			Required("token")
		})
		Result(func() {
			Attribute("checksum", String, "Config file checksum", func() {
				Example("checksum", "41ba391c8baf1fcd3c62c11272b913dc6613f4cf3b1833cfbb32431dc4384c93")
			})
			Required("checksum")
		})

		HTTP(func() {
			POST("/system/config/refresh")
			Header("token:Authorization")

			Response(StatusOK)
			Response("invalid-token", StatusUnauthorized)
			Response("invalid-scopes", StatusForbidden)
			Response("internal-error", StatusInternalServerError)
		})
	})
})


================================================
FILE: api/design/api.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import (
	. "goa.design/goa/v3/dsl"
	cors "goa.design/plugins/v3/cors/dsl"

	// Enables the zaplogger plugin
	_ "goa.design/plugins/v3/zaplogger"
)

var _ = API("hub", func() {
	Title("Tekton Hub")
	Description("HTTP services for managing Tekton Hub")
	Version("1.0")
	Meta("swagger:example", "false")
	Server("hub", func() {
		Host("production", func() {
			URI("https://api.hub.tekton.dev")
		})

		Services(
			"admin",
			"catalog",
			"category",
			"rating",
			"resource",
			"status",
			"swagger",
		)
	})

	// TODO: restrict CORS origin | https://github.com/tektoncd/hub/issues/26
	cors.Origin("*", func() {
		cors.Headers("Content-Type", "Authorization")
		cors.Methods("GET", "POST", "PUT")
	})
})


================================================
FILE: api/design/catalog.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import (
	"github.com/tektoncd/hub/api/design/types"
	. "goa.design/goa/v3/dsl"
)

var _ = Service("catalog", func() {
	Description("The Catalog Service exposes endpoints to interact with catalogs")

	Error("internal-error", ErrorResult, "Internal Server Error")
	Error("not-found", ErrorResult, "Resource Not Found Error")

	Method("Refresh", func() {
		Description("Refresh a Catalog by it's name")
		Security(types.JWTAuth, func() {
			Scope("catalog:refresh")
		})
		Payload(func() {
			Attribute("catalogName", String, "Name of catalog", func() {
				Example("catalogName", "tekton")
			})
			Token("token", String, "JWT")
			Required("token", "catalogName")
		})
		Result(types.Job)

		HTTP(func() {
			POST("/catalog/{catalogName}/refresh")
			Header("token:Authorization")

			Response(StatusOK)
			Response("not-found", StatusNotFound)
			Response("internal-error", StatusInternalServerError)
		})
	})

	Method("RefreshAll", func() {
		Description("Refresh all catalogs")
		Security(types.JWTAuth, func() {
			Scope("catalog:refresh")
		})
		Payload(func() {
			Token("token", String, "JWT")
			Required("token")
		})
		Result(ArrayOf(types.Job))

		HTTP(func() {
			POST("/catalog/refresh")
			Header("token:Authorization")

			Response(StatusOK)
			Response("internal-error", StatusInternalServerError)
		})
	})

	Method("CatalogError", func() {
		Description("List all errors occurred refreshing a catalog")
		Security(types.JWTAuth, func() {
			Scope("catalog:refresh")
		})
		Payload(func() {
			Attribute("catalogName", String, "Name of catalog", func() {
				Example("catalogName", "tekton")
			})
			Token("token", String, "JWT", func() {
				Example("token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9."+
					"eyJleHAiOjE1Nzc4ODM2MDAsImlhdCI6MTU3Nzg4MDAwMCwiaWQiOjExLCJpc3MiOiJUZWt0b24gSHViIiwic2NvcGVzIjpbInJlZnJlc2g6dG9rZW4iXSwidHlwZSI6InJlZnJlc2gtdG9rZW4ifQ."+
					"4RdUk5ttHdDiymurlZ_f7Uy5Pas3Lq9w04BjKQKRiCE")
			})
			Required("catalogName", "token")
		})
		Result(func() {
			Attribute("data", ArrayOf(types.CatalogErrors), "Catalog errors")
			Required("data")
		})

		HTTP(func() {
			GET("/catalog/{catalogName}/error")
			Header("token:Authorization")

			Response(StatusOK)
			Response("internal-error", StatusInternalServerError)
		})
	})

})


================================================
FILE: api/design/category.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import (
	"github.com/tektoncd/hub/api/design/types"
	. "goa.design/goa/v3/dsl"
)

var _ = Service("category", func() {
	Description("The category service provides details about category")

	Error("internal-error", ErrorResult, "Internal Server Error")

	Method("list", func() {
		Description("List all categories along with their tags sorted by name")
		Result(func() {
			Attribute("data", ArrayOf(types.Category))
		})

		HTTP(func() {
			GET("/categories")
			GET("/v1/categories")

			Response(StatusOK)
			Response("internal-error", StatusInternalServerError)
		})
	})
})


================================================
FILE: api/design/rating.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import (
	"github.com/tektoncd/hub/api/design/types"
	. "goa.design/goa/v3/dsl"
)

var _ = Service("rating", func() {
	Description("The rating service exposes endpoints to read and write user's rating for resources")

	Error("not-found", ErrorResult, "Resource Not Found Error")
	Error("internal-error", ErrorResult, "Internal server error")
	Error("invalid-token", ErrorResult, "Invalid User token")
	Error("invalid-scopes", ErrorResult, "Invalid User scope")

	Method("Get", func() {
		Description("Find user's rating for a resource")
		Security(types.JWTAuth, func() {
			Scope("rating:read")
		})
		Payload(func() {
			Attribute("id", UInt, "ID of a resource")
			Token("token", String, "JWT")
			Required("id", "token")
		})
		Result(func() {
			Attribute("rating", Int, "User rating for resource", func() {
				Example("rating", 4)
			})
			Required("rating")
		})

		HTTP(func() {
			GET("/resource/{id}/rating")
			Header("token:Authorization")

			Response(StatusOK)
			Response("not-found", StatusNotFound)
			Response("internal-error", StatusInternalServerError)
			Response("invalid-token", StatusUnauthorized)
			Response("invalid-scopes", StatusForbidden)
		})
	})

	Method("Update", func() {
		Description("Update user's rating for a resource")
		Security(types.JWTAuth, func() {
			Scope("rating:write")
		})
		Payload(func() {
			Attribute("id", UInt, "ID of a resource")
			Attribute("rating", UInt, "User rating for resource", func() {
				Minimum(0)
				Maximum(5)
			})
			Token("token", String, "JWT")
			Required("id", "token", "rating")
		})

		HTTP(func() {
			PUT("/resource/{id}/rating")
			Header("token:Authorization")

			Response(StatusOK)
			Response("not-found", StatusNotFound)
			Response("internal-error", StatusInternalServerError)
			Response("invalid-token", StatusUnauthorized)
			Response("invalid-scopes", StatusForbidden)
		})
	})
})


================================================
FILE: api/design/resource.go
================================================
// Copyright © 2022 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import (
	"github.com/tektoncd/hub/api/design/types"
	. "goa.design/goa/v3/dsl"
)

// NOTE: APIs in the service are moved to v1. This APIs will be deprecated in the next release.

var _ = Service("resource", func() {
	Description("The resource service provides details about all kind of resources")

	Error("internal-error", ErrorResult, "Internal Server Error")
	Error("not-found", ErrorResult, "Resource Not Found Error")

	Method("Query", func() {
		Description("Find resources by a combination of name, kind, catalog, categories, platforms and tags")
		Payload(func() {
			Attribute("name", String, "Name of resource", func() {
				Default("")
				Example("name", "buildah")
			})
			Attribute("catalogs", ArrayOf(String), "Catalogs of resource to filter by", func() {
				Example([]string{"tekton", "openshift"})
			})
			Attribute("kinds", ArrayOf(String), "Kinds of resource to filter by", func() {
				Example([]string{"task", "pipelines"})
			})
			Attribute("categories", ArrayOf(String), "Category associated with a resource to filter by", func() {
				Example([]string{"build", "tools"})
			})
			Attribute("tags", ArrayOf(String), "Tags associated with a resource to filter by", func() {
				Example([]string{"image", "build"})
			})
			Attribute("platforms", ArrayOf(String), "Platforms associated with a resource to filter by", func() {
				Example([]string{"linux/s390x", "linux/amd64"})
			})
			Attribute("limit", UInt, "Maximum number of resources to be returned", func() {
				Default(1000)
				Example("limit", 100)
			})

			Attribute("match", String, "Strategy used to find matching resources", func() {
				Enum("exact", "contains")
				Default("contains")
			})
		})
		Result(func() {
			Attribute("location", String, "Redirect URL", func() {
				Format(FormatURI)
			})
			Required("location")
		})

		HTTP(func() {
			GET("/query")

			Param("name")
			Param("catalogs")
			Param("categories")
			Param("kinds")
			Param("tags")
			Param("platforms")
			Param("limit")
			Param("match")

			Response(StatusFound, func() {
				Header("location")
			})

		})
	})

	Method("List", func() {
		Description("List all resources sorted by rating and name")
		Result(types.Resources)

		HTTP(func() {
			GET("/resources")
			Redirect("/v1/resources", StatusMovedPermanently)
		})
	})

	Method("VersionsByID", func() {

		Description("Find all versions of a resource by its id")
		Payload(func() {
			Attribute("id", UInt, "ID of a resource", func() {
				Example("id", 1)
			})
			Required("id")
		})
		Result(func() {
			Attribute("location", String, "Redirect URL", func() {
				Format(FormatURI)
			})
			Required("location")
		})

		HTTP(func() {
			GET("/resource/{id}/versions")
			Response(StatusFound, func() {
				Header("location")
			})

		})
	})

	Method("ByCatalogKindNameVersion", func() {
		Description("Find resource using name of catalog & name, kind and version of resource")
		Payload(func() {
			Attribute("catalog", String, "name of catalog", func() {
				Example("catalog", "tektoncd")
			})
			Attribute("kind", String, "kind of resource", func() {
				Enum("task", "pipeline")
			})
			Attribute("name", String, "name of resource", func() {
				Example("name", "buildah")
			})
			Attribute("version", String, "version of resource", func() {
				Example("version", "0.1")
			})

			Required("catalog", "kind", "name", "version")
		})
		Result(func() {
			Attribute("location", String, "Redirect URL", func() {
				Format(FormatURI)
			})
			Required("location")
		})

		HTTP(func() {
			GET("/resource/{catalog}/{kind}/{name}/{version}")
			Response(StatusFound, func() {
				Header("location")
			})

		})
	})

	Method("ByVersionId", func() {
		Description("Find a resource using its version's id")
		Payload(func() {
			Attribute("versionID", UInt, "Version ID of a resource's version", func() {
				Example("versionID", 1)
			})
			Required("versionID")
		})
		Result(func() {
			Attribute("location", String, "Redirect URL", func() {
				Format(FormatURI)
			})
			Required("location")
		})

		HTTP(func() {
			GET("/resource/version/{versionID}")
			Response(StatusFound, func() {
				Header("location")
			})
		})

	})

	Method("ByCatalogKindName", func() {
		Description("Find resources using name of catalog, resource name and kind of resource")
		Payload(func() {
			Attribute("catalog", String, "name of catalog", func() {
				Example("catalog", "tektoncd")
			})
			Attribute("kind", String, "kind of resource", func() {
				Enum("task", "pipeline")
			})
			Attribute("name", String, "Name of resource", func() {
				Example("name", "buildah")
			})
			Attribute("pipelinesversion", String, "To find resource compatible with a Tekton pipelines version, use this param", func() {
				Pattern(types.PipelinesVersionRegex)
				Example("pipelinesversion", "0.21.0")
			})
			Required("catalog", "kind", "name")
		})
		Result(func() {
			Attribute("location", String, "Redirect URL", func() {
				Format(FormatURI)
			})
			Required("location")
		})

		HTTP(func() {
			GET("/resource/{catalog}/{kind}/{name}")

			Param("pipelinesversion")

			Response(StatusFound, func() {
				Header("location")
			})

		})
	})

	Method("ById", func() {
		Description("Find a resource using it's id")
		Payload(func() {
			Attribute("id", UInt, "ID of a resource", func() {
				Example("id", 1)
			})
			Required("id")
		})
		Result(func() {
			Attribute("location", String, "Redirect URL", func() {
				Format(FormatURI)
			})
			Required("location")
		})

		HTTP(func() {
			GET("/resource/{id}")
			Response(StatusFound, func() {
				Header("location")
			})
		})
	})

})


================================================
FILE: api/design/status.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import (
	"github.com/tektoncd/hub/api/design/types"
	. "goa.design/goa/v3/dsl"
)

var _ = Service("status", func() {
	Description("Describes the status of each service")

	Method("Status", func() {
		Description("Return status of the services")
		Result(func() {
			Attribute("services", ArrayOf(types.HubService), "List of services and their status")
		})

		HTTP(func() {
			GET("/")
			GET("/v1")
			Response(StatusOK)
		})
	})
})


================================================
FILE: api/design/swagger.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package design

import . "goa.design/goa/v3/dsl"

var _ = Service("swagger", func() {
	Description("The swagger service serves the API swagger definition.")

	HTTP(func() {
		Path("/schema")
	})

	// NOTE: The path is changed to docs/openapi3.json to make it work in container.
	// Copying the gen as it is doesn't seems to work properly, so in dockerfile, swagger will
	// file is copied to /docs. This will make the swagger api not work locally, as the file
	// generated is in gen directory.
	Files("/swagger.json", "docs/openapi3.json", func() {
		Description("JSON document containing the API swagger definition")
	})
})


================================================
FILE: api/design/types/type.go
================================================
// Copyright © 2020 The Tekton Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package types

import (
	. "goa.design/goa/v3/dsl"
)

var PipelinesVersionRegex = `^\d+(?:\.\d+){0,2}$`

var TagDef = Type("Tag", func() {
	Attribute("id", UInt, "ID is the unique id of tag", func() {
		Example("id", 1)
	})
	Attribute("name", String, "Name of tag", func() {
		Example("name", "image-build")
	})

	Required("id", "name")
})

var Tags = ArrayOf(TagDef)

var Platform = Type("Platform", func() {
	Attribute("id", UInt, "ID is the unique id of platform", func() {
		Example("id", 1)
	})
	Attribute("name", String, "Name of platform", func() {
		Example("name", "linux/amd64")
	})

	Required("id", "name")
})

var Platforms = ArrayOf(Platform)

var Category = Type("Category", func() {
	Attribute("id", UInt, "ID is the unique id of the category", func() {
		Example("id", 1)
	})
	Attribute("name", String, "Name of category", func() {
		Example("name", "Image Builder")
	})

	Required("id", "name")
})

var Categories = ArrayOf(Category)

var Catalog = ResultType("application/vnd.hub.catalog", "Catalog", func() {
	Attribute("id", UInt, "ID is the unique id of the catalog", func() {
		Example("id", 1)
	})
	Attribute("name", String, "Name of catalog", func() {
		Example("name", "Tekton")
	})
	Attribute("type", String, "Type of catalog", func() {
		Enum("official", "community")
		Example("type", "community")
	})
	Attribute("url", String, "URL of catalog", func() {
		Example("url", "https://github.com/tektoncd/hub")
	})
	Attribute("provider", String, "Provider of catalog", func() {
		Example("provider", "github")
	})

	View("min", func() {
		Attribute("id")
		Attribute("name")
		Attribute("type")
	})

	View("default", func() {
		Attribute("id")
		Attribute("name")
		Attribute("type")
		Attribute("url")
		Attribute("provider")
	})

	Required("id", "name", "type", "url", "provider")
})

var ResourceContent = ResultType("application/vnd.hub.resourcecontent", "ResourceContent", func() {
	Attribute("readme", String, "Readme", func() {
		Example("readme", "#Readme\n Sample readme content")
	})
	Attribute("yaml", String, "Yaml", func() {
		Example("yaml", "#YAML\n Sample yaml content")
	})

	View("readme", func() {
		Attribute("readme")
	})

	View("yaml", func() {
		Attribute("yaml")
	})
})

var ResourceVersionData = ResultType("application/vnd.hub.resource.version.data", "ResourceVersionData", func() {
	Description("The Version result type describes resource's version information.")

	Attribute("id", UInt, "ID is the unique id of resource's version", func() {
		Example("id", 1)
	})
	Attribute("version", String, "Version of resource", func() {
		Example("version", "0.1")
	})
	Attribute("displayName", String, "Display name of version", func() {
		Example("displayName", "Buildah")
	})
	Attribute("deprecated", Boolean, "Deprecation status of a version", func() {
		Example("deprecated", true)
	})
	Attribute("description", String, "Description of version", func() {
		Example("descripiton", "Buildah task builds source into a container image and then pushes it to a container registry.")
	})
	Attribute("minPipelinesVersion", String, "Minimum pipelines version the resource's version is compatible with", func() {
		Example("minPipelinesVersion", "0.12.1")
	})
	Attribute("rawURL", String, "Raw URL of resource's yaml file of the version", func() {
		Format(FormatURI)
		Example("rawURL", "https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildah/0.1/buildah.yaml")
	})
	Attribute("webURL", String, "Web URL of resource's yaml file of the version", func() {
		Format(FormatURI)
		Example("webURL", "https://github.com/tektoncd/catalog/blob/main/task/buildah/0.1/buildah.yaml")
	})
	Attribute("hubRawURLPath", String, "Path of the api to get the raw yaml of resource from hub apiserver", func() {
		Example("hubRawURLPath", "/tekton/task/buildah/raw")
	})
	Attribute("updatedAt", String, "Timestamp when version was last updated", func() {
		Format(FormatDateTime)
		Example("updatedAt", "2020-01-01 12:00:00 +0000 UTC")
	})
	Attribute("platforms", Platforms, "Platforms related to resource version", func() {
		Example("platforms", func() {
			Value([]Val{
				{"id": 1, "name": "linux/s390x"},
			})
		})
	})
	Attribute("hubURLPath", String, "Url path of the resource in hub", func() {
		Example("hubURLPath", "tekton/task/buildah")
	})
	Attribute("resource", ResourceData, "Resource to which the version belongs", func() {
		View("info")
		Example("resource", func() {
			Value(Val{
				"id":         1,
				"name":       "buildah",
				"catalog":    Val{"id": 1, "type": "community"},
				"categories": []Val{{"id": 1, "name": "Build Tools"}},
				"kind":       "task",
				"tags":       []Val{{"id": 1, "name": "image-build"}},
				"platforms":  []Val{{"id": 1, "name": "linux/amd64"}},
				"rating":     4.3,
			})
		})
	})

	View("tiny", func() {
		Attribute("id")
		Attribute("version")
	})

	View("min", func() {
		Attribute("id")
		Attribute("version")
		Attribute("rawURL")
		Attribute("webURL")
		Attribute("hubRawURLPath")
		Attribute("hubURLPath")
		Attribute("platforms")
	})

	View("withoutResource", func() {
		Attribute("id")
		Attribute("version")
		Attribute("displayName")
		Attribute("deprecated")
		Attribute("description")
		Attribute("minPipelinesVersion")
		Attribute("rawURL")
		Attribute("webURL")
		Attribute("hubRawURLPath")
		Attribute("hubURLPath")
		Attribute("updatedAt")
		Attribute("platforms")
	})

	View("default", func() {
		Attribute("id")
		Attribute("version")
		Attribute("displayName")
		Attribute("deprecated")
		Attribute("description")
		Attribute("minPipelinesVersion")
		Attribute("rawURL")
		Attribute("webURL")
		Attribute("hubURLPath")
		Attribute("hubRawURLPath")
		Attribute("updatedAt")
		Attribute("resource")
		Attribute("platforms")
	})

	Required("id", "version", "displayName", "description", "minPipelinesVersion", "rawURL", "webURL", "updatedAt", "platforms", "resource", "hubURLPath", "hubRawURLPath")
})

var ResourceData = ResultType("application/vnd.hub.resource.data", "ResourceData", func() {
	Description("The resource type describes resource information.")

	Attribute("id", UInt, "ID is the unique id of the resource", func() {
		Example("id", 1)
	})
	Attribute("name", String, "Name of resource", func() {
		Example("name", "buildah")
	})
	Attribute("catalog", Catalog, "Type of catalog to which resource belongs", func() {
		View("min")
		Example("catalog", func() {
			Value(Val{"id": 1, "name": "tekton", "type": "community"})
		})
	})
	Attribute("categories", Categories, "Categories related to resource", func() {
		Example("categories", func() {
			Value([]Val{
				{"id": 1, "name": "image-build"},
			})
		})
	})
	Attribute("kind", String, "Kind of resource", func() {
		Example("kind", "task")
	})
	Attribute("hubURLPath", String, "Url path of the resource in hub", func() {
		Example("hubURLPath", "tekton/task/buildah")
	})
	Attribute("hubRawURLPath", String, "Path of the api to get the raw yaml of resource from hub apiserver", func() {
		Example("hubRawURLPath", "/tekton/task/buildah/raw")
	})
	Attribute("latestVersion", "ResourceVersionData", "Latest version of resource", func() {
		View("withoutResource")
		Example("latestVersion", func() {
			Value(Val{
				"id":                  1,
				"version":             "0.1",
				"description":         "Buildah task builds source into a container image and then pushes it to a container registry.",
				"displayName":         "Buildah",
				"minPipelinesVersion": "0.12.1",
				"rawURL":              "https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildah/0.1/buildah.yaml",
				"webURL":              "https://github.com/tektoncd/catalog/blob/main/task/buildah/0.1/buildah.yaml",
				"hubRawURLPath":       "/tekton/task/buildah/latest/raw",
				"updatedAt":           "2020-01-01 12:00:00 +0000 UTC",
				"platforms":           []Val{{"id": 1, "name": "linux/amd64"}},
			})
		})
	})
	Attribute("tags", Tags, "Tags related to resource", func() {
		Example("tags", func() {
			Value([]Val{
				{"id": 1, "name": "image-build"},
			})
		})
	})

	Attribute("platforms", Platforms, "Platforms related to resource", func() {
		Example("platforms", func() {
			Value([]Val{
				{"id": 1, "name": "linux/amd64"},
			})
		})
	})
	Attribute("rating", Float64, "Rating of resource", func() {
		Example("rating", 4.3)
	})
	Attribute("versions", ArrayOf("ResourceVersionData"), "List of all versions of a resource", func() {
		Example("versions", func() {
			Value([]Val{{
				"id":      1,
				"version": "0.1",
			}, {
				"id":      2,
				"version": "0.2",
			}})
		})
	})

	View("info", func() {
		Attribute("id")
		Attribute("name")
		Attribute("catalog")
		Attribute("categories")
		Attribute("kind")
		Attribute("hubURLPath")
		Attribute("tags")
		Attribute("platforms")
		Attribute("rating")
	})

	View("withoutVersion", func() {
		Attribute("id")
		Attribute("name")
		Attribute("catalog", func() {
			View("min")
		})
		Attribute("categories")
		Attribute("kind")
		Attribute("hubURLPath")
		Attribute("hubRawURLPath")
		Attribute("latestVersion")
		Attribute("tags")
		Attribute("platforms")
		Attribute("rating")
	})

	View("default", func() {
		Attribute("id")
		Attribute("name")
		Attribute("catalog")
		Attribute("categories")
		Attribute("kind")
		Attribute("hubURLPath")
		Attribute("hubRawURLPath")
		Attribute("latestVersion")
		Attribute("tags")
		Attribute("platforms")
		Attribute("rating")
		Attribute("versions", func() {
			View("tiny")
		})
	})

	Required("id", "name", "catalog", "categories", "kind", "hubURLPath", "latestVersion", "tags", "platforms", "rating", "versions", "hubRawURLPath")
})

var Versions = ResultType("application/vnd.hub.versions", "Versions", func() {
	Description("The Versions type describes response for versions by resource id API.")

	Attribute("latest", ResourceVersionData, "Latest Version of resource", func() {
		Example("latest", func() {
			Value(Val{
				"id":            2,
				"version":       "0.2",
				"rawURL":        "https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildah/0.2/buildah.yaml",
				"webURL":        "https://github.com/tektoncd/catalog/blob/main/task/buildah/0.2/buildah.yaml",
				"hubRawURLPath": "/resource/tektoncd/task/buildah/raw",
			})
		})
	})
	Attribute("versions", ArrayOf(ResourceVersionData), "List of all versions of resource", func() {
		Example("versions", func() {
			Value([]Val{{
				"id":            1,
				"version":       "0.1",
				"rawURL":        "https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildah/0.1/buildah.yaml",
				"webURL":        "https://github.com/tektoncd/catalog/blob/main/task/buildah/0.1/buildah.yaml",
				"hubRawURLPath": "/resource/tektoncd/task/buildah/0.1/raw",
			}, {
				"id":            2,
				"version":       "0.2",
				"rawURL":        "https://raw.githubusercontent.com/tektoncd/catalog/main/task/buildah/0.2/buildah.yaml",
				"webURL":        "https://github.com/tektoncd/catalog/blob/main/task/buildah/0.2/buildah.yaml",
				"hubRawURLPath": "/resource/tektoncd/task/buildah/0.2/raw",
			}})
		})
	})

	View("default", func() {
		Attribute("latest", func() {
			View("min")
		})
		Attribute("versions", func() {
			View("min")
		})
	})

	Required("latest", "versions")
})

var JWTAuth = JWTSecurity("jwt", func() {
	Description("Secures endpoint by requiring a valid JWT retrieved via the /auth/login endpoint.")
	Scope("rating:read", "Read-only access to rating")
	Scope("rating:write", "Read and write access to rating")
	Scope("agent:create", "Access to create or update an agent")
	Scope("catalog:refresh", "Access to refresh catalog")
	Scope("config:refresh", "Access to refresh config file")
	Scope("refresh:token", "Access to refresh user access token")
})

var HubService = Type("HubService", func() {
	Description("Describes the services and their status")
	Attribute("name", String, "Name of the service", func() {
		Example("name", "api")
	})
	Attribute("status", String, "Status of the service", func() {
		Enum("ok", "error")
		Example("status", "ok")
	})
	Attribute("error", String, "Details of the error if any", func() {
		Example("error", "unable to reach db")
	})

	Required("name", "status")
})

var Job = ResultType("application/vnd.hub.job", "Job", func() {
	Description("The Job type describes a catalog refresh job that is run asynchronously")
	Attribute("id", UInt, "id of the job", func() {
		Example("id", 1)
	})
	Attribute("catalogName", String, "Name of the catalog", func() {
		Example("catalogName", "tekton")
	})
	Attribute("status", String, "status of the job", func() {
		Example("status", "queued")
	})
	Required("id", "catalogName", "status")
})

var Resources = ResultType("application/vnd.hub.resources", "Resources", func() {
	Attribute("data", CollectionOf(ResourceData), func() {
		View("withoutVersion")
	})
	Required("data")
})

var ResourceVersions = ResultType("application/vnd.hub.resource.versions", "ResourceVersions", func() {
	Attribute("data", Versions)
	Required("data")
})

var ResourceVersion = ResultType("application/vnd.hub.resource.version", "ResourceVersion", func() {
	Attribute("data", ResourceVersionData, func() {
		View("default")
	})
	Required("data")
})

var Resource = ResultType("application/vnd.hub.resource", "Resource", func() {
	Attribute("data", ResourceData, func() {
		View("default")
	})
	Required("data")
})

var ResourceVersionReadme = ResultType("application/vnd.hub.resource.version.readme", "ResourceVersionReadme", func() {
	Description("README of a particular version of a Resource")
	Attribute("data", ResourceContent, func() {
		View("readme")
	})
	Required("data")
})

var ResourceVersionYaml = ResultType("application/vnd.hub.resource.version.yaml", "ResourceVersionYaml", func() {
	Description("YAML of a particular version of a Resource")
	Attribute("data", ResourceContent, func() {
		View("yaml")
	})
	Required("data")
})

var CatalogErrors = Type("CatalogErrors", func() {
	Description("CatalogErrors define the errors that occurred during catalog refresh")
	Attribute("type", String, "Catalog Errror type", func() {
		Example("type", "warning")

	})
	Attribute("errors", ArrayOf(String), "Catalog Error message", func() {
		Example("errors", []string{"Resource tekton.dev/v1beta1, Kind=Task - buildah has no display name", "Resource tekton.dev/v1beta1, Kind=task - curl has no display name"})
	})
	Required("type", "errors")
})


================================================
FILE: api/gen/admin/client.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin client
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package admin

import (
	"context"

	goa "goa.design/goa/v3/pkg"
)

// Client is the "admin" service client.
type Client struct {
	UpdateAgentEndpoint   goa.Endpoint
	RefreshConfigEndpoint goa.Endpoint
}

// NewClient initializes a "admin" service client given the endpoints.
func NewClient(updateAgent, refreshConfig goa.Endpoint) *Client {
	return &Client{
		UpdateAgentEndpoint:   updateAgent,
		RefreshConfigEndpoint: refreshConfig,
	}
}

// UpdateAgent calls the "UpdateAgent" endpoint of the "admin" service.
// UpdateAgent may return the following errors:
//   - "invalid-payload" (type *goa.ServiceError): Invalid request body
//   - "invalid-token" (type *goa.ServiceError): Invalid User token
//   - "invalid-scopes" (type *goa.ServiceError): Invalid Token scopes
//   - "internal-error" (type *goa.ServiceError): Internal server error
//   - error: internal error
func (c *Client) UpdateAgent(ctx context.Context, p *UpdateAgentPayload) (res *UpdateAgentResult, err error) {
	var ires any
	ires, err = c.UpdateAgentEndpoint(ctx, p)
	if err != nil {
		return
	}
	return ires.(*UpdateAgentResult), nil
}

// RefreshConfig calls the "RefreshConfig" endpoint of the "admin" service.
// RefreshConfig may return the following errors:
//   - "invalid-payload" (type *goa.ServiceError): Invalid request body
//   - "invalid-token" (type *goa.ServiceError): Invalid User token
//   - "invalid-scopes" (type *goa.ServiceError): Invalid Token scopes
//   - "internal-error" (type *goa.ServiceError): Internal server error
//   - error: internal error
func (c *Client) RefreshConfig(ctx context.Context, p *RefreshConfigPayload) (res *RefreshConfigResult, err error) {
	var ires any
	ires, err = c.RefreshConfigEndpoint(ctx, p)
	if err != nil {
		return
	}
	return ires.(*RefreshConfigResult), nil
}


================================================
FILE: api/gen/admin/endpoints.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin endpoints
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package admin

import (
	"context"

	goa "goa.design/goa/v3/pkg"
	"goa.design/goa/v3/security"
)

// Endpoints wraps the "admin" service endpoints.
type Endpoints struct {
	UpdateAgent   goa.Endpoint
	RefreshConfig goa.Endpoint
}

// NewEndpoints wraps the methods of the "admin" service with endpoints.
func NewEndpoints(s Service) *Endpoints {
	// Casting service to Auther interface
	a := s.(Auther)
	return &Endpoints{
		UpdateAgent:   NewUpdateAgentEndpoint(s, a.JWTAuth),
		RefreshConfig: NewRefreshConfigEndpoint(s, a.JWTAuth),
	}
}

// Use applies the given middleware to all the "admin" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
	e.UpdateAgent = m(e.UpdateAgent)
	e.RefreshConfig = m(e.RefreshConfig)
}

// NewUpdateAgentEndpoint returns an endpoint function that calls the method
// "UpdateAgent" of service "admin".
func NewUpdateAgentEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.Endpoint {
	return func(ctx context.Context, req any) (any, error) {
		p := req.(*UpdateAgentPayload)
		var err error
		sc := security.JWTScheme{
			Name:           "jwt",
			Scopes:         []string{"rating:read", "rating:write", "agent:create", "catalog:refresh", "config:refresh", "refresh:token"},
			RequiredScopes: []string{"agent:create"},
		}
		ctx, err = authJWTFn(ctx, p.Token, &sc)
		if err != nil {
			return nil, err
		}
		return s.UpdateAgent(ctx, p)
	}
}

// NewRefreshConfigEndpoint returns an endpoint function that calls the method
// "RefreshConfig" of service "admin".
func NewRefreshConfigEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.Endpoint {
	return func(ctx context.Context, req any) (any, error) {
		p := req.(*RefreshConfigPayload)
		var err error
		sc := security.JWTScheme{
			Name:           "jwt",
			Scopes:         []string{"rating:read", "rating:write", "agent:create", "catalog:refresh", "config:refresh", "refresh:token"},
			RequiredScopes: []string{"config:refresh"},
		}
		ctx, err = authJWTFn(ctx, p.Token, &sc)
		if err != nil {
			return nil, err
		}
		return s.RefreshConfig(ctx, p)
	}
}


================================================
FILE: api/gen/admin/service.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin service
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package admin

import (
	"context"

	goa "goa.design/goa/v3/pkg"
	"goa.design/goa/v3/security"
)

// Admin service
type Service interface {
	// Create or Update an agent user with required scopes
	UpdateAgent(context.Context, *UpdateAgentPayload) (res *UpdateAgentResult, err error)
	// Refresh the changes in config file
	RefreshConfig(context.Context, *RefreshConfigPayload) (res *RefreshConfigResult, err error)
}

// Auther defines the authorization functions to be implemented by the service.
type Auther interface {
	// JWTAuth implements the authorization logic for the JWT security scheme.
	JWTAuth(ctx context.Context, token string, schema *security.JWTScheme) (context.Context, error)
}

// APIName is the name of the API as defined in the design.
const APIName = "hub"

// APIVersion is the version of the API as defined in the design.
const APIVersion = "1.0"

// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "admin"

// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [2]string{"UpdateAgent", "RefreshConfig"}

// RefreshConfigPayload is the payload type of the admin service RefreshConfig
// method.
type RefreshConfigPayload struct {
	// User JWT
	Token string
}

// RefreshConfigResult is the result type of the admin service RefreshConfig
// method.
type RefreshConfigResult struct {
	// Config file checksum
	Checksum string
}

// UpdateAgentPayload is the payload type of the admin service UpdateAgent
// method.
type UpdateAgentPayload struct {
	// User JWT
	Token string
	// Name of Agent
	Name string
	// Scopes required for Agent
	Scopes []string
}

// UpdateAgentResult is the result type of the admin service UpdateAgent method.
type UpdateAgentResult struct {
	// Agent JWT
	Token string
}

// MakeInvalidPayload builds a goa.ServiceError from an error.
func MakeInvalidPayload(err error) *goa.ServiceError {
	return goa.NewServiceError(err, "invalid-payload", false, false, false)
}

// MakeInvalidToken builds a goa.ServiceError from an error.
func MakeInvalidToken(err error) *goa.ServiceError {
	return goa.NewServiceError(err, "invalid-token", false, false, false)
}

// MakeInvalidScopes builds a goa.ServiceError from an error.
func MakeInvalidScopes(err error) *goa.ServiceError {
	return goa.NewServiceError(err, "invalid-scopes", false, false, false)
}

// MakeInternalError builds a goa.ServiceError from an error.
func MakeInternalError(err error) *goa.ServiceError {
	return goa.NewServiceError(err, "internal-error", false, false, false)
}


================================================
FILE: api/gen/catalog/client.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog client
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package catalog

import (
	"context"

	goa "goa.design/goa/v3/pkg"
)

// Client is the "catalog" service client.
type Client struct {
	RefreshEndpoint      goa.Endpoint
	RefreshAllEndpoint   goa.Endpoint
	CatalogErrorEndpoint goa.Endpoint
}

// NewClient initializes a "catalog" service client given the endpoints.
func NewClient(refresh, refreshAll, catalogError goa.Endpoint) *Client {
	return &Client{
		RefreshEndpoint:      refresh,
		RefreshAllEndpoint:   refreshAll,
		CatalogErrorEndpoint: catalogError,
	}
}

// Refresh calls the "Refresh" endpoint of the "catalog" service.
// Refresh may return the following errors:
//   - "internal-error" (type *goa.ServiceError): Internal Server Error
//   - "not-found" (type *goa.ServiceError): Resource Not Found Error
//   - error: internal error
func (c *Client) Refresh(ctx context.Context, p *RefreshPayload) (res *Job, err error) {
	var ires any
	ires, err = c.RefreshEndpoint(ctx, p)
	if err != nil {
		return
	}
	return ires.(*Job), nil
}

// RefreshAll calls the "RefreshAll" endpoint of the "catalog" service.
// RefreshAll may return the following errors:
//   - "internal-error" (type *goa.ServiceError): Internal Server Error
//   - "not-found" (type *goa.ServiceError): Resource Not Found Error
//   - error: internal error
func (c *Client) RefreshAll(ctx context.Context, p *RefreshAllPayload) (res []*Job, err error) {
	var ires any
	ires, err = c.RefreshAllEndpoint(ctx, p)
	if err != nil {
		return
	}
	return ires.([]*Job), nil
}

// CatalogError calls the "CatalogError" endpoint of the "catalog" service.
// CatalogError may return the following errors:
//   - "internal-error" (type *goa.ServiceError): Internal Server Error
//   - "not-found" (type *goa.ServiceError): Resource Not Found Error
//   - error: internal error
func (c *Client) CatalogError(ctx context.Context, p *CatalogErrorPayload) (res *CatalogErrorResult, err error) {
	var ires any
	ires, err = c.CatalogErrorEndpoint(ctx, p)
	if err != nil {
		return
	}
	return ires.(*CatalogErrorResult), nil
}


================================================
FILE: api/gen/catalog/endpoints.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog endpoints
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package catalog

import (
	"context"

	goa "goa.design/goa/v3/pkg"
	"goa.design/goa/v3/security"
)

// Endpoints wraps the "catalog" service endpoints.
type Endpoints struct {
	Refresh      goa.Endpoint
	RefreshAll   goa.Endpoint
	CatalogError goa.Endpoint
}

// NewEndpoints wraps the methods of the "catalog" service with endpoints.
func NewEndpoints(s Service) *Endpoints {
	// Casting service to Auther interface
	a := s.(Auther)
	return &Endpoints{
		Refresh:      NewRefreshEndpoint(s, a.JWTAuth),
		RefreshAll:   NewRefreshAllEndpoint(s, a.JWTAuth),
		CatalogError: NewCatalogErrorEndpoint(s, a.JWTAuth),
	}
}

// Use applies the given middleware to all the "catalog" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
	e.Refresh = m(e.Refresh)
	e.RefreshAll = m(e.RefreshAll)
	e.CatalogError = m(e.CatalogError)
}

// NewRefreshEndpoint returns an endpoint function that calls the method
// "Refresh" of service "catalog".
func NewRefreshEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.Endpoint {
	return func(ctx context.Context, req any) (any, error) {
		p := req.(*RefreshPayload)
		var err error
		sc := security.JWTScheme{
			Name:           "jwt",
			Scopes:         []string{"rating:read", "rating:write", "agent:create", "catalog:refresh", "config:refresh", "refresh:token"},
			RequiredScopes: []string{"catalog:refresh"},
		}
		ctx, err = authJWTFn(ctx, p.Token, &sc)
		if err != nil {
			return nil, err
		}
		res, err := s.Refresh(ctx, p)
		if err != nil {
			return nil, err
		}
		vres := NewViewedJob(res, "default")
		return vres, nil
	}
}

// NewRefreshAllEndpoint returns an endpoint function that calls the method
// "RefreshAll" of service "catalog".
func NewRefreshAllEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.Endpoint {
	return func(ctx context.Context, req any) (any, error) {
		p := req.(*RefreshAllPayload)
		var err error
		sc := security.JWTScheme{
			Name:           "jwt",
			Scopes:         []string{"rating:read", "rating:write", "agent:create", "catalog:refresh", "config:refresh", "refresh:token"},
			RequiredScopes: []string{"catalog:refresh"},
		}
		ctx, err = authJWTFn(ctx, p.Token, &sc)
		if err != nil {
			return nil, err
		}
		return s.RefreshAll(ctx, p)
	}
}

// NewCatalogErrorEndpoint returns an endpoint function that calls the method
// "CatalogError" of service "catalog".
func NewCatalogErrorEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.Endpoint {
	return func(ctx context.Context, req any) (any, error) {
		p := req.(*CatalogErrorPayload)
		var err error
		sc := security.JWTScheme{
			Name:           "jwt",
			Scopes:         []string{"rating:read", "rating:write", "agent:create", "catalog:refresh", "config:refresh", "refresh:token"},
			RequiredScopes: []string{"catalog:refresh"},
		}
		ctx, err = authJWTFn(ctx, p.Token, &sc)
		if err != nil {
			return nil, err
		}
		return s.CatalogError(ctx, p)
	}
}


================================================
FILE: api/gen/catalog/service.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog service
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package catalog

import (
	"context"

	catalogviews "github.com/tektoncd/hub/api/gen/catalog/views"
	goa "goa.design/goa/v3/pkg"
	"goa.design/goa/v3/security"
)

// The Catalog Service exposes endpoints to interact with catalogs
type Service interface {
	// Refresh a Catalog by it's name
	Refresh(context.Context, *RefreshPayload) (res *Job, err error)
	// Refresh all catalogs
	RefreshAll(context.Context, *RefreshAllPayload) (res []*Job, err error)
	// List all errors occurred refreshing a catalog
	CatalogError(context.Context, *CatalogErrorPayload) (res *CatalogErrorResult, err error)
}

// Auther defines the authorization functions to be implemented by the service.
type Auther interface {
	// JWTAuth implements the authorization logic for the JWT security scheme.
	JWTAuth(ctx context.Context, token string, schema *security.JWTScheme) (context.Context, error)
}

// APIName is the name of the API as defined in the design.
const APIName = "hub"

// APIVersion is the version of the API as defined in the design.
const APIVersion = "1.0"

// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "catalog"

// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [3]string{"Refresh", "RefreshAll", "CatalogError"}

// CatalogErrorPayload is the payload type of the catalog service CatalogError
// method.
type CatalogErrorPayload struct {
	// Name of catalog
	CatalogName string
	// JWT
	Token string
}

// CatalogErrorResult is the result type of the catalog service CatalogError
// method.
type CatalogErrorResult struct {
	// Catalog errors
	Data []*CatalogErrors
}

// CatalogErrors define the errors that occurred during catalog refresh
type CatalogErrors struct {
	// Catalog Errror type
	Type string
	// Catalog Error message
	Errors []string
}

// Job is the result type of the catalog service Refresh method.
type Job struct {
	// id of the job
	ID uint
	// Name of the catalog
	CatalogName string
	// status of the job
	Status string
}

// RefreshAllPayload is the payload type of the catalog service RefreshAll
// method.
type RefreshAllPayload struct {
	// JWT
	Token string
}

// RefreshPayload is the payload type of the catalog service Refresh method.
type RefreshPayload struct {
	// Name of catalog
	CatalogName string
	// JWT
	Token string
}

// MakeInternalError builds a goa.ServiceError from an error.
func MakeInternalError(err error) *goa.ServiceError {
	return goa.NewServiceError(err, "internal-error", false, false, false)
}

// MakeNotFound builds a goa.ServiceError from an error.
func MakeNotFound(err error) *goa.ServiceError {
	return goa.NewServiceError(err, "not-found", false, false, false)
}

// NewJob initializes result type Job from viewed result type Job.
func NewJob(vres *catalogviews.Job) *Job {
	return newJob(vres.Projected)
}

// NewViewedJob initializes viewed result type Job from result type Job using
// the given view.
func NewViewedJob(res *Job, view string) *catalogviews.Job {
	p := newJobView(res)
	return &catalogviews.Job{Projected: p, View: "default"}
}

// newJob converts projected type Job to service type Job.
func newJob(vres *catalogviews.JobView) *Job {
	res := &Job{}
	if vres.ID != nil {
		res.ID = *vres.ID
	}
	if vres.CatalogName != nil {
		res.CatalogName = *vres.CatalogName
	}
	if vres.Status != nil {
		res.Status = *vres.Status
	}
	return res
}

// newJobView projects result type Job to projected type JobView using the
// "default" view.
func newJobView(res *Job) *catalogviews.JobView {
	vres := &catalogviews.JobView{
		ID:          &res.ID,
		CatalogName: &res.CatalogName,
		Status:      &res.Status,
	}
	return vres
}


================================================
FILE: api/gen/catalog/views/view.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog views
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package views

import (
	goa "goa.design/goa/v3/pkg"
)

// Job is the viewed result type that is projected based on a view.
type Job struct {
	// Type to project
	Projected *JobView
	// View to render
	View string
}

// JobView is a type that runs validations on a projected type.
type JobView struct {
	// id of the job
	ID *uint
	// Name of the catalog
	CatalogName *string
	// status of the job
	Status *string
}

var (
	// JobMap is a map indexing the attribute names of Job by view name.
	JobMap = map[string][]string{
		"default": {
			"id",
			"catalogName",
			"status",
		},
	}
)

// ValidateJob runs the validations defined on the viewed result type Job.
func ValidateJob(result *Job) (err error) {
	switch result.View {
	case "default", "":
		err = ValidateJobView(result.Projected)
	default:
		err = goa.InvalidEnumValueError("view", result.View, []any{"default"})
	}
	return
}

// ValidateJobView runs the validations defined on JobView using the "default"
// view.
func ValidateJobView(result *JobView) (err error) {
	if result.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "result"))
	}
	if result.CatalogName == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("catalogName", "result"))
	}
	if result.Status == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("status", "result"))
	}
	return
}


================================================
FILE: api/gen/category/client.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// category client
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package category

import (
	"context"

	goa "goa.design/goa/v3/pkg"
)

// Client is the "category" service client.
type Client struct {
	ListEndpoint goa.Endpoint
}

// NewClient initializes a "category" service client given the endpoints.
func NewClient(list goa.Endpoint) *Client {
	return &Client{
		ListEndpoint: list,
	}
}

// List calls the "list" endpoint of the "category" service.
// List may return the following errors:
//   - "internal-error" (type *goa.ServiceError): Internal Server Error
//   - error: internal error
func (c *Client) List(ctx context.Context) (res *ListResult, err error) {
	var ires any
	ires, err = c.ListEndpoint(ctx, nil)
	if err != nil {
		return
	}
	return ires.(*ListResult), nil
}


================================================
FILE: api/gen/category/endpoints.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// category endpoints
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package category

import (
	"context"

	goa "goa.design/goa/v3/pkg"
)

// Endpoints wraps the "category" service endpoints.
type Endpoints struct {
	List goa.Endpoint
}

// NewEndpoints wraps the methods of the "category" service with endpoints.
func NewEndpoints(s Service) *Endpoints {
	return &Endpoints{
		List: NewListEndpoint(s),
	}
}

// Use applies the given middleware to all the "category" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
	e.List = m(e.List)
}

// NewListEndpoint returns an endpoint function that calls the method "list" of
// service "category".
func NewListEndpoint(s Service) goa.Endpoint {
	return func(ctx context.Context, req any) (any, error) {
		return s.List(ctx)
	}
}


================================================
FILE: api/gen/category/service.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// category service
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package category

import (
	"context"

	goa "goa.design/goa/v3/pkg"
)

// The category service provides details about category
type Service interface {
	// List all categories along with their tags sorted by name
	List(context.Context) (res *ListResult, err error)
}

// APIName is the name of the API as defined in the design.
const APIName = "hub"

// APIVersion is the version of the API as defined in the design.
const APIVersion = "1.0"

// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "category"

// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"list"}

type Category struct {
	// ID is the unique id of the category
	ID uint
	// Name of category
	Name string
}

// ListResult is the result type of the category service list method.
type ListResult struct {
	Data []*Category
}

// MakeInternalError builds a goa.ServiceError from an error.
func MakeInternalError(err error) *goa.ServiceError {
	return goa.NewServiceError(err, "internal-error", false, false, false)
}


================================================
FILE: api/gen/http/admin/client/cli.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin HTTP client CLI support package
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	"encoding/json"
	"fmt"

	admin "github.com/tektoncd/hub/api/gen/admin"
	goa "goa.design/goa/v3/pkg"
)

// BuildUpdateAgentPayload builds the payload for the admin UpdateAgent
// endpoint from CLI flags.
func BuildUpdateAgentPayload(adminUpdateAgentBody string, adminUpdateAgentToken string) (*admin.UpdateAgentPayload, error) {
	var err error
	var body UpdateAgentRequestBody
	{
		err = json.Unmarshal([]byte(adminUpdateAgentBody), &body)
		if err != nil {
			return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n      \"name\": \"abc\",\n      \"scopes\": [\n         \"catalog-refresh\",\n         \"agent:create\"\n      ]\n   }'")
		}
		if body.Scopes == nil {
			err = goa.MergeErrors(err, goa.MissingFieldError("scopes", "body"))
		}
		if err != nil {
			return nil, err
		}
	}
	var token string
	{
		token = adminUpdateAgentToken
	}
	v := &admin.UpdateAgentPayload{
		Name: body.Name,
	}
	if body.Scopes != nil {
		v.Scopes = make([]string, len(body.Scopes))
		for i, val := range body.Scopes {
			v.Scopes[i] = val
		}
	} else {
		v.Scopes = []string{}
	}
	v.Token = token

	return v, nil
}

// BuildRefreshConfigPayload builds the payload for the admin RefreshConfig
// endpoint from CLI flags.
func BuildRefreshConfigPayload(adminRefreshConfigToken string) (*admin.RefreshConfigPayload, error) {
	var token string
	{
		token = adminRefreshConfigToken
	}
	v := &admin.RefreshConfigPayload{}
	v.Token = token

	return v, nil
}


================================================
FILE: api/gen/http/admin/client/client.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin client HTTP transport
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	"context"
	"net/http"

	goahttp "goa.design/goa/v3/http"
	goa "goa.design/goa/v3/pkg"
)

// Client lists the admin service endpoint HTTP clients.
type Client struct {
	// UpdateAgent Doer is the HTTP client used to make requests to the UpdateAgent
	// endpoint.
	UpdateAgentDoer goahttp.Doer

	// RefreshConfig Doer is the HTTP client used to make requests to the
	// RefreshConfig endpoint.
	RefreshConfigDoer goahttp.Doer

	// CORS Doer is the HTTP client used to make requests to the  endpoint.
	CORSDoer goahttp.Doer

	// RestoreResponseBody controls whether the response bodies are reset after
	// decoding so they can be read again.
	RestoreResponseBody bool

	scheme  string
	host    string
	encoder func(*http.Request) goahttp.Encoder
	decoder func(*http.Response) goahttp.Decoder
}

// NewClient instantiates HTTP clients for all the admin service servers.
func NewClient(
	scheme string,
	host string,
	doer goahttp.Doer,
	enc func(*http.Request) goahttp.Encoder,
	dec func(*http.Response) goahttp.Decoder,
	restoreBody bool,
) *Client {
	return &Client{
		UpdateAgentDoer:     doer,
		RefreshConfigDoer:   doer,
		CORSDoer:            doer,
		RestoreResponseBody: restoreBody,
		scheme:              scheme,
		host:                host,
		decoder:             dec,
		encoder:             enc,
	}
}

// UpdateAgent returns an endpoint that makes HTTP requests to the admin
// service UpdateAgent server.
func (c *Client) UpdateAgent() goa.Endpoint {
	var (
		encodeRequest  = EncodeUpdateAgentRequest(c.encoder)
		decodeResponse = DecodeUpdateAgentResponse(c.decoder, c.RestoreResponseBody)
	)
	return func(ctx context.Context, v any) (any, error) {
		req, err := c.BuildUpdateAgentRequest(ctx, v)
		if err != nil {
			return nil, err
		}
		err = encodeRequest(req, v)
		if err != nil {
			return nil, err
		}
		resp, err := c.UpdateAgentDoer.Do(req)
		if err != nil {
			return nil, goahttp.ErrRequestError("admin", "UpdateAgent", err)
		}
		return decodeResponse(resp)
	}
}

// RefreshConfig returns an endpoint that makes HTTP requests to the admin
// service RefreshConfig server.
func (c *Client) RefreshConfig() goa.Endpoint {
	var (
		encodeRequest  = EncodeRefreshConfigRequest(c.encoder)
		decodeResponse = DecodeRefreshConfigResponse(c.decoder, c.RestoreResponseBody)
	)
	return func(ctx context.Context, v any) (any, error) {
		req, err := c.BuildRefreshConfigRequest(ctx, v)
		if err != nil {
			return nil, err
		}
		err = encodeRequest(req, v)
		if err != nil {
			return nil, err
		}
		resp, err := c.RefreshConfigDoer.Do(req)
		if err != nil {
			return nil, goahttp.ErrRequestError("admin", "RefreshConfig", err)
		}
		return decodeResponse(resp)
	}
}


================================================
FILE: api/gen/http/admin/client/encode_decode.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin HTTP client encoders and decoders
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	"bytes"
	"context"
	"io"
	"net/http"
	"net/url"
	"strings"

	admin "github.com/tektoncd/hub/api/gen/admin"
	goahttp "goa.design/goa/v3/http"
)

// BuildUpdateAgentRequest instantiates a HTTP request object with method and
// path set to call the "admin" service "UpdateAgent" endpoint
func (c *Client) BuildUpdateAgentRequest(ctx context.Context, v any) (*http.Request, error) {
	u := &url.URL{Scheme: c.scheme, Host: c.host, Path: UpdateAgentAdminPath()}
	req, err := http.NewRequest("PUT", u.String(), nil)
	if err != nil {
		return nil, goahttp.ErrInvalidURL("admin", "UpdateAgent", u.String(), err)
	}
	if ctx != nil {
		req = req.WithContext(ctx)
	}

	return req, nil
}

// EncodeUpdateAgentRequest returns an encoder for requests sent to the admin
// UpdateAgent server.
func EncodeUpdateAgentRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error {
	return func(req *http.Request, v any) error {
		p, ok := v.(*admin.UpdateAgentPayload)
		if !ok {
			return goahttp.ErrInvalidType("admin", "UpdateAgent", "*admin.UpdateAgentPayload", v)
		}
		{
			head := p.Token
			if !strings.Contains(head, " ") {
				req.Header.Set("Authorization", "Bearer "+head)
			} else {
				req.Header.Set("Authorization", head)
			}
		}
		body := NewUpdateAgentRequestBody(p)
		if err := encoder(req).Encode(&body); err != nil {
			return goahttp.ErrEncodingError("admin", "UpdateAgent", err)
		}
		return nil
	}
}

// DecodeUpdateAgentResponse returns a decoder for responses returned by the
// admin UpdateAgent endpoint. restoreBody controls whether the response body
// should be restored after having been read.
// DecodeUpdateAgentResponse may return the following errors:
//   - "invalid-payload" (type *goa.ServiceError): http.StatusBadRequest
//   - "invalid-token" (type *goa.ServiceError): http.StatusUnauthorized
//   - "invalid-scopes" (type *goa.ServiceError): http.StatusForbidden
//   - "internal-error" (type *goa.ServiceError): http.StatusInternalServerError
//   - error: internal error
func DecodeUpdateAgentResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) {
	return func(resp *http.Response) (any, error) {
		if restoreBody {
			b, err := io.ReadAll(resp.Body)
			if err != nil {
				return nil, err
			}
			resp.Body = io.NopCloser(bytes.NewBuffer(b))
			defer func() {
				resp.Body = io.NopCloser(bytes.NewBuffer(b))
			}()
		} else {
			defer resp.Body.Close()
		}
		switch resp.StatusCode {
		case http.StatusOK:
			var (
				body UpdateAgentResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "UpdateAgent", err)
			}
			err = ValidateUpdateAgentResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "UpdateAgent", err)
			}
			res := NewUpdateAgentResultOK(&body)
			return res, nil
		case http.StatusBadRequest:
			var (
				body UpdateAgentInvalidPayloadResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "UpdateAgent", err)
			}
			err = ValidateUpdateAgentInvalidPayloadResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "UpdateAgent", err)
			}
			return nil, NewUpdateAgentInvalidPayload(&body)
		case http.StatusUnauthorized:
			var (
				body UpdateAgentInvalidTokenResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "UpdateAgent", err)
			}
			err = ValidateUpdateAgentInvalidTokenResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "UpdateAgent", err)
			}
			return nil, NewUpdateAgentInvalidToken(&body)
		case http.StatusForbidden:
			var (
				body UpdateAgentInvalidScopesResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "UpdateAgent", err)
			}
			err = ValidateUpdateAgentInvalidScopesResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "UpdateAgent", err)
			}
			return nil, NewUpdateAgentInvalidScopes(&body)
		case http.StatusInternalServerError:
			var (
				body UpdateAgentInternalErrorResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "UpdateAgent", err)
			}
			err = ValidateUpdateAgentInternalErrorResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "UpdateAgent", err)
			}
			return nil, NewUpdateAgentInternalError(&body)
		default:
			body, _ := io.ReadAll(resp.Body)
			return nil, goahttp.ErrInvalidResponse("admin", "UpdateAgent", resp.StatusCode, string(body))
		}
	}
}

// BuildRefreshConfigRequest instantiates a HTTP request object with method and
// path set to call the "admin" service "RefreshConfig" endpoint
func (c *Client) BuildRefreshConfigRequest(ctx context.Context, v any) (*http.Request, error) {
	u := &url.URL{Scheme: c.scheme, Host: c.host, Path: RefreshConfigAdminPath()}
	req, err := http.NewRequest("POST", u.String(), nil)
	if err != nil {
		return nil, goahttp.ErrInvalidURL("admin", "RefreshConfig", u.String(), err)
	}
	if ctx != nil {
		req = req.WithContext(ctx)
	}

	return req, nil
}

// EncodeRefreshConfigRequest returns an encoder for requests sent to the admin
// RefreshConfig server.
func EncodeRefreshConfigRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error {
	return func(req *http.Request, v any) error {
		p, ok := v.(*admin.RefreshConfigPayload)
		if !ok {
			return goahttp.ErrInvalidType("admin", "RefreshConfig", "*admin.RefreshConfigPayload", v)
		}
		{
			head := p.Token
			if !strings.Contains(head, " ") {
				req.Header.Set("Authorization", "Bearer "+head)
			} else {
				req.Header.Set("Authorization", head)
			}
		}
		return nil
	}
}

// DecodeRefreshConfigResponse returns a decoder for responses returned by the
// admin RefreshConfig endpoint. restoreBody controls whether the response body
// should be restored after having been read.
// DecodeRefreshConfigResponse may return the following errors:
//   - "invalid-token" (type *goa.ServiceError): http.StatusUnauthorized
//   - "invalid-scopes" (type *goa.ServiceError): http.StatusForbidden
//   - "internal-error" (type *goa.ServiceError): http.StatusInternalServerError
//   - error: internal error
func DecodeRefreshConfigResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) {
	return func(resp *http.Response) (any, error) {
		if restoreBody {
			b, err := io.ReadAll(resp.Body)
			if err != nil {
				return nil, err
			}
			resp.Body = io.NopCloser(bytes.NewBuffer(b))
			defer func() {
				resp.Body = io.NopCloser(bytes.NewBuffer(b))
			}()
		} else {
			defer resp.Body.Close()
		}
		switch resp.StatusCode {
		case http.StatusOK:
			var (
				body RefreshConfigResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "RefreshConfig", err)
			}
			err = ValidateRefreshConfigResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "RefreshConfig", err)
			}
			res := NewRefreshConfigResultOK(&body)
			return res, nil
		case http.StatusUnauthorized:
			var (
				body RefreshConfigInvalidTokenResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "RefreshConfig", err)
			}
			err = ValidateRefreshConfigInvalidTokenResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "RefreshConfig", err)
			}
			return nil, NewRefreshConfigInvalidToken(&body)
		case http.StatusForbidden:
			var (
				body RefreshConfigInvalidScopesResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "RefreshConfig", err)
			}
			err = ValidateRefreshConfigInvalidScopesResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "RefreshConfig", err)
			}
			return nil, NewRefreshConfigInvalidScopes(&body)
		case http.StatusInternalServerError:
			var (
				body RefreshConfigInternalErrorResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("admin", "RefreshConfig", err)
			}
			err = ValidateRefreshConfigInternalErrorResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("admin", "RefreshConfig", err)
			}
			return nil, NewRefreshConfigInternalError(&body)
		default:
			body, _ := io.ReadAll(resp.Body)
			return nil, goahttp.ErrInvalidResponse("admin", "RefreshConfig", resp.StatusCode, string(body))
		}
	}
}


================================================
FILE: api/gen/http/admin/client/paths.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// HTTP request path constructors for the admin service.
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

// UpdateAgentAdminPath returns the URL path to the admin service UpdateAgent HTTP endpoint.
func UpdateAgentAdminPath() string {
	return "/system/user/agent"
}

// RefreshConfigAdminPath returns the URL path to the admin service RefreshConfig HTTP endpoint.
func RefreshConfigAdminPath() string {
	return "/system/config/refresh"
}


================================================
FILE: api/gen/http/admin/client/types.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin HTTP client types
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	admin "github.com/tektoncd/hub/api/gen/admin"
	goa "goa.design/goa/v3/pkg"
)

// UpdateAgentRequestBody is the type of the "admin" service "UpdateAgent"
// endpoint HTTP request body.
type UpdateAgentRequestBody struct {
	// Name of Agent
	Name string `form:"name" json:"name" xml:"name"`
	// Scopes required for Agent
	Scopes []string `form:"scopes" json:"scopes" xml:"scopes"`
}

// UpdateAgentResponseBody is the type of the "admin" service "UpdateAgent"
// endpoint HTTP response body.
type UpdateAgentResponseBody struct {
	// Agent JWT
	Token *string `form:"token,omitempty" json:"token,omitempty" xml:"token,omitempty"`
}

// RefreshConfigResponseBody is the type of the "admin" service "RefreshConfig"
// endpoint HTTP response body.
type RefreshConfigResponseBody struct {
	// Config file checksum
	Checksum *string `form:"checksum,omitempty" json:"checksum,omitempty" xml:"checksum,omitempty"`
}

// UpdateAgentInvalidPayloadResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "invalid-payload" error.
type UpdateAgentInvalidPayloadResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// UpdateAgentInvalidTokenResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "invalid-token" error.
type UpdateAgentInvalidTokenResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// UpdateAgentInvalidScopesResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "invalid-scopes" error.
type UpdateAgentInvalidScopesResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// UpdateAgentInternalErrorResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "internal-error" error.
type UpdateAgentInternalErrorResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// RefreshConfigInvalidTokenResponseBody is the type of the "admin" service
// "RefreshConfig" endpoint HTTP response body for the "invalid-token" error.
type RefreshConfigInvalidTokenResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// RefreshConfigInvalidScopesResponseBody is the type of the "admin" service
// "RefreshConfig" endpoint HTTP response body for the "invalid-scopes" error.
type RefreshConfigInvalidScopesResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// RefreshConfigInternalErrorResponseBody is the type of the "admin" service
// "RefreshConfig" endpoint HTTP response body for the "internal-error" error.
type RefreshConfigInternalErrorResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// NewUpdateAgentRequestBody builds the HTTP request body from the payload of
// the "UpdateAgent" endpoint of the "admin" service.
func NewUpdateAgentRequestBody(p *admin.UpdateAgentPayload) *UpdateAgentRequestBody {
	body := &UpdateAgentRequestBody{
		Name: p.Name,
	}
	if p.Scopes != nil {
		body.Scopes = make([]string, len(p.Scopes))
		for i, val := range p.Scopes {
			body.Scopes[i] = val
		}
	} else {
		body.Scopes = []string{}
	}
	return body
}

// NewUpdateAgentResultOK builds a "admin" service "UpdateAgent" endpoint
// result from a HTTP "OK" response.
func NewUpdateAgentResultOK(body *UpdateAgentResponseBody) *admin.UpdateAgentResult {
	v := &admin.UpdateAgentResult{
		Token: *body.Token,
	}

	return v
}

// NewUpdateAgentInvalidPayload builds a admin service UpdateAgent endpoint
// invalid-payload error.
func NewUpdateAgentInvalidPayload(body *UpdateAgentInvalidPayloadResponseBody) *goa.ServiceError {
	v := &goa.ServiceError{
		Name:      *body.Name,
		ID:        *body.ID,
		Message:   *body.Message,
		Temporary: *body.Temporary,
		Timeout:   *body.Timeout,
		Fault:     *body.Fault,
	}

	return v
}

// NewUpdateAgentInvalidToken builds a admin service UpdateAgent endpoint
// invalid-token error.
func NewUpdateAgentInvalidToken(body *UpdateAgentInvalidTokenResponseBody) *goa.ServiceError {
	v := &goa.ServiceError{
		Name:      *body.Name,
		ID:        *body.ID,
		Message:   *body.Message,
		Temporary: *body.Temporary,
		Timeout:   *body.Timeout,
		Fault:     *body.Fault,
	}

	return v
}

// NewUpdateAgentInvalidScopes builds a admin service UpdateAgent endpoint
// invalid-scopes error.
func NewUpdateAgentInvalidScopes(body *UpdateAgentInvalidScopesResponseBody) *goa.ServiceError {
	v := &goa.ServiceError{
		Name:      *body.Name,
		ID:        *body.ID,
		Message:   *body.Message,
		Temporary: *body.Temporary,
		Timeout:   *body.Timeout,
		Fault:     *body.Fault,
	}

	return v
}

// NewUpdateAgentInternalError builds a admin service UpdateAgent endpoint
// internal-error error.
func NewUpdateAgentInternalError(body *UpdateAgentInternalErrorResponseBody) *goa.ServiceError {
	v := &goa.ServiceError{
		Name:      *body.Name,
		ID:        *body.ID,
		Message:   *body.Message,
		Temporary: *body.Temporary,
		Timeout:   *body.Timeout,
		Fault:     *body.Fault,
	}

	return v
}

// NewRefreshConfigResultOK builds a "admin" service "RefreshConfig" endpoint
// result from a HTTP "OK" response.
func NewRefreshConfigResultOK(body *RefreshConfigResponseBody) *admin.RefreshConfigResult {
	v := &admin.RefreshConfigResult{
		Checksum: *body.Checksum,
	}

	return v
}

// NewRefreshConfigInvalidToken builds a admin service RefreshConfig endpoint
// invalid-token error.
func NewRefreshConfigInvalidToken(body *RefreshConfigInvalidTokenResponseBody) *goa.ServiceError {
	v := &goa.ServiceError{
		Name:      *body.Name,
		ID:        *body.ID,
		Message:   *body.Message,
		Temporary: *body.Temporary,
		Timeout:   *body.Timeout,
		Fault:     *body.Fault,
	}

	return v
}

// NewRefreshConfigInvalidScopes builds a admin service RefreshConfig endpoint
// invalid-scopes error.
func NewRefreshConfigInvalidScopes(body *RefreshConfigInvalidScopesResponseBody) *goa.ServiceError {
	v := &goa.ServiceError{
		Name:      *body.Name,
		ID:        *body.ID,
		Message:   *body.Message,
		Temporary: *body.Temporary,
		Timeout:   *body.Timeout,
		Fault:     *body.Fault,
	}

	return v
}

// NewRefreshConfigInternalError builds a admin service RefreshConfig endpoint
// internal-error error.
func NewRefreshConfigInternalError(body *RefreshConfigInternalErrorResponseBody) *goa.ServiceError {
	v := &goa.ServiceError{
		Name:      *body.Name,
		ID:        *body.ID,
		Message:   *body.Message,
		Temporary: *body.Temporary,
		Timeout:   *body.Timeout,
		Fault:     *body.Fault,
	}

	return v
}

// ValidateUpdateAgentResponseBody runs the validations defined on
// UpdateAgentResponseBody
func ValidateUpdateAgentResponseBody(body *UpdateAgentResponseBody) (err error) {
	if body.Token == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("token", "body"))
	}
	return
}

// ValidateRefreshConfigResponseBody runs the validations defined on
// RefreshConfigResponseBody
func ValidateRefreshConfigResponseBody(body *RefreshConfigResponseBody) (err error) {
	if body.Checksum == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("checksum", "body"))
	}
	return
}

// ValidateUpdateAgentInvalidPayloadResponseBody runs the validations defined
// on UpdateAgent_invalid-payload_Response_Body
func ValidateUpdateAgentInvalidPayloadResponseBody(body *UpdateAgentInvalidPayloadResponseBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "body"))
	}
	if body.Message == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("message", "body"))
	}
	if body.Temporary == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body"))
	}
	if body.Timeout == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body"))
	}
	if body.Fault == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body"))
	}
	return
}

// ValidateUpdateAgentInvalidTokenResponseBody runs the validations defined on
// UpdateAgent_invalid-token_Response_Body
func ValidateUpdateAgentInvalidTokenResponseBody(body *UpdateAgentInvalidTokenResponseBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "body"))
	}
	if body.Message == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("message", "body"))
	}
	if body.Temporary == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body"))
	}
	if body.Timeout == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body"))
	}
	if body.Fault == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body"))
	}
	return
}

// ValidateUpdateAgentInvalidScopesResponseBody runs the validations defined on
// UpdateAgent_invalid-scopes_Response_Body
func ValidateUpdateAgentInvalidScopesResponseBody(body *UpdateAgentInvalidScopesResponseBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "body"))
	}
	if body.Message == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("message", "body"))
	}
	if body.Temporary == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body"))
	}
	if body.Timeout == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body"))
	}
	if body.Fault == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body"))
	}
	return
}

// ValidateUpdateAgentInternalErrorResponseBody runs the validations defined on
// UpdateAgent_internal-error_Response_Body
func ValidateUpdateAgentInternalErrorResponseBody(body *UpdateAgentInternalErrorResponseBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "body"))
	}
	if body.Message == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("message", "body"))
	}
	if body.Temporary == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body"))
	}
	if body.Timeout == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body"))
	}
	if body.Fault == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body"))
	}
	return
}

// ValidateRefreshConfigInvalidTokenResponseBody runs the validations defined
// on RefreshConfig_invalid-token_Response_Body
func ValidateRefreshConfigInvalidTokenResponseBody(body *RefreshConfigInvalidTokenResponseBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "body"))
	}
	if body.Message == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("message", "body"))
	}
	if body.Temporary == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body"))
	}
	if body.Timeout == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body"))
	}
	if body.Fault == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body"))
	}
	return
}

// ValidateRefreshConfigInvalidScopesResponseBody runs the validations defined
// on RefreshConfig_invalid-scopes_Response_Body
func ValidateRefreshConfigInvalidScopesResponseBody(body *RefreshConfigInvalidScopesResponseBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "body"))
	}
	if body.Message == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("message", "body"))
	}
	if body.Temporary == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body"))
	}
	if body.Timeout == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body"))
	}
	if body.Fault == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body"))
	}
	return
}

// ValidateRefreshConfigInternalErrorResponseBody runs the validations defined
// on RefreshConfig_internal-error_Response_Body
func ValidateRefreshConfigInternalErrorResponseBody(body *RefreshConfigInternalErrorResponseBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.ID == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("id", "body"))
	}
	if body.Message == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("message", "body"))
	}
	if body.Temporary == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body"))
	}
	if body.Timeout == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body"))
	}
	if body.Fault == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body"))
	}
	return
}


================================================
FILE: api/gen/http/admin/server/encode_decode.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin HTTP server encoders and decoders
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package server

import (
	"context"
	"errors"
	"io"
	"net/http"
	"strings"

	admin "github.com/tektoncd/hub/api/gen/admin"
	goahttp "goa.design/goa/v3/http"
	goa "goa.design/goa/v3/pkg"
)

// EncodeUpdateAgentResponse returns an encoder for responses returned by the
// admin UpdateAgent endpoint.
func EncodeUpdateAgentResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error {
	return func(ctx context.Context, w http.ResponseWriter, v any) error {
		res, _ := v.(*admin.UpdateAgentResult)
		enc := encoder(ctx, w)
		body := NewUpdateAgentResponseBody(res)
		w.WriteHeader(http.StatusOK)
		return enc.Encode(body)
	}
}

// DecodeUpdateAgentRequest returns a decoder for requests sent to the admin
// UpdateAgent endpoint.
func DecodeUpdateAgentRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) {
	return func(r *http.Request) (any, error) {
		var (
			body UpdateAgentRequestBody
			err  error
		)
		err = decoder(r).Decode(&body)
		if err != nil {
			if err == io.EOF {
				return nil, goa.MissingPayloadError()
			}
			var gerr *goa.ServiceError
			if errors.As(err, &gerr) {
				return nil, gerr
			}
			return nil, goa.DecodePayloadError(err.Error())
		}
		err = ValidateUpdateAgentRequestBody(&body)
		if err != nil {
			return nil, err
		}

		var (
			token string
		)
		token = r.Header.Get("Authorization")
		if token == "" {
			err = goa.MergeErrors(err, goa.MissingFieldError("token", "header"))
		}
		if err != nil {
			return nil, err
		}
		payload := NewUpdateAgentPayload(&body, token)
		if strings.Contains(payload.Token, " ") {
			// Remove authorization scheme prefix (e.g. "Bearer")
			cred := strings.SplitN(payload.Token, " ", 2)[1]
			payload.Token = cred
		}

		return payload, nil
	}
}

// EncodeUpdateAgentError returns an encoder for errors returned by the
// UpdateAgent admin endpoint.
func EncodeUpdateAgentError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error {
	encodeError := goahttp.ErrorEncoder(encoder, formatter)
	return func(ctx context.Context, w http.ResponseWriter, v error) error {
		var en goa.GoaErrorNamer
		if !errors.As(v, &en) {
			return encodeError(ctx, w, v)
		}
		switch en.GoaErrorName() {
		case "invalid-payload":
			var res *goa.ServiceError
			errors.As(v, &res)
			enc := encoder(ctx, w)
			var body any
			if formatter != nil {
				body = formatter(ctx, res)
			} else {
				body = NewUpdateAgentInvalidPayloadResponseBody(res)
			}
			w.Header().Set("goa-error", res.GoaErrorName())
			w.WriteHeader(http.StatusBadRequest)
			return enc.Encode(body)
		case "invalid-token":
			var res *goa.ServiceError
			errors.As(v, &res)
			enc := encoder(ctx, w)
			var body any
			if formatter != nil {
				body = formatter(ctx, res)
			} else {
				body = NewUpdateAgentInvalidTokenResponseBody(res)
			}
			w.Header().Set("goa-error", res.GoaErrorName())
			w.WriteHeader(http.StatusUnauthorized)
			return enc.Encode(body)
		case "invalid-scopes":
			var res *goa.ServiceError
			errors.As(v, &res)
			enc := encoder(ctx, w)
			var body any
			if formatter != nil {
				body = formatter(ctx, res)
			} else {
				body = NewUpdateAgentInvalidScopesResponseBody(res)
			}
			w.Header().Set("goa-error", res.GoaErrorName())
			w.WriteHeader(http.StatusForbidden)
			return enc.Encode(body)
		case "internal-error":
			var res *goa.ServiceError
			errors.As(v, &res)
			enc := encoder(ctx, w)
			var body any
			if formatter != nil {
				body = formatter(ctx, res)
			} else {
				body = NewUpdateAgentInternalErrorResponseBody(res)
			}
			w.Header().Set("goa-error", res.GoaErrorName())
			w.WriteHeader(http.StatusInternalServerError)
			return enc.Encode(body)
		default:
			return encodeError(ctx, w, v)
		}
	}
}

// EncodeRefreshConfigResponse returns an encoder for responses returned by the
// admin RefreshConfig endpoint.
func EncodeRefreshConfigResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error {
	return func(ctx context.Context, w http.ResponseWriter, v any) error {
		res, _ := v.(*admin.RefreshConfigResult)
		enc := encoder(ctx, w)
		body := NewRefreshConfigResponseBody(res)
		w.WriteHeader(http.StatusOK)
		return enc.Encode(body)
	}
}

// DecodeRefreshConfigRequest returns a decoder for requests sent to the admin
// RefreshConfig endpoint.
func DecodeRefreshConfigRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) {
	return func(r *http.Request) (any, error) {
		var (
			token string
			err   error
		)
		token = r.Header.Get("Authorization")
		if token == "" {
			err = goa.MergeErrors(err, goa.MissingFieldError("token", "header"))
		}
		if err != nil {
			return nil, err
		}
		payload := NewRefreshConfigPayload(token)
		if strings.Contains(payload.Token, " ") {
			// Remove authorization scheme prefix (e.g. "Bearer")
			cred := strings.SplitN(payload.Token, " ", 2)[1]
			payload.Token = cred
		}

		return payload, nil
	}
}

// EncodeRefreshConfigError returns an encoder for errors returned by the
// RefreshConfig admin endpoint.
func EncodeRefreshConfigError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error {
	encodeError := goahttp.ErrorEncoder(encoder, formatter)
	return func(ctx context.Context, w http.ResponseWriter, v error) error {
		var en goa.GoaErrorNamer
		if !errors.As(v, &en) {
			return encodeError(ctx, w, v)
		}
		switch en.GoaErrorName() {
		case "invalid-token":
			var res *goa.ServiceError
			errors.As(v, &res)
			enc := encoder(ctx, w)
			var body any
			if formatter != nil {
				body = formatter(ctx, res)
			} else {
				body = NewRefreshConfigInvalidTokenResponseBody(res)
			}
			w.Header().Set("goa-error", res.GoaErrorName())
			w.WriteHeader(http.StatusUnauthorized)
			return enc.Encode(body)
		case "invalid-scopes":
			var res *goa.ServiceError
			errors.As(v, &res)
			enc := encoder(ctx, w)
			var body any
			if formatter != nil {
				body = formatter(ctx, res)
			} else {
				body = NewRefreshConfigInvalidScopesResponseBody(res)
			}
			w.Header().Set("goa-error", res.GoaErrorName())
			w.WriteHeader(http.StatusForbidden)
			return enc.Encode(body)
		case "internal-error":
			var res *goa.ServiceError
			errors.As(v, &res)
			enc := encoder(ctx, w)
			var body any
			if formatter != nil {
				body = formatter(ctx, res)
			} else {
				body = NewRefreshConfigInternalErrorResponseBody(res)
			}
			w.Header().Set("goa-error", res.GoaErrorName())
			w.WriteHeader(http.StatusInternalServerError)
			return enc.Encode(body)
		default:
			return encodeError(ctx, w, v)
		}
	}
}


================================================
FILE: api/gen/http/admin/server/paths.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// HTTP request path constructors for the admin service.
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package server

// UpdateAgentAdminPath returns the URL path to the admin service UpdateAgent HTTP endpoint.
func UpdateAgentAdminPath() string {
	return "/system/user/agent"
}

// RefreshConfigAdminPath returns the URL path to the admin service RefreshConfig HTTP endpoint.
func RefreshConfigAdminPath() string {
	return "/system/config/refresh"
}


================================================
FILE: api/gen/http/admin/server/server.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin HTTP server
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package server

import (
	"context"
	"net/http"

	admin "github.com/tektoncd/hub/api/gen/admin"
	goahttp "goa.design/goa/v3/http"
	goa "goa.design/goa/v3/pkg"
	"goa.design/plugins/v3/cors"
)

// Server lists the admin service endpoint HTTP handlers.
type Server struct {
	Mounts        []*MountPoint
	UpdateAgent   http.Handler
	RefreshConfig http.Handler
	CORS          http.Handler
}

// MountPoint holds information about the mounted endpoints.
type MountPoint struct {
	// Method is the name of the service method served by the mounted HTTP handler.
	Method string
	// Verb is the HTTP method used to match requests to the mounted handler.
	Verb string
	// Pattern is the HTTP request path pattern used to match requests to the
	// mounted handler.
	Pattern string
}

// New instantiates HTTP handlers for all the admin service endpoints using the
// provided encoder and decoder. The handlers are mounted on the given mux
// using the HTTP verb and path defined in the design. errhandler is called
// whenever a response fails to be encoded. formatter is used to format errors
// returned by the service methods prior to encoding. Both errhandler and
// formatter are optional and can be nil.
func New(
	e *admin.Endpoints,
	mux goahttp.Muxer,
	decoder func(*http.Request) goahttp.Decoder,
	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
	errhandler func(context.Context, http.ResponseWriter, error),
	formatter func(ctx context.Context, err error) goahttp.Statuser,
) *Server {
	return &Server{
		Mounts: []*MountPoint{
			{"UpdateAgent", "PUT", "/system/user/agent"},
			{"RefreshConfig", "POST", "/system/config/refresh"},
			{"CORS", "OPTIONS", "/system/user/agent"},
			{"CORS", "OPTIONS", "/system/config/refresh"},
		},
		UpdateAgent:   NewUpdateAgentHandler(e.UpdateAgent, mux, decoder, encoder, errhandler, formatter),
		RefreshConfig: NewRefreshConfigHandler(e.RefreshConfig, mux, decoder, encoder, errhandler, formatter),
		CORS:          NewCORSHandler(),
	}
}

// Service returns the name of the service served.
func (s *Server) Service() string { return "admin" }

// Use wraps the server handlers with the given middleware.
func (s *Server) Use(m func(http.Handler) http.Handler) {
	s.UpdateAgent = m(s.UpdateAgent)
	s.RefreshConfig = m(s.RefreshConfig)
	s.CORS = m(s.CORS)
}

// MethodNames returns the methods served.
func (s *Server) MethodNames() []string { return admin.MethodNames[:] }

// Mount configures the mux to serve the admin endpoints.
func Mount(mux goahttp.Muxer, h *Server) {
	MountUpdateAgentHandler(mux, h.UpdateAgent)
	MountRefreshConfigHandler(mux, h.RefreshConfig)
	MountCORSHandler(mux, h.CORS)
}

// Mount configures the mux to serve the admin endpoints.
func (s *Server) Mount(mux goahttp.Muxer) {
	Mount(mux, s)
}

// MountUpdateAgentHandler configures the mux to serve the "admin" service
// "UpdateAgent" endpoint.
func MountUpdateAgentHandler(mux goahttp.Muxer, h http.Handler) {
	f, ok := HandleAdminOrigin(h).(http.HandlerFunc)
	if !ok {
		f = func(w http.ResponseWriter, r *http.Request) {
			h.ServeHTTP(w, r)
		}
	}
	mux.Handle("PUT", "/system/user/agent", f)
}

// NewUpdateAgentHandler creates a HTTP handler which loads the HTTP request
// and calls the "admin" service "UpdateAgent" endpoint.
func NewUpdateAgentHandler(
	endpoint goa.Endpoint,
	mux goahttp.Muxer,
	decoder func(*http.Request) goahttp.Decoder,
	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
	errhandler func(context.Context, http.ResponseWriter, error),
	formatter func(ctx context.Context, err error) goahttp.Statuser,
) http.Handler {
	var (
		decodeRequest  = DecodeUpdateAgentRequest(mux, decoder)
		encodeResponse = EncodeUpdateAgentResponse(encoder)
		encodeError    = EncodeUpdateAgentError(encoder, formatter)
	)
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept"))
		ctx = context.WithValue(ctx, goa.MethodKey, "UpdateAgent")
		ctx = context.WithValue(ctx, goa.ServiceKey, "admin")
		payload, err := decodeRequest(r)
		if err != nil {
			if err := encodeError(ctx, w, err); err != nil {
				errhandler(ctx, w, err)
			}
			return
		}
		res, err := endpoint(ctx, payload)
		if err != nil {
			if err := encodeError(ctx, w, err); err != nil {
				errhandler(ctx, w, err)
			}
			return
		}
		if err := encodeResponse(ctx, w, res); err != nil {
			errhandler(ctx, w, err)
		}
	})
}

// MountRefreshConfigHandler configures the mux to serve the "admin" service
// "RefreshConfig" endpoint.
func MountRefreshConfigHandler(mux goahttp.Muxer, h http.Handler) {
	f, ok := HandleAdminOrigin(h).(http.HandlerFunc)
	if !ok {
		f = func(w http.ResponseWriter, r *http.Request) {
			h.ServeHTTP(w, r)
		}
	}
	mux.Handle("POST", "/system/config/refresh", f)
}

// NewRefreshConfigHandler creates a HTTP handler which loads the HTTP request
// and calls the "admin" service "RefreshConfig" endpoint.
func NewRefreshConfigHandler(
	endpoint goa.Endpoint,
	mux goahttp.Muxer,
	decoder func(*http.Request) goahttp.Decoder,
	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
	errhandler func(context.Context, http.ResponseWriter, error),
	formatter func(ctx context.Context, err error) goahttp.Statuser,
) http.Handler {
	var (
		decodeRequest  = DecodeRefreshConfigRequest(mux, decoder)
		encodeResponse = EncodeRefreshConfigResponse(encoder)
		encodeError    = EncodeRefreshConfigError(encoder, formatter)
	)
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept"))
		ctx = context.WithValue(ctx, goa.MethodKey, "RefreshConfig")
		ctx = context.WithValue(ctx, goa.ServiceKey, "admin")
		payload, err := decodeRequest(r)
		if err != nil {
			if err := encodeError(ctx, w, err); err != nil {
				errhandler(ctx, w, err)
			}
			return
		}
		res, err := endpoint(ctx, payload)
		if err != nil {
			if err := encodeError(ctx, w, err); err != nil {
				errhandler(ctx, w, err)
			}
			return
		}
		if err := encodeResponse(ctx, w, res); err != nil {
			errhandler(ctx, w, err)
		}
	})
}

// MountCORSHandler configures the mux to serve the CORS endpoints for the
// service admin.
func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
	h = HandleAdminOrigin(h)
	mux.Handle("OPTIONS", "/system/user/agent", h.ServeHTTP)
	mux.Handle("OPTIONS", "/system/config/refresh", h.ServeHTTP)
}

// NewCORSHandler creates a HTTP handler which returns a simple 204 response.
func NewCORSHandler() http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		w.WriteHeader(204)
	})
}

// HandleAdminOrigin applies the CORS response headers corresponding to the
// origin for the service admin.
func HandleAdminOrigin(h http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		origin := r.Header.Get("Origin")
		if origin == "" {
			// Not a CORS request
			h.ServeHTTP(w, r)
			return
		}
		if cors.MatchOrigin(origin, "*") {
			w.Header().Set("Access-Control-Allow-Origin", origin)
			w.Header().Set("Vary", "Origin")
			if acrm := r.Header.Get("Access-Control-Request-Method"); acrm != "" {
				// We are handling a preflight request
				w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT")
				w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization")
				w.WriteHeader(204)
				return
			}
			h.ServeHTTP(w, r)
			return
		}
		h.ServeHTTP(w, r)
		return
	})
}


================================================
FILE: api/gen/http/admin/server/types.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// admin HTTP server types
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package server

import (
	admin "github.com/tektoncd/hub/api/gen/admin"
	goa "goa.design/goa/v3/pkg"
)

// UpdateAgentRequestBody is the type of the "admin" service "UpdateAgent"
// endpoint HTTP request body.
type UpdateAgentRequestBody struct {
	// Name of Agent
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// Scopes required for Agent
	Scopes []string `form:"scopes,omitempty" json:"scopes,omitempty" xml:"scopes,omitempty"`
}

// UpdateAgentResponseBody is the type of the "admin" service "UpdateAgent"
// endpoint HTTP response body.
type UpdateAgentResponseBody struct {
	// Agent JWT
	Token string `form:"token" json:"token" xml:"token"`
}

// RefreshConfigResponseBody is the type of the "admin" service "RefreshConfig"
// endpoint HTTP response body.
type RefreshConfigResponseBody struct {
	// Config file checksum
	Checksum string `form:"checksum" json:"checksum" xml:"checksum"`
}

// UpdateAgentInvalidPayloadResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "invalid-payload" error.
type UpdateAgentInvalidPayloadResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

// UpdateAgentInvalidTokenResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "invalid-token" error.
type UpdateAgentInvalidTokenResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

// UpdateAgentInvalidScopesResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "invalid-scopes" error.
type UpdateAgentInvalidScopesResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

// UpdateAgentInternalErrorResponseBody is the type of the "admin" service
// "UpdateAgent" endpoint HTTP response body for the "internal-error" error.
type UpdateAgentInternalErrorResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

// RefreshConfigInvalidTokenResponseBody is the type of the "admin" service
// "RefreshConfig" endpoint HTTP response body for the "invalid-token" error.
type RefreshConfigInvalidTokenResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

// RefreshConfigInvalidScopesResponseBody is the type of the "admin" service
// "RefreshConfig" endpoint HTTP response body for the "invalid-scopes" error.
type RefreshConfigInvalidScopesResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

// RefreshConfigInternalErrorResponseBody is the type of the "admin" service
// "RefreshConfig" endpoint HTTP response body for the "internal-error" error.
type RefreshConfigInternalErrorResponseBody struct {
	// Name is the name of this class of errors.
	Name string `form:"name" json:"name" xml:"name"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID string `form:"id" json:"id" xml:"id"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message string `form:"message" json:"message" xml:"message"`
	// Is the error temporary?
	Temporary bool `form:"temporary" json:"temporary" xml:"temporary"`
	// Is the error a timeout?
	Timeout bool `form:"timeout" json:"timeout" xml:"timeout"`
	// Is the error a server-side fault?
	Fault bool `form:"fault" json:"fault" xml:"fault"`
}

// NewUpdateAgentResponseBody builds the HTTP response body from the result of
// the "UpdateAgent" endpoint of the "admin" service.
func NewUpdateAgentResponseBody(res *admin.UpdateAgentResult) *UpdateAgentResponseBody {
	body := &UpdateAgentResponseBody{
		Token: res.Token,
	}
	return body
}

// NewRefreshConfigResponseBody builds the HTTP response body from the result
// of the "RefreshConfig" endpoint of the "admin" service.
func NewRefreshConfigResponseBody(res *admin.RefreshConfigResult) *RefreshConfigResponseBody {
	body := &RefreshConfigResponseBody{
		Checksum: res.Checksum,
	}
	return body
}

// NewUpdateAgentInvalidPayloadResponseBody builds the HTTP response body from
// the result of the "UpdateAgent" endpoint of the "admin" service.
func NewUpdateAgentInvalidPayloadResponseBody(res *goa.ServiceError) *UpdateAgentInvalidPayloadResponseBody {
	body := &UpdateAgentInvalidPayloadResponseBody{
		Name:      res.Name,
		ID:        res.ID,
		Message:   res.Message,
		Temporary: res.Temporary,
		Timeout:   res.Timeout,
		Fault:     res.Fault,
	}
	return body
}

// NewUpdateAgentInvalidTokenResponseBody builds the HTTP response body from
// the result of the "UpdateAgent" endpoint of the "admin" service.
func NewUpdateAgentInvalidTokenResponseBody(res *goa.ServiceError) *UpdateAgentInvalidTokenResponseBody {
	body := &UpdateAgentInvalidTokenResponseBody{
		Name:      res.Name,
		ID:        res.ID,
		Message:   res.Message,
		Temporary: res.Temporary,
		Timeout:   res.Timeout,
		Fault:     res.Fault,
	}
	return body
}

// NewUpdateAgentInvalidScopesResponseBody builds the HTTP response body from
// the result of the "UpdateAgent" endpoint of the "admin" service.
func NewUpdateAgentInvalidScopesResponseBody(res *goa.ServiceError) *UpdateAgentInvalidScopesResponseBody {
	body := &UpdateAgentInvalidScopesResponseBody{
		Name:      res.Name,
		ID:        res.ID,
		Message:   res.Message,
		Temporary: res.Temporary,
		Timeout:   res.Timeout,
		Fault:     res.Fault,
	}
	return body
}

// NewUpdateAgentInternalErrorResponseBody builds the HTTP response body from
// the result of the "UpdateAgent" endpoint of the "admin" service.
func NewUpdateAgentInternalErrorResponseBody(res *goa.ServiceError) *UpdateAgentInternalErrorResponseBody {
	body := &UpdateAgentInternalErrorResponseBody{
		Name:      res.Name,
		ID:        res.ID,
		Message:   res.Message,
		Temporary: res.Temporary,
		Timeout:   res.Timeout,
		Fault:     res.Fault,
	}
	return body
}

// NewRefreshConfigInvalidTokenResponseBody builds the HTTP response body from
// the result of the "RefreshConfig" endpoint of the "admin" service.
func NewRefreshConfigInvalidTokenResponseBody(res *goa.ServiceError) *RefreshConfigInvalidTokenResponseBody {
	body := &RefreshConfigInvalidTokenResponseBody{
		Name:      res.Name,
		ID:        res.ID,
		Message:   res.Message,
		Temporary: res.Temporary,
		Timeout:   res.Timeout,
		Fault:     res.Fault,
	}
	return body
}

// NewRefreshConfigInvalidScopesResponseBody builds the HTTP response body from
// the result of the "RefreshConfig" endpoint of the "admin" service.
func NewRefreshConfigInvalidScopesResponseBody(res *goa.ServiceError) *RefreshConfigInvalidScopesResponseBody {
	body := &RefreshConfigInvalidScopesResponseBody{
		Name:      res.Name,
		ID:        res.ID,
		Message:   res.Message,
		Temporary: res.Temporary,
		Timeout:   res.Timeout,
		Fault:     res.Fault,
	}
	return body
}

// NewRefreshConfigInternalErrorResponseBody builds the HTTP response body from
// the result of the "RefreshConfig" endpoint of the "admin" service.
func NewRefreshConfigInternalErrorResponseBody(res *goa.ServiceError) *RefreshConfigInternalErrorResponseBody {
	body := &RefreshConfigInternalErrorResponseBody{
		Name:      res.Name,
		ID:        res.ID,
		Message:   res.Message,
		Temporary: res.Temporary,
		Timeout:   res.Timeout,
		Fault:     res.Fault,
	}
	return body
}

// NewUpdateAgentPayload builds a admin service UpdateAgent endpoint payload.
func NewUpdateAgentPayload(body *UpdateAgentRequestBody, token string) *admin.UpdateAgentPayload {
	v := &admin.UpdateAgentPayload{
		Name: *body.Name,
	}
	v.Scopes = make([]string, len(body.Scopes))
	for i, val := range body.Scopes {
		v.Scopes[i] = val
	}
	v.Token = token

	return v
}

// NewRefreshConfigPayload builds a admin service RefreshConfig endpoint
// payload.
func NewRefreshConfigPayload(token string) *admin.RefreshConfigPayload {
	v := &admin.RefreshConfigPayload{}
	v.Token = token

	return v
}

// ValidateUpdateAgentRequestBody runs the validations defined on
// UpdateAgentRequestBody
func ValidateUpdateAgentRequestBody(body *UpdateAgentRequestBody) (err error) {
	if body.Name == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("name", "body"))
	}
	if body.Scopes == nil {
		err = goa.MergeErrors(err, goa.MissingFieldError("scopes", "body"))
	}
	return
}


================================================
FILE: api/gen/http/catalog/client/cli.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog HTTP client CLI support package
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	catalog "github.com/tektoncd/hub/api/gen/catalog"
)

// BuildRefreshPayload builds the payload for the catalog Refresh endpoint from
// CLI flags.
func BuildRefreshPayload(catalogRefreshCatalogName string, catalogRefreshToken string) (*catalog.RefreshPayload, error) {
	var catalogName string
	{
		catalogName = catalogRefreshCatalogName
	}
	var token string
	{
		token = catalogRefreshToken
	}
	v := &catalog.RefreshPayload{}
	v.CatalogName = catalogName
	v.Token = token

	return v, nil
}

// BuildRefreshAllPayload builds the payload for the catalog RefreshAll
// endpoint from CLI flags.
func BuildRefreshAllPayload(catalogRefreshAllToken string) (*catalog.RefreshAllPayload, error) {
	var token string
	{
		token = catalogRefreshAllToken
	}
	v := &catalog.RefreshAllPayload{}
	v.Token = token

	return v, nil
}

// BuildCatalogErrorPayload builds the payload for the catalog CatalogError
// endpoint from CLI flags.
func BuildCatalogErrorPayload(catalogCatalogErrorCatalogName string, catalogCatalogErrorToken string) (*catalog.CatalogErrorPayload, error) {
	var catalogName string
	{
		catalogName = catalogCatalogErrorCatalogName
	}
	var token string
	{
		token = catalogCatalogErrorToken
	}
	v := &catalog.CatalogErrorPayload{}
	v.CatalogName = catalogName
	v.Token = token

	return v, nil
}


================================================
FILE: api/gen/http/catalog/client/client.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog client HTTP transport
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	"context"
	"net/http"

	goahttp "goa.design/goa/v3/http"
	goa "goa.design/goa/v3/pkg"
)

// Client lists the catalog service endpoint HTTP clients.
type Client struct {
	// Refresh Doer is the HTTP client used to make requests to the Refresh
	// endpoint.
	RefreshDoer goahttp.Doer

	// RefreshAll Doer is the HTTP client used to make requests to the RefreshAll
	// endpoint.
	RefreshAllDoer goahttp.Doer

	// CatalogError Doer is the HTTP client used to make requests to the
	// CatalogError endpoint.
	CatalogErrorDoer goahttp.Doer

	// CORS Doer is the HTTP client used to make requests to the  endpoint.
	CORSDoer goahttp.Doer

	// RestoreResponseBody controls whether the response bodies are reset after
	// decoding so they can be read again.
	RestoreResponseBody bool

	scheme  string
	host    string
	encoder func(*http.Request) goahttp.Encoder
	decoder func(*http.Response) goahttp.Decoder
}

// NewClient instantiates HTTP clients for all the catalog service servers.
func NewClient(
	scheme string,
	host string,
	doer goahttp.Doer,
	enc func(*http.Request) goahttp.Encoder,
	dec func(*http.Response) goahttp.Decoder,
	restoreBody bool,
) *Client {
	return &Client{
		RefreshDoer:         doer,
		RefreshAllDoer:      doer,
		CatalogErrorDoer:    doer,
		CORSDoer:            doer,
		RestoreResponseBody: restoreBody,
		scheme:              scheme,
		host:                host,
		decoder:             dec,
		encoder:             enc,
	}
}

// Refresh returns an endpoint that makes HTTP requests to the catalog service
// Refresh server.
func (c *Client) Refresh() goa.Endpoint {
	var (
		encodeRequest  = EncodeRefreshRequest(c.encoder)
		decodeResponse = DecodeRefreshResponse(c.decoder, c.RestoreResponseBody)
	)
	return func(ctx context.Context, v any) (any, error) {
		req, err := c.BuildRefreshRequest(ctx, v)
		if err != nil {
			return nil, err
		}
		err = encodeRequest(req, v)
		if err != nil {
			return nil, err
		}
		resp, err := c.RefreshDoer.Do(req)
		if err != nil {
			return nil, goahttp.ErrRequestError("catalog", "Refresh", err)
		}
		return decodeResponse(resp)
	}
}

// RefreshAll returns an endpoint that makes HTTP requests to the catalog
// service RefreshAll server.
func (c *Client) RefreshAll() goa.Endpoint {
	var (
		encodeRequest  = EncodeRefreshAllRequest(c.encoder)
		decodeResponse = DecodeRefreshAllResponse(c.decoder, c.RestoreResponseBody)
	)
	return func(ctx context.Context, v any) (any, error) {
		req, err := c.BuildRefreshAllRequest(ctx, v)
		if err != nil {
			return nil, err
		}
		err = encodeRequest(req, v)
		if err != nil {
			return nil, err
		}
		resp, err := c.RefreshAllDoer.Do(req)
		if err != nil {
			return nil, goahttp.ErrRequestError("catalog", "RefreshAll", err)
		}
		return decodeResponse(resp)
	}
}

// CatalogError returns an endpoint that makes HTTP requests to the catalog
// service CatalogError server.
func (c *Client) CatalogError() goa.Endpoint {
	var (
		encodeRequest  = EncodeCatalogErrorRequest(c.encoder)
		decodeResponse = DecodeCatalogErrorResponse(c.decoder, c.RestoreResponseBody)
	)
	return func(ctx context.Context, v any) (any, error) {
		req, err := c.BuildCatalogErrorRequest(ctx, v)
		if err != nil {
			return nil, err
		}
		err = encodeRequest(req, v)
		if err != nil {
			return nil, err
		}
		resp, err := c.CatalogErrorDoer.Do(req)
		if err != nil {
			return nil, goahttp.ErrRequestError("catalog", "CatalogError", err)
		}
		return decodeResponse(resp)
	}
}


================================================
FILE: api/gen/http/catalog/client/encode_decode.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog HTTP client encoders and decoders
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	"bytes"
	"context"
	"io"
	"net/http"
	"net/url"
	"strings"

	catalog "github.com/tektoncd/hub/api/gen/catalog"
	catalogviews "github.com/tektoncd/hub/api/gen/catalog/views"
	goahttp "goa.design/goa/v3/http"
	goa "goa.design/goa/v3/pkg"
)

// BuildRefreshRequest instantiates a HTTP request object with method and path
// set to call the "catalog" service "Refresh" endpoint
func (c *Client) BuildRefreshRequest(ctx context.Context, v any) (*http.Request, error) {
	var (
		catalogName string
	)
	{
		p, ok := v.(*catalog.RefreshPayload)
		if !ok {
			return nil, goahttp.ErrInvalidType("catalog", "Refresh", "*catalog.RefreshPayload", v)
		}
		catalogName = p.CatalogName
	}
	u := &url.URL{Scheme: c.scheme, Host: c.host, Path: RefreshCatalogPath(catalogName)}
	req, err := http.NewRequest("POST", u.String(), nil)
	if err != nil {
		return nil, goahttp.ErrInvalidURL("catalog", "Refresh", u.String(), err)
	}
	if ctx != nil {
		req = req.WithContext(ctx)
	}

	return req, nil
}

// EncodeRefreshRequest returns an encoder for requests sent to the catalog
// Refresh server.
func EncodeRefreshRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error {
	return func(req *http.Request, v any) error {
		p, ok := v.(*catalog.RefreshPayload)
		if !ok {
			return goahttp.ErrInvalidType("catalog", "Refresh", "*catalog.RefreshPayload", v)
		}
		{
			head := p.Token
			if !strings.Contains(head, " ") {
				req.Header.Set("Authorization", "Bearer "+head)
			} else {
				req.Header.Set("Authorization", head)
			}
		}
		return nil
	}
}

// DecodeRefreshResponse returns a decoder for responses returned by the
// catalog Refresh endpoint. restoreBody controls whether the response body
// should be restored after having been read.
// DecodeRefreshResponse may return the following errors:
//   - "not-found" (type *goa.ServiceError): http.StatusNotFound
//   - "internal-error" (type *goa.ServiceError): http.StatusInternalServerError
//   - error: internal error
func DecodeRefreshResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) {
	return func(resp *http.Response) (any, error) {
		if restoreBody {
			b, err := io.ReadAll(resp.Body)
			if err != nil {
				return nil, err
			}
			resp.Body = io.NopCloser(bytes.NewBuffer(b))
			defer func() {
				resp.Body = io.NopCloser(bytes.NewBuffer(b))
			}()
		} else {
			defer resp.Body.Close()
		}
		switch resp.StatusCode {
		case http.StatusOK:
			var (
				body RefreshResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("catalog", "Refresh", err)
			}
			p := NewRefreshJobOK(&body)
			view := "default"
			vres := &catalogviews.Job{Projected: p, View: view}
			if err = catalogviews.ValidateJob(vres); err != nil {
				return nil, goahttp.ErrValidationError("catalog", "Refresh", err)
			}
			res := catalog.NewJob(vres)
			return res, nil
		case http.StatusNotFound:
			var (
				body RefreshNotFoundResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("catalog", "Refresh", err)
			}
			err = ValidateRefreshNotFoundResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("catalog", "Refresh", err)
			}
			return nil, NewRefreshNotFound(&body)
		case http.StatusInternalServerError:
			var (
				body RefreshInternalErrorResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("catalog", "Refresh", err)
			}
			err = ValidateRefreshInternalErrorResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("catalog", "Refresh", err)
			}
			return nil, NewRefreshInternalError(&body)
		default:
			body, _ := io.ReadAll(resp.Body)
			return nil, goahttp.ErrInvalidResponse("catalog", "Refresh", resp.StatusCode, string(body))
		}
	}
}

// BuildRefreshAllRequest instantiates a HTTP request object with method and
// path set to call the "catalog" service "RefreshAll" endpoint
func (c *Client) BuildRefreshAllRequest(ctx context.Context, v any) (*http.Request, error) {
	u := &url.URL{Scheme: c.scheme, Host: c.host, Path: RefreshAllCatalogPath()}
	req, err := http.NewRequest("POST", u.String(), nil)
	if err != nil {
		return nil, goahttp.ErrInvalidURL("catalog", "RefreshAll", u.String(), err)
	}
	if ctx != nil {
		req = req.WithContext(ctx)
	}

	return req, nil
}

// EncodeRefreshAllRequest returns an encoder for requests sent to the catalog
// RefreshAll server.
func EncodeRefreshAllRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error {
	return func(req *http.Request, v any) error {
		p, ok := v.(*catalog.RefreshAllPayload)
		if !ok {
			return goahttp.ErrInvalidType("catalog", "RefreshAll", "*catalog.RefreshAllPayload", v)
		}
		{
			head := p.Token
			if !strings.Contains(head, " ") {
				req.Header.Set("Authorization", "Bearer "+head)
			} else {
				req.Header.Set("Authorization", head)
			}
		}
		return nil
	}
}

// DecodeRefreshAllResponse returns a decoder for responses returned by the
// catalog RefreshAll endpoint. restoreBody controls whether the response body
// should be restored after having been read.
// DecodeRefreshAllResponse may return the following errors:
//   - "internal-error" (type *goa.ServiceError): http.StatusInternalServerError
//   - error: internal error
func DecodeRefreshAllResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) {
	return func(resp *http.Response) (any, error) {
		if restoreBody {
			b, err := io.ReadAll(resp.Body)
			if err != nil {
				return nil, err
			}
			resp.Body = io.NopCloser(bytes.NewBuffer(b))
			defer func() {
				resp.Body = io.NopCloser(bytes.NewBuffer(b))
			}()
		} else {
			defer resp.Body.Close()
		}
		switch resp.StatusCode {
		case http.StatusOK:
			var (
				body RefreshAllResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("catalog", "RefreshAll", err)
			}
			for _, e := range body {
				if e != nil {
					if err2 := ValidateJobResponse(e); err2 != nil {
						err = goa.MergeErrors(err, err2)
					}
				}
			}
			if err != nil {
				return nil, goahttp.ErrValidationError("catalog", "RefreshAll", err)
			}
			res := NewRefreshAllJobOK(body)
			return res, nil
		case http.StatusInternalServerError:
			var (
				body RefreshAllInternalErrorResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("catalog", "RefreshAll", err)
			}
			err = ValidateRefreshAllInternalErrorResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("catalog", "RefreshAll", err)
			}
			return nil, NewRefreshAllInternalError(&body)
		default:
			body, _ := io.ReadAll(resp.Body)
			return nil, goahttp.ErrInvalidResponse("catalog", "RefreshAll", resp.StatusCode, string(body))
		}
	}
}

// BuildCatalogErrorRequest instantiates a HTTP request object with method and
// path set to call the "catalog" service "CatalogError" endpoint
func (c *Client) BuildCatalogErrorRequest(ctx context.Context, v any) (*http.Request, error) {
	var (
		catalogName string
	)
	{
		p, ok := v.(*catalog.CatalogErrorPayload)
		if !ok {
			return nil, goahttp.ErrInvalidType("catalog", "CatalogError", "*catalog.CatalogErrorPayload", v)
		}
		catalogName = p.CatalogName
	}
	u := &url.URL{Scheme: c.scheme, Host: c.host, Path: CatalogErrorCatalogPath(catalogName)}
	req, err := http.NewRequest("GET", u.String(), nil)
	if err != nil {
		return nil, goahttp.ErrInvalidURL("catalog", "CatalogError", u.String(), err)
	}
	if ctx != nil {
		req = req.WithContext(ctx)
	}

	return req, nil
}

// EncodeCatalogErrorRequest returns an encoder for requests sent to the
// catalog CatalogError server.
func EncodeCatalogErrorRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error {
	return func(req *http.Request, v any) error {
		p, ok := v.(*catalog.CatalogErrorPayload)
		if !ok {
			return goahttp.ErrInvalidType("catalog", "CatalogError", "*catalog.CatalogErrorPayload", v)
		}
		{
			head := p.Token
			if !strings.Contains(head, " ") {
				req.Header.Set("Authorization", "Bearer "+head)
			} else {
				req.Header.Set("Authorization", head)
			}
		}
		return nil
	}
}

// DecodeCatalogErrorResponse returns a decoder for responses returned by the
// catalog CatalogError endpoint. restoreBody controls whether the response
// body should be restored after having been read.
// DecodeCatalogErrorResponse may return the following errors:
//   - "internal-error" (type *goa.ServiceError): http.StatusInternalServerError
//   - error: internal error
func DecodeCatalogErrorResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) {
	return func(resp *http.Response) (any, error) {
		if restoreBody {
			b, err := io.ReadAll(resp.Body)
			if err != nil {
				return nil, err
			}
			resp.Body = io.NopCloser(bytes.NewBuffer(b))
			defer func() {
				resp.Body = io.NopCloser(bytes.NewBuffer(b))
			}()
		} else {
			defer resp.Body.Close()
		}
		switch resp.StatusCode {
		case http.StatusOK:
			var (
				body CatalogErrorResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("catalog", "CatalogError", err)
			}
			err = ValidateCatalogErrorResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("catalog", "CatalogError", err)
			}
			res := NewCatalogErrorResultOK(&body)
			return res, nil
		case http.StatusInternalServerError:
			var (
				body CatalogErrorInternalErrorResponseBody
				err  error
			)
			err = decoder(resp).Decode(&body)
			if err != nil {
				return nil, goahttp.ErrDecodingError("catalog", "CatalogError", err)
			}
			err = ValidateCatalogErrorInternalErrorResponseBody(&body)
			if err != nil {
				return nil, goahttp.ErrValidationError("catalog", "CatalogError", err)
			}
			return nil, NewCatalogErrorInternalError(&body)
		default:
			body, _ := io.ReadAll(resp.Body)
			return nil, goahttp.ErrInvalidResponse("catalog", "CatalogError", resp.StatusCode, string(body))
		}
	}
}

// unmarshalJobResponseToCatalogJob builds a value of type *catalog.Job from a
// value of type *JobResponse.
func unmarshalJobResponseToCatalogJob(v *JobResponse) *catalog.Job {
	res := &catalog.Job{
		ID:          *v.ID,
		CatalogName: *v.CatalogName,
		Status:      *v.Status,
	}

	return res
}

// unmarshalCatalogErrorsResponseBodyToCatalogCatalogErrors builds a value of
// type *catalog.CatalogErrors from a value of type *CatalogErrorsResponseBody.
func unmarshalCatalogErrorsResponseBodyToCatalogCatalogErrors(v *CatalogErrorsResponseBody) *catalog.CatalogErrors {
	res := &catalog.CatalogErrors{
		Type: *v.Type,
	}
	res.Errors = make([]string, len(v.Errors))
	for i, val := range v.Errors {
		res.Errors[i] = val
	}

	return res
}


================================================
FILE: api/gen/http/catalog/client/paths.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// HTTP request path constructors for the catalog service.
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	"fmt"
)

// RefreshCatalogPath returns the URL path to the catalog service Refresh HTTP endpoint.
func RefreshCatalogPath(catalogName string) string {
	return fmt.Sprintf("/catalog/%v/refresh", catalogName)
}

// RefreshAllCatalogPath returns the URL path to the catalog service RefreshAll HTTP endpoint.
func RefreshAllCatalogPath() string {
	return "/catalog/refresh"
}

// CatalogErrorCatalogPath returns the URL path to the catalog service CatalogError HTTP endpoint.
func CatalogErrorCatalogPath(catalogName string) string {
	return fmt.Sprintf("/catalog/%v/error", catalogName)
}


================================================
FILE: api/gen/http/catalog/client/types.go
================================================
// Code generated by goa v3.21.1, DO NOT EDIT.
//
// catalog HTTP client types
//
// Command:
// $ goa gen github.com/tektoncd/hub/api/design

package client

import (
	catalog "github.com/tektoncd/hub/api/gen/catalog"
	catalogviews "github.com/tektoncd/hub/api/gen/catalog/views"
	goa "goa.design/goa/v3/pkg"
)

// RefreshResponseBody is the type of the "catalog" service "Refresh" endpoint
// HTTP response body.
type RefreshResponseBody struct {
	// id of the job
	ID *uint `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Name of the catalog
	CatalogName *string `form:"catalogName,omitempty" json:"catalogName,omitempty" xml:"catalogName,omitempty"`
	// status of the job
	Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"`
}

// RefreshAllResponseBody is the type of the "catalog" service "RefreshAll"
// endpoint HTTP response body.
type RefreshAllResponseBody []*JobResponse

// CatalogErrorResponseBody is the type of the "catalog" service "CatalogError"
// endpoint HTTP response body.
type CatalogErrorResponseBody struct {
	// Catalog errors
	Data []*CatalogErrorsResponseBody `form:"data,omitempty" json:"data,omitempty" xml:"data,omitempty"`
}

// RefreshNotFoundResponseBody is the type of the "catalog" service "Refresh"
// endpoint HTTP response body for the "not-found" error.
type RefreshNotFoundResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// RefreshInternalErrorResponseBody is the type of the "catalog" service
// "Refresh" endpoint HTTP response body for the "internal-error" error.
type RefreshInternalErrorResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// RefreshAllInternalErrorResponseBody is the type of the "catalog" service
// "RefreshAll" endpoint HTTP response body for the "internal-error" error.
type RefreshAllInternalErrorResponseBody struct {
	// Name is the name of this class of errors.
	Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"`
	// ID is a unique identifier for this particular occurrence of the problem.
	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
	// Message is a human-readable explanation specific to this occurrence of the
	// problem.
	Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"`
	// Is the error temporary?
	Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"`
	// Is the error a timeout?
	Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"`
	// Is the error a server-side fault?
	Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"`
}

// CatalogErrorInternalErrorResponseBody is the type of the "catalog" service
// "CatalogError" endpoint HTTP response body for the "internal-error" error.
type CatalogE
Download .txt
Showing preview only (522K chars total). Download the full file or copy to clipboard to get everything.
gitextract_9bfs5kdj/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.md
│   │   ├── feature-request.md
│   │   └── free-form.md
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── chatops_retest.yaml
│       ├── cherry-pick-command.yaml
│       ├── ci.yaml
│       ├── goa-gen-dependabot.yml
│       ├── golangci-lint.yaml
│       └── slash.yaml
├── .gitignore
├── .golangci.yml
├── .yamllint
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── OWNERS
├── README.md
├── ROADMAP.md
├── api/
│   ├── .gitignore
│   ├── cmd/
│   │   ├── api/
│   │   │   ├── http.go
│   │   │   └── main.go
│   │   ├── api-cli/
│   │   │   ├── http.go
│   │   │   └── main.go
│   │   ├── db/
│   │   │   └── main.go
│   │   └── tkn-hub/
│   │       └── main.go
│   ├── design/
│   │   ├── admin.go
│   │   ├── api.go
│   │   ├── catalog.go
│   │   ├── category.go
│   │   ├── rating.go
│   │   ├── resource.go
│   │   ├── status.go
│   │   ├── swagger.go
│   │   └── types/
│   │       └── type.go
│   ├── gen/
│   │   ├── admin/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   ├── catalog/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   ├── service.go
│   │   │   └── views/
│   │   │       └── view.go
│   │   ├── category/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   ├── http/
│   │   │   ├── admin/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── catalog/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── category/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── cli/
│   │   │   │   └── hub/
│   │   │   │       └── cli.go
│   │   │   ├── openapi.json
│   │   │   ├── openapi.yaml
│   │   │   ├── openapi3.json
│   │   │   ├── openapi3.yaml
│   │   │   ├── rating/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── resource/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   ├── status/
│   │   │   │   ├── client/
│   │   │   │   │   ├── cli.go
│   │   │   │   │   ├── client.go
│   │   │   │   │   ├── encode_decode.go
│   │   │   │   │   ├── paths.go
│   │   │   │   │   └── types.go
│   │   │   │   └── server/
│   │   │   │       ├── encode_decode.go
│   │   │   │       ├── paths.go
│   │   │   │       ├── server.go
│   │   │   │       └── types.go
│   │   │   └── swagger/
│   │   │       ├── client/
│   │   │       │   ├── client.go
│   │   │       │   ├── encode_decode.go
│   │   │       │   ├── paths.go
│   │   │       │   └── types.go
│   │   │       └── server/
│   │   │           ├── paths.go
│   │   │           ├── server.go
│   │   │           └── types.go
│   │   ├── rating/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   ├── resource/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   ├── service.go
│   │   │   └── views/
│   │   │       └── view.go
│   │   ├── status/
│   │   │   ├── client.go
│   │   │   ├── endpoints.go
│   │   │   └── service.go
│   │   └── swagger/
│   │       ├── client.go
│   │       ├── endpoints.go
│   │       └── service.go
│   ├── pkg/
│   │   ├── app/
│   │   │   ├── api_logger.go
│   │   │   ├── app.go
│   │   │   ├── app_test.go
│   │   │   ├── data.go
│   │   │   ├── gorm_logger.go
│   │   │   └── service.go
│   │   ├── auth/
│   │   │   ├── app/
│   │   │   │   └── app.go
│   │   │   ├── base.go
│   │   │   ├── provider/
│   │   │   │   ├── bitbucket.go
│   │   │   │   ├── github.go
│   │   │   │   └── gitlab.go
│   │   │   └── service/
│   │   │       ├── auth.go
│   │   │       ├── auth_test.go
│   │   │       └── service.go
│   │   ├── cli/
│   │   │   ├── app/
│   │   │   │   └── app.go
│   │   │   ├── cmd/
│   │   │   │   ├── check_upgrade/
│   │   │   │   │   ├── check_upgrade_test.go
│   │   │   │   │   ├── check_uprade.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestNoUpdateAvailable.golden
│   │   │   │   │       ├── TestNoUpdateAvailable_TaskNotInstalledViaHubCLI.golden
│   │   │   │   │       ├── TestUpdateAvailable.golden
│   │   │   │   │       ├── TestUpdateAvailable_PipelinesUnknown.golden
│   │   │   │   │       ├── TestUpdateAvailable_WithSkippedTasks.golden
│   │   │   │   │       ├── TestUpdateAvailable_WithSkippedTasks_PipelinesUnknown.golden
│   │   │   │   │       ├── TestV1NoUpdateAvailable.golden
│   │   │   │   │       ├── TestV1NoUpdateAvailable_TaskNotInstalledViaHubCLI.golden
│   │   │   │   │       ├── TestV1UpdateAvailable.golden
│   │   │   │   │       ├── TestV1UpdateAvailable_PipelinesUnknown.golden
│   │   │   │   │       ├── TestV1UpdateAvailable_WithSkippedTasks.golden
│   │   │   │   │       └── TestV1UpdateAvailable_WithSkippedTasks_PipelinesUnknown.golden
│   │   │   │   ├── downgrade/
│   │   │   │   │   ├── downgrade.go
│   │   │   │   │   ├── downgrade_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── foo-v0.2.yaml
│   │   │   │   │       └── foo-v0.3.yaml
│   │   │   │   ├── get/
│   │   │   │   │   ├── get.go
│   │   │   │   │   ├── get_test.go
│   │   │   │   │   ├── task.go
│   │   │   │   │   ├── task_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestGetResource_WithNewVersion.golden
│   │   │   │   │       ├── TestGetResource_WithOldVersion.golden
│   │   │   │   │       ├── TestGetTask_WithNewVersion.golden
│   │   │   │   │       ├── foo-v0.1.yaml
│   │   │   │   │       ├── foo-v0.3.yaml
│   │   │   │   │       ├── pipeline-apple-v0.1.yaml
│   │   │   │   │       ├── pipeline-mango-v0.2.yaml
│   │   │   │   │       └── pipeline-mango-v0.3.yaml
│   │   │   │   ├── info/
│   │   │   │   │   ├── info.go
│   │   │   │   │   ├── info_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestInfoTask_WithLatestVersion.golden
│   │   │   │   │       ├── TestInfoTask_WithOldVersion.golden
│   │   │   │   │       └── TestPipelineTask_MultiLineDescription.golden
│   │   │   │   ├── install/
│   │   │   │   │   ├── install.go
│   │   │   │   │   ├── install_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── foo-v0.2.yaml
│   │   │   │   │       └── foo-v0.3.yaml
│   │   │   │   ├── reinstall/
│   │   │   │   │   ├── reinstall.go
│   │   │   │   │   ├── reinstall_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       └── foo-v0.3.yaml
│   │   │   │   ├── root.go
│   │   │   │   ├── search/
│   │   │   │   │   ├── search.go
│   │   │   │   │   ├── search_test.go
│   │   │   │   │   └── testdata/
│   │   │   │   │       ├── TestSearch_JSONFormat.golden
│   │   │   │   │       └── TestSearch_TableFormat.golden
│   │   │   │   └── upgrade/
│   │   │   │       ├── testdata/
│   │   │   │       │   └── foo-v0.3.yaml
│   │   │   │       ├── upgrade.go
│   │   │   │       └── upgrade_test.go
│   │   │   ├── flag/
│   │   │   │   ├── validate.go
│   │   │   │   └── validate_test.go
│   │   │   ├── formatter/
│   │   │   │   ├── field.go
│   │   │   │   ├── field_test.go
│   │   │   │   ├── json.go
│   │   │   │   └── json_test.go
│   │   │   ├── gvr/
│   │   │   │   └── gvr.go
│   │   │   ├── hub/
│   │   │   │   ├── get_catalog.go
│   │   │   │   ├── get_catalog_test.go
│   │   │   │   ├── get_resource.go
│   │   │   │   ├── get_resource_test.go
│   │   │   │   ├── get_resource_version.go
│   │   │   │   ├── get_resource_version_test.go
│   │   │   │   ├── hub.go
│   │   │   │   ├── hub_test.go
│   │   │   │   ├── search.go
│   │   │   │   └── search_test.go
│   │   │   ├── installer/
│   │   │   │   ├── action.go
│   │   │   │   ├── action_test.go
│   │   │   │   ├── config.go
│   │   │   │   └── kube_action.go
│   │   │   ├── kube/
│   │   │   │   └── client.go
│   │   │   ├── options/
│   │   │   │   ├── select_options.go
│   │   │   │   └── select_options_test.go
│   │   │   ├── printer/
│   │   │   │   └── print.go
│   │   │   ├── test/
│   │   │   │   ├── builder/
│   │   │   │   │   ├── apiresource.go
│   │   │   │   │   └── unstructured.go
│   │   │   │   ├── client.go
│   │   │   │   ├── config.go
│   │   │   │   ├── dynamictestclient.go
│   │   │   │   ├── helpers.go
│   │   │   │   ├── prompt/
│   │   │   │   │   └── prompt.go
│   │   │   │   └── v1beta.go
│   │   │   └── version/
│   │   │       ├── version.go
│   │   │       └── version_test.go
│   │   ├── db/
│   │   │   ├── initializer/
│   │   │   │   └── initializer.go
│   │   │   ├── migration/
│   │   │   │   ├── 202010061403_rename_name_to_agent_name_in_user.go
│   │   │   │   ├── 202010071100_create_config_table.go
│   │   │   │   ├── 202010271300_add_refresh_token_checksum_col_in_user_table.go
│   │   │   │   ├── 202102171333_update_catalog_branch_to_main.go
│   │   │   │   ├── 202103161200_add_avatar_url_column_in_users_table.go
│   │   │   │   ├── 202106031300_update_resources_category_table.go
│   │   │   │   ├── 202106281500_create_platform_tables.go
│   │   │   │   ├── 202106282200_add_deprecated_col_in_resource_version_table.go
│   │   │   │   ├── 202107221500_add_ondelete_constraints.go
│   │   │   │   ├── 202107291608_refresh_all_tables.go
│   │   │   │   ├── 202109151102_add_provider_in_catalog_table.go
│   │   │   │   ├── 202109201733_add-code_col_in_user_table.go
│   │   │   │   ├── 202111091037_backup_users_add_account_table_and_update_data.go
│   │   │   │   ├── 202202191725_add_ssh_url_column_in_catalogs_table.go
│   │   │   │   └── migration.go
│   │   │   ├── model/
│   │   │   │   ├── model.go
│   │   │   │   └── sync_job.go
│   │   │   └── validation/
│   │   │       └── validation_test.go
│   │   ├── git/
│   │   │   ├── fetch_spec.go
│   │   │   ├── git.go
│   │   │   └── repo.go
│   │   ├── parser/
│   │   │   ├── catalog.go
│   │   │   ├── catalog_test.go
│   │   │   ├── kind.go
│   │   │   ├── parser.go
│   │   │   ├── resource.go
│   │   │   ├── result.go
│   │   │   └── testdata/
│   │   │       └── catalogs/
│   │   │           ├── invalid-task/
│   │   │           │   └── task/
│   │   │           │       └── git-cli/
│   │   │           │           └── 0.1/
│   │   │           │               └── git-cli.yaml
│   │   │           ├── invalid-taskname/
│   │   │           │   └── task/
│   │   │           │       ├── git-cli/
│   │   │           │       │   └── 0.1/
│   │   │           │       │       └── git-invalid-name.yaml
│   │   │           │       ├── git-clone/
│   │   │           │       │   ├── 0.1/
│   │   │           │       │   │   └── got-cloned.yaml
│   │   │           │       │   └── 0.2/
│   │   │           │       │       └── git-clone.yaml
│   │   │           │       └── maven/
│   │   │           │           ├── 0.1/
│   │   │           │           │   └── maven.yaml
│   │   │           │           └── 0.2/
│   │   │           │               └── maven.yaml
│   │   │           └── valid/
│   │   │               └── task/
│   │   │                   ├── git-cli/
│   │   │                   │   └── 0.1/
│   │   │                   │       └── git-cli.yaml
│   │   │                   └── maven/
│   │   │                       ├── 0.1/
│   │   │                       │   └── maven.yaml
│   │   │                       └── 0.2/
│   │   │                           └── maven.yaml
│   │   ├── service/
│   │   │   ├── admin/
│   │   │   │   ├── admin.go
│   │   │   │   ├── admin_http_test.go
│   │   │   │   └── admin_test.go
│   │   │   ├── catalog/
│   │   │   │   ├── catalog.go
│   │   │   │   ├── catalog_http_test.go
│   │   │   │   ├── catalog_test.go
│   │   │   │   ├── syncer.go
│   │   │   │   └── testdata/
│   │   │   │       ├── TestCatalogError_Http.golden
│   │   │   │       └── TestCatalogError_HttpHavingNoError.golden
│   │   │   ├── category/
│   │   │   │   ├── category.go
│   │   │   │   ├── category_http_test.go
│   │   │   │   ├── category_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── TestCategories_List_Http.golden
│   │   │   │       └── TestCategories_List_Http_V1.golden
│   │   │   ├── rating/
│   │   │   │   ├── rating.go
│   │   │   │   ├── rating_http_test.go
│   │   │   │   └── rating_test.go
│   │   │   ├── resource/
│   │   │   │   ├── resource.go
│   │   │   │   └── resource_test.go
│   │   │   ├── status/
│   │   │   │   ├── status.go
│   │   │   │   ├── status_http_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── TestDB_NotOK.golden
│   │   │   │       └── TestOk_http.golden
│   │   │   └── validator/
│   │   │       └── validator.go
│   │   ├── shared/
│   │   │   └── resource/
│   │   │       ├── resource.go
│   │   │       └── resource_test.go
│   │   ├── testutils/
│   │   │   ├── config.go
│   │   │   ├── db.go
│   │   │   ├── run.go
│   │   │   └── utils.go
│   │   ├── token/
│   │   │   ├── jwt.go
│   │   │   └── user.go
│   │   └── user/
│   │       ├── app/
│   │       │   └── app.go
│   │       ├── base.go
│   │       └── service/
│   │           ├── service.go
│   │           ├── service_test.go
│   │           ├── user.go
│   │           └── user_test.go
│   ├── test/
│   │   ├── cli/
│   │   │   └── cli.go
│   │   ├── config/
│   │   │   ├── config.yaml
│   │   │   └── env.test
│   │   ├── e2e/
│   │   │   ├── get/
│   │   │   │   └── get_test.go
│   │   │   └── info/
│   │   │       └── info_test.go
│   │   └── fixtures/
│   │       ├── accounts.yaml
│   │       ├── catalog_errors.yaml
│   │       ├── catalogs.yaml
│   │       ├── categories.yaml
│   │       ├── configs.yaml
│   │       ├── platforms.yaml
│   │       ├── resource_categories.yaml
│   │       ├── resource_platforms.yaml
│   │       ├── resource_tags.yaml
│   │       ├── resource_versions.yaml
│   │       ├── resources.yaml
│   │       ├── scopes.yaml
│   │       ├── sync_jobs.yaml
│   │       ├── tags.yaml
│   │       ├── user_resource_ratings.yaml
│   │       ├── user_scopes.yaml
│   │       ├── users.yaml
│   │       └── version_platforms.yaml
│   ├── update-golden-files.sh
│   └── v1/
│       ├── design/
│       │   ├── api.go
│       │   ├── catalog.go
│       │   ├── resource.go
│       │   └── swagger.go
│       ├── gen/
│       │   ├── catalog/
│       │   │   ├── client.go
│       │   │   ├── endpoints.go
│       │   │   ├── service.go
│       │   │   └── views/
│       │   │       └── view.go
│       │   ├── http/
│       │   │   ├── catalog/
│       │   │   │   ├── client/
│       │   │   │   │   ├── cli.go
│       │   │   │   │   ├── client.go
│       │   │   │   │   ├── encode_decode.go
│       │   │   │   │   ├── paths.go
│       │   │   │   │   └── types.go
│       │   │   │   └── server/
│       │   │   │       ├── encode_decode.go
│       │   │   │       ├── paths.go
│       │   │   │       ├── server.go
│       │   │   │       └── types.go
│       │   │   ├── cli/
│       │   │   │   └── hub/
│       │   │   │       └── cli.go
│       │   │   ├── openapi.json
│       │   │   ├── openapi.yaml
│       │   │   ├── openapi3.json
│       │   │   ├── openapi3.yaml
│       │   │   ├── resource/
│       │   │   │   ├── client/
│       │   │   │   │   ├── cli.go
│       │   │   │   │   ├── client.go
│       │   │   │   │   ├── encode_decode.go
│       │   │   │   │   ├── paths.go
│       │   │   │   │   └── types.go
│       │   │   │   └── server/
│       │   │   │       ├── encode_decode.go
│       │   │   │       ├── paths.go
│       │   │   │       ├── server.go
│       │   │   │       └── types.go
│       │   │   └── swagger/
│       │   │       ├── client/
│       │   │       │   ├── client.go
│       │   │       │   ├── encode_decode.go
│       │   │       │   ├── paths.go
│       │   │       │   └── types.go
│       │   │       └── server/
│       │   │           ├── paths.go
│       │   │           ├── server.go
│       │   │           └── types.go
│       │   ├── resource/
│       │   │   ├── client.go
│       │   │   ├── endpoints.go
│       │   │   ├── service.go
│       │   │   └── views/
│       │   │       └── view.go
│       │   └── swagger/
│       │       ├── client.go
│       │       ├── endpoints.go
│       │       └── service.go
│       └── service/
│           ├── catalog/
│           │   ├── catalog.go
│           │   ├── catalog_http_test.go
│           │   ├── catalog_test.go
│           │   └── testdata/
│           │       └── TestCatalog_List_Http.golden
│           └── resource/
│               ├── resource.go
│               ├── resource_http_test.go
│               ├── resource_test.go
│               └── testdata/
│                   ├── TestByCatalogKindNameVersionReadme_Http.golden
│                   ├── TestByCatalogKindNameVersionYaml_Http.golden
│                   ├── TestByCatalogKindNameVersion_Http.golden
│                   ├── TestByCatalogKindName_CompatibleVersion_Http.golden
│                   ├── TestByCatalogKindName_Http.golden
│                   ├── TestByEnterpriseCatalogKindName_Http.golden
│                   ├── TestByID_Http.golden
│                   ├── TestByVersionID_Http.golden
│                   ├── TestDeprecationByVersionID_Http.golden
│                   ├── TestLatestVersionDeprecationByID_Http.golden
│                   ├── TestList_Http_NoLimit.golden
│                   ├── TestList_Http_WithLimit.golden
│                   ├── TestQueryWithAllParams_Http.golden
│                   ├── TestQueryWithCategoriesAndKinds_Http.golden
│                   ├── TestQueryWithCategoriesAndName_Http.golden
│                   ├── TestQueryWithCategoriesAndTags_Http.golden
│                   ├── TestQueryWithCategories_Http.golden
│                   ├── TestQueryWithExactName_Http.golden
│                   ├── TestQueryWithKindsAndTags_Http.golden
│                   ├── TestQueryWithKinds_Http.golden
│                   ├── TestQueryWithNameAndKinds_Http.golden
│                   ├── TestQueryWithNameAndTags_Http.golden
│                   ├── TestQueryWithPlatforms_Http.golden
│                   ├── TestQueryWithTags_Http.golden
│                   ├── TestQuery_Http.golden
│                   ├── TestVersionsByID_Http.golden
│                   └── catalog/
│                       └── catalog-official/
│                           └── task/
│                               └── tkn/
│                                   ├── 0.1/
│                                   │   ├── README.md
│                                   │   └── tkn.yaml
│                                   └── 0.2/
│                                       ├── README.md
│                                       └── tkn.yaml
├── code-of-conduct.md
├── config/
│   ├── 00-init/
│   │   ├── 00-namespace.yaml
│   │   ├── 01-db-secret.yaml
│   │   ├── 02-db-pvc.yaml
│   │   ├── 03-db-deployment.yaml
│   │   └── 04-db-service.yaml
│   ├── 01-db/
│   │   └── 10-db-migration.yaml
│   ├── 02-api/
│   │   ├── 20-api-pvc.yaml
│   │   ├── 20-api-secret.yaml
│   │   ├── 21-api-configmap.yaml
│   │   ├── 22-api-deployment.yaml
│   │   └── 23-api-service.yaml
│   ├── 03-ui/
│   │   ├── 30-ui-configmap.yaml
│   │   ├── 31-ui-deployment.yaml
│   │   └── 32-ui-service.yaml
│   ├── 04-kubernetes/
│   │   ├── 40-api-ingress.yaml
│   │   ├── 40-auth-ingress.yaml
│   │   ├── 41-gke-hub-config.yaml
│   │   ├── 42-hub-preview-redirect-ingress.yaml
│   │   └── 42-ui-ingress.yaml
│   ├── 04-openshift/
│   │   ├── 40-api-route.yaml
│   │   ├── 40-auth-route.yaml
│   │   └── 41-ui-route.yaml
│   ├── 05-catalog-refresh-cj/
│   │   ├── 50-catalog-refresh-secret.yaml
│   │   └── 51-catalog-refresh-cronjob.yaml
│   ├── 06-swagger/
│   │   ├── 00-config/
│   │   │   ├── 00-swagger-configmap.yaml
│   │   │   ├── 01-swagger-deployment.yaml
│   │   │   └── 02-swagger-service.yaml
│   │   ├── 01-kubernetes/
│   │   │   └── 01-swagger-ingress.yaml
│   │   └── 01-openshift/
│   │       └── 01-swagger-route.yaml
│   └── 07-hub-info/
│       ├── hub-info.yaml
│       └── role-binding.yaml
├── config.yaml
├── docs/
│   ├── ADD_NEW_CATALOG.md
│   ├── ADD_NEW_CATEGORY.md
│   ├── API_POLICY.md
│   ├── DEPLOYMENT.md
│   ├── DEVELOPMENT.md
│   └── UPGRADE_V1.6.0_TO_V1.7.0.md
├── go.mod
├── go.sum
├── hack/
│   └── verify-codegen.sh
├── images/
│   ├── api.Dockerfile
│   ├── db.Dockerfile
│   └── ui.Dockerfile
├── release/
│   └── RELEASE.md
├── release.sh
├── swagger/
│   ├── .eslintignore
│   ├── .eslintrc.json
│   ├── .gitignore
│   ├── .prettierignore
│   ├── .prettierrc
│   ├── Dockerfile
│   ├── README.md
│   ├── image/
│   │   ├── nginx.conf
│   │   └── start.sh
│   ├── package.json
│   ├── public/
│   │   ├── config.js
│   │   ├── index.html
│   │   └── robots.txt
│   ├── src/
│   │   ├── components/
│   │   │   └── App/
│   │   │       ├── App.css
│   │   │       ├── App.test.tsx
│   │   │       ├── __snapshots__/
│   │   │       │   └── App.test.tsx.snap
│   │   │       └── index.tsx
│   │   ├── config/
│   │   │   └── constants.tsx
│   │   ├── index.css
│   │   ├── index.tsx
│   │   ├── react-app-env.d.ts
│   │   └── setupTests.ts
│   └── tsconfig.json
├── tekton/
│   ├── README.md
│   ├── api/
│   │   ├── golang-db-test.yaml
│   │   └── pipeline.yaml
│   ├── release.sh
│   └── ui/
│       └── pipeline.yaml
├── test/
│   ├── hack.go
│   └── presubmit-tests.sh
├── tools.go
├── ui/
│   ├── .eslintignore
│   ├── .eslintrc.json
│   ├── .gitignore
│   ├── .npmrc
│   ├── .prettierignore
│   ├── .prettierrc
│   ├── README.md
│   ├── config-overrides.js
│   ├── image/
│   │   ├── config-js.conf
│   │   ├── location.locations
│   │   ├── nginx.conf
│   │   └── start.sh
│   ├── jest.config.js
│   ├── package.json
│   ├── public/
│   │   ├── config.js
│   │   ├── index.html
│   │   ├── manifest.json
│   │   └── robots.txt
│   ├── src/
│   │   ├── __mocks__/
│   │   │   └── axios.js
│   │   ├── __test__/
│   │   │   └── __mocks__/
│   │   │       ├── react-markdown.js
│   │   │       └── rehype-external-links.js
│   │   ├── api/
│   │   │   ├── index.ts
│   │   │   └── testutil.ts
│   │   ├── common/
│   │   │   ├── errors.ts
│   │   │   ├── icons.ts
│   │   │   ├── params.ts
│   │   │   ├── scrollToTop.test.ts
│   │   │   ├── scrollToTop.ts
│   │   │   ├── testutils.ts
│   │   │   ├── titlecase.test.ts
│   │   │   ├── titlecase.ts
│   │   │   ├── trimUrl.test.ts
│   │   │   └── trimUrl.ts
│   │   ├── components/
│   │   │   ├── AlertDisplay/
│   │   │   │   ├── AlertDisplay.css
│   │   │   │   ├── AlertDisplay.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── AlertDisplay.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Background/
│   │   │   │   ├── Background.css
│   │   │   │   ├── Background.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Background.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Cards/
│   │   │   │   ├── Cards.css
│   │   │   │   ├── Cards.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Cards.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Description/
│   │   │   │   ├── Description.css
│   │   │   │   ├── Description.test.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── Filter/
│   │   │   │   ├── Filter.css
│   │   │   │   ├── Filter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Filter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Footer/
│   │   │   │   ├── Footer.css
│   │   │   │   ├── Footer.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Footer.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── HomePage/
│   │   │   │   ├── HomePage.css
│   │   │   │   ├── HomePage.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── HomePage.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Icon/
│   │   │   │   ├── Icon.css
│   │   │   │   ├── Icon.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Icon.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── LeftPane/
│   │   │   │   ├── LeftPane.css
│   │   │   │   ├── LeftPane.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── LeftPane.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── PageNotFound/
│   │   │   │   ├── PageNotFound.css
│   │   │   │   ├── PageNotFound.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── PageNotFound.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Readme/
│   │   │   │   ├── Readme.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Readme.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── ResourceDetailsPage/
│   │   │   │   ├── ResourceDetailsPage.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ResourceDetailsPage.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── TooltipDisplay/
│   │   │   │   ├── TooltipDisplay.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── TooltipDisplay.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   └── Yaml/
│   │   │       ├── Yaml.test.tsx
│   │   │       ├── __snapshots__/
│   │   │       │   └── Yaml.test.tsx.snap
│   │   │       └── index.tsx
│   │   ├── config/
│   │   │   ├── constant.d.ts
│   │   │   └── constants.tsx
│   │   ├── containers/
│   │   │   ├── App/
│   │   │   │   ├── App.css
│   │   │   │   ├── App.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── App.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── BasicDetails/
│   │   │   │   ├── BasicDetails.css
│   │   │   │   ├── BasicDetails.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── BasicDetails.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── CatalogFilter/
│   │   │   │   ├── CatalogFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CatalogFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── CategoryFilter/
│   │   │   │   ├── CategoryFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── CategoryFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Details/
│   │   │   │   ├── Details.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Details.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Header/
│   │   │   │   ├── Header.css
│   │   │   │   ├── Header.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Header.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── KindFilter/
│   │   │   │   ├── KindFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── KindFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── ParseUrl/
│   │   │   │   ├── ParseUrl.test.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── PlatformFilter/
│   │   │   │   ├── PlatformFilter.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── PlatformFilter.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Rating/
│   │   │   │   ├── Rating.css
│   │   │   │   ├── Rating.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Rating.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Resources/
│   │   │   │   ├── Resources.css
│   │   │   │   ├── Resources.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Resources.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── Search/
│   │   │   │   ├── Search.css
│   │   │   │   ├── Search.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Search.test.tsx.snap
│   │   │   │   └── index.tsx
│   │   │   ├── SortDropDown/
│   │   │   │   ├── SortDropDown.css
│   │   │   │   ├── SortDropDown.test.tsx
│   │   │   │   └── index.tsx
│   │   │   └── UserProfile/
│   │   │       ├── UserProfile.css
│   │   │       ├── UserProfile.test.tsx
│   │   │       └── index.tsx
│   │   ├── index.css
│   │   ├── index.tsx
│   │   ├── react-app-env.d.ts
│   │   ├── serviceWorker.ts
│   │   ├── setupTests.ts
│   │   ├── store/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── catalog.test.ts.snap
│   │   │   │   ├── category.test.ts.snap
│   │   │   │   ├── kind.test.ts.snap
│   │   │   │   ├── platform.test.ts.snap
│   │   │   │   ├── provider.test.ts.snap
│   │   │   │   ├── resource.test.ts.snap
│   │   │   │   └── tag.test.ts.snap
│   │   │   ├── auth.test.ts
│   │   │   ├── auth.ts
│   │   │   ├── catalog.test.ts
│   │   │   ├── catalog.ts
│   │   │   ├── category.test.ts
│   │   │   ├── category.ts
│   │   │   ├── kind.test.ts
│   │   │   ├── kind.ts
│   │   │   ├── platform.test.ts
│   │   │   ├── platform.ts
│   │   │   ├── provider.test.ts
│   │   │   ├── provider.ts
│   │   │   ├── resource.test.ts
│   │   │   ├── resource.ts
│   │   │   ├── root.tsx
│   │   │   ├── tag.test.ts
│   │   │   ├── tag.ts
│   │   │   ├── testdata/
│   │   │   │   ├── access_token.json
│   │   │   │   ├── authentication.json
│   │   │   │   ├── buildah-Readme.md
│   │   │   │   ├── buildah.yaml
│   │   │   │   ├── catalogs.json
│   │   │   │   ├── categories.json
│   │   │   │   ├── provider.json
│   │   │   │   ├── refresh_token.json
│   │   │   │   ├── resource_versions_13.json
│   │   │   │   ├── resources.json
│   │   │   │   ├── userInfo.json
│   │   │   │   ├── version_details_105.json
│   │   │   │   └── version_details_13.json
│   │   │   ├── utils.test.ts
│   │   │   └── utils.ts
│   │   └── utils/
│   │       ├── updateUrl.test.ts
│   │       └── updateUrl.ts
│   └── tsconfig.json
└── vendor/
    ├── cel.dev/
    │   └── expr/
    │       ├── .bazelversion
    │       ├── .gitattributes
    │       ├── .gitignore
    │       ├── BUILD.bazel
    │       ├── CODE_OF_CONDUCT.md
    │       ├── CONTRIBUTING.md
    │       ├── GOVERNANCE.md
    │       ├── LICENSE
    │       ├── MAINTAINERS.md
    │       ├── MODULE.bazel
    │       ├── README.md
    │       ├── WORKSPACE
    │       ├── WORKSPACE.bzlmod
    │       ├── checked.pb.go
    │       ├── cloudbuild.yaml
    │       ├── eval.pb.go
    │       ├── explain.pb.go
    │       ├── regen_go_proto.sh
    │       ├── regen_go_proto_canonical_protos.sh
    │       ├── syntax.pb.go
    │       └── value.pb.go
    ├── contrib.go.opencensus.io/
    │   └── exporter/
    │       ├── ocagent/
    │       │   ├── .gitignore
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── common.go
    │       │   ├── connection.go
    │       │   ├── nodeinfo.go
    │       │   ├── ocagent.go
    │       │   ├── options.go
    │       │   ├── span_config.go
    │       │   ├── transform_spans.go
    │       │   ├── transform_stats_to_metrics.go
    │       │   └── version.go
    │       └── prometheus/
    │           ├── .gitignore
    │           ├── .golangci.yml
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── Makefile
    │           ├── README.md
    │           ├── prometheus.go
    │           └── sanitize.go
    ├── github.com/
    │   ├── ActiveState/
    │   │   └── vt10x/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── color.go
    │   │       ├── csi.go
    │   │       ├── doc.go
    │   │       ├── expect.go
    │   │       ├── ioctl_other.go
    │   │       ├── ioctl_posix.go
    │   │       ├── parse.go
    │   │       ├── state.go
    │   │       ├── str.go
    │   │       ├── strip.go
    │   │       └── vt.go
    │   ├── AlecAivazis/
    │   │   └── survey/
    │   │       └── v2/
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── confirm.go
    │   │           ├── core/
    │   │           │   ├── template.go
    │   │           │   └── write.go
    │   │           ├── editor.go
    │   │           ├── filter.go
    │   │           ├── input.go
    │   │           ├── multiline.go
    │   │           ├── multiselect.go
    │   │           ├── password.go
    │   │           ├── renderer.go
    │   │           ├── select.go
    │   │           ├── survey.go
    │   │           ├── terminal/
    │   │           │   ├── LICENSE.txt
    │   │           │   ├── README.md
    │   │           │   ├── buffered_reader.go
    │   │           │   ├── cursor.go
    │   │           │   ├── cursor_windows.go
    │   │           │   ├── display.go
    │   │           │   ├── display_posix.go
    │   │           │   ├── display_windows.go
    │   │           │   ├── error.go
    │   │           │   ├── output.go
    │   │           │   ├── output_windows.go
    │   │           │   ├── runereader.go
    │   │           │   ├── runereader_bsd.go
    │   │           │   ├── runereader_linux.go
    │   │           │   ├── runereader_posix.go
    │   │           │   ├── runereader_ppc64le.go
    │   │           │   ├── runereader_windows.go
    │   │           │   ├── sequences.go
    │   │           │   ├── stdio.go
    │   │           │   ├── syscall_windows.go
    │   │           │   └── terminal.go
    │   │           ├── transform.go
    │   │           └── validate.go
    │   ├── Masterminds/
    │   │   └── semver/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE.txt
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── collection.go
    │   │           ├── constraints.go
    │   │           ├── doc.go
    │   │           └── version.go
    │   ├── Netflix/
    │   │   └── go-expect/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── OSSMETADATA
    │   │       ├── README.md
    │   │       ├── console.go
    │   │       ├── doc.go
    │   │       ├── expect.go
    │   │       ├── expect_opt.go
    │   │       ├── passthrough_pipe.go
    │   │       ├── reader_lease.go
    │   │       └── test_log.go
    │   ├── antlr4-go/
    │   │   └── antlr/
    │   │       └── v4/
    │   │           ├── .gitignore
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── antlrdoc.go
    │   │           ├── atn.go
    │   │           ├── atn_config.go
    │   │           ├── atn_config_set.go
    │   │           ├── atn_deserialization_options.go
    │   │           ├── atn_deserializer.go
    │   │           ├── atn_simulator.go
    │   │           ├── atn_state.go
    │   │           ├── atn_type.go
    │   │           ├── char_stream.go
    │   │           ├── common_token_factory.go
    │   │           ├── common_token_stream.go
    │   │           ├── comparators.go
    │   │           ├── configuration.go
    │   │           ├── dfa.go
    │   │           ├── dfa_serializer.go
    │   │           ├── dfa_state.go
    │   │           ├── diagnostic_error_listener.go
    │   │           ├── error_listener.go
    │   │           ├── error_strategy.go
    │   │           ├── errors.go
    │   │           ├── file_stream.go
    │   │           ├── input_stream.go
    │   │           ├── int_stream.go
    │   │           ├── interval_set.go
    │   │           ├── jcollect.go
    │   │           ├── lexer.go
    │   │           ├── lexer_action.go
    │   │           ├── lexer_action_executor.go
    │   │           ├── lexer_atn_simulator.go
    │   │           ├── ll1_analyzer.go
    │   │           ├── nostatistics.go
    │   │           ├── parser.go
    │   │           ├── parser_atn_simulator.go
    │   │           ├── parser_rule_context.go
    │   │           ├── prediction_context.go
    │   │           ├── prediction_context_cache.go
    │   │           ├── prediction_mode.go
    │   │           ├── recognizer.go
    │   │           ├── rule_context.go
    │   │           ├── semantic_context.go
    │   │           ├── statistics.go
    │   │           ├── stats_data.go
    │   │           ├── token.go
    │   │           ├── token_source.go
    │   │           ├── token_stream.go
    │   │           ├── tokenstream_rewriter.go
    │   │           ├── trace_listener.go
    │   │           ├── transition.go
    │   │           ├── tree.go
    │   │           ├── trees.go
    │   │           └── utils.go
    │   ├── beorn7/
    │   │   └── perks/
    │   │       ├── LICENSE
    │   │       └── quantile/
    │   │           ├── exampledata.txt
    │   │           └── stream.go
    │   ├── census-instrumentation/
    │   │   └── opencensus-proto/
    │   │       ├── AUTHORS
    │   │       ├── LICENSE
    │   │       └── gen-go/
    │   │           ├── agent/
    │   │           │   ├── common/
    │   │           │   │   └── v1/
    │   │           │   │       └── common.pb.go
    │   │           │   ├── metrics/
    │   │           │   │   └── v1/
    │   │           │   │       ├── metrics_service.pb.go
    │   │           │   │       └── metrics_service.pb.gw.go
    │   │           │   └── trace/
    │   │           │       └── v1/
    │   │           │           ├── trace_service.pb.go
    │   │           │           └── trace_service.pb.gw.go
    │   │           ├── metrics/
    │   │           │   └── v1/
    │   │           │       └── metrics.pb.go
    │   │           ├── resource/
    │   │           │   └── v1/
    │   │           │       └── resource.pb.go
    │   │           └── trace/
    │   │               └── v1/
    │   │                   ├── trace.pb.go
    │   │                   └── trace_config.pb.go
    │   ├── cespare/
    │   │   └── xxhash/
    │   │       └── v2/
    │   │           ├── LICENSE.txt
    │   │           ├── README.md
    │   │           ├── testall.sh
    │   │           ├── xxhash.go
    │   │           ├── xxhash_amd64.s
    │   │           ├── xxhash_arm64.s
    │   │           ├── xxhash_asm.go
    │   │           ├── xxhash_other.go
    │   │           ├── xxhash_safe.go
    │   │           └── xxhash_unsafe.go
    │   ├── cloudevents/
    │   │   └── sdk-go/
    │   │       └── v2/
    │   │           ├── LICENSE
    │   │           ├── alias.go
    │   │           ├── binding/
    │   │           │   ├── binary_writer.go
    │   │           │   ├── doc.go
    │   │           │   ├── encoding.go
    │   │           │   ├── event_message.go
    │   │           │   ├── finish_message.go
    │   │           │   ├── format/
    │   │           │   │   ├── doc.go
    │   │           │   │   └── format.go
    │   │           │   ├── message.go
    │   │           │   ├── spec/
    │   │           │   │   ├── attributes.go
    │   │           │   │   ├── doc.go
    │   │           │   │   ├── match_exact_version.go
    │   │           │   │   └── spec.go
    │   │           │   ├── structured_writer.go
    │   │           │   ├── to_event.go
    │   │           │   ├── transformer.go
    │   │           │   └── write.go
    │   │           ├── client/
    │   │           │   ├── client.go
    │   │           │   ├── client_http.go
    │   │           │   ├── client_observed.go
    │   │           │   ├── defaulters.go
    │   │           │   ├── doc.go
    │   │           │   ├── http_receiver.go
    │   │           │   ├── invoker.go
    │   │           │   ├── observability.go
    │   │           │   ├── options.go
    │   │           │   └── receiver.go
    │   │           ├── context/
    │   │           │   ├── context.go
    │   │           │   ├── delegating.go
    │   │           │   ├── doc.go
    │   │           │   ├── logger.go
    │   │           │   └── retry.go
    │   │           ├── event/
    │   │           │   ├── content_type.go
    │   │           │   ├── data_content_encoding.go
    │   │           │   ├── datacodec/
    │   │           │   │   ├── codec.go
    │   │           │   │   ├── doc.go
    │   │           │   │   ├── json/
    │   │           │   │   │   ├── data.go
    │   │           │   │   │   └── doc.go
    │   │           │   │   ├── text/
    │   │           │   │   │   ├── data.go
    │   │           │   │   │   └── doc.go
    │   │           │   │   └── xml/
    │   │           │   │       ├── data.go
    │   │           │   │       └── doc.go
    │   │           │   ├── doc.go
    │   │           │   ├── event.go
    │   │           │   ├── event_data.go
    │   │           │   ├── event_interface.go
    │   │           │   ├── event_marshal.go
    │   │           │   ├── event_reader.go
    │   │           │   ├── event_unmarshal.go
    │   │           │   ├── event_validation.go
    │   │           │   ├── event_writer.go
    │   │           │   ├── eventcontext.go
    │   │           │   ├── eventcontext_v03.go
    │   │           │   ├── eventcontext_v03_reader.go
    │   │           │   ├── eventcontext_v03_writer.go
    │   │           │   ├── eventcontext_v1.go
    │   │           │   ├── eventcontext_v1_reader.go
    │   │           │   ├── eventcontext_v1_writer.go
    │   │           │   └── extensions.go
    │   │           ├── protocol/
    │   │           │   ├── doc.go
    │   │           │   ├── error.go
    │   │           │   ├── http/
    │   │           │   │   ├── abuse_protection.go
    │   │           │   │   ├── context.go
    │   │           │   │   ├── doc.go
    │   │           │   │   ├── headers.go
    │   │           │   │   ├── message.go
    │   │           │   │   ├── options.go
    │   │           │   │   ├── protocol.go
    │   │           │   │   ├── protocol_lifecycle.go
    │   │           │   │   ├── protocol_rate.go
    │   │           │   │   ├── protocol_retry.go
    │   │           │   │   ├── result.go
    │   │           │   │   ├── retries_result.go
    │   │           │   │   ├── utility.go
    │   │           │   │   ├── write_request.go
    │   │           │   │   └── write_responsewriter.go
    │   │           │   ├── inbound.go
    │   │           │   ├── lifecycle.go
    │   │           │   ├── outbound.go
    │   │           │   └── result.go
    │   │           ├── staticcheck.conf
    │   │           └── types/
    │   │               ├── allocate.go
    │   │               ├── doc.go
    │   │               ├── timestamp.go
    │   │               ├── uri.go
    │   │               ├── uriref.go
    │   │               └── value.go
    │   ├── containerd/
    │   │   └── stargz-snapshotter/
    │   │       └── estargz/
    │   │           ├── LICENSE
    │   │           ├── build.go
    │   │           ├── errorutil/
    │   │           │   └── errors.go
    │   │           ├── estargz.go
    │   │           ├── gzip.go
    │   │           ├── testutil.go
    │   │           └── types.go
    │   ├── creack/
    │   │   └── pty/
    │   │       ├── .gitignore
    │   │       ├── Dockerfile.golang
    │   │       ├── Dockerfile.riscv
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── asm_solaris_amd64.s
    │   │       ├── doc.go
    │   │       ├── ioctl.go
    │   │       ├── ioctl_bsd.go
    │   │       ├── ioctl_solaris.go
    │   │       ├── mktypes.bash
    │   │       ├── pty_darwin.go
    │   │       ├── pty_dragonfly.go
    │   │       ├── pty_freebsd.go
    │   │       ├── pty_linux.go
    │   │       ├── pty_netbsd.go
    │   │       ├── pty_openbsd.go
    │   │       ├── pty_solaris.go
    │   │       ├── pty_unsupported.go
    │   │       ├── run.go
    │   │       ├── test_crosscompile.sh
    │   │       ├── winsize.go
    │   │       ├── winsize_unix.go
    │   │       ├── winsize_unsupported.go
    │   │       ├── ztypes_386.go
    │   │       ├── ztypes_amd64.go
    │   │       ├── ztypes_arm.go
    │   │       ├── ztypes_arm64.go
    │   │       ├── ztypes_dragonfly_amd64.go
    │   │       ├── ztypes_freebsd_386.go
    │   │       ├── ztypes_freebsd_amd64.go
    │   │       ├── ztypes_freebsd_arm.go
    │   │       ├── ztypes_freebsd_arm64.go
    │   │       ├── ztypes_freebsd_ppc64.go
    │   │       ├── ztypes_loong64.go
    │   │       ├── ztypes_mipsx.go
    │   │       ├── ztypes_netbsd_32bit_int.go
    │   │       ├── ztypes_openbsd_32bit_int.go
    │   │       ├── ztypes_ppc64.go
    │   │       ├── ztypes_ppc64le.go
    │   │       ├── ztypes_riscvx.go
    │   │       └── ztypes_s390x.go
    │   ├── davecgh/
    │   │   └── go-spew/
    │   │       ├── LICENSE
    │   │       └── spew/
    │   │           ├── bypass.go
    │   │           ├── bypasssafe.go
    │   │           ├── common.go
    │   │           ├── config.go
    │   │           ├── doc.go
    │   │           ├── dump.go
    │   │           ├── format.go
    │   │           └── spew.go
    │   ├── dimfeld/
    │   │   └── httppath/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── path.go
    │   ├── docker/
    │   │   ├── cli/
    │   │   │   ├── AUTHORS
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── cli/
    │   │   │       └── config/
    │   │   │           ├── config.go
    │   │   │           ├── configfile/
    │   │   │           │   ├── file.go
    │   │   │           │   ├── file_unix.go
    │   │   │           │   └── file_windows.go
    │   │   │           ├── credentials/
    │   │   │           │   ├── credentials.go
    │   │   │           │   ├── default_store.go
    │   │   │           │   ├── default_store_darwin.go
    │   │   │           │   ├── default_store_linux.go
    │   │   │           │   ├── default_store_unsupported.go
    │   │   │           │   ├── default_store_windows.go
    │   │   │           │   ├── file_store.go
    │   │   │           │   └── native_store.go
    │   │   │           └── types/
    │   │   │               └── authconfig.go
    │   │   ├── distribution/
    │   │   │   ├── LICENSE
    │   │   │   └── registry/
    │   │   │       └── client/
    │   │   │           └── auth/
    │   │   │               └── challenge/
    │   │   │                   ├── addr.go
    │   │   │                   └── authchallenge.go
    │   │   └── docker-credential-helpers/
    │   │       ├── LICENSE
    │   │       ├── client/
    │   │       │   ├── client.go
    │   │       │   └── command.go
    │   │       └── credentials/
    │   │           ├── credentials.go
    │   │           ├── error.go
    │   │           ├── helper.go
    │   │           └── version.go
    │   ├── emicklei/
    │   │   └── go-restful/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .goconvey
    │   │           ├── .travis.yml
    │   │           ├── CHANGES.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── Srcfile
    │   │           ├── bench_test.sh
    │   │           ├── compress.go
    │   │           ├── compressor_cache.go
    │   │           ├── compressor_pools.go
    │   │           ├── compressors.go
    │   │           ├── constants.go
    │   │           ├── container.go
    │   │           ├── cors_filter.go
    │   │           ├── coverage.sh
    │   │           ├── curly.go
    │   │           ├── curly_route.go
    │   │           ├── custom_verb.go
    │   │           ├── doc.go
    │   │           ├── entity_accessors.go
    │   │           ├── extensions.go
    │   │           ├── filter.go
    │   │           ├── filter_adapter.go
    │   │           ├── jsr311.go
    │   │           ├── log/
    │   │           │   └── log.go
    │   │           ├── logger.go
    │   │           ├── mime.go
    │   │           ├── options_filter.go
    │   │           ├── parameter.go
    │   │           ├── path_expression.go
    │   │           ├── path_processor.go
    │   │           ├── request.go
    │   │           ├── response.go
    │   │           ├── route.go
    │   │           ├── route_builder.go
    │   │           ├── route_reader.go
    │   │           ├── router.go
    │   │           ├── service_error.go
    │   │           ├── web_service.go
    │   │           └── web_service_container.go
    │   ├── evanphx/
    │   │   └── json-patch/
    │   │       └── v5/
    │   │           ├── LICENSE
    │   │           ├── errors.go
    │   │           ├── internal/
    │   │           │   └── json/
    │   │           │       ├── decode.go
    │   │           │       ├── encode.go
    │   │           │       ├── fold.go
    │   │           │       ├── fuzz.go
    │   │           │       ├── indent.go
    │   │           │       ├── scanner.go
    │   │           │       ├── stream.go
    │   │           │       ├── tables.go
    │   │           │       └── tags.go
    │   │           ├── merge.go
    │   │           └── patch.go
    │   ├── fatih/
    │   │   └── color/
    │   │       ├── LICENSE.md
    │   │       ├── README.md
    │   │       ├── color.go
    │   │       ├── color_windows.go
    │   │       └── doc.go
    │   ├── felixge/
    │   │   └── httpsnoop/
    │   │       ├── .gitignore
    │   │       ├── LICENSE.txt
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── capture_metrics.go
    │   │       ├── docs.go
    │   │       ├── wrap_generated_gteq_1.8.go
    │   │       └── wrap_generated_lt_1.8.go
    │   ├── fsnotify/
    │   │   └── fsnotify/
    │   │       ├── .cirrus.yml
    │   │       ├── .gitignore
    │   │       ├── .mailmap
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── backend_fen.go
    │   │       ├── backend_inotify.go
    │   │       ├── backend_kqueue.go
    │   │       ├── backend_other.go
    │   │       ├── backend_windows.go
    │   │       ├── fsnotify.go
    │   │       ├── internal/
    │   │       │   ├── darwin.go
    │   │       │   ├── debug_darwin.go
    │   │       │   ├── debug_dragonfly.go
    │   │       │   ├── debug_freebsd.go
    │   │       │   ├── debug_kqueue.go
    │   │       │   ├── debug_linux.go
    │   │       │   ├── debug_netbsd.go
    │   │       │   ├── debug_openbsd.go
    │   │       │   ├── debug_solaris.go
    │   │       │   ├── debug_windows.go
    │   │       │   ├── freebsd.go
    │   │       │   ├── internal.go
    │   │       │   ├── unix.go
    │   │       │   ├── unix2.go
    │   │       │   └── windows.go
    │   │       ├── shared.go
    │   │       ├── staticcheck.conf
    │   │       ├── system_bsd.go
    │   │       └── system_darwin.go
    │   ├── fxamacker/
    │   │   └── cbor/
    │   │       └── v2/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── CODE_OF_CONDUCT.md
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── bytestring.go
    │   │           ├── cache.go
    │   │           ├── common.go
    │   │           ├── decode.go
    │   │           ├── diagnose.go
    │   │           ├── doc.go
    │   │           ├── encode.go
    │   │           ├── encode_map.go
    │   │           ├── encode_map_go117.go
    │   │           ├── simplevalue.go
    │   │           ├── stream.go
    │   │           ├── structfields.go
    │   │           ├── tag.go
    │   │           └── valid.go
    │   ├── go-chi/
    │   │   └── chi/
    │   │       └── v5/
    │   │           ├── .gitignore
    │   │           ├── CHANGELOG.md
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── chain.go
    │   │           ├── chi.go
    │   │           ├── context.go
    │   │           ├── mux.go
    │   │           ├── path_value.go
    │   │           ├── path_value_fallback.go
    │   │           ├── pattern.go
    │   │           ├── pattern_fallback.go
    │   │           └── tree.go
    │   ├── go-gormigrate/
    │   │   └── gormigrate/
    │   │       └── v2/
    │   │           ├── .gitignore
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── Taskfile.yml
    │   │           └── gormigrate.go
    │   ├── go-jose/
    │   │   └── go-jose/
    │   │       └── v4/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── .travis.yml
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── asymmetric.go
    │   │           ├── cipher/
    │   │           │   ├── cbc_hmac.go
    │   │           │   ├── concat_kdf.go
    │   │           │   ├── ecdh_es.go
    │   │           │   └── key_wrap.go
    │   │           ├── crypter.go
    │   │           ├── doc.go
    │   │           ├── encoding.go
    │   │           ├── json/
    │   │           │   ├── LICENSE
    │   │           │   ├── README.md
    │   │           │   ├── decode.go
    │   │           │   ├── encode.go
    │   │           │   ├── indent.go
    │   │           │   ├── scanner.go
    │   │           │   ├── stream.go
    │   │           │   └── tags.go
    │   │           ├── jwe.go
    │   │           ├── jwk.go
    │   │           ├── jws.go
    │   │           ├── opaque.go
    │   │           ├── shared.go
    │   │           ├── signing.go
    │   │           ├── symmetric.go
    │   │           ├── symmetric_go124.go
    │   │           └── symmetric_legacy.go
    │   ├── go-kit/
    │   │   └── log/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── doc.go
    │   │       ├── json_logger.go
    │   │       ├── level/
    │   │       │   ├── doc.go
    │   │       │   └── level.go
    │   │       ├── log.go
    │   │       ├── logfmt_logger.go
    │   │       ├── nop_logger.go
    │   │       ├── staticcheck.conf
    │   │       ├── stdlib.go
    │   │       ├── sync.go
    │   │       └── value.go
    │   ├── go-logfmt/
    │   │   └── logfmt/
    │   │       ├── .gitignore
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── decode.go
    │   │       ├── doc.go
    │   │       ├── encode.go
    │   │       └── jsonstring.go
    │   ├── go-logr/
    │   │   └── logr/
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── context.go
    │   │       ├── context_noslog.go
    │   │       ├── context_slog.go
    │   │       ├── discard.go
    │   │       ├── logr.go
    │   │       ├── sloghandler.go
    │   │       ├── slogr.go
    │   │       └── slogsink.go
    │   ├── go-openapi/
    │   │   ├── jsonpointer/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pointer.go
    │   │   └── jsonreference/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── internal/
    │   │       │   └── normalize_url.go
    │   │       └── reference.go
    │   ├── go-testfixtures/
    │   │   └── testfixtures/
    │   │       └── v3/
    │   │           ├── .editorconfig
    │   │           ├── .gitattributes
    │   │           ├── .gitignore
    │   │           ├── .goreleaser.yml
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── Taskfile.yml
    │   │           ├── bytes.go
    │   │           ├── clickhouse.go
    │   │           ├── default_fs.go
    │   │           ├── dump.go
    │   │           ├── go.work
    │   │           ├── go.work.sum
    │   │           ├── helper.go
    │   │           ├── json.go
    │   │           ├── mysql.go
    │   │           ├── postgresql.go
    │   │           ├── shared/
    │   │           │   └── shared.go
    │   │           ├── spanner.go
    │   │           ├── sqlite.go
    │   │           ├── sqlserver.go
    │   │           ├── testfixtures.go
    │   │           └── time.go
    │   ├── go-viper/
    │   │   └── mapstructure/
    │   │       └── v2/
    │   │           ├── .editorconfig
    │   │           ├── .envrc
    │   │           ├── .gitignore
    │   │           ├── .golangci.yaml
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── decode_hooks.go
    │   │           ├── errors.go
    │   │           ├── flake.nix
    │   │           ├── internal/
    │   │           │   └── errors/
    │   │           │       ├── errors.go
    │   │           │       ├── join.go
    │   │           │       └── join_go1_19.go
    │   │           ├── mapstructure.go
    │   │           ├── reflect_go1_19.go
    │   │           └── reflect_go1_20.go
    │   ├── goccy/
    │   │   └── go-yaml/
    │   │       ├── .codecov.yml
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── ast/
    │   │       │   └── ast.go
    │   │       ├── context.go
    │   │       ├── decode.go
    │   │       ├── encode.go
    │   │       ├── error.go
    │   │       ├── internal/
    │   │       │   ├── errors/
    │   │       │   │   └── error.go
    │   │       │   └── format/
    │   │       │       └── format.go
    │   │       ├── lexer/
    │   │       │   └── lexer.go
    │   │       ├── option.go
    │   │       ├── parser/
    │   │       │   ├── color.go
    │   │       │   ├── context.go
    │   │       │   ├── node.go
    │   │       │   ├── option.go
    │   │       │   ├── parser.go
    │   │       │   └── token.go
    │   │       ├── path.go
    │   │       ├── printer/
    │   │       │   ├── color.go
    │   │       │   └── printer.go
    │   │       ├── scanner/
    │   │       │   ├── context.go
    │   │       │   ├── error.go
    │   │       │   └── scanner.go
    │   │       ├── stdlib_quote.go
    │   │       ├── struct.go
    │   │       ├── token/
    │   │       │   └── token.go
    │   │       ├── validate.go
    │   │       └── yaml.go
    │   ├── gogo/
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── Makefile
    │   │       │   ├── clone.go
    │   │       │   ├── custom_gogo.go
    │   │       │   ├── decode.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── duration.go
    │   │       │   ├── duration_gogo.go
    │   │       │   ├── encode.go
    │   │       │   ├── encode_gogo.go
    │   │       │   ├── equal.go
    │   │       │   ├── extensions.go
    │   │       │   ├── extensions_gogo.go
    │   │       │   ├── lib.go
    │   │       │   ├── lib_gogo.go
    │   │       │   ├── message_set.go
    │   │       │   ├── pointer_reflect.go
    │   │       │   ├── pointer_reflect_gogo.go
    │   │       │   ├── pointer_unsafe.go
    │   │       │   ├── pointer_unsafe_gogo.go
    │   │       │   ├── properties.go
    │   │       │   ├── properties_gogo.go
    │   │       │   ├── skip_gogo.go
    │   │       │   ├── table_marshal.go
    │   │       │   ├── table_marshal_gogo.go
    │   │       │   ├── table_merge.go
    │   │       │   ├── table_unmarshal.go
    │   │       │   ├── table_unmarshal_gogo.go
    │   │       │   ├── text.go
    │   │       │   ├── text_gogo.go
    │   │       │   ├── text_parser.go
    │   │       │   ├── timestamp.go
    │   │       │   ├── timestamp_gogo.go
    │   │       │   ├── wrappers.go
    │   │       │   └── wrappers_gogo.go
    │   │       └── sortkeys/
    │   │           └── sortkeys.go
    │   ├── gohugoio/
    │   │   └── hashstructure/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── errors.go
    │   │       ├── hashstructure.go
    │   │       └── include.go
    │   ├── golang/
    │   │   ├── groupcache/
    │   │   │   ├── LICENSE
    │   │   │   └── lru/
    │   │   │       └── lru.go
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── buffer.go
    │   │       │   ├── defaults.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── extensions.go
    │   │       │   ├── properties.go
    │   │       │   ├── proto.go
    │   │       │   ├── registry.go
    │   │       │   ├── text_decode.go
    │   │       │   ├── text_encode.go
    │   │       │   ├── wire.go
    │   │       │   └── wrappers.go
    │   │       └── ptypes/
    │   │           └── timestamp/
    │   │               └── timestamp.pb.go
    │   ├── golang-jwt/
    │   │   └── jwt/
    │   │       └── v4/
    │   │           ├── .gitignore
    │   │           ├── LICENSE
    │   │           ├── MIGRATION_GUIDE.md
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── VERSION_HISTORY.md
    │   │           ├── claims.go
    │   │           ├── doc.go
    │   │           ├── ecdsa.go
    │   │           ├── ecdsa_utils.go
    │   │           ├── ed25519.go
    │   │           ├── ed25519_utils.go
    │   │           ├── errors.go
    │   │           ├── hmac.go
    │   │           ├── map_claims.go
    │   │           ├── none.go
    │   │           ├── parser.go
    │   │           ├── parser_option.go
    │   │           ├── rsa.go
    │   │           ├── rsa_pss.go
    │   │           ├── rsa_utils.go
    │   │           ├── signing_method.go
    │   │           ├── staticcheck.conf
    │   │           ├── token.go
    │   │           └── types.go
    │   ├── google/
    │   │   ├── cel-go/
    │   │   │   ├── LICENSE
    │   │   │   ├── cel/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── cel.go
    │   │   │   │   ├── decls.go
    │   │   │   │   ├── env.go
    │   │   │   │   ├── folding.go
    │   │   │   │   ├── inlining.go
    │   │   │   │   ├── io.go
    │   │   │   │   ├── library.go
    │   │   │   │   ├── macro.go
    │   │   │   │   ├── optimizer.go
    │   │   │   │   ├── options.go
    │   │   │   │   ├── program.go
    │   │   │   │   ├── prompt.go
    │   │   │   │   ├── templates/
    │   │   │   │   │   └── authoring.tmpl
    │   │   │   │   └── validator.go
    │   │   │   ├── checker/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── checker.go
    │   │   │   │   ├── cost.go
    │   │   │   │   ├── decls/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── decls.go
    │   │   │   │   ├── env.go
    │   │   │   │   ├── errors.go
    │   │   │   │   ├── format.go
    │   │   │   │   ├── mapping.go
    │   │   │   │   ├── options.go
    │   │   │   │   ├── printer.go
    │   │   │   │   ├── scopes.go
    │   │   │   │   └── types.go
    │   │   │   ├── common/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── ast/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   ├── ast.go
    │   │   │   │   │   ├── conversion.go
    │   │   │   │   │   ├── expr.go
    │   │   │   │   │   ├── factory.go
    │   │   │   │   │   └── navigable.go
    │   │   │   │   ├── containers/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── container.go
    │   │   │   │   ├── cost.go
    │   │   │   │   ├── debug/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── debug.go
    │   │   │   │   ├── decls/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── decls.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── env/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── env.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── errors.go
    │   │   │   │   ├── functions/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── functions.go
    │   │   │   │   ├── location.go
    │   │   │   │   ├── operators/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── operators.go
    │   │   │   │   ├── overloads/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── overloads.go
    │   │   │   │   ├── runes/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── buffer.go
    │   │   │   │   ├── source.go
    │   │   │   │   ├── stdlib/
    │   │   │   │   │   ├── BUILD.bazel
    │   │   │   │   │   └── standard.go
    │   │   │   │   └── types/
    │   │   │   │       ├── BUILD.bazel
    │   │   │   │       ├── any_value.go
    │   │   │   │       ├── bool.go
    │   │   │   │       ├── bytes.go
    │   │   │   │       ├── compare.go
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── double.go
    │   │   │   │       ├── duration.go
    │   │   │   │       ├── err.go
    │   │   │   │       ├── format.go
    │   │   │   │       ├── int.go
    │   │   │   │       ├── iterator.go
    │   │   │   │       ├── json_value.go
    │   │   │   │       ├── list.go
    │   │   │   │       ├── map.go
    │   │   │   │       ├── null.go
    │   │   │   │       ├── object.go
    │   │   │   │       ├── optional.go
    │   │   │   │       ├── overflow.go
    │   │   │   │       ├── pb/
    │   │   │   │       │   ├── BUILD.bazel
    │   │   │   │       │   ├── checked.go
    │   │   │   │       │   ├── enum.go
    │   │   │   │       │   ├── equal.go
    │   │   │   │       │   ├── file.go
    │   │   │   │       │   ├── pb.go
    │   │   │   │       │   └── type.go
    │   │   │   │       ├── provider.go
    │   │   │   │       ├── ref/
    │   │   │   │       │   ├── BUILD.bazel
    │   │   │   │       │   ├── provider.go
    │   │   │   │       │   └── reference.go
    │   │   │   │       ├── string.go
    │   │   │   │       ├── timestamp.go
    │   │   │   │       ├── traits/
    │   │   │   │       │   ├── BUILD.bazel
    │   │   │   │       │   ├── comparer.go
    │   │   │   │       │   ├── container.go
    │   │   │   │       │   ├── field_tester.go
    │   │   │   │       │   ├── indexer.go
    │   │   │   │       │   ├── iterator.go
    │   │   │   │       │   ├── lister.go
    │   │   │   │       │   ├── mapper.go
    │   │   │   │       │   ├── matcher.go
    │   │   │   │       │   ├── math.go
    │   │   │   │       │   ├── receiver.go
    │   │   │   │       │   ├── sizer.go
    │   │   │   │       │   ├── traits.go
    │   │   │   │       │   └── zeroer.go
    │   │   │   │       ├── types.go
    │   │   │   │       ├── uint.go
    │   │   │   │       ├── unknown.go
    │   │   │   │       └── util.go
    │   │   │   ├── interpreter/
    │   │   │   │   ├── BUILD.bazel
    │   │   │   │   ├── activation.go
    │   │   │   │   ├── attribute_patterns.go
    │   │   │   │   ├── attributes.go
    │   │   │   │   ├── decorators.go
    │   │   │   │   ├── dispatcher.go
    │   │   │   │   ├── evalstate.go
    │   │   │   │   ├── interpretable.go
    │   │   │   │   ├── interpreter.go
    │   │   │   │   ├── optimizations.go
    │   │   │   │   ├── planner.go
    │   │   │   │   ├── prune.go
    │   │   │   │   └── runtimecost.go
    │   │   │   └── parser/
    │   │   │       ├── BUILD.bazel
    │   │   │       ├── errors.go
    │   │   │       ├── gen/
    │   │   │       │   ├── BUILD.bazel
    │   │   │       │   ├── CEL.g4
    │   │   │       │   ├── CEL.interp
    │   │   │       │   ├── CEL.tokens
    │   │   │       │   ├── CELLexer.interp
    │   │   │       │   ├── CELLexer.tokens
    │   │   │       │   ├── cel_base_listener.go
    │   │   │       │   ├── cel_base_visitor.go
    │   │   │       │   ├── cel_lexer.go
    │   │   │       │   ├── cel_listener.go
    │   │   │       │   ├── cel_parser.go
    │   │   │       │   ├── cel_visitor.go
    │   │   │       │   ├── doc.go
    │   │   │       │   └── generate.sh
    │   │   │       ├── helper.go
    │   │   │       ├── input.go
    │   │   │       ├── macro.go
    │   │   │       ├── options.go
    │   │   │       ├── parser.go
    │   │   │       ├── unescape.go
    │   │   │       └── unparser.go
    │   │   ├── gnostic-models/
    │   │   │   ├── LICENSE
    │   │   │   ├── compiler/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── context.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extensions.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   ├── main.go
    │   │   │   │   └── reader.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── extension.pb.go
    │   │   │   │   ├── extension.proto
    │   │   │   │   └── extensions.go
    │   │   │   ├── jsonschema/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── base.go
    │   │   │   │   ├── display.go
    │   │   │   │   ├── models.go
    │   │   │   │   ├── operations.go
    │   │   │   │   ├── reader.go
    │   │   │   │   ├── schema.json
    │   │   │   │   └── writer.go
    │   │   │   ├── openapiv2/
    │   │   │   │   ├── OpenAPIv2.go
    │   │   │   │   ├── OpenAPIv2.pb.go
    │   │   │   │   ├── OpenAPIv2.proto
    │   │   │   │   ├── README.md
    │   │   │   │   ├── document.go
    │   │   │   │   └── openapi-2.0.json
    │   │   │   └── openapiv3/
    │   │   │       ├── OpenAPIv3.go
    │   │   │       ├── OpenAPIv3.pb.go
    │   │   │       ├── OpenAPIv3.proto
    │   │   │       ├── README.md
    │   │   │       ├── annotations.pb.go
    │   │   │       ├── annotations.proto
    │   │   │       └── document.go
    │   │   ├── go-cmp/
    │   │   │   ├── LICENSE
    │   │   │   └── cmp/
    │   │   │       ├── cmpopts/
    │   │   │       │   ├── equate.go
    │   │   │       │   ├── ignore.go
    │   │   │       │   ├── sort.go
    │   │   │       │   ├── struct_filter.go
    │   │   │       │   └── xform.go
    │   │   │       ├── compare.go
    │   │   │       ├── export.go
    │   │   │       ├── internal/
    │   │   │       │   ├── diff/
    │   │   │       │   │   ├── debug_disable.go
    │   │   │       │   │   ├── debug_enable.go
    │   │   │       │   │   └── diff.go
    │   │   │       │   ├── flags/
    │   │   │       │   │   └── flags.go
    │   │   │       │   ├── function/
    │   │   │       │   │   └── func.go
    │   │   │       │   └── value/
    │   │   │       │       ├── name.go
    │   │   │       │       ├── pointer.go
    │   │   │       │       └── sort.go
    │   │   │       ├── options.go
    │   │   │       ├── path.go
    │   │   │       ├── report.go
    │   │   │       ├── report_compare.go
    │   │   │       ├── report_references.go
    │   │   │       ├── report_reflect.go
    │   │   │       ├── report_slices.go
    │   │   │       ├── report_text.go
    │   │   │       └── report_value.go
    │   │   ├── go-containerregistry/
    │   │   │   ├── LICENSE
    │   │   │   ├── internal/
    │   │   │   │   ├── and/
    │   │   │   │   │   └── and_closer.go
    │   │   │   │   ├── compression/
    │   │   │   │   │   └── compression.go
    │   │   │   │   ├── estargz/
    │   │   │   │   │   └── estargz.go
    │   │   │   │   ├── gzip/
    │   │   │   │   │   └── zip.go
    │   │   │   │   ├── redact/
    │   │   │   │   │   └── redact.go
    │   │   │   │   ├── retry/
    │   │   │   │   │   ├── retry.go
    │   │   │   │   │   └── wait/
    │   │   │   │   │       └── kubernetes_apimachinery_wait.go
    │   │   │   │   ├── verify/
    │   │   │   │   │   └── verify.go
    │   │   │   │   └── zstd/
    │   │   │   │       └── zstd.go
    │   │   │   └── pkg/
    │   │   │       ├── authn/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── anon.go
    │   │   │       │   ├── auth.go
    │   │   │       │   ├── authn.go
    │   │   │       │   ├── basic.go
    │   │   │       │   ├── bearer.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── keychain.go
    │   │   │       │   └── multikeychain.go
    │   │   │       ├── compression/
    │   │   │       │   └── compression.go
    │   │   │       ├── logs/
    │   │   │       │   └── logs.go
    │   │   │       ├── name/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── check.go
    │   │   │       │   ├── digest.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── errors.go
    │   │   │       │   ├── options.go
    │   │   │       │   ├── ref.go
    │   │   │       │   ├── registry.go
    │   │   │       │   ├── repository.go
    │   │   │       │   └── tag.go
    │   │   │       └── v1/
    │   │   │           ├── config.go
    │   │   │           ├── doc.go
    │   │   │           ├── empty/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   └── index.go
    │   │   │           ├── hash.go
    │   │   │           ├── image.go
    │   │   │           ├── index.go
    │   │   │           ├── layer.go
    │   │   │           ├── manifest.go
    │   │   │           ├── match/
    │   │   │           │   └── match.go
    │   │   │           ├── mutate/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── index.go
    │   │   │           │   ├── mutate.go
    │   │   │           │   └── rebase.go
    │   │   │           ├── partial/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── compressed.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── index.go
    │   │   │           │   ├── uncompressed.go
    │   │   │           │   └── with.go
    │   │   │           ├── platform.go
    │   │   │           ├── progress.go
    │   │   │           ├── remote/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── catalog.go
    │   │   │           │   ├── check.go
    │   │   │           │   ├── delete.go
    │   │   │           │   ├── descriptor.go
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── fetcher.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── index.go
    │   │   │           │   ├── layer.go
    │   │   │           │   ├── list.go
    │   │   │           │   ├── mount.go
    │   │   │           │   ├── multi_write.go
    │   │   │           │   ├── options.go
    │   │   │           │   ├── progress.go
    │   │   │           │   ├── puller.go
    │   │   │           │   ├── pusher.go
    │   │   │           │   ├── referrers.go
    │   │   │           │   ├── schema1.go
    │   │   │           │   ├── transport/
    │   │   │           │   │   ├── README.md
    │   │   │           │   │   ├── basic.go
    │   │   │           │   │   ├── bearer.go
    │   │   │           │   │   ├── doc.go
    │   │   │           │   │   ├── error.go
    │   │   │           │   │   ├── logger.go
    │   │   │           │   │   ├── ping.go
    │   │   │           │   │   ├── retry.go
    │   │   │           │   │   ├── schemer.go
    │   │   │           │   │   ├── scope.go
    │   │   │           │   │   ├── transport.go
    │   │   │           │   │   └── useragent.go
    │   │   │           │   └── write.go
    │   │   │           ├── stream/
    │   │   │           │   ├── README.md
    │   │   │           │   └── layer.go
    │   │   │           ├── tarball/
    │   │   │           │   ├── README.md
    │   │   │           │   ├── doc.go
    │   │   │           │   ├── image.go
    │   │   │           │   ├── layer.go
    │   │   │           │   └── write.go
    │   │   │           ├── types/
    │   │   │           │   └── types.go
    │   │   │           └── zz_deepcopy_generated.go
    │   │   ├── gofuzz/
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── bytesource/
    │   │   │   │   └── bytesource.go
    │   │   │   ├── doc.go
    │   │   │   └── fuzz.go
    │   │   └── uuid/
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       ├── version4.go
    │   │       ├── version6.go
    │   │       └── version7.go
    │   ├── gorilla/
    │   │   ├── handlers/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── canonical.go
    │   │   │   ├── compress.go
    │   │   │   ├── cors.go
    │   │   │   ├── doc.go
    │   │   │   ├── handlers.go
    │   │   │   ├── logging.go
    │   │   │   ├── proxy_headers.go
    │   │   │   └── recovery.go
    │   │   ├── mux/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── doc.go
    │   │   │   ├── middleware.go
    │   │   │   ├── mux.go
    │   │   │   ├── regexp.go
    │   │   │   ├── route.go
    │   │   │   └── test_helpers.go
    │   │   ├── securecookie/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── doc.go
    │   │   │   └── securecookie.go
    │   │   ├── sessions/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── cookie.go
    │   │   │   ├── cookie_go111.go
    │   │   │   ├── doc.go
    │   │   │   ├── lex.go
    │   │   │   ├── options.go
    │   │   │   ├── options_go111.go
    │   │   │   ├── sessions.go
    │   │   │   └── store.go
    │   │   └── websocket/
    │   │       ├── .gitignore
    │   │       ├── AUTHORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── client.go
    │   │       ├── compression.go
    │   │       ├── conn.go
    │   │       ├── doc.go
    │   │       ├── join.go
    │   │       ├── json.go
    │   │       ├── mask.go
    │   │       ├── mask_safe.go
    │   │       ├── prepared.go
    │   │       ├── proxy.go
    │   │       ├── server.go
    │   │       ├── tls_handshake.go
    │   │       ├── tls_handshake_116.go
    │   │       ├── util.go
    │   │       └── x_net_proxy.go
    │   ├── grpc-ecosystem/
    │   │   └── grpc-gateway/
    │   │       └── v2/
    │   │           ├── LICENSE
    │   │           ├── internal/
    │   │           │   └── httprule/
    │   │           │       ├── BUILD.bazel
    │   │           │       ├── compile.go
    │   │           │       ├── fuzz.go
    │   │           │       ├── parse.go
    │   │           │       └── types.go
    │   │           ├── runtime/
    │   │           │   ├── BUILD.bazel
    │   │           │   ├── context.go
    │   │           │   ├── convert.go
    │   │           │   ├── doc.go
    │   │           │   ├── errors.go
    │   │           │   ├── fieldmask.go
    │   │           │   ├── handler.go
    │   │           │   ├── marshal_httpbodyproto.go
    │   │           │   ├── marshal_json.go
    │   │           │   ├── marshal_jsonpb.go
    │   │           │   ├── marshal_proto.go
    │   │           │   ├── marshaler.go
    │   │           │   ├── marshaler_registry.go
    │   │           │   ├── mux.go
    │   │           │   ├── pattern.go
    │   │           │   ├── proto2_convert.go
    │   │           │   └── query.go
    │   │           └── utilities/
    │   │               ├── BUILD.bazel
    │   │               ├── doc.go
    │   │               ├── pattern.go
    │   │               ├── readerfactory.go
    │   │               ├── string_array_flag.go
    │   │               └── trie.go
    │   ├── h2non/
    │   │   └── parth/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── parth.go
    │   │       ├── segindex.go
    │   │       └── segtostr.go
    │   ├── hako/
    │   │   └── durafmt/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── durafmt.go
    │   │       └── unit.go
    │   ├── hashicorp/
    │   │   └── golang-lru/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── 2q.go
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── arc.go
    │   │       ├── doc.go
    │   │       ├── lru.go
    │   │       ├── simplelru/
    │   │       │   ├── lru.go
    │   │       │   └── lru_interface.go
    │   │       └── testing.go
    │   ├── ikawaha/
    │   │   ├── goahttpcheck/
    │   │   │   ├── .gitignore
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   └── checker.go
    │   │   └── httpcheck/
    │   │       ├── .deepsource.toml
    │   │       ├── .golangci.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── checker.go
    │   │       ├── tester.go
    │   │       ├── tester_auth.go
    │   │       ├── tester_body.go
    │   │       ├── tester_body_json.go
    │   │       ├── tester_body_xml.go
    │   │       ├── tester_cookie.go
    │   │       ├── tester_header.go
    │   │       ├── tester_multipart.go
    │   │       └── tester_status.go
    │   ├── inconshreveable/
    │   │   └── mousetrap/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── trap_others.go
    │   │       └── trap_windows.go
    │   ├── itchyny/
    │   │   ├── gojq/
    │   │   │   ├── .dockerignore
    │   │   │   ├── .gitattributes
    │   │   │   ├── .gitignore
    │   │   │   ├── CHANGELOG.md
    │   │   │   ├── Dockerfile
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── _gojq
    │   │   │   ├── builtin.go
    │   │   │   ├── builtin.jq
    │   │   │   ├── code.go
    │   │   │   ├── compare.go
    │   │   │   ├── compiler.go
    │   │   │   ├── debug.go
    │   │   │   ├── encoder.go
    │   │   │   ├── env.go
    │   │   │   ├── error.go
    │   │   │   ├── execute.go
    │   │   │   ├── func.go
    │   │   │   ├── go.dev.mod
    │   │   │   ├── go.dev.sum
    │   │   │   ├── gojq.go
    │   │   │   ├── iter.go
    │   │   │   ├── lexer.go
    │   │   │   ├── module_loader.go
    │   │   │   ├── normalize.go
    │   │   │   ├── operator.go
    │   │   │   ├── option.go
    │   │   │   ├── parser.go
    │   │   │   ├── parser.go.y
    │   │   │   ├── preview.go
    │   │   │   ├── query.go
    │   │   │   ├── release.go
    │   │   │   ├── scope_stack.go
    │   │   │   ├── stack.go
    │   │   │   ├── term_type.go
    │   │   │   └── type.go
    │   │   └── timefmt-go/
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── format.go
    │   │       ├── parse.go
    │   │       └── timefmt.go
    │   ├── jackc/
    │   │   ├── pgpassfile/
    │   │   │   ├── .travis.yml
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pgpass.go
    │   │   ├── pgservicefile/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pgservicefile.go
    │   │   ├── pgx/
    │   │   │   └── v5/
    │   │   │       ├── .gitignore
    │   │   │       ├── CHANGELOG.md
    │   │   │       ├── CONTRIBUTING.md
    │   │   │       ├── LICENSE
    │   │   │       ├── README.md
    │   │   │       ├── Rakefile
    │   │   │       ├── batch.go
    │   │   │       ├── conn.go
    │   │   │       ├── copy_from.go
    │   │   │       ├── doc.go
    │   │   │       ├── extended_query_builder.go
    │   │   │       ├── internal/
    │   │   │       │   ├── anynil/
    │   │   │       │   │   └── anynil.go
    │   │   │       │   ├── iobufpool/
    │   │   │       │   │   └── iobufpool.go
    │   │   │       │   ├── pgio/
    │   │   │       │   │   ├── README.md
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   └── write.go
    │   │   │       │   ├── sanitize/
    │   │   │       │   │   └── sanitize.go
    │   │   │       │   └── stmtcache/
    │   │   │       │       ├── lru_cache.go
    │   │   │       │       ├── stmtcache.go
    │   │   │       │       └── unlimited_cache.go
    │   │   │       ├── large_objects.go
    │   │   │       ├── named_args.go
    │   │   │       ├── pgconn/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── auth_scram.go
    │   │   │       │   ├── config.go
    │   │   │       │   ├── defaults.go
    │   │   │       │   ├── defaults_windows.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── errors.go
    │   │   │       │   ├── internal/
    │   │   │       │   │   ├── bgreader/
    │   │   │       │   │   │   └── bgreader.go
    │   │   │       │   │   └── ctxwatch/
    │   │   │       │   │       └── context_watcher.go
    │   │   │       │   ├── krb5.go
    │   │   │       │   └── pgconn.go
    │   │   │       ├── pgproto3/
    │   │   │       │   ├── README.md
    │   │   │       │   ├── authentication_cleartext_password.go
    │   │   │       │   ├── authentication_gss.go
    │   │   │       │   ├── authentication_gss_continue.go
    │   │   │       │   ├── authentication_md5_password.go
    │   │   │       │   ├── authentication_ok.go
    │   │   │       │   ├── authentication_sasl.go
    │   │   │       │   ├── authentication_sasl_continue.go
    │   │   │       │   ├── authentication_sasl_final.go
    │   │   │       │   ├── backend.go
    │   │   │       │   ├── backend_key_data.go
    │   │   │       │   ├── big_endian.go
    │   │   │       │   ├── bind.go
    │   │   │       │   ├── bind_complete.go
    │   │   │       │   ├── cancel_request.go
    │   │   │       │   ├── chunkreader.go
    │   │   │       │   ├── close.go
    │   │   │       │   ├── close_complete.go
    │   │   │       │   ├── command_complete.go
    │   │   │       │   ├── copy_both_response.go
    │   │   │       │   ├── copy_data.go
    │   │   │       │   ├── copy_done.go
    │   │   │       │   ├── copy_fail.go
    │   │   │       │   ├── copy_in_response.go
    │   │   │       │   ├── copy_out_response.go
    │   │   │       │   ├── data_row.go
    │   │   │       │   ├── describe.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── empty_query_response.go
    │   │   │       │   ├── error_response.go
    │   │   │       │   ├── execute.go
    │   │   │       │   ├── flush.go
    │   │   │       │   ├── frontend.go
    │   │   │       │   ├── function_call.go
    │   │   │       │   ├── function_call_response.go
    │   │   │       │   ├── gss_enc_request.go
    │   │   │       │   ├── gss_response.go
    │   │   │       │   ├── no_data.go
    │   │   │       │   ├── notice_response.go
    │   │   │       │   ├── notification_response.go
    │   │   │       │   ├── parameter_description.go
    │   │   │       │   ├── parameter_status.go
    │   │   │       │   ├── parse.go
    │   │   │       │   ├── parse_complete.go
    │   │   │       │   ├── password_message.go
    │   │   │       │   ├── pgproto3.go
    │   │   │       │   ├── portal_suspended.go
    │   │   │       │   ├── query.go
    │   │   │       │   ├── ready_for_query.go
    │   │   │       │   ├── row_description.go
    │   │   │       │   ├── sasl_initial_response.go
    │   │   │       │   ├── sasl_response.go
    │   │   │       │   ├── ssl_request.go
    │   │   │       │   ├── startup_message.go
    │   │   │       │   ├── sync.go
    │   │   │       │   ├── terminate.go
    │   │   │       │   └── trace.go
    │   │   │       ├── pgtype/
    │   │   │       │   ├── array.go
    │   │   │       │   ├── array_codec.go
    │   │   │       │   ├── bits.go
    │   │   │       │   ├── bool.go
    │   │   │       │   ├── box.go
    │   │   │       │   ├── builtin_wrappers.go
    │   │   │       │   ├── bytea.go
    │   │   │       │   ├── circle.go
    │   │   │       │   ├── composite.go
    │   │   │       │   ├── convert.go
    │   │   │       │   ├── date.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── enum_codec.go
    │   │   │       │   ├── float4.go
    │   │   │       │   ├── float8.go
    │   │   │       │   ├── hstore.go
    │   │   │       │   ├── inet.go
    │   │   │       │   ├── int.go
    │   │   │       │   ├── int.go.erb
    │   │   │       │   ├── int_test.go.erb
    │   │   │       │   ├── integration_benchmark_test.go.erb
    │   │   │       │   ├── integration_benchmark_test_gen.sh
    │   │   │       │   ├── interval.go
    │   │   │       │   ├── json.go
    │   │   │       │   ├── jsonb.go
    │   │   │       │   ├── line.go
    │   │   │       │   ├── lseg.go
    │   │   │       │   ├── ltree.go
    │   │   │       │   ├── macaddr.go
    │   │   │       │   ├── multirange.go
    │   │   │       │   ├── numeric.go
    │   │   │       │   ├── path.go
    │   │   │       │   ├── pgtype.go
    │   │   │       │   ├── pgtype_default.go
    │   │   │       │   ├── point.go
    │   │   │       │   ├── polygon.go
    │   │   │       │   ├── qchar.go
    │   │   │       │   ├── range.go
    │   │   │       │   ├── range_codec.go
    │   │   │       │   ├── record_codec.go
    │   │   │       │   ├── register_default_pg_types.go
    │   │   │       │   ├── register_default_pg_types_disabled.go
    │   │   │       │   ├── text.go
    │   │   │       │   ├── text_format_only_codec.go
    │   │   │       │   ├── tid.go
    │   │   │       │   ├── time.go
    │   │   │       │   ├── timestamp.go
    │   │   │       │   ├── timestamptz.go
    │   │   │       │   ├── uint32.go
    │   │   │       │   └── uuid.go
    │   │   │       ├── pgxpool/
    │   │   │       │   ├── batch_results.go
    │   │   │       │   ├── conn.go
    │   │   │       │   ├── doc.go
    │   │   │       │   ├── pool.go
    │   │   │       │   ├── rows.go
    │   │   │       │   ├── stat.go
    │   │   │       │   └── tx.go
    │   │   │       ├── rows.go
    │   │   │       ├── stdlib/
    │   │   │       │   └── sql.go
    │   │   │       ├── tracer.go
    │   │   │       ├── tx.go
    │   │   │       └── values.go
    │   │   └── puddle/
    │   │       └── v2/
    │   │           ├── CHANGELOG.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── context.go
    │   │           ├── doc.go
    │   │           ├── internal/
    │   │           │   └── genstack/
    │   │           │       ├── gen_stack.go
    │   │           │       └── stack.go
    │   │           ├── log.go
    │   │           ├── nanotime_time.go
    │   │           ├── nanotime_unsafe.go
    │   │           ├── pool.go
    │   │           └── resource_list.go
    │   ├── jinzhu/
    │   │   ├── inflection/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── inflections.go
    │   │   │   └── wercker.yml
    │   │   └── now/
    │   │       ├── Guardfile
    │   │       ├── License
    │   │       ├── README.md
    │   │       ├── main.go
    │   │       ├── now.go
    │   │       └── time.go
    │   ├── joho/
    │   │   └── godotenv/
    │   │       ├── .gitignore
    │   │       ├── LICENCE
    │   │       ├── README.md
    │   │       ├── godotenv.go
    │   │       └── parser.go
    │   ├── josharian/
    │   │   └── intern/
    │   │       ├── README.md
    │   │       ├── intern.go
    │   │       └── license.md
    │   ├── kballard/
    │   │   └── go-shellquote/
    │   │       ├── LICENSE
    │   │       ├── README
    │   │       ├── doc.go
    │   │       ├── quote.go
    │   │       └── unquote.go
    │   ├── kelseyhightower/
    │   │   └── envconfig/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── MAINTAINERS
    │   │       ├── README.md
    │   │       ├── doc.go
    │   │       ├── env_os.go
    │   │       ├── env_syscall.go
    │   │       ├── envconfig.go
    │   │       └── usage.go
    │   ├── klauspost/
    │   │   └── compress/
    │   │       ├── .gitattributes
    │   │       ├── .gitignore
    │   │       ├── .goreleaser.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── compressible.go
    │   │       ├── fse/
    │   │       │   ├── README.md
    │   │       │   ├── bitreader.go
    │   │       │   ├── bitwriter.go
    │   │       │   ├── bytereader.go
    │   │       │   ├── compress.go
    │   │       │   ├── decompress.go
    │   │       │   └── fse.go
    │   │       ├── gen.sh
    │   │       ├── huff0/
    │   │       │   ├── .gitignore
    │   │       │   ├── README.md
    │   │       │   ├── bitreader.go
    │   │       │   ├── bitwriter.go
    │   │       │   ├── compress.go
    │   │       │   ├── decompress.go
    │   │       │   ├── decompress_amd64.go
    │   │       │   ├── decompress_amd64.s
    │   │       │   ├── decompress_generic.go
    │   │       │   └── huff0.go
    │   │       ├── internal/
    │   │       │   ├── cpuinfo/
    │   │       │   │   ├── cpuinfo.go
    │   │       │   │   ├── cpuinfo_amd64.go
    │   │       │   │   └── cpuinfo_amd64.s
    │   │       │   ├── le/
    │   │       │   │   ├── le.go
    │   │       │   │   ├── unsafe_disabled.go
    │   │       │   │   └── unsafe_enabled.go
    │   │       │   └── snapref/
    │   │       │       ├── LICENSE
    │   │       │       ├── decode.go
    │   │       │       ├── decode_other.go
    │   │       │       ├── encode.go
    │   │       │       ├── encode_other.go
    │   │       │       └── snappy.go
    │   │       ├── s2sx.mod
    │   │       ├── s2sx.sum
    │   │       └── zstd/
    │   │           ├── README.md
    │   │           ├── bitreader.go
    │   │           ├── bitwriter.go
    │   │           ├── blockdec.go
    │   │           ├── blockenc.go
    │   │           ├── blocktype_string.go
    │   │           ├── bytebuf.go
    │   │           ├── bytereader.go
    │   │           ├── decodeheader.go
    │   │           ├── decoder.go
    │   │           ├── decoder_options.go
    │   │           ├── dict.go
    │   │           ├── enc_base.go
    │   │           ├── enc_best.go
    │   │           ├── enc_better.go
    │   │           ├── enc_dfast.go
    │   │           ├── enc_fast.go
    │   │           ├── encoder.go
    │   │           ├── encoder_options.go
    │   │           ├── framedec.go
    │   │           ├── frameenc.go
    │   │           ├── fse_decoder.go
    │   │           ├── fse_decoder_amd64.go
    │   │           ├── fse_decoder_amd64.s
    │   │           ├── fse_decoder_generic.go
    │   │           ├── fse_encoder.go
    │   │           ├── fse_predefined.go
    │   │           ├── hash.go
    │   │           ├── history.go
    │   │           ├── internal/
    │   │           │   └── xxhash/
    │   │           │       ├── LICENSE.txt
    │   │           │       ├── README.md
    │   │           │       ├── xxhash.go
    │   │           │       ├── xxhash_amd64.s
    │   │           │       ├── xxhash_arm64.s
    │   │           │       ├── xxhash_asm.go
    │   │           │       ├── xxhash_other.go
    │   │           │       └── xxhash_safe.go
    │   │           ├── matchlen_amd64.go
    │   │           ├── matchlen_amd64.s
    │   │           ├── matchlen_generic.go
    │   │           ├── seqdec.go
    │   │           ├── seqdec_amd64.go
    │   │           ├── seqdec_amd64.s
    │   │           ├── seqdec_generic.go
    │   │           ├── seqenc.go
    │   │           ├── snappy.go
    │   │           ├── zip.go
    │   │           └── zstd.go
    │   ├── kr/
    │   │   └── pty/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── shim.go
    │   ├── letsencrypt/
    │   │   └── boulder/
    │   │       ├── LICENSE.txt
    │   │       ├── core/
    │   │       │   ├── challenges.go
    │   │       │   ├── interfaces.go
    │   │       │   ├── objects.go
    │   │       │   └── util.go
    │   │       ├── goodkey/
    │   │       │   ├── blocked.go
    │   │       │   ├── good_key.go
    │   │       │   └── weak.go
    │   │       ├── identifier/
    │   │       │   └── identifier.go
    │   │       ├── probs/
    │   │       │   └── probs.go
    │   │       ├── revocation/
    │   │       │   └── reasons.go
    │   │       └── strictyaml/
    │   │           └── yaml.go
    │   ├── mailru/
    │   │   └── easyjson/
    │   │       ├── LICENSE
    │   │       ├── buffer/
    │   │       │   └── pool.go
    │   │       ├── jlexer/
    │   │       │   ├── bytestostr.go
    │   │       │   ├── bytestostr_nounsafe.go
    │   │       │   ├── error.go
    │   │       │   └── lexer.go
    │   │       └── jwriter/
    │   │           └── writer.go
    │   ├── manveru/
    │   │   └── faker/
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dict.go
    │   │       └── faker.go
    │   ├── mattn/
    │   │   ├── go-colorable/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── colorable_appengine.go
    │   │   │   ├── colorable_others.go
    │   │   │   ├── colorable_windows.go
    │   │   │   ├── go.test.sh
    │   │   │   └── noncolorable.go
    │   │   └── go-isatty/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── doc.go
    │   │       ├── go.test.sh
    │   │       ├── isatty_bsd.go
    │   │       ├── isatty_others.go
    │   │       ├── isatty_plan9.go
    │   │       ├── isatty_solaris.go
    │   │       ├── isatty_tcgets.go
    │   │       └── isatty_windows.go
    │   ├── mgutz/
    │   │   └── ansi/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── ansi.go
    │   │       ├── doc.go
    │   │       └── print.go
    │   ├── mitchellh/
    │   │   └── go-homedir/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── homedir.go
    │   ├── modern-go/
    │   │   └── concurrent/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── executor.go
    │   │       ├── go_above_19.go
    │   │       ├── go_below_19.go
    │   │       ├── log.go
    │   │       ├── test.sh
    │   │       └── unbounded_executor.go
    │   ├── munnerz/
    │   │   └── goautoneg/
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.txt
    │   │       └── autoneg.go
    │   ├── opencontainers/
    │   │   ├── go-digest/
    │   │   │   ├── .mailmap
    │   │   │   ├── .pullapprove.yml
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── LICENSE.docs
    │   │   │   ├── MAINTAINERS
    │   │   │   ├── README.md
    │   │   │   ├── algorithm.go
    │   │   │   ├── digest.go
    │   │   │   ├── digester.go
    │   │   │   ├── doc.go
    │   │   │   └── verifiers.go
    │   │   └── image-spec/
    │   │       ├── LICENSE
    │   │       └── specs-go/
    │   │           ├── v1/
    │   │           │   ├── annotations.go
    │   │           │   ├── config.go
    │   │           │   ├── descriptor.go
    │   │           │   ├── index.go
    │   │           │   ├── layout.go
    │   │           │   ├── manifest.go
    │   │           │   └── mediatype.go
    │   │           ├── version.go
    │   │           └── versioned.go
    │   ├── openzipkin/
    │   │   └── zipkin-go/
    │   │       ├── LICENSE
    │   │       └── model/
    │   │           ├── annotation.go
    │   │           ├── doc.go
    │   │           ├── endpoint.go
    │   │           ├── kind.go
    │   │           ├── span.go
    │   │           ├── span_id.go
    │   │           └── traceid.go
    │   ├── pelletier/
    │   │   └── go-toml/
    │   │       └── v2/
    │   │           ├── .dockerignore
    │   │           ├── .gitattributes
    │   │           ├── .gitignore
    │   │           ├── .golangci.toml
    │   │           ├── .goreleaser.yaml
    │   │           ├── CONTRIBUTING.md
    │   │           ├── Dockerfile
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── ci.sh
    │   │           ├── decode.go
    │   │           ├── doc.go
    │   │           ├── errors.go
    │   │           ├── internal/
    │   │           │   ├── characters/
    │   │           │   │   ├── ascii.go
    │   │           │   │   └── utf8.go
    │   │           │   ├── danger/
    │   │           │   │   ├── danger.go
    │   │           │   │   └── typeid.go
    │   │           │   └── tracker/
    │   │           │       ├── key.go
    │   │           │       ├── seen.go
    │   │           │       └── tracker.go
    │   │           ├── localtime.go
    │   │           ├── marshaler.go
    │   │           ├── strict.go
    │   │           ├── toml.abnf
    │   │           ├── types.go
    │   │           ├── unmarshaler.go
    │   │           └── unstable/
    │   │               ├── ast.go
    │   │               ├── builder.go
    │   │               ├── doc.go
    │   │               ├── kind.go
    │   │               ├── parser.go
    │   │               ├── scanner.go
    │   │               └── unmarshaler.go
    │   ├── pkg/
    │   │   └── errors/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── appveyor.yml
    │   │       ├── errors.go
    │   │       ├── go113.go
    │   │       └── stack.go
    │   ├── pmezard/
    │   │   └── go-difflib/
    │   │       ├── LICENSE
    │   │       └── difflib/
    │   │           └── difflib.go
    │   ├── prometheus/
    │   │   ├── client_golang/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── internal/
    │   │   │   │   └── github.com/
    │   │   │   │       └── golang/
    │   │   │   │           └── gddo/
    │   │   │   │               ├── LICENSE
    │   │   │   │               └── httputil/
    │   │   │   │                   ├── header/
    │   │   │   │                   │   └── header.go
    │   │   │   │                   └── negotiate.go
    │   │   │   └── prometheus/
    │   │   │       ├── .gitignore
    │   │   │       ├── README.md
    │   │   │       ├── build_info_collector.go
    │   │   │       ├── collector.go
    │   │   │       ├── counter.go
    │   │   │       ├── desc.go
    │   │   │       ├── doc.go
    │   │   │       ├── expvar_collector.go
    │   │   │       ├── fnv.go
    │   │   │       ├── gauge.go
    │   │   │       ├── get_pid.go
    │   │   │       ├── get_pid_gopherjs.go
    │   │   │       ├── go_collector.go
    │   │   │       ├── go_collector_go116.go
    │   │   │       ├── go_collector_latest.go
    │   │   │       ├── histogram.go
    │   │   │       ├── internal/
    │   │   │       │   ├── almost_equal.go
    │   │   │       │   ├── difflib.go
    │   │   │       │   ├── go_collector_options.go
    │   │   │       │   ├── go_runtime_metrics.go
    │   │   │       │   └── metric.go
    │   │   │       ├── labels.go
    │   │   │       ├── metric.go
    │   │   │       ├── num_threads.go
    │   │   │       ├── num_threads_gopherjs.go
    │   │   │       ├── observer.go
    │   │   │       ├── process_collector.go
    │   │   │       ├── process_collector_js.go
    │   │   │       ├── process_collector_other.go
    │   │   │       ├── process_collector_wasip1.go
    │   │   │       ├── process_collector_windows.go
    │   │   │       ├── promhttp/
    │   │   │       │   ├── delegator.go
    │   │   │       │   ├── http.go
    │   │   │       │   ├── instrument_client.go
    │   │   │       │   ├── instrument_server.go
    │   │   │       │   └── option.go
    │   │   │       ├── registry.go
    │   │   │       ├── summary.go
    │   │   │       ├── timer.go
    │   │   │       ├── untyped.go
    │   │   │       ├── value.go
    │   │   │       ├── vec.go
    │   │   │       ├── vnext.go
    │   │   │       └── wrap.go
    │   │   ├── client_model/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   └── go/
    │   │   │       └── metrics.pb.go
    │   │   ├── common/
    │   │   │   ├── LICENSE
    │   │   │   ├── NOTICE
    │   │   │   ├── expfmt/
    │   │   │   │   ├── decode.go
    │   │   │   │   ├── encode.go
    │   │   │   │   ├── expfmt.go
    │   │   │   │   ├── fuzz.go
    │   │   │   │   ├── openmetrics_create.go
    │   │   │   │   ├── text_create.go
    │   │   │   │   └── text_parse.go
    │   │   │   └── model/
    │   │   │       ├── alert.go
    │   │   │       ├── fingerprinting.go
    │   │   │       ├── fnv.go
    │   │   │       ├── labels.go
    │   │   │       ├── labelset.go
    │   │   │       ├── labelset_string.go
    │   │   │       ├── metadata.go
    │   │   │       ├── metric.go
    │   │   │       ├── model.go
    │   │   │       ├── signature.go
    │   │   │       ├── silence.go
    │   │   │       ├── time.go
    │   │   │       ├── value.go
    │   │   │       ├── value_float.go
    │   │   │       ├── value_histogram.go
    │   │   │       └── value_type.go
    │   │   ├── procfs/
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── MAINTAINERS.md
    │   │   │   ├── Makefile
    │   │   │   ├── Makefile.common
    │   │   │   ├── NOTICE
    │   │   │   ├── README.md
    │   │   │   ├── SECURITY.md
    │   │   │   ├── arp.go
    │   │   │   ├── buddyinfo.go
    │   │   │   ├── cmdline.go
    │   │   │   ├── cpuinfo.go
    │   │   │   ├── cpuinfo_armx.go
    │   │   │   ├── cpuinfo_loong64.go
    │   │   │   ├── cpuinfo_mipsx.go
    │   │   │   ├── cpuinfo_others.go
    │   │   │   ├── cpuinfo_ppcx.go
    │   │   │   ├── cpuinfo_riscvx.go
    │   │   │   ├── cpuinfo_s390x.go
    │   │   │   ├── cpuinfo_x86.go
    │   │   │   ├── crypto.go
    │   │   │   ├── doc.go
    │   │   │   ├── fs.go
    │   │   │   ├── fs_statfs_notype.go
    │   │   │   ├── fs_statfs_type.go
    │   │   │   ├── fscache.go
    │   │   │   ├── internal/
    │   │   │   │   ├── fs/
    │   │   │   │   │   └── fs.go
    │   │   │   │   └── util/
    │   │   │   │       ├── parse.go
    │   │   │   │       ├── readfile.go
    │   │   │   │       ├── sysreadfile.go
    │   │   │   │       ├── sysreadfile_compat.go
    │   │   │   │       └── valueparser.go
    │   │   │   ├── ipvs.go
    │   │   │   ├── kernel_random.go
    │   │   │   ├── loadavg.go
    │   │   │   ├── mdstat.go
    │   │   │   ├── meminfo.go
    │   │   │   ├── mountinfo.go
    │   │   │   ├── mountstats.go
    │   │   │   ├── net_conntrackstat.go
    │   │   │   ├── net_dev.go
    │   │   │   ├── net_ip_socket.go
    │   │   │   ├── net_protocols.go
    │   │   │   ├── net_route.go
    │   │   │   ├── net_sockstat.go
    │   │   │   ├── net_softnet.go
    │   │   │   ├── net_tcp.go
    │   │   │   ├── net_tls_stat.go
    │   │   │   ├── net_udp.go
    │   │   │   ├── net_unix.go
    │   │   │   ├── net_wireless.go
    │   │   │   ├── net_xfrm.go
    │   │   │   ├── netstat.go
    │   │   │   ├── proc.go
    │   │   │   ├── proc_cgroup.go
    │   │   │   ├── proc_cgroups.go
    │   │   │   ├── proc_environ.go
    │   │   │   ├── proc_fdinfo.go
    │   │   │   ├── proc_interrupts.go
    │   │   │   ├── proc_io.go
    │   │   │   ├── proc_limits.go
    │   │   │   ├── proc_maps.go
    │   │   │   ├── proc_netstat.go
    │   │   │   ├── proc_ns.go
    │   │   │   ├── proc_psi.go
    │   │   │   ├── proc_smaps.go
    │   │   │   ├── proc_snmp.go
    │   │   │   ├── proc_snmp6.go
    │   │   │   ├── proc_stat.go
    │   │   │   ├── proc_status.go
    │   │   │   ├── proc_sys.go
    │   │   │   ├── schedstat.go
    │   │   │   ├── slab.go
    │   │   │   ├── softirqs.go
    │   │   │   ├── stat.go
    │   │   │   ├── swaps.go
    │   │   │   ├── thread.go
    │   │   │   ├── ttar
    │   │   │   ├── vm.go
    │   │   │   └── zoneinfo.go
    │   │   └── statsd_exporter/
    │   │       ├── LICENSE
    │   │       ├── NOTICE
    │   │       └── pkg/
    │   │           ├── level/
    │   │           │   └── level.go
    │   │           └── mapper/
    │   │               ├── action.go
    │   │               ├── escape.go
    │   │               ├── fsm/
    │   │               │   ├── README.md
    │   │               │   ├── dump.go
    │   │               │   ├── formatter.go
    │   │               │   ├── fsm.go
    │   │               │   └── minmax.go
    │   │               ├── mapper.go
    │   │               ├── mapper_cache.go
    │   │               ├── mapper_defaults.go
    │   │               ├── mapping.go
    │   │               ├── match.go
    │   │               ├── metric_type.go
    │   │               └── observer.go
    │   ├── robfig/
    │   │   └── cron/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .travis.yml
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── chain.go
    │   │           ├── constantdelay.go
    │   │           ├── cron.go
    │   │           ├── doc.go
    │   │           ├── logger.go
    │   │           ├── option.go
    │   │           ├── parser.go
    │   │           └── spec.go
    │   ├── secure-systems-lab/
    │   │   └── go-securesystemslib/
    │   │       ├── LICENSE
    │   │       └── encrypted/
    │   │           └── encrypted.go
    │   ├── sigstore/
    │   │   ├── protobuf-specs/
    │   │   │   ├── COPYRIGHT.txt
    │   │   │   ├── LICENSE
    │   │   │   └── gen/
    │   │   │       └── pb-go/
    │   │   │           └── common/
    │   │   │               └── v1/
    │   │   │                   └── sigstore_common.pb.go
    │   │   └── sigstore/
    │   │       ├── COPYRIGHT.txt
    │   │       ├── LICENSE
    │   │       └── pkg/
    │   │           ├── cryptoutils/
    │   │           │   ├── certificate.go
    │   │           │   ├── doc.go
    │   │           │   ├── generic.go
    │   │           │   ├── password.go
    │   │           │   ├── privatekey.go
    │   │           │   ├── publickey.go
    │   │           │   └── sans.go
    │   │           └── signature/
    │   │               ├── algorithm_registry.go
    │   │               ├── doc.go
    │   │               ├── ecdsa.go
    │   │               ├── ed25519.go
    │   │               ├── ed25519ph.go
    │   │               ├── message.go
    │   │               ├── options/
    │   │               │   ├── context.go
    │   │               │   ├── digest.go
    │   │               │   ├── doc.go
    │   │               │   ├── keyversion.go
    │   │               │   ├── loadoptions.go
    │   │               │   ├── noop.go
    │   │               │   ├── rand.go
    │   │               │   ├── remoteverification.go
    │   │               │   ├── rpcauth.go
    │   │               │   └── signeropts.go
    │   │               ├── options.go
    │   │               ├── payload/
    │   │               │   ├── doc.go
    │   │               │   └── payload.go
    │   │               ├── publickey.go
    │   │               ├── rsapkcs1v15.go
    │   │               ├── rsapss.go
    │   │               ├── signer.go
    │   │               ├── signerverifier.go
    │   │               ├── util.go
    │   │               └── verifier.go
    │   ├── sourcegraph/
    │   │   └── conc/
    │   │       ├── .golangci.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── panics/
    │   │       │   ├── panics.go
    │   │       │   └── try.go
    │   │       ├── pool/
    │   │       │   ├── context_pool.go
    │   │       │   ├── error_pool.go
    │   │       │   ├── pool.go
    │   │       │   ├── result_context_pool.go
    │   │       │   ├── result_error_pool.go
    │   │       │   └── result_pool.go
    │   │       └── waitgroup.go
    │   ├── spf13/
    │   │   ├── afero/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yaml
    │   │   │   ├── LICENSE.txt
    │   │   │   ├── README.md
    │   │   │   ├── afero.go
    │   │   │   ├── appveyor.yml
    │   │   │   ├── basepath.go
    │   │   │   ├── cacheOnReadFs.go
    │   │   │   ├── const_bsds.go
    │   │   │   ├── const_win_unix.go
    │   │   │   ├── copyOnWriteFs.go
    │   │   │   ├── httpFs.go
    │   │   │   ├── internal/
    │   │   │   │   └── common/
    │   │   │   │       └── adapters.go
    │   │   │   ├── iofs.go
    │   │   │   ├── ioutil.go
    │   │   │   ├── lstater.go
    │   │   │   ├── match.go
    │   │   │   ├── mem/
    │   │   │   │   ├── dir.go
    │   │   │   │   ├── dirmap.go
    │   │   │   │   └── file.go
    │   │   │   ├── memmap.go
    │   │   │   ├── os.go
    │   │   │   ├── path.go
    │   │   │   ├── readonlyfs.go
    │   │   │   ├── regexpfs.go
    │   │   │   ├── symlink.go
    │   │   │   ├── unionFile.go
    │   │   │   └── util.go
    │   │   ├── cast/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yaml
    │   │   │   ├── LICENSE
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── alias.go
    │   │   │   ├── basic.go
    │   │   │   ├── cast.go
    │   │   │   ├── indirect.go
    │   │   │   ├── internal/
    │   │   │   │   ├── time.go
    │   │   │   │   └── timeformattype_string.go
    │   │   │   ├── map.go
    │   │   │   ├── number.go
    │   │   │   ├── slice.go
    │   │   │   ├── time.go
    │   │   │   └── zz_generated.go
    │   │   ├── cobra/
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── .mailmap
    │   │   │   ├── CONDUCT.md
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE.txt
    │   │   │   ├── MAINTAINERS
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── SECURITY.md
    │   │   │   ├── active_help.go
    │   │   │   ├── args.go
    │   │   │   ├── bash_completions.go
    │   │   │   ├── bash_completionsV2.go
    │   │   │   ├── cobra.go
    │   │   │   ├── command.go
    │   │   │   ├── command_notwin.go
    │   │   │   ├── command_win.go
    │   │   │   ├── completions.go
    │   │   │   ├── fish_completions.go
    │   │   │   ├── flag_groups.go
    │   │   │   ├── powershell_completions.go
    │   │   │   ├── shell_completions.go
    │   │   │   └── zsh_completions.go
    │   │   └── pflag/
    │   │       ├── .editorconfig
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── bool.go
    │   │       ├── bool_func.go
    │   │       ├── bool_slice.go
    │   │       ├── bytes.go
    │   │       ├── count.go
    │   │       ├── duration.go
    │   │       ├── duration_slice.go
    │   │       ├── errors.go
    │   │       ├── flag.go
    │   │       ├── float32.go
    │   │       ├── float32_slice.go
    │   │       ├── float64.go
    │   │       ├── float64_slice.go
    │   │       ├── func.go
    │   │       ├── golangflag.go
    │   │       ├── int.go
    │   │       ├── int16.go
    │   │       ├── int32.go
    │   │       ├── int32_slice.go
    │   │       ├── int64.go
    │   │       ├── int64_slice.go
    │   │       ├── int8.go
    │   │       ├── int_slice.go
    │   │       ├── ip.go
    │   │       ├── ip_slice.go
    │   │       ├── ipmask.go
    │   │       ├── ipnet.go
    │   │       ├── ipnet_slice.go
    │   │       ├── string.go
    │   │       ├── string_array.go
    │   │       ├── string_slice.go
    │   │       ├── string_to_int.go
    │   │       ├── string_to_int64.go
    │   │       ├── string_to_string.go
    │   │       ├── text.go
    │   │       ├── time.go
    │   │       ├── uint.go
    │   │       ├── uint16.go
    │   │       ├── uint32.go
    │   │       ├── uint64.go
    │   │       ├── uint8.go
    │   │       └── uint_slice.go
    │   ├── stretchr/
    │   │   └── testify/
    │   │       ├── LICENSE
    │   │       ├── assert/
    │   │       │   ├── assertion_compare.go
    │   │       │   ├── assertion_format.go
    │   │       │   ├── assertion_format.go.tmpl
    │   │       │   ├── assertion_forward.go
    │   │       │   ├── assertion_forward.go.tmpl
    │   │       │   ├── assertion_order.go
    │   │       │   ├── assertions.go
    │   │       │   ├── doc.go
    │   │       │   ├── errors.go
    │   │       │   ├── forward_assertions.go
    │   │       │   ├── http_assertions.go
    │   │       │   └── yaml/
    │   │       │       ├── yaml_custom.go
    │   │       │       ├── yaml_default.go
    │   │       │       └── yaml_fail.go
    │   │       └── require/
    │   │           ├── doc.go
    │   │           ├── forward_requirements.go
    │   │           ├── require.go
    │   │           ├── require.go.tmpl
    │   │           ├── require_forward.go
    │   │           ├── require_forward.go.tmpl
    │   │           └── requirements.go
    │   ├── subosito/
    │   │   └── gotenv/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── gotenv.go
    │   ├── tektoncd/
    │   │   ├── pipeline/
    │   │   │   ├── LICENSE
    │   │   │   ├── internal/
    │   │   │   │   └── artifactref/
    │   │   │   │       └── artifactref.go
    │   │   │   ├── pkg/
    │   │   │   │   ├── apis/
    │   │   │   │   │   ├── config/
    │   │   │   │   │   │   ├── default.go
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   ├── events.go
    │   │   │   │   │   │   ├── feature_flags.go
    │   │   │   │   │   │   ├── featureflags_validation.go
    │   │   │   │   │   │   ├── metrics.go
    │   │   │   │   │   │   ├── metrics_notls.go
    │   │   │   │   │   │   ├── metrics_tls.go
    │   │   │   │   │   │   ├── resolver/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── feature_flags.go
    │   │   │   │   │   │   │   ├── store.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   ├── spire_config.go
    │   │   │   │   │   │   ├── store.go
    │   │   │   │   │   │   ├── tracing.go
    │   │   │   │   │   │   ├── wait_exponential_backoff.go
    │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── pipeline/
    │   │   │   │   │   │   ├── constant.go
    │   │   │   │   │   │   ├── controller.go
    │   │   │   │   │   │   ├── errors/
    │   │   │   │   │   │   │   └── errors.go
    │   │   │   │   │   │   ├── images.go
    │   │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   │   └── checksum/
    │   │   │   │   │   │   │       └── checksum.go
    │   │   │   │   │   │   ├── options.go
    │   │   │   │   │   │   ├── paths.go
    │   │   │   │   │   │   ├── pod/
    │   │   │   │   │   │   │   ├── affinity_assitant_template.go
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── template.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   ├── sidecarlogs.go
    │   │   │   │   │   │   ├── v1/
    │   │   │   │   │   │   │   ├── artifact_types.go
    │   │   │   │   │   │   │   ├── container_types.go
    │   │   │   │   │   │   │   ├── container_validation.go
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── matrix_types.go
    │   │   │   │   │   │   │   ├── merge.go
    │   │   │   │   │   │   │   ├── openapi_generated.go
    │   │   │   │   │   │   │   ├── param_types.go
    │   │   │   │   │   │   │   ├── pipeline_conversion.go
    │   │   │   │   │   │   │   ├── pipeline_defaults.go
    │   │   │   │   │   │   │   ├── pipeline_types.go
    │   │   │   │   │   │   │   ├── pipeline_validation.go
    │   │   │   │   │   │   │   ├── pipelineref_types.go
    │   │   │   │   │   │   │   ├── pipelineref_validation.go
    │   │   │   │   │   │   │   ├── pipelinerun_conversion.go
    │   │   │   │   │   │   │   ├── pipelinerun_defaults.go
    │   │   │   │   │   │   │   ├── pipelinerun_types.go
    │   │   │   │   │   │   │   ├── pipelinerun_validation.go
    │   │   │   │   │   │   │   ├── provenance.go
    │   │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   │   ├── resolver_types.go
    │   │   │   │   │   │   │   ├── result_defaults.go
    │   │   │   │   │   │   │   ├── result_types.go
    │   │   │   │   │   │   │   ├── result_validation.go
    │   │   │   │   │   │   │   ├── resultref.go
    │   │   │   │   │   │   │   ├── swagger.json
    │   │   │   │   │   │   │   ├── task_conversion.go
    │   │   │   │   │   │   │   ├── task_defaults.go
    │   │   │   │   │   │   │   ├── task_types.go
    │   │   │   │   │   │   │   ├── task_validation.go
    │   │   │   │   │   │   │   ├── taskref_types.go
    │   │   │   │   │   │   │   ├── taskref_validation.go
    │   │   │   │   │   │   │   ├── taskrun_conversion.go
    │   │   │   │   │   │   │   ├── taskrun_defaults.go
    │   │   │   │   │   │   │   ├── taskrun_types.go
    │   │   │   │   │   │   │   ├── taskrun_validation.go
    │   │   │   │   │   │   │   ├── when_types.go
    │   │   │   │   │   │   │   ├── when_validation.go
    │   │   │   │   │   │   │   ├── workspace_types.go
    │   │   │   │   │   │   │   ├── workspace_validation.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── openapi_generated.go
    │   │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   │   ├── run_defaults.go
    │   │   │   │   │   │   │   ├── run_types.go
    │   │   │   │   │   │   │   ├── run_validation.go
    │   │   │   │   │   │   │   ├── stepaction_conversion.go
    │   │   │   │   │   │   │   ├── stepaction_defaults.go
    │   │   │   │   │   │   │   ├── stepaction_types.go
    │   │   │   │   │   │   │   ├── stepaction_validation.go
    │   │   │   │   │   │   │   ├── swagger.json
    │   │   │   │   │   │   │   ├── verificationpolicy_defaults.go
    │   │   │   │   │   │   │   ├── verificationpolicy_types.go
    │   │   │   │   │   │   │   ├── verificationpolicy_validation.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   └── v1beta1/
    │   │   │   │   │   │       ├── artifact_types.go
    │   │   │   │   │   │       ├── container_conversion.go
    │   │   │   │   │   │       ├── container_types.go
    │   │   │   │   │   │       ├── container_validation.go
    │   │   │   │   │   │       ├── conversion_error.go
    │   │   │   │   │   │       ├── customrun_defaults.go
    │   │   │   │   │   │       ├── customrun_types.go
    │   │   │   │   │   │       ├── customrun_validation.go
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       ├── matrix_types.go
    │   │   │   │   │   │       ├── merge.go
    │   │   │   │   │   │       ├── openapi_generated.go
    │   │   │   │   │   │       ├── param_conversion.go
    │   │   │   │   │   │       ├── param_types.go
    │   │   │   │   │   │       ├── pipeline_conversion.go
    │   │   │   │   │   │       ├── pipeline_defaults.go
    │   │   │   │   │   │       ├── pipeline_interface.go
    │   │   │   │   │   │       ├── pipeline_types.go
    │   │   │   │   │   │       ├── pipeline_validation.go
    │   │   │   │   │   │       ├── pipelineref_conversion.go
    │   │   │   │   │   │       ├── pipelineref_types.go
    │   │   │   │   │   │       ├── pipelineref_validation.go
    │   │   │   │   │   │       ├── pipelinerun_conversion.go
    │   │   │   │   │   │       ├── pipelinerun_defaults.go
    │   │   │   │   │   │       ├── pipelinerun_types.go
    │   │   │   │   │   │       ├── pipelinerun_validation.go
    │   │   │   │   │   │       ├── provenance.go
    │   │   │   │   │   │       ├── provenance_conversion.go
    │   │   │   │   │   │       ├── register.go
    │   │   │   │   │   │       ├── resolver_conversion.go
    │   │   │   │   │   │       ├── resolver_types.go
    │   │   │   │   │   │       ├── resource_types.go
    │   │   │   │   │   │       ├── result_conversion.go
    │   │   │   │   │   │       ├── result_defaults.go
    │   │   │   │   │   │       ├── result_types.go
    │   │   │   │   │   │       ├── result_validation.go
    │   │   │   │   │   │       ├── resultref.go
    │   │   │   │   │   │       ├── run_interface.go
    │   │   │   │   │   │       ├── stepaction_conversion.go
    │   │   │   │   │   │       ├── stepaction_defaults.go
    │   │   │   │   │   │       ├── stepaction_types.go
    │   │   │   │   │   │       ├── stepaction_validation.go
    │   │   │   │   │   │       ├── swagger.json
    │   │   │   │   │   │       ├── task_conversion.go
    │   │   │   │   │   │       ├── task_defaults.go
    │   │   │   │   │   │       ├── task_interface.go
    │   │   │   │   │   │       ├── task_types.go
    │   │   │   │   │   │       ├── task_validation.go
    │   │   │   │   │   │       ├── taskref_conversion.go
    │   │   │   │   │   │       ├── taskref_types.go
    │   │   │   │   │   │       ├── taskref_validation.go
    │   │   │   │   │   │       ├── taskrun_conversion.go
    │   │   │   │   │   │       ├── taskrun_defaults.go
    │   │   │   │   │   │       ├── taskrun_types.go
    │   │   │   │   │   │       ├── taskrun_validation.go
    │   │   │   │   │   │       ├── when_types.go
    │   │   │   │   │   │       ├── when_validation.go
    │   │   │   │   │   │       ├── workspace_conversion.go
    │   │   │   │   │   │       ├── workspace_types.go
    │   │   │   │   │   │       ├── workspace_validation.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── resolution/
    │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── register.go
    │   │   │   │   │   │   │   ├── resolution_request_conversion.go
    │   │   │   │   │   │   │   ├── resolution_request_defaults.go
    │   │   │   │   │   │   │   ├── resolution_request_lifecycle.go
    │   │   │   │   │   │   │   ├── resolution_request_types.go
    │   │   │   │   │   │   │   ├── resolution_request_validation.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   └── v1beta1/
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       ├── register.go
    │   │   │   │   │   │       ├── resolution_request_conversion.go
    │   │   │   │   │   │       ├── resolution_request_defaults.go
    │   │   │   │   │   │       ├── resolution_request_lifecycle.go
    │   │   │   │   │   │       ├── resolution_request_types.go
    │   │   │   │   │   │       ├── resolution_request_validation.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── resource/
    │   │   │   │   │   │   └── v1alpha1/
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       ├── pipeline_resource_types.go
    │   │   │   │   │   │       ├── register.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── run/
    │   │   │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   │   ├── runstatus_types.go
    │   │   │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   │   │   └── v1beta1/
    │   │   │   │   │   │       ├── customrunstatus_types.go
    │   │   │   │   │   │       ├── doc.go
    │   │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   │   ├── validate/
    │   │   │   │   │   │   └── metadata.go
    │   │   │   │   │   └── version/
    │   │   │   │   │       ├── conversion.go
    │   │   │   │   │       └── featureflags_validation.go
    │   │   │   │   ├── client/
    │   │   │   │   │   ├── clientset/
    │   │   │   │   │   │   └── versioned/
    │   │   │   │   │   │       ├── clientset.go
    │   │   │   │   │   │       ├── fake/
    │   │   │   │   │   │       │   ├── clientset_generated.go
    │   │   │   │   │   │       │   ├── doc.go
    │   │   │   │   │   │       │   └── register.go
    │   │   │   │   │   │       ├── scheme/
    │   │   │   │   │   │       │   ├── doc.go
    │   │   │   │   │   │       │   └── register.go
    │   │   │   │   │   │       └── typed/
    │   │   │   │   │   │           └── pipeline/
    │   │   │   │   │   │               ├── v1/
    │   │   │   │   │   │               │   ├── doc.go
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   ├── doc.go
    │   │   │   │   │   │               │   │   ├── fake_pipeline.go
    │   │   │   │   │   │               │   │   ├── fake_pipeline_client.go
    │   │   │   │   │   │               │   │   ├── fake_pipelinerun.go
    │   │   │   │   │   │               │   │   ├── fake_task.go
    │   │   │   │   │   │               │   │   └── fake_taskrun.go
    │   │   │   │   │   │               │   ├── generated_expansion.go
    │   │   │   │   │   │               │   ├── pipeline.go
    │   │   │   │   │   │               │   ├── pipeline_client.go
    │   │   │   │   │   │               │   ├── pipelinerun.go
    │   │   │   │   │   │               │   ├── task.go
    │   │   │   │   │   │               │   └── taskrun.go
    │   │   │   │   │   │               ├── v1alpha1/
    │   │   │   │   │   │               │   ├── doc.go
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   ├── doc.go
    │   │   │   │   │   │               │   │   ├── fake_pipeline_client.go
    │   │   │   │   │   │               │   │   ├── fake_run.go
    │   │   │   │   │   │               │   │   ├── fake_stepaction.go
    │   │   │   │   │   │               │   │   └── fake_verificationpolicy.go
    │   │   │   │   │   │               │   ├── generated_expansion.go
    │   │   │   │   │   │               │   ├── pipeline_client.go
    │   │   │   │   │   │               │   ├── run.go
    │   │   │   │   │   │               │   ├── stepaction.go
    │   │   │   │   │   │               │   └── verificationpolicy.go
    │   │   │   │   │   │               └── v1beta1/
    │   │   │   │   │   │                   ├── customrun.go
    │   │   │   │   │   │                   ├── doc.go
    │   │   │   │   │   │                   ├── fake/
    │   │   │   │   │   │                   │   ├── doc.go
    │   │   │   │   │   │                   │   ├── fake_customrun.go
    │   │   │   │   │   │                   │   ├── fake_pipeline.go
    │   │   │   │   │   │                   │   ├── fake_pipeline_client.go
    │   │   │   │   │   │                   │   ├── fake_pipelinerun.go
    │   │   │   │   │   │                   │   ├── fake_stepaction.go
    │   │   │   │   │   │                   │   ├── fake_task.go
    │   │   │   │   │   │                   │   └── fake_taskrun.go
    │   │   │   │   │   │                   ├── generated_expansion.go
    │   │   │   │   │   │                   ├── pipeline.go
    │   │   │   │   │   │                   ├── pipeline_client.go
    │   │   │   │   │   │                   ├── pipelinerun.go
    │   │   │   │   │   │                   ├── stepaction.go
    │   │   │   │   │   │                   ├── task.go
    │   │   │   │   │   │                   └── taskrun.go
    │   │   │   │   │   ├── informers/
    │   │   │   │   │   │   └── externalversions/
    │   │   │   │   │   │       ├── factory.go
    │   │   │   │   │   │       ├── generic.go
    │   │   │   │   │   │       ├── internalinterfaces/
    │   │   │   │   │   │       │   └── factory_interfaces.go
    │   │   │   │   │   │       └── pipeline/
    │   │   │   │   │   │           ├── interface.go
    │   │   │   │   │   │           ├── v1/
    │   │   │   │   │   │           │   ├── interface.go
    │   │   │   │   │   │           │   ├── pipeline.go
    │   │   │   │   │   │           │   ├── pipelinerun.go
    │   │   │   │   │   │           │   ├── task.go
    │   │   │   │   │   │           │   └── taskrun.go
    │   │   │   │   │   │           ├── v1alpha1/
    │   │   │   │   │   │           │   ├── interface.go
    │   │   │   │   │   │           │   ├── run.go
    │   │   │   │   │   │           │   ├── stepaction.go
    │   │   │   │   │   │           │   └── verificationpolicy.go
    │   │   │   │   │   │           └── v1beta1/
    │   │   │   │   │   │               ├── customrun.go
    │   │   │   │   │   │               ├── interface.go
    │   │   │   │   │   │               ├── pipeline.go
    │   │   │   │   │   │               ├── pipelinerun.go
    │   │   │   │   │   │               ├── stepaction.go
    │   │   │   │   │   │               ├── task.go
    │   │   │   │   │   │               └── taskrun.go
    │   │   │   │   │   ├── injection/
    │   │   │   │   │   │   ├── client/
    │   │   │   │   │   │   │   ├── client.go
    │   │   │   │   │   │   │   └── fake/
    │   │   │   │   │   │   │       └── fake.go
    │   │   │   │   │   │   └── informers/
    │   │   │   │   │   │       ├── factory/
    │   │   │   │   │   │       │   ├── factory.go
    │   │   │   │   │   │       │   └── fake/
    │   │   │   │   │   │       │       └── fake.go
    │   │   │   │   │   │       └── pipeline/
    │   │   │   │   │   │           ├── v1/
    │   │   │   │   │   │           │   ├── pipeline/
    │   │   │   │   │   │           │   │   ├── fake/
    │   │   │   │   │   │           │   │   │   └── fake.go
    │   │   │   │   │   │           │   │   └── pipeline.go
    │   │   │   │   │   │           │   ├── pipelinerun/
    │   │   │   │   │   │           │   │   ├── fake/
    │   │   │   │   │   │           │   │   │   └── fake.go
    │   │   │   │   │   │           │   │   └── pipelinerun.go
    │   │   │   │   │   │           │   ├── task/
    │   │   │   │   │   │           │   │   ├── fake/
    │   │   │   │   │   │           │   │   │   └── fake.go
    │   │   │   │   │   │           │   │   └── task.go
    │   │   │   │   │   │           │   └── taskrun/
    │   │   │   │   │   │           │       ├── fake/
    │   │   │   │   │   │           │       │   └── fake.go
    │   │   │   │   │   │           │       └── taskrun.go
    │   │   │   │   │   │           ├── v1alpha1/
    │   │   │   │   │   │           │   └── verificationpolicy/
    │   │   │   │   │   │           │       ├── fake/
    │   │   │   │   │   │           │       │   └── fake.go
    │   │   │   │   │   │           │       └── verificationpolicy.go
    │   │   │   │   │   │           └── v1beta1/
    │   │   │   │   │   │               ├── customrun/
    │   │   │   │   │   │               │   ├── customrun.go
    │   │   │   │   │   │               │   └── fake/
    │   │   │   │   │   │               │       └── fake.go
    │   │   │   │   │   │               ├── pipeline/
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   └── fake.go
    │   │   │   │   │   │               │   └── pipeline.go
    │   │   │   │   │   │               ├── stepaction/
    │   │   │   │   │   │               │   ├── fake/
    │   │   │   │   │   │               │   │   └── fake.go
    │   │   │   │   │   │               │   └── stepaction.go
    │   │   │   │   │   │               └── task/
    │   │   │   │   │   │                   ├── fake/
    │   │   │   │   │   │                   │   └── fake.go
    │   │   │   │   │   │                   └── task.go
    │   │   │   │   │   ├── listers/
    │   │   │   │   │   │   └── pipeline/
    │   │   │   │   │   │       ├── v1/
    │   │   │   │   │   │       │   ├── expansion_generated.go
    │   │   │   │   │   │       │   ├── pipeline.go
    │   │   │   │   │   │       │   ├── pipelinerun.go
    │   │   │   │   │   │       │   ├── task.go
    │   │   │   │   │   │       │   └── taskrun.go
    │   │   │   │   │   │       ├── v1alpha1/
    │   │   │   │   │   │       │   ├── expansion_generated.go
    │   │   │   │   │   │       │   ├── run.go
    │   │   │   │   │   │       │   ├── stepaction.go
    │   │   │   │   │   │       │   └── verificationpolicy.go
    │   │   │   │   │   │       └── v1beta1/
    │   │   │   │   │   │           ├── customrun.go
    │   │   │   │   │   │           ├── expansion_generated.go
    │   │   │   │   │   │           ├── pipeline.go
    │   │   │   │   │   │           ├── pipelinerun.go
    │   │   │   │   │   │           ├── stepaction.go
    │   │   │   │   │   │           ├── task.go
    │   │   │   │   │   │           └── taskrun.go
    │   │   │   │   │   └── resolution/
    │   │   │   │   │       ├── clientset/
    │   │   │   │   │       │   └── versioned/
    │   │   │   │   │       │       ├── clientset.go
    │   │   │   │   │       │       ├── fake/
    │   │   │   │   │       │       │   ├── clientset_generated.go
    │   │   │   │   │       │       │   ├── doc.go
    │   │   │   │   │       │       │   └── register.go
    │   │   │   │   │       │       ├── scheme/
    │   │   │   │   │       │       │   ├── doc.go
    │   │   │   │   │       │       │   └── register.go
    │   │   │   │   │       │       └── typed/
    │   │   │   │   │       │           └── resolution/
    │   │   │   │   │       │               ├── v1alpha1/
    │   │   │   │   │       │               │   ├── doc.go
    │   │   │   │   │       │               │   ├── fake/
    │   │   │   │   │       │               │   │   ├── doc.go
    │   │   │   │   │       │               │   │   ├── fake_resolution_client.go
    │   │   │   │   │       │               │   │   └── fake_resolutionrequest.go
    │   │   │   │   │       │               │   ├── generated_expansion.go
    │   │   │   │   │       │               │   ├── resolution_client.go
    │   │   │   │   │       │               │   └── resolutionrequest.go
    │   │   │   │   │       │               └── v1beta1/
    │   │   │   │   │       │                   ├── doc.go
    │   │   │   │   │       │                   ├── fake/
    │   │   │   │   │       │                   │   ├── doc.go
    │   │   │   │   │       │                   │   ├── fake_resolution_client.go
    │   │   │   │   │       │                   │   └── fake_resolutionrequest.go
    │   │   │   │   │       │                   ├── generated_expansion.go
    │   │   │   │   │       │                   ├── resolution_client.go
    │   │   │   │   │       │                   └── resolutionrequest.go
    │   │   │   │   │       ├── informers/
    │   │   │   │   │       │   └── externalversions/
    │   │   │   │   │       │       ├── factory.go
    │   │   │   │   │       │       ├── generic.go
    │   │   │   │   │       │       ├── internalinterfaces/
    │   │   │   │   │       │       │   └── factory_interfaces.go
    │   │   │   │   │       │       └── resolution/
    │   │   │   │   │       │           ├── interface.go
    │   │   │   │   │       │           ├── v1alpha1/
    │   │   │   │   │       │           │   ├── interface.go
    │   │   │   │   │       │           │   └── resolutionrequest.go
    │   │   │   │   │       │           └── v1beta1/
    │   │   │   │   │       │               ├── interface.go
    │   │   │   │   │       │               └── resolutionrequest.go
    │   │   │   │   │       ├── injection/
    │   │   │   │   │       │   ├── client/
    │   │   │   │   │       │   │   ├── client.go
    │   │   │   │   │       │   │   └── fake/
    │   │   │   │   │       │   │       └── fake.go
    │   │   │   │   │       │   └── informers/
    │   │   │   │   │       │       ├── factory/
    │   │   │   │   │       │       │   ├── factory.go
    │   │   │   │   │       │       │   └── fake/
    │   │   │   │   │       │       │       └── fake.go
    │   │   │   │   │       │       └── resolution/
    │   │   │   │   │       │           └── v1beta1/
    │   │   │   │   │       │               └── resolutionrequest/
    │   │   │   │   │       │                   ├── fake/
    │   │   │   │   │       │                   │   └── fake.go
    │   │   │   │   │       │                   └── resolutionrequest.go
    │   │   │   │   │       └── listers/
    │   │   │   │   │           └── resolution/
    │   │   │   │   │               ├── v1alpha1/
    │   │   │   │   │               │   ├── expansion_generated.go
    │   │   │   │   │               │   └── resolutionrequest.go
    │   │   │   │   │               └── v1beta1/
    │   │   │   │   │                   ├── expansion_generated.go
    │   │   │   │   │                   └── resolutionrequest.go
    │   │   │   │   ├── internal/
    │   │   │   │   │   └── resultref/
    │   │   │   │   │       └── resultref.go
    │   │   │   │   ├── list/
    │   │   │   │   │   └── diff.go
    │   │   │   │   ├── names/
    │   │   │   │   │   └── generate.go
    │   │   │   │   ├── reconciler/
    │   │   │   │   │   ├── apiserver/
    │   │   │   │   │   │   └── apiserver.go
    │   │   │   │   │   ├── events/
    │   │   │   │   │   │   ├── cache/
    │   │   │   │   │   │   │   ├── cache.go
    │   │   │   │   │   │   │   ├── cacheclient.go
    │   │   │   │   │   │   │   └── cachefakeclient.go
    │   │   │   │   │   │   └── cloudevent/
    │   │   │   │   │   │       ├── cloud_event_controller.go
    │   │   │   │   │   │       ├── cloudevent.go
    │   │   │   │   │   │       ├── cloudeventclient.go
    │   │   │   │   │   │       ├── cloudeventsfakeclient.go
    │   │   │   │   │   │       └── interface.go
    │   │   │   │   │   ├── pipeline/
    │   │   │   │   │   │   └── dag/
    │   │   │   │   │   │       └── dag.go
    │   │   │   │   │   └── testing/
    │   │   │   │   │       ├── configmap.go
    │   │   │   │   │       ├── factory.go
    │   │   │   │   │       ├── logger.go
    │   │   │   │   │       └── status.go
    │   │   │   │   ├── remote/
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── oci/
    │   │   │   │   │   │   └── resolver.go
    │   │   │   │   │   └── resolver.go
    │   │   │   │   ├── remoteresolution/
    │   │   │   │   │   └── resolver/
    │   │   │   │   │       └── framework/
    │   │   │   │   │           └── cache/
    │   │   │   │   │               ├── annotated_resource.go
    │   │   │   │   │               ├── cache.go
    │   │   │   │   │               ├── clock.go
    │   │   │   │   │               ├── configstore.go
    │   │   │   │   │               ├── operations.go
    │   │   │   │   │               └── setup.go
    │   │   │   │   ├── resolution/
    │   │   │   │   │   ├── common/
    │   │   │   │   │   │   ├── annotations.go
    │   │   │   │   │   │   ├── context.go
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   ├── errors.go
    │   │   │   │   │   │   ├── interface.go
    │   │   │   │   │   │   ├── labels.go
    │   │   │   │   │   │   ├── messages.go
    │   │   │   │   │   │   └── statuses.go
    │   │   │   │   │   └── resolver/
    │   │   │   │   │       └── framework/
    │   │   │   │   │           ├── configstore.go
    │   │   │   │   │           ├── controller.go
    │   │   │   │   │           ├── fakeresolver.go
    │   │   │   │   │           ├── interface.go
    │   │   │   │   │           └── reconciler.go
    │   │   │   │   ├── result/
    │   │   │   │   │   └── result.go
    │   │   │   │   ├── spire/
    │   │   │   │   │   └── config/
    │   │   │   │   │       ├── config.go
    │   │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   │   └── substitution/
    │   │   │   │       ├── replacements.go
    │   │   │   │       └── substitution.go
    │   │   │   └── test/
    │   │   │       ├── OWNERS
    │   │   │       ├── README.md
    │   │   │       ├── build_logs.go
    │   │   │       ├── clients.go
    │   │   │       ├── columns.txt
    │   │   │       ├── controller.go
    │   │   │       ├── diff/
    │   │   │       │   └── print.go
    │   │   │       ├── doc.go
    │   │   │       ├── e2e-common.sh
    │   │   │       ├── e2e-tests-kind-alpha.env
    │   │   │       ├── e2e-tests-kind-beta.env
    │   │   │       ├── e2e-tests-kind-prow-feature-flags.env
    │   │   │       ├── e2e-tests-kind-stable.env
    │   │   │       ├── e2e-tests-kind.env
    │   │   │       ├── e2e-tests-upgrade.sh
    │   │   │       ├── e2e-tests.sh
    │   │   │       ├── featureflags.go
    │   │   │       ├── kubectl.go
    │   │   │       ├── markdown-lint-config.rc
    │   │   │       ├── multiarch_utils.go
    │   │   │       ├── parse/
    │   │   │       │   └── yaml.go
    │   │   │       ├── path_filtering.go
    │   │   │       ├── presubmit-tests.sh
    │   │   │       ├── remote.go
    │   │   │       ├── secret.go
    │   │   │       ├── trustedresources.go
    │   │   │       ├── util.go
    │   │   │       └── wait.go
    │   │   └── plumbing/
    │   │       ├── .gitignore
    │   │       ├── .yamllint
    │   │       ├── CONTRIBUTING.md
    │   │       ├── DEVELOPMENT.md
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── OWNERS
    │   │       ├── README.md
    │   │       ├── adjustpermissions.py
    │   │       ├── code-of-conduct.md
    │   │       ├── demo
    │   │       ├── dummy.go
    │   │       ├── requirements.txt
    │   │       ├── roadmap.md
    │   │       └── scripts/
    │   │           ├── README.md
    │   │           ├── deploy-release.sh
    │   │           ├── dummy.go
    │   │           ├── e2e-tests.sh
    │   │           ├── library.sh
    │   │           ├── markdown-link-check-config.rc
    │   │           ├── markdown-lint-config.rc
    │   │           └── presubmit-tests.sh
    │   ├── titanous/
    │   │   └── rocacheck/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       └── rocacheck.go
    │   ├── vbatts/
    │   │   └── tar-split/
    │   │       ├── LICENSE
    │   │       └── archive/
    │   │           └── tar/
    │   │               ├── common.go
    │   │               ├── format.go
    │   │               ├── reader.go
    │   │               ├── stat_actime1.go
    │   │               ├── stat_actime2.go
    │   │               ├── stat_unix.go
    │   │               ├── strconv.go
    │   │               └── writer.go
    │   └── x448/
    │       └── float16/
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── README.md
    │           └── float16.go
    ├── go.opencensus.io/
    │   ├── .gitignore
    │   ├── AUTHORS
    │   ├── CONTRIBUTING.md
    │   ├── LICENSE
    │   ├── Makefile
    │   ├── README.md
    │   ├── appveyor.yml
    │   ├── internal/
    │   │   ├── internal.go
    │   │   ├── sanitize.go
    │   │   ├── tagencoding/
    │   │   │   └── tagencoding.go
    │   │   └── traceinternals.go
    │   ├── metric/
    │   │   ├── metricdata/
    │   │   │   ├── doc.go
    │   │   │   ├── exemplar.go
    │   │   │   ├── label.go
    │   │   │   ├── metric.go
    │   │   │   ├── point.go
    │   │   │   ├── type_string.go
    │   │   │   └── unit.go
    │   │   ├── metricexport/
    │   │   │   ├── doc.go
    │   │   │   ├── export.go
    │   │   │   └── reader.go
    │   │   └── metricproducer/
    │   │       ├── manager.go
    │   │       └── producer.go
    │   ├── opencensus.go
    │   ├── plugin/
    │   │   ├── ocgrpc/
    │   │   │   ├── client.go
    │   │   │   ├── client_metrics.go
    │   │   │   ├── client_stats_handler.go
    │   │   │   ├── doc.go
    │   │   │   ├── server.go
    │   │   │   ├── server_metrics.go
    │   │   │   ├── server_stats_handler.go
    │   │   │   ├── stats_common.go
    │   │   │   └── trace_common.go
    │   │   └── ochttp/
    │   │       ├── client.go
    │   │       ├── client_stats.go
    │   │       ├── doc.go
    │   │       ├── propagation/
    │   │       │   ├── b3/
    │   │       │   │   └── b3.go
    │   │       │   └── tracecontext/
    │   │       │       └── propagation.go
    │   │       ├── route.go
    │   │       ├── server.go
    │   │       ├── span_annotating_client_trace.go
    │   │       ├── stats.go
    │   │       ├── trace.go
    │   │       └── wrapped_body.go
    │   ├── resource/
    │   │   └── resource.go
    │   ├── stats/
    │   │   ├── doc.go
    │   │   ├── internal/
    │   │   │   └── record.go
    │   │   ├── measure.go
    │   │   ├── measure_float64.go
    │   │   ├── measure_int64.go
    │   │   ├── record.go
    │   │   ├── units.go
    │   │   └── view/
    │   │       ├── aggregation.go
    │   │       ├── aggregation_data.go
    │   │       ├── collector.go
    │   │       ├── doc.go
    │   │       ├── export.go
    │   │       ├── view.go
    │   │       ├── view_to_metric.go
    │   │       ├── worker.go
    │   │       └── worker_commands.go
    │   ├── tag/
    │   │   ├── context.go
    │   │   ├── doc.go
    │   │   ├── key.go
    │   │   ├── map.go
    │   │   ├── map_codec.go
    │   │   ├── metadata.go
    │   │   ├── profile_19.go
    │   │   ├── profile_not19.go
    │   │   └── validate.go
    │   └── trace/
    │       ├── basetypes.go
    │       ├── config.go
    │       ├── doc.go
    │       ├── evictedqueue.go
    │       ├── export.go
    │       ├── internal/
    │       │   └── internal.go
    │       ├── lrumap.go
    │       ├── propagation/
    │       │   └── propagation.go
    │       ├── sampling.go
    │       ├── spanbucket.go
    │       ├── spanstore.go
    │       ├── status_codes.go
    │       ├── trace.go
    │       ├── trace_api.go
    │       ├── trace_go11.go
    │       ├── trace_nongo11.go
    │       └── tracestate/
    │           └── tracestate.go
    ├── go.yaml.in/
    │   └── yaml/
    │       ├── v2/
    │       │   ├── .travis.yml
    │       │   ├── LICENSE
    │       │   ├── LICENSE.libyaml
    │       │   ├── NOTICE
    │       │   ├── README.md
    │       │   ├── apic.go
    │       │   ├── decode.go
    │       │   ├── emitterc.go
    │       │   ├── encode.go
    │       │   ├── parserc.go
    │       │   ├── readerc.go
    │       │   ├── resolve.go
    │       │   ├── scannerc.go
    │       │   ├── sorter.go
    │       │   ├── writerc.go
    │       │   ├── yaml.go
    │       │   ├── yamlh.go
    │       │   └── yamlprivateh.go
    │       └── v3/
    │           ├── LICENSE
    │           ├── NOTICE
    │           ├── README.md
    │           ├── apic.go
    │           ├── decode.go
    │           ├── emitterc.go
    │           ├── encode.go
    │           ├── parserc.go
    │           ├── readerc.go
    │           ├── resolve.go
    │           ├── scannerc.go
    │           ├── sorter.go
    │           ├── writerc.go
    │           ├── yaml.go
    │           ├── yamlh.go
    │           └── yamlprivateh.go
    ├── goa.design/
    │   ├── goa/
    │   │   └── v3/
    │   │       ├── LICENSE
    │   │       ├── codegen/
    │   │       │   ├── cli/
    │   │       │   │   ├── cli.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── build_payload.go.tpl
    │   │       │   │   │   ├── command_usage.go.tpl
    │   │       │   │   │   ├── parse_flags.go.tpl
    │   │       │   │   │   ├── usage_commands.go.tpl
    │   │       │   │   │   └── usage_examples.go.tpl
    │   │       │   │   └── templates.go
    │   │       │   ├── doc.go
    │   │       │   ├── example/
    │   │       │   │   ├── docs.go
    │   │       │   │   ├── example_client.go
    │   │       │   │   ├── example_server.go
    │   │       │   │   ├── server_data.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── client_end.go.tpl
    │   │       │   │   │   ├── client_endpoint_init.go.tpl
    │   │       │   │   │   ├── client_start.go.tpl
    │   │       │   │   │   ├── client_usage.go.tpl
    │   │       │   │   │   ├── client_var_init.go.tpl
    │   │       │   │   │   ├── server_end.go.tpl
    │   │       │   │   │   ├── server_endpoints.go.tpl
    │   │       │   │   │   ├── server_handler.go.tpl
    │   │       │   │   │   ├── server_interceptors.go.tpl
    │   │       │   │   │   ├── server_interrupts.go.tpl
    │   │       │   │   │   ├── server_logger.go.tpl
    │   │       │   │   │   ├── server_services.go.tpl
    │   │       │   │   │   └── server_start.go.tpl
    │   │       │   │   └── templates.go
    │   │       │   ├── file.go
    │   │       │   ├── funcs.go
    │   │       │   ├── generator/
    │   │       │   │   ├── docs.go
    │   │       │   │   ├── example.go
    │   │       │   │   ├── generate.go
    │   │       │   │   ├── generators.go
    │   │       │   │   ├── openapi.go
    │   │       │   │   ├── service.go
    │   │       │   │   └── transport.go
    │   │       │   ├── go_transform.go
    │   │       │   ├── goify.go
    │   │       │   ├── header.go
    │   │       │   ├── import.go
    │   │       │   ├── plugin.go
    │   │       │   ├── scope.go
    │   │       │   ├── service/
    │   │       │   │   ├── client.go
    │   │       │   │   ├── convert.go
    │   │       │   │   ├── docs.go
    │   │       │   │   ├── endpoint.go
    │   │       │   │   ├── example_interceptors.go
    │   │       │   │   ├── example_svc.go
    │   │       │   │   ├── interceptors.go
    │   │       │   │   ├── interceptors.md
    │   │       │   │   ├── service.go
    │   │       │   │   ├── service_data.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── client_interceptor_stream_wrapper_types.go.tpl
    │   │       │   │   │   ├── client_interceptor_stream_wrappers.go.tpl
    │   │       │   │   │   ├── client_interceptor_wrappers.go.tpl
    │   │       │   │   │   ├── client_interceptors.go.tpl
    │   │       │   │   │   ├── client_wrappers.go.tpl
    │   │       │   │   │   ├── convert.go.tpl
    │   │       │   │   │   ├── create.go.tpl
    │   │       │   │   │   ├── endpoint.go.tpl
    │   │       │   │   │   ├── endpoint_wrappers.go.tpl
    │   │       │   │   │   ├── error.go.tpl
    │   │       │   │   │   ├── error_init.go.tpl
    │   │       │   │   │   ├── example_client_interceptor.go.tpl
    │   │       │   │   │   ├── example_security_authfuncs.go.tpl
    │   │       │   │   │   ├── example_server_interceptor.go.tpl
    │   │       │   │   │   ├── example_service_init.go.tpl
    │   │       │   │   │   ├── example_service_struct.go.tpl
    │   │       │   │   │   ├── interceptors.go.tpl
    │   │       │   │   │   ├── interceptors_types.go.tpl
    │   │       │   │   │   ├── jsonrpc_handle_stream.go.tpl
    │   │       │   │   │   ├── jsonrpc_streaming_endpoint.go.tpl
    │   │       │   │   │   ├── payload.go.tpl
    │   │       │   │   │   ├── result.go.tpl
    │   │       │   │   │   ├── return_type_init.go.tpl
    │   │       │   │   │   ├── server_interceptor_stream_wrapper_types.go.tpl
    │   │       │   │   │   ├── server_interceptor_stream_wrappers.go.tpl
    │   │       │   │   │   ├── server_interceptor_wrappers.go.tpl
    │   │       │   │   │   ├── server_interceptors.go.tpl
    │   │       │   │   │   ├── service.go.tpl
    │   │       │   │   │   ├── service_client.go.tpl
    │   │       │   │   │   ├── service_client_init.go.tpl
    │   │       │   │   │   ├── service_client_method.go.tpl
    │   │       │   │   │   ├── service_endpoint_method.go.tpl
    │   │       │   │   │   ├── service_endpoint_stream_struct.go.tpl
    │   │       │   │   │   ├── service_endpoints.go.tpl
    │   │       │   │   │   ├── service_endpoints_init.go.tpl
    │   │       │   │   │   ├── service_endpoints_use.go.tpl
    │   │       │   │   │   ├── service_request_body_struct.go.tpl
    │   │       │   │   │   ├── service_response_body_struct.go.tpl
    │   │       │   │   │   ├── streaming_payload.go.tpl
    │   │       │   │   │   ├── transform_helper.go.tpl
    │   │       │   │   │   ├── type_init.go.tpl
    │   │       │   │   │   ├── type_validate.go.tpl
    │   │       │   │   │   ├── union_value_method.go.tpl
    │   │       │   │   │   ├── user_type.go.tpl
    │   │       │   │   │   ├── validate.go.tpl
    │   │       │   │   │   └── viewed_type_map.go.tpl
    │   │       │   │   ├── templates.go
    │   │       │   │   ├── testing.go
    │   │       │   │   └── views.go
    │   │       │   ├── template/
    │   │       │   │   ├── doc.go
    │   │       │   │   └── reader.go
    │   │       │   ├── templates/
    │   │       │   │   ├── header.go.tpl
    │   │       │   │   ├── transform_go_array.go.tpl
    │   │       │   │   ├── transform_go_map.go.tpl
    │   │       │   │   ├── transform_go_object_to_union.go.tpl
    │   │       │   │   ├── transform_go_union.go.tpl
    │   │       │   │   ├── transform_go_union_to_object.go.tpl
    │   │       │   │   └── validation/
    │   │       │   │       ├── array.go.tpl
    │   │       │   │       ├── enum.go.tpl
    │   │       │   │       ├── excl_min_max.go.tpl
    │   │       │   │       ├── format.go.tpl
    │   │       │   │       ├── length.go.tpl
    │   │       │   │       ├── map.go.tpl
    │   │       │   │       ├── min_max.go.tpl
    │   │       │   │       ├── pattern.go.tpl
    │   │       │   │       ├── required.go.tpl
    │   │       │   │       ├── union.go.tpl
    │   │       │   │       └── user.go.tpl
    │   │       │   ├── templates.go
    │   │       │   ├── testing.go
    │   │       │   ├── transformer.go
    │   │       │   ├── types.go
    │   │       │   ├── validation.go
    │   │       │   └── walk.go
    │   │       ├── dsl/
    │   │       │   ├── api.go
    │   │       │   ├── attribute.go
    │   │       │   ├── convert.go
    │   │       │   ├── description.go
    │   │       │   ├── doc.go
    │   │       │   ├── error.go
    │   │       │   ├── grpc.go
    │   │       │   ├── headers.go
    │   │       │   ├── http.go
    │   │       │   ├── http_file_server.go
    │   │       │   ├── http_redirect.go
    │   │       │   ├── interceptor.go
    │   │       │   ├── jsonrpc.go
    │   │       │   ├── meta.go
    │   │       │   ├── method.go
    │   │       │   ├── payload.go
    │   │       │   ├── response.go
    │   │       │   ├── result.go
    │   │       │   ├── result_type.go
    │   │       │   ├── security.go
    │   │       │   ├── server.go
    │   │       │   ├── service.go
    │   │       │   ├── sse.go
    │   │       │   ├── types.go
    │   │       │   ├── user_type.go
    │   │       │   ├── validation.go
    │   │       │   └── value.go
    │   │       ├── eval/
    │   │       │   ├── context.go
    │   │       │   ├── doc.go
    │   │       │   ├── error.go
    │   │       │   ├── eval.go
    │   │       │   └── expression.go
    │   │       ├── expr/
    │   │       │   ├── api.go
    │   │       │   ├── attribute.go
    │   │       │   ├── docs.go
    │   │       │   ├── dup.go
    │   │       │   ├── example.go
    │   │       │   ├── grpc.go
    │   │       │   ├── grpc_endpoint.go
    │   │       │   ├── grpc_error.go
    │   │       │   ├── grpc_response.go
    │   │       │   ├── grpc_service.go
    │   │       │   ├── hasher.go
    │   │       │   ├── helpers.go
    │   │       │   ├── http.go
    │   │       │   ├── http_body_types.go
    │   │       │   ├── http_endpoint.go
    │   │       │   ├── http_error.go
    │   │       │   ├── http_file_server.go
    │   │       │   ├── http_redirect.go
    │   │       │   ├── http_response.go
    │   │       │   ├── http_service.go
    │   │       │   ├── http_sse.go
    │   │       │   ├── init.go
    │   │       │   ├── interceptor.go
    │   │       │   ├── jsonrpc.go
    │   │       │   ├── mapped_attribute.go
    │   │       │   ├── method.go
    │   │       │   ├── random.go
    │   │       │   ├── result_type.go
    │   │       │   ├── result_types_root.go
    │   │       │   ├── root.go
    │   │       │   ├── security.go
    │   │       │   ├── server.go
    │   │       │   ├── service.go
    │   │       │   ├── testing.go
    │   │       │   ├── types.go
    │   │       │   └── user_type.go
    │   │       ├── grpc/
    │   │       │   └── codegen/
    │   │       │       ├── client.go
    │   │       │       ├── client_cli.go
    │   │       │       ├── client_types.go
    │   │       │       ├── doc.go
    │   │       │       ├── example_cli.go
    │   │       │       ├── example_server.go
    │   │       │       ├── funcs.go
    │   │       │       ├── proto.go
    │   │       │       ├── protobuf.go
    │   │       │       ├── protobuf_transform.go
    │   │       │       ├── server.go
    │   │       │       ├── server_types.go
    │   │       │       ├── service_data.go
    │   │       │       ├── templates/
    │   │       │       │   ├── client_endpoint_init.go.tpl
    │   │       │       │   ├── client_init.go.tpl
    │   │       │       │   ├── client_struct.go.tpl
    │   │       │       │   ├── do_grpc_cli.go.tpl
    │   │       │       │   ├── grpc_handler_init.go.tpl
    │   │       │       │   ├── grpc_message.go.tpl
    │   │       │       │   ├── grpc_service.go.tpl
    │   │       │       │   ├── parse_endpoint.go.tpl
    │   │       │       │   ├── partial/
    │   │       │       │   │   ├── convert_string_to_type.go.tpl
    │   │       │       │   │   ├── convert_type_to_string.go.tpl
    │   │       │       │   │   ├── slice_conversion.go.tpl
    │   │       │       │   │   ├── slice_item_conversion.go.tpl
    │   │       │       │   │   ├── string_conversion.go.tpl
    │   │       │       │   │   └── type_conversion.go.tpl
    │   │       │       │   ├── proto_header.go.tpl
    │   │       │       │   ├── proto_start.go.tpl
    │   │       │       │   ├── remote_method_builder.go.tpl
    │   │       │       │   ├── request_decoder.go.tpl
    │   │       │       │   ├── request_encoder.go.tpl
    │   │       │       │   ├── response_decoder.go.tpl
    │   │       │       │   ├── response_encoder.go.tpl
    │   │       │       │   ├── server_grpc_end.go.tpl
    │   │       │       │   ├── server_grpc_init.go.tpl
    │   │       │       │   ├── server_grpc_interface.go.tpl
    │   │       │       │   ├── server_grpc_register.go.tpl
    │   │       │       │   ├── server_grpc_start.go.tpl
    │   │       │       │   ├── server_init.go.tpl
    │   │       │       │   ├── server_struct_type.go.tpl
    │   │       │       │   ├── stream_close.go.tpl
    │   │       │       │   ├── stream_recv.go.tpl
    │   │       │       │   ├── stream_send.go.tpl
    │   │       │       │   ├── stream_set_view.go.tpl
    │   │       │       │   ├── stream_struct_type.go.tpl
    │   │       │       │   ├── transform_go_array.go.tpl
    │   │       │       │   ├── transform_go_map.go.tpl
    │   │       │       │   ├── transform_go_union_from_proto.go.tpl
    │   │       │       │   ├── transform_go_union_to_proto.go.tpl
    │   │       │       │   ├── transform_helper.go.tpl
    │   │       │       │   ├── type_init.go.tpl
    │   │       │       │   └── validate.go.tpl
    │   │       │       ├── templates.go
    │   │       │       └── testing.go
    │   │       ├── http/
    │   │       │   ├── client.go
    │   │       │   ├── codegen/
    │   │       │   │   ├── client.go
    │   │       │   │   ├── client_cli.go
    │   │       │   │   ├── client_types.go
    │   │       │   │   ├── doc.go
    │   │       │   │   ├── example_cli.go
    │   │       │   │   ├── example_server.go
    │   │       │   │   ├── funcs.go
    │   │       │   │   ├── openapi/
    │   │       │   │   │   ├── doc.go
    │   │       │   │   │   ├── docs.go
    │   │       │   │   │   ├── extensions.go
    │   │       │   │   │   ├── json_schema.go
    │   │       │   │   │   ├── marshal.go
    │   │       │   │   │   ├── merge.go
    │   │       │   │   │   ├── tags.go
    │   │       │   │   │   ├── v2/
    │   │       │   │   │   │   ├── builder.go
    │   │       │   │   │   │   ├── doc.go
    │   │       │   │   │   │   ├── files.go
    │   │       │   │   │   │   └── openapi.go
    │   │       │   │   │   └── v3/
    │   │       │   │   │       ├── builder.go
    │   │       │   │   │       ├── doc.go
    │   │       │   │   │       ├── example.go
    │   │       │   │   │       ├── files.go
    │   │       │   │   │       ├── openapi.go
    │   │       │   │   │       ├── parameters.go
    │   │       │   │   │       ├── ref.go
    │   │       │   │   │       ├── response.go
    │   │       │   │   │       └── types.go
    │   │       │   │   ├── openapi.go
    │   │       │   │   ├── paths.go
    │   │       │   │   ├── server.go
    │   │       │   │   ├── server_types.go
    │   │       │   │   ├── service_data.go
    │   │       │   │   ├── sse.go
    │   │       │   │   ├── sse_client.go
    │   │       │   │   ├── templates/
    │   │       │   │   │   ├── append_fs.go.tpl
    │   │       │   │   │   ├── build_stream_request.go.tpl
    │   │       │   │   │   ├── cli_end.go.tpl
    │   │       │   │   │   ├── cli_start.go.tpl
    │   │       │   │   │   ├── cli_streaming.go.tpl
    │   │       │   │   │   ├── cli_usage.go.tpl
    │   │       │   │   │   ├── client_body_init.go.tpl
    │   │       │   │   │   ├── client_endpoint_init.go.tpl
    │   │       │   │   │   ├── client_init.go.tpl
    │   │       │   │   │   ├── client_sse.go.tpl
    │   │       │   │   │   ├── client_struct.go.tpl
    │   │       │   │   │   ├── client_type_init.go.tpl
    │   │       │   │   │   ├── dummy_multipart_request_decoder.go.tpl
    │   │       │   │   │   ├── dummy_multipart_request_encoder.go.tpl
    │   │       │   │   │   ├── error_encoder.go.tpl
    │   │       │   │   │   ├── file_server.go.tpl
    │   │       │   │   │   ├── mount_point_struct.go.tpl
    │   │       │   │   │   ├── multipart_request_decoder.go.tpl
    │   │       │   │   │   ├── multipart_request_decoder_type.go.tpl
    │   │       │   │   │   ├── multipart_request_encoder.go.tpl
    │   │       │   │   │   ├── multipart_request_encoder_type.go.tpl
    │   │       │   │   │   ├── parse_endpoint.go.tpl
    │   │       │   │   │   ├── partial/
    │   │       │   │   │   │   ├── client_map_conversion.go.tpl
    │   │       │   │   │   │   ├── client_type_conversion.go.tpl
    │   │       │   │   │   │   ├── element_slice_conversion.go.tpl
    │   │       │   │   │   │   ├── header_conversion.go.tpl
    │   │       │   │   │   │   ├── path_conversion.go.tpl
    │   │       │   │   │   │   ├── query_map_conversion.go.tpl
    │   │       │   │   │   │   ├── query_slice_conversion.go.tpl
    │   │       │   │   │   │   ├── query_type_conversion.go.tpl
    │   │       │   │   │   │   ├── request_elements.go.tpl
    │   │       │   │   │   │   ├── response.go.tpl
    │   │       │   │   │   │   ├── single_response.go.tpl
    │   │       │   │   │   │   ├── slice_item_conversion.go.tpl
    │   │       │   │   │   │   ├── sse_format.go.tpl
    │   │       │   │   │   │   ├── sse_parse.go.tpl
    │   │       │   │   │   │   └── websocket_upgrade.go.tpl
    │   │       │   │   │   ├── path.go.tpl
    │   │       │   │   │   ├── path_init.go.tpl
    │   │       │   │   │   ├── request_builder.go.tpl
    │   │       │   │   │   ├── request_decoder.go.tpl
    │   │       │   │   │   ├── request_encoder.go.tpl
    │   │       │   │   │   ├── request_init.go.tpl
    │   │       │   │   │   ├── response_decoder.go.tpl
    │   │       │   │   │   ├── response_encoder.go.tpl
    │   │       │   │   │   ├── server_body_init.go.tpl
    │   │       │   │   │   ├── server_configure.go.tpl
    │   │       │   │   │   ├── server_encoding.go.tpl
    │   │       │   │   │   ├── server_end.go.tpl
    │   │       │   │   │   ├── server_error_handler.go.tpl
    │   │       │   │   │   ├── server_handler.go.tpl
    │   │       │   │   │   ├── server_handler_init.go.tpl
    │   │       │   │   │   ├── server_init.go.tpl
    │   │       │   │   │   ├── server_method_names.go.tpl
    │   │       │   │   │   ├── server_middleware.go.tpl
    │   │       │   │   │   ├── server_mount.go.tpl
    │   │       │   │   │   ├── server_mux.go.tpl
    │   │       │   │   │   ├── server_service.go.tpl
    │   │       │   │   │   ├── server_sse.go.tpl
    │   │       │   │   │   ├── server_start.go.tpl
    │   │       │   │   │   ├── server_struct.go.tpl
    │   │       │   │   │   ├── server_type_init.go.tpl
    │   │       │   │   │   ├── server_use.go.tpl
    │   │       │   │   │   ├── transform_helper.go.tpl
    │   │       │   │   │   ├── type_decl.go.tpl
    │   │       │   │   │   ├── validate.go.tpl
    │   │       │   │   │   ├── websocket_close.go.tpl
    │   │       │   │   │   ├── websocket_conn_configurer_struct.go.tpl
    │   │       │   │   │   ├── websocket_conn_configurer_struct_init.go.tpl
    │   │       │   │   │   ├── websocket_recv.go.tpl
    │   │       │   │   │   ├── websocket_send.go.tpl
    │   │       │   │   │   ├── websocket_set_view.go.tpl
    │   │       │   │   │   └── websocket_struct_type.go.tpl
    │   │       │   │   ├── templates.go
    │   │       │   │   ├── testing.go
    │   │       │   │   ├── typedef.go
    │   │       │   │   └── websocket.go
    │   │       │   ├── doc.go
    │   │       │   ├── encoding.go
    │   │       │   ├── error.go
    │   │       │   ├── middleware/
    │   │       │   │   ├── capture.go
    │   │       │   │   ├── chi.go
    │   │       │   │   ├── context.go
    │   │       │   │   ├── ctxkeys.go
    │   │       │   │   ├── debug.go
    │   │       │   │   ├── doc.go
    │   │       │   │   ├── log.go
    │   │       │   │   ├── request.go
    │   │       │   │   ├── requestid.go
    │   │       │   │   └── trace.go
    │   │       │   ├── mux.go
    │   │       │   ├── server.go
    │   │       │   └── websocket.go
    │   │       ├── jsonrpc/
    │   │       │   └── codegen/
    │   │       │       ├── client.go
    │   │       │       ├── client_cli.go
    │   │       │       ├── client_types.go
    │   │       │       ├── example_cli.go
    │   │       │       ├── example_server.go
    │   │       │       ├── paths.go
    │   │       │       ├── server.go
    │   │       │       ├── server_types.go
    │   │       │       ├── sse.go
    │   │       │       ├── sse_server.go
    │   │       │       ├── templates/
    │   │       │       │   ├── client_endpoint_init.go.tpl
    │   │       │       │   ├── client_init.go.tpl
    │   │       │       │   ├── client_struct.go.tpl
    │   │       │       │   ├── minimal_request_encoder.go.tpl
    │   │       │       │   ├── mixed_server_handler.go.tpl
    │   │       │       │   ├── partial/
    │   │       │       │   │   ├── element_slice_conversion.go.tpl
    │   │       │       │   │   ├── query_type_conversion.go.tpl
    │   │       │       │   │   ├── single_response.go.tpl
    │   │       │       │   │   └── slice_item_conversion.go.tpl
    │   │       │       │   ├── response_decoder.go.tpl
    │   │       │       │   ├── server_configure.go.tpl
    │   │       │       │   ├── server_encode_error.go.tpl
    │   │       │       │   ├── server_handler.go.tpl
    │   │       │       │   ├── server_handler_init.go.tpl
    │   │       │       │   ├── server_http_start.go.tpl
    │   │       │       │   ├── server_init.go.tpl
    │   │       │       │   ├── server_method_names.go.tpl
    │   │       │       │   ├── server_mount.go.tpl
    │   │       │       │   ├── server_service.go.tpl
    │   │       │       │   ├── server_struct.go.tpl
    │   │       │       │   ├── server_use.go.tpl
    │   │       │       │   ├── sse_client_stream.go.tpl
    │   │       │       │   ├── sse_server_handler.go.tpl
    │   │       │       │   ├── sse_server_stream.go.tpl
    │   │       │       │   ├── sse_server_stream_impl.go.tpl
    │   │       │       │   ├── websocket_client_conn.go.tpl
    │   │       │       │   ├── websocket_client_stream.go.tpl
    │   │       │       │   ├── websocket_server_close.go.tpl
    │   │       │       │   ├── websocket_server_handler.go.tpl
    │   │       │       │   ├── websocket_server_recv.go.tpl
    │   │       │       │   ├── websocket_server_send.go.tpl
    │   │       │       │   ├── websocket_server_stream.go.tpl
    │   │       │       │   ├── websocket_server_stream_wrapper.go.tpl
    │   │       │       │   └── websocket_stream_error_types.go.tpl
    │   │       │       ├── templates.go
    │   │       │       ├── testing.go
    │   │       │       ├── websocket_client.go
    │   │       │       └── websocket_server.go
    │   │       ├── middleware/
    │   │       │   ├── ctxkeys.go
    │   │       │   ├── doc.go
    │   │       │   ├── log.go
    │   │       │   ├── requestid.go
    │   │       │   ├── sampler.go
    │   │       │   └── trace.go
    │   │       ├── pkg/
    │   │       │   ├── doc.go
    │   │       │   ├── endpoint.go
    │   │       │   ├── error.go
    │   │       │   ├── interceptor.go
    │   │       │   ├── skip_response_writer.go
    │   │       │   ├── validation.go
    │   │       │   └── version.go
    │   │       └── security/
    │   │           └── scheme.go
    │   └── plugins/
    │       └── v3/
    │           ├── LICENSE
    │           ├── cors/
    │           │   ├── .golint_exclude
    │           │   ├── Makefile
    │           │   ├── README.md
    │           │   ├── cors.go
    │           │   ├── dsl/
    │           │   │   └── cors.go
    │           │   ├── expr/
    │           │   │   ├── cors.go
    │           │   │   └── root.go
    │           │   └── generate.go
    │           └── zaplogger/
    │               ├── .golint_exclude
    │               ├── Makefile
    │               ├── README.md
    │               └── update.go
    ├── golang.org/
    │   └── x/
    │       ├── crypto/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── internal/
    │       │   │   ├── alias/
    │       │   │   │   ├── alias.go
    │       │   │   │   └── alias_purego.go
    │       │   │   └── poly1305/
    │       │   │       ├── mac_noasm.go
    │       │   │       ├── poly1305.go
    │       │   │       ├── sum_amd64.s
    │       │   │       ├── sum_asm.go
    │       │   │       ├── sum_generic.go
    │       │   │       ├── sum_loong64.s
    │       │   │       ├── sum_ppc64x.s
    │       │   │       ├── sum_s390x.go
    │       │   │       └── sum_s390x.s
    │       │   ├── nacl/
    │       │   │   └── secretbox/
    │       │   │       └── secretbox.go
    │       │   ├── ocsp/
    │       │   │   └── ocsp.go
    │       │   ├── pbkdf2/
    │       │   │   └── pbkdf2.go
    │       │   ├── salsa20/
    │       │   │   └── salsa/
    │       │   │       ├── hsalsa20.go
    │       │   │       ├── salsa208.go
    │       │   │       ├── salsa20_amd64.go
    │       │   │       ├── salsa20_amd64.s
    │       │   │       ├── salsa20_noasm.go
    │       │   │       └── salsa20_ref.go
    │       │   ├── scrypt/
    │       │   │   └── scrypt.go
    │       │   └── sha3/
    │       │       ├── hashes.go
    │       │       ├── legacy_hash.go
    │       │       ├── legacy_keccakf.go
    │       │       └── shake.go
    │       ├── exp/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   └── slices/
    │       │       ├── slices.go
    │       │       └── sort.go
    │       ├── mod/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── internal/
    │       │   │   └── lazyregexp/
    │       │   │       └── lazyre.go
    │       │   ├── module/
    │       │   │   ├── module.go
    │       │   │   └── pseudo.go
    │       │   └── semver/
    │       │       └── semver.go
    │       ├── net/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── http/
    │       │   │   └── httpguts/
    │       │   │       ├── guts.go
    │       │   │       └── httplex.go
    │       │   ├── http2/
    │       │   │   ├── .gitignore
    │       │   │   ├── ascii.go
    │       │   │   ├── ciphers.go
    │       │   │   ├── client_conn_pool.go
    │       │   │   ├── config.go
    │       │   │   ├── config_go125.go
    │       │   │   ├── config_go126.go
    │       │   │   ├── databuffer.go
    │       │   │   ├── errors.go
    │       │   │   ├── flow.go
    │       │   │   ├── frame.go
    │       │   │   ├── gotrack.go
    │       │   │   ├── h2c/
    │       │   │   │   └── h2c.go
    │       │   │   ├── hpack/
    │       │   │   │   ├── encode.go
    │       │   │   │   ├── hpack.go
    │       │   │   │   ├── huffman.go
    │       │   │   │   ├── static_table.go
    │       │   │   │   └── tables.go
    │       │   │   ├── http2.go
    │       │   │   ├── pipe.go
    │       │   │   ├── server.go
    │       │   │   ├── transport.go
    │       │   │   ├── unencrypted.go
    │       │   │   ├── write.go
    │       │   │   ├── writesched.go
    │       │   │   ├── writesched_priority_rfc7540.go
    │       │   │   ├── writesched_priority_rfc9218.go
    │       │   │   ├── writesched_random.go
    │       │   │   └── writesched_roundrobin.go
    │       │   ├── idna/
    │       │   │   ├── go118.go
    │       │   │   ├── idna10.0.0.go
    │       │   │   ├── idna9.0.0.go
    │       │   │   ├── pre_go118.go
    │       │   │   ├── punycode.go
    │       │   │   ├── tables10.0.0.go
    │       │   │   ├── tables11.0.0.go
    │       │   │   ├── tables12.0.0.go
    │       │   │   ├── tables13.0.0.go
    │       │   │   ├── tables15.0.0.go
    │       │   │   ├── tables9.0.0.go
    │       │   │   ├── trie.go
    │       │   │   ├── trie12.0.0.go
    │       │   │   ├── trie13.0.0.go
    │       │   │   └── trieval.go
    │       │   ├── internal/
    │       │   │   ├── httpcommon/
    │       │   │   │   ├── ascii.go
    │       │   │   │   ├── headermap.go
    │       │   │   │   └── request.go
    │       │   │   └── timeseries/
    │       │   │       └── timeseries.go
    │       │   └── trace/
    │       │       ├── events.go
    │       │       ├── histogram.go
    │       │       └── trace.go
    │       ├── oauth2/
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── deviceauth.go
    │       │   ├── internal/
    │       │   │   ├── doc.go
    │       │   │   ├── oauth2.go
    │       │   │   ├── token.go
    │       │   │   └── transport.go
    │       │   ├── oauth2.go
    │       │   ├── pkce.go
    │       │   ├── token.go
    │       │   └── transport.go
    │       ├── sync/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── errgroup/
    │       │   │   └── errgroup.go
    │       │   └── semaphore/
    │       │       └── semaphore.go
    │       ├── sys/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── cpu/
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_darwin_x86_gc.s
    │       │   │   ├── byteorder.go
    │       │   │   ├── cpu.go
    │       │   │   ├── cpu_aix.go
    │       │   │   ├── cpu_arm.go
    │       │   │   ├── cpu_arm64.go
    │       │   │   ├── cpu_arm64.s
    │       │   │   ├── cpu_darwin_x86.go
    │       │   │   ├── cpu_gc_arm64.go
    │       │   │   ├── cpu_gc_s390x.go
    │       │   │   ├── cpu_gc_x86.go
    │       │   │   ├── cpu_gc_x86.s
    │       │   │   ├── cpu_gccgo_arm64.go
    │       │   │   ├── cpu_gccgo_s390x.go
    │       │   │   ├── cpu_gccgo_x86.c
    │       │   │   ├── cpu_gccgo_x86.go
    │       │   │   ├── cpu_linux.go
    │       │   │   ├── cpu_linux_arm.go
    │       │   │   ├── cpu_linux_arm64.go
    │       │   │   ├── cpu_linux_loong64.go
    │       │   │   ├── cpu_linux_mips64x.go
    │       │   │   ├── cpu_linux_noinit.go
    │       │   │   ├── cpu_linux_ppc64x.go
    │       │   │   ├── cpu_linux_riscv64.go
    │       │   │   ├── cpu_linux_s390x.go
    │       │   │   ├── cpu_loong64.go
    │       │   │   ├── cpu_loong64.s
    │       │   │   ├── cpu_mips64x.go
    │       │   │   ├── cpu_mipsx.go
    │       │   │   ├── cpu_netbsd_arm64.go
    │       │   │   ├── cpu_openbsd_arm64.go
    │       │   │   ├── cpu_openbsd_arm64.s
    │       │   │   ├── cpu_other_arm.go
    │       │   │   ├── cpu_other_arm64.go
    │       │   │   ├── cpu_other_mips64x.go
    │       │   │   ├── cpu_other_ppc64x.go
    │       │   │   ├── cpu_other_riscv64.go
    │       │   │   ├── cpu_other_x86.go
    │       │   │   ├── cpu_ppc64x.go
    │       │   │   ├── cpu_riscv64.go
    │       │   │   ├── cpu_s390x.go
    │       │   │   ├── cpu_s390x.s
    │       │   │   ├── cpu_wasm.go
    │       │   │   ├── cpu_x86.go
    │       │   │   ├── cpu_zos.go
    │       │   │   ├── cpu_zos_s390x.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── hwcap_linux.go
    │       │   │   ├── parse.go
    │       │   │   ├── proc_cpuinfo_linux.go
    │       │   │   ├── runtime_auxv.go
    │       │   │   ├── runtime_auxv_go121.go
    │       │   │   ├── syscall_aix_gccgo.go
    │       │   │   ├── syscall_aix_ppc64_gc.go
    │       │   │   └── syscall_darwin_x86_gc.go
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_bsd_ppc64.s
    │       │   │   ├── asm_bsd_riscv64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── auxv.go
    │       │   │   ├── auxv_unsupported.go
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── bpxsvc_zos.go
    │       │   │   ├── bpxsvc_zos.s
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_signed.go
    │       │   │   ├── ioctl_unsigned.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mmap_nomremap.go
    │       │   │   ├── mremap.go
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── sockcmsg_zos.go
    │       │   │   ├── symaddr_zos_s390x.s
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_freebsd_riscv64.go
    │       │   │   ├── syscall_hurd.go
    │       │   │   ├── syscall_hurd_386.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_libc.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_openbsd_ppc64.go
    │       │   │   ├── syscall_openbsd_riscv64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── vgetrandom_linux.go
    │       │   │   ├── vgetrandom_unsupported.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_freebsd_riscv64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_openbsd_ppc64.go
    │       │   │   ├── zerrors_openbsd_riscv64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsymaddr_zos_s390x.s
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_freebsd_riscv64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_386.s
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_amd64.s
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm.s
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_arm64.s
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_openbsd_mips64.s
    │       │   │   ├── zsyscall_openbsd_ppc64.go
    │       │   │   ├── zsyscall_openbsd_ppc64.s
    │       │   │   ├── zsyscall_openbsd_riscv64.go
    │       │   │   ├── zsyscall_openbsd_riscv64.s
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysctl_openbsd_ppc64.go
    │       │   │   ├── zsysctl_openbsd_riscv64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_freebsd_riscv64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_openbsd_ppc64.go
    │       │   │   ├── zsysnum_openbsd_riscv64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_freebsd_riscv64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_openbsd_ppc64.go
    │       │   │   ├── ztypes_openbsd_riscv64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       ├── term/
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── README.md
    │       │   ├── codereview.cfg
    │       │   ├── term.go
    │       │   ├── term_plan9.go
    │       │   ├── term_unix.go
    │       │   ├── term_unix_b
Copy disabled (too large) Download .txt
Showing preview only (17,209K chars total). Download the full file to get everything.
SYMBOL INDEX (192407 symbols across 6145 files)

FILE: api/cmd/api-cli/http.go
  function doHTTP (line 26) | func doHTTP(scheme, host string, timeout int, debug bool) (goa.Endpoint,...
  function httpUsageCommands (line 47) | func httpUsageCommands() string {
  function httpUsageExamples (line 51) | func httpUsageExamples() string {

FILE: api/cmd/api-cli/main.go
  function main (line 29) | func main() {
  function usage (line 108) | func usage() {
  function indent (line 129) | func indent(s string) string {

FILE: api/cmd/api/http.go
  function handleHTTPServer (line 52) | func handleHTTPServer(
  function errorHandler (line 211) | func errorHandler(logger *app.Logger) func(context.Context, http.Respons...

FILE: api/cmd/api/main.go
  function main (line 60) | func main() {

FILE: api/cmd/db/main.go
  function main (line 25) | func main() {

FILE: api/cmd/tkn-hub/main.go
  function main (line 24) | func main() {

FILE: api/gen/admin/client.go
  type Client (line 17) | type Client struct
    method UpdateAgent (line 37) | func (c *Client) UpdateAgent(ctx context.Context, p *UpdateAgentPayloa...
    method RefreshConfig (line 53) | func (c *Client) RefreshConfig(ctx context.Context, p *RefreshConfigPa...
  function NewClient (line 23) | func NewClient(updateAgent, refreshConfig goa.Endpoint) *Client {

FILE: api/gen/admin/endpoints.go
  type Endpoints (line 18) | type Endpoints struct
    method Use (line 34) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 24) | func NewEndpoints(s Service) *Endpoints {
  function NewUpdateAgentEndpoint (line 41) | func NewUpdateAgentEndpoint(s Service, authJWTFn security.AuthJWTFunc) g...
  function NewRefreshConfigEndpoint (line 60) | func NewRefreshConfigEndpoint(s Service, authJWTFn security.AuthJWTFunc)...

FILE: api/gen/admin/service.go
  type Service (line 18) | type Service interface
  type Auther (line 26) | type Auther interface
  constant APIName (line 32) | APIName = "hub"
  constant APIVersion (line 35) | APIVersion = "1.0"
  constant ServiceName (line 40) | ServiceName = "admin"
  type RefreshConfigPayload (line 49) | type RefreshConfigPayload struct
  type RefreshConfigResult (line 56) | type RefreshConfigResult struct
  type UpdateAgentPayload (line 63) | type UpdateAgentPayload struct
  type UpdateAgentResult (line 73) | type UpdateAgentResult struct
  function MakeInvalidPayload (line 79) | func MakeInvalidPayload(err error) *goa.ServiceError {
  function MakeInvalidToken (line 84) | func MakeInvalidToken(err error) *goa.ServiceError {
  function MakeInvalidScopes (line 89) | func MakeInvalidScopes(err error) *goa.ServiceError {
  function MakeInternalError (line 94) | func MakeInternalError(err error) *goa.ServiceError {

FILE: api/gen/catalog/client.go
  type Client (line 17) | type Client struct
    method Refresh (line 37) | func (c *Client) Refresh(ctx context.Context, p *RefreshPayload) (res ...
    method RefreshAll (line 51) | func (c *Client) RefreshAll(ctx context.Context, p *RefreshAllPayload)...
    method CatalogError (line 65) | func (c *Client) CatalogError(ctx context.Context, p *CatalogErrorPayl...
  function NewClient (line 24) | func NewClient(refresh, refreshAll, catalogError goa.Endpoint) *Client {

FILE: api/gen/catalog/endpoints.go
  type Endpoints (line 18) | type Endpoints struct
    method Use (line 36) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 25) | func NewEndpoints(s Service) *Endpoints {
  function NewRefreshEndpoint (line 44) | func NewRefreshEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.E...
  function NewRefreshAllEndpoint (line 68) | func NewRefreshAllEndpoint(s Service, authJWTFn security.AuthJWTFunc) go...
  function NewCatalogErrorEndpoint (line 87) | func NewCatalogErrorEndpoint(s Service, authJWTFn security.AuthJWTFunc) ...

FILE: api/gen/catalog/service.go
  type Service (line 19) | type Service interface
  type Auther (line 29) | type Auther interface
  constant APIName (line 35) | APIName = "hub"
  constant APIVersion (line 38) | APIVersion = "1.0"
  constant ServiceName (line 43) | ServiceName = "catalog"
  type CatalogErrorPayload (line 52) | type CatalogErrorPayload struct
  type CatalogErrorResult (line 61) | type CatalogErrorResult struct
  type CatalogErrors (line 67) | type CatalogErrors struct
  type Job (line 75) | type Job struct
  type RefreshAllPayload (line 86) | type RefreshAllPayload struct
  type RefreshPayload (line 92) | type RefreshPayload struct
  function MakeInternalError (line 100) | func MakeInternalError(err error) *goa.ServiceError {
  function MakeNotFound (line 105) | func MakeNotFound(err error) *goa.ServiceError {
  function NewJob (line 110) | func NewJob(vres *catalogviews.Job) *Job {
  function NewViewedJob (line 116) | func NewViewedJob(res *Job, view string) *catalogviews.Job {
  function newJob (line 122) | func newJob(vres *catalogviews.JobView) *Job {
  function newJobView (line 138) | func newJobView(res *Job) *catalogviews.JobView {

FILE: api/gen/catalog/views/view.go
  type Job (line 15) | type Job struct
  type JobView (line 23) | type JobView struct
  function ValidateJob (line 44) | func ValidateJob(result *Job) (err error) {
  function ValidateJobView (line 56) | func ValidateJobView(result *JobView) (err error) {

FILE: api/gen/category/client.go
  type Client (line 17) | type Client struct
    method List (line 32) | func (c *Client) List(ctx context.Context) (res *ListResult, err error) {
  function NewClient (line 22) | func NewClient(list goa.Endpoint) *Client {

FILE: api/gen/category/endpoints.go
  type Endpoints (line 17) | type Endpoints struct
    method Use (line 29) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 22) | func NewEndpoints(s Service) *Endpoints {
  function NewListEndpoint (line 35) | func NewListEndpoint(s Service) goa.Endpoint {

FILE: api/gen/category/service.go
  type Service (line 17) | type Service interface
  constant APIName (line 23) | APIName = "hub"
  constant APIVersion (line 26) | APIVersion = "1.0"
  constant ServiceName (line 31) | ServiceName = "category"
  type Category (line 38) | type Category struct
  type ListResult (line 46) | type ListResult struct
  function MakeInternalError (line 51) | func MakeInternalError(err error) *goa.ServiceError {

FILE: api/gen/http/admin/client/cli.go
  function BuildUpdateAgentPayload (line 20) | func BuildUpdateAgentPayload(adminUpdateAgentBody string, adminUpdateAge...
  function BuildRefreshConfigPayload (line 57) | func BuildRefreshConfigPayload(adminRefreshConfigToken string) (*admin.R...

FILE: api/gen/http/admin/client/client.go
  type Client (line 19) | type Client struct
    method UpdateAgent (line 64) | func (c *Client) UpdateAgent() goa.Endpoint {
    method RefreshConfig (line 88) | func (c *Client) RefreshConfig() goa.Endpoint {
  function NewClient (line 42) | func NewClient(

FILE: api/gen/http/admin/client/encode_decode.go
  method BuildUpdateAgentRequest (line 24) | func (c *Client) BuildUpdateAgentRequest(ctx context.Context, v any) (*h...
  function EncodeUpdateAgentRequest (line 39) | func EncodeUpdateAgentRequest(encoder func(*http.Request) goahttp.Encode...
  function DecodeUpdateAgentResponse (line 70) | func DecodeUpdateAgentResponse(decoder func(*http.Response) goahttp.Deco...
  method BuildRefreshConfigRequest (line 165) | func (c *Client) BuildRefreshConfigRequest(ctx context.Context, v any) (...
  function EncodeRefreshConfigRequest (line 180) | func EncodeRefreshConfigRequest(encoder func(*http.Request) goahttp.Enco...
  function DecodeRefreshConfigResponse (line 206) | func DecodeRefreshConfigResponse(decoder func(*http.Response) goahttp.De...

FILE: api/gen/http/admin/client/paths.go
  function UpdateAgentAdminPath (line 11) | func UpdateAgentAdminPath() string {
  function RefreshConfigAdminPath (line 16) | func RefreshConfigAdminPath() string {

FILE: api/gen/http/admin/client/types.go
  type UpdateAgentRequestBody (line 17) | type UpdateAgentRequestBody struct
  type UpdateAgentResponseBody (line 26) | type UpdateAgentResponseBody struct
  type RefreshConfigResponseBody (line 33) | type RefreshConfigResponseBody struct
  type UpdateAgentInvalidPayloadResponseBody (line 40) | type UpdateAgentInvalidPayloadResponseBody struct
  type UpdateAgentInvalidTokenResponseBody (line 58) | type UpdateAgentInvalidTokenResponseBody struct
  type UpdateAgentInvalidScopesResponseBody (line 76) | type UpdateAgentInvalidScopesResponseBody struct
  type UpdateAgentInternalErrorResponseBody (line 94) | type UpdateAgentInternalErrorResponseBody struct
  type RefreshConfigInvalidTokenResponseBody (line 112) | type RefreshConfigInvalidTokenResponseBody struct
  type RefreshConfigInvalidScopesResponseBody (line 130) | type RefreshConfigInvalidScopesResponseBody struct
  type RefreshConfigInternalErrorResponseBody (line 148) | type RefreshConfigInternalErrorResponseBody struct
  function NewUpdateAgentRequestBody (line 166) | func NewUpdateAgentRequestBody(p *admin.UpdateAgentPayload) *UpdateAgent...
  function NewUpdateAgentResultOK (line 183) | func NewUpdateAgentResultOK(body *UpdateAgentResponseBody) *admin.Update...
  function NewUpdateAgentInvalidPayload (line 193) | func NewUpdateAgentInvalidPayload(body *UpdateAgentInvalidPayloadRespons...
  function NewUpdateAgentInvalidToken (line 208) | func NewUpdateAgentInvalidToken(body *UpdateAgentInvalidTokenResponseBod...
  function NewUpdateAgentInvalidScopes (line 223) | func NewUpdateAgentInvalidScopes(body *UpdateAgentInvalidScopesResponseB...
  function NewUpdateAgentInternalError (line 238) | func NewUpdateAgentInternalError(body *UpdateAgentInternalErrorResponseB...
  function NewRefreshConfigResultOK (line 253) | func NewRefreshConfigResultOK(body *RefreshConfigResponseBody) *admin.Re...
  function NewRefreshConfigInvalidToken (line 263) | func NewRefreshConfigInvalidToken(body *RefreshConfigInvalidTokenRespons...
  function NewRefreshConfigInvalidScopes (line 278) | func NewRefreshConfigInvalidScopes(body *RefreshConfigInvalidScopesRespo...
  function NewRefreshConfigInternalError (line 293) | func NewRefreshConfigInternalError(body *RefreshConfigInternalErrorRespo...
  function ValidateUpdateAgentResponseBody (line 308) | func ValidateUpdateAgentResponseBody(body *UpdateAgentResponseBody) (err...
  function ValidateRefreshConfigResponseBody (line 317) | func ValidateRefreshConfigResponseBody(body *RefreshConfigResponseBody) ...
  function ValidateUpdateAgentInvalidPayloadResponseBody (line 326) | func ValidateUpdateAgentInvalidPayloadResponseBody(body *UpdateAgentInva...
  function ValidateUpdateAgentInvalidTokenResponseBody (line 350) | func ValidateUpdateAgentInvalidTokenResponseBody(body *UpdateAgentInvali...
  function ValidateUpdateAgentInvalidScopesResponseBody (line 374) | func ValidateUpdateAgentInvalidScopesResponseBody(body *UpdateAgentInval...
  function ValidateUpdateAgentInternalErrorResponseBody (line 398) | func ValidateUpdateAgentInternalErrorResponseBody(body *UpdateAgentInter...
  function ValidateRefreshConfigInvalidTokenResponseBody (line 422) | func ValidateRefreshConfigInvalidTokenResponseBody(body *RefreshConfigIn...
  function ValidateRefreshConfigInvalidScopesResponseBody (line 446) | func ValidateRefreshConfigInvalidScopesResponseBody(body *RefreshConfigI...
  function ValidateRefreshConfigInternalErrorResponseBody (line 470) | func ValidateRefreshConfigInternalErrorResponseBody(body *RefreshConfigI...

FILE: api/gen/http/admin/server/encode_decode.go
  function EncodeUpdateAgentResponse (line 24) | func EncodeUpdateAgentResponse(encoder func(context.Context, http.Respon...
  function DecodeUpdateAgentRequest (line 36) | func DecodeUpdateAgentRequest(mux goahttp.Muxer, decoder func(*http.Requ...
  function EncodeUpdateAgentError (line 81) | func EncodeUpdateAgentError(encoder func(context.Context, http.ResponseW...
  function EncodeRefreshConfigResponse (line 149) | func EncodeRefreshConfigResponse(encoder func(context.Context, http.Resp...
  function DecodeRefreshConfigRequest (line 161) | func DecodeRefreshConfigRequest(mux goahttp.Muxer, decoder func(*http.Re...
  function EncodeRefreshConfigError (line 187) | func EncodeRefreshConfigError(encoder func(context.Context, http.Respons...

FILE: api/gen/http/admin/server/paths.go
  function UpdateAgentAdminPath (line 11) | func UpdateAgentAdminPath() string {
  function RefreshConfigAdminPath (line 16) | func RefreshConfigAdminPath() string {

FILE: api/gen/http/admin/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 67) | func (s *Server) Service() string { return "admin" }
    method Use (line 70) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 77) | func (s *Server) MethodNames() []string { return admin.MethodNames[:] }
    method Mount (line 87) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 29) | type MountPoint struct
  function New (line 45) | func New(
  function Mount (line 80) | func Mount(mux goahttp.Muxer, h *Server) {
  function MountUpdateAgentHandler (line 93) | func MountUpdateAgentHandler(mux goahttp.Muxer, h http.Handler) {
  function NewUpdateAgentHandler (line 105) | func NewUpdateAgentHandler(
  function MountRefreshConfigHandler (line 144) | func MountRefreshConfigHandler(mux goahttp.Muxer, h http.Handler) {
  function NewRefreshConfigHandler (line 156) | func NewRefreshConfigHandler(
  function MountCORSHandler (line 195) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 202) | func NewCORSHandler() http.Handler {
  function HandleAdminOrigin (line 210) | func HandleAdminOrigin(h http.Handler) http.Handler {

FILE: api/gen/http/admin/server/types.go
  type UpdateAgentRequestBody (line 17) | type UpdateAgentRequestBody struct
  type UpdateAgentResponseBody (line 26) | type UpdateAgentResponseBody struct
  type RefreshConfigResponseBody (line 33) | type RefreshConfigResponseBody struct
  type UpdateAgentInvalidPayloadResponseBody (line 40) | type UpdateAgentInvalidPayloadResponseBody struct
  type UpdateAgentInvalidTokenResponseBody (line 58) | type UpdateAgentInvalidTokenResponseBody struct
  type UpdateAgentInvalidScopesResponseBody (line 76) | type UpdateAgentInvalidScopesResponseBody struct
  type UpdateAgentInternalErrorResponseBody (line 94) | type UpdateAgentInternalErrorResponseBody struct
  type RefreshConfigInvalidTokenResponseBody (line 112) | type RefreshConfigInvalidTokenResponseBody struct
  type RefreshConfigInvalidScopesResponseBody (line 130) | type RefreshConfigInvalidScopesResponseBody struct
  type RefreshConfigInternalErrorResponseBody (line 148) | type RefreshConfigInternalErrorResponseBody struct
  function NewUpdateAgentResponseBody (line 166) | func NewUpdateAgentResponseBody(res *admin.UpdateAgentResult) *UpdateAge...
  function NewRefreshConfigResponseBody (line 175) | func NewRefreshConfigResponseBody(res *admin.RefreshConfigResult) *Refre...
  function NewUpdateAgentInvalidPayloadResponseBody (line 184) | func NewUpdateAgentInvalidPayloadResponseBody(res *goa.ServiceError) *Up...
  function NewUpdateAgentInvalidTokenResponseBody (line 198) | func NewUpdateAgentInvalidTokenResponseBody(res *goa.ServiceError) *Upda...
  function NewUpdateAgentInvalidScopesResponseBody (line 212) | func NewUpdateAgentInvalidScopesResponseBody(res *goa.ServiceError) *Upd...
  function NewUpdateAgentInternalErrorResponseBody (line 226) | func NewUpdateAgentInternalErrorResponseBody(res *goa.ServiceError) *Upd...
  function NewRefreshConfigInvalidTokenResponseBody (line 240) | func NewRefreshConfigInvalidTokenResponseBody(res *goa.ServiceError) *Re...
  function NewRefreshConfigInvalidScopesResponseBody (line 254) | func NewRefreshConfigInvalidScopesResponseBody(res *goa.ServiceError) *R...
  function NewRefreshConfigInternalErrorResponseBody (line 268) | func NewRefreshConfigInternalErrorResponseBody(res *goa.ServiceError) *R...
  function NewUpdateAgentPayload (line 281) | func NewUpdateAgentPayload(body *UpdateAgentRequestBody, token string) *...
  function NewRefreshConfigPayload (line 296) | func NewRefreshConfigPayload(token string) *admin.RefreshConfigPayload {
  function ValidateUpdateAgentRequestBody (line 305) | func ValidateUpdateAgentRequestBody(body *UpdateAgentRequestBody) (err e...

FILE: api/gen/http/catalog/client/cli.go
  function BuildRefreshPayload (line 16) | func BuildRefreshPayload(catalogRefreshCatalogName string, catalogRefres...
  function BuildRefreshAllPayload (line 34) | func BuildRefreshAllPayload(catalogRefreshAllToken string) (*catalog.Ref...
  function BuildCatalogErrorPayload (line 47) | func BuildCatalogErrorPayload(catalogCatalogErrorCatalogName string, cat...

FILE: api/gen/http/catalog/client/client.go
  type Client (line 19) | type Client struct
    method Refresh (line 69) | func (c *Client) Refresh() goa.Endpoint {
    method RefreshAll (line 93) | func (c *Client) RefreshAll() goa.Endpoint {
    method CatalogError (line 117) | func (c *Client) CatalogError() goa.Endpoint {
  function NewClient (line 46) | func NewClient(

FILE: api/gen/http/catalog/client/encode_decode.go
  method BuildRefreshRequest (line 26) | func (c *Client) BuildRefreshRequest(ctx context.Context, v any) (*http....
  function EncodeRefreshRequest (line 51) | func EncodeRefreshRequest(encoder func(*http.Request) goahttp.Encoder) f...
  function DecodeRefreshResponse (line 76) | func DecodeRefreshResponse(decoder func(*http.Response) goahttp.Decoder,...
  method BuildRefreshAllRequest (line 145) | func (c *Client) BuildRefreshAllRequest(ctx context.Context, v any) (*ht...
  function EncodeRefreshAllRequest (line 160) | func EncodeRefreshAllRequest(encoder func(*http.Request) goahttp.Encoder...
  function DecodeRefreshAllResponse (line 184) | func DecodeRefreshAllResponse(decoder func(*http.Response) goahttp.Decod...
  method BuildCatalogErrorRequest (line 243) | func (c *Client) BuildCatalogErrorRequest(ctx context.Context, v any) (*...
  function EncodeCatalogErrorRequest (line 268) | func EncodeCatalogErrorRequest(encoder func(*http.Request) goahttp.Encod...
  function DecodeCatalogErrorResponse (line 292) | func DecodeCatalogErrorResponse(decoder func(*http.Response) goahttp.Dec...
  function unmarshalJobResponseToCatalogJob (line 345) | func unmarshalJobResponseToCatalogJob(v *JobResponse) *catalog.Job {
  function unmarshalCatalogErrorsResponseBodyToCatalogCatalogErrors (line 357) | func unmarshalCatalogErrorsResponseBodyToCatalogCatalogErrors(v *Catalog...

FILE: api/gen/http/catalog/client/paths.go
  function RefreshCatalogPath (line 15) | func RefreshCatalogPath(catalogName string) string {
  function RefreshAllCatalogPath (line 20) | func RefreshAllCatalogPath() string {
  function CatalogErrorCatalogPath (line 25) | func CatalogErrorCatalogPath(catalogName string) string {

FILE: api/gen/http/catalog/client/types.go
  type RefreshResponseBody (line 18) | type RefreshResponseBody struct
  type RefreshAllResponseBody (line 29) | type RefreshAllResponseBody
  type CatalogErrorResponseBody (line 33) | type CatalogErrorResponseBody struct
  type RefreshNotFoundResponseBody (line 40) | type RefreshNotFoundResponseBody struct
  type RefreshInternalErrorResponseBody (line 58) | type RefreshInternalErrorResponseBody struct
  type RefreshAllInternalErrorResponseBody (line 76) | type RefreshAllInternalErrorResponseBody struct
  type CatalogErrorInternalErrorResponseBody (line 94) | type CatalogErrorInternalErrorResponseBody struct
  type JobResponse (line 111) | type JobResponse struct
  type CatalogErrorsResponseBody (line 121) | type CatalogErrorsResponseBody struct
  function NewRefreshJobOK (line 130) | func NewRefreshJobOK(body *RefreshResponseBody) *catalogviews.JobView {
  function NewRefreshNotFound (line 141) | func NewRefreshNotFound(body *RefreshNotFoundResponseBody) *goa.ServiceE...
  function NewRefreshInternalError (line 156) | func NewRefreshInternalError(body *RefreshInternalErrorResponseBody) *go...
  function NewRefreshAllJobOK (line 171) | func NewRefreshAllJobOK(body []*JobResponse) []*catalog.Job {
  function NewRefreshAllInternalError (line 182) | func NewRefreshAllInternalError(body *RefreshAllInternalErrorResponseBod...
  function NewCatalogErrorResultOK (line 197) | func NewCatalogErrorResultOK(body *CatalogErrorResponseBody) *catalog.Ca...
  function NewCatalogErrorInternalError (line 209) | func NewCatalogErrorInternalError(body *CatalogErrorInternalErrorRespons...
  function ValidateCatalogErrorResponseBody (line 224) | func ValidateCatalogErrorResponseBody(body *CatalogErrorResponseBody) (e...
  function ValidateRefreshNotFoundResponseBody (line 240) | func ValidateRefreshNotFoundResponseBody(body *RefreshNotFoundResponseBo...
  function ValidateRefreshInternalErrorResponseBody (line 264) | func ValidateRefreshInternalErrorResponseBody(body *RefreshInternalError...
  function ValidateRefreshAllInternalErrorResponseBody (line 288) | func ValidateRefreshAllInternalErrorResponseBody(body *RefreshAllInterna...
  function ValidateCatalogErrorInternalErrorResponseBody (line 312) | func ValidateCatalogErrorInternalErrorResponseBody(body *CatalogErrorInt...
  function ValidateJobResponse (line 335) | func ValidateJobResponse(body *JobResponse) (err error) {
  function ValidateCatalogErrorsResponseBody (line 350) | func ValidateCatalogErrorsResponseBody(body *CatalogErrorsResponseBody) ...

FILE: api/gen/http/catalog/server/encode_decode.go
  function EncodeRefreshResponse (line 24) | func EncodeRefreshResponse(encoder func(context.Context, http.ResponseWr...
  function DecodeRefreshRequest (line 36) | func DecodeRefreshRequest(mux goahttp.Muxer, decoder func(*http.Request)...
  function EncodeRefreshError (line 66) | func EncodeRefreshError(encoder func(context.Context, http.ResponseWrite...
  function EncodeRefreshAllResponse (line 108) | func EncodeRefreshAllResponse(encoder func(context.Context, http.Respons...
  function DecodeRefreshAllRequest (line 120) | func DecodeRefreshAllRequest(mux goahttp.Muxer, decoder func(*http.Reque...
  function EncodeRefreshAllError (line 146) | func EncodeRefreshAllError(encoder func(context.Context, http.ResponseWr...
  function EncodeCatalogErrorResponse (line 175) | func EncodeCatalogErrorResponse(encoder func(context.Context, http.Respo...
  function DecodeCatalogErrorRequest (line 187) | func DecodeCatalogErrorRequest(mux goahttp.Muxer, decoder func(*http.Req...
  function EncodeCatalogErrorError (line 217) | func EncodeCatalogErrorError(encoder func(context.Context, http.Response...
  function marshalCatalogJobToJobResponse (line 246) | func marshalCatalogJobToJobResponse(v *catalog.Job) *JobResponse {
  function marshalCatalogCatalogErrorsToCatalogErrorsResponseBody (line 258) | func marshalCatalogCatalogErrorsToCatalogErrorsResponseBody(v *catalog.C...

FILE: api/gen/http/catalog/server/paths.go
  function RefreshCatalogPath (line 15) | func RefreshCatalogPath(catalogName string) string {
  function RefreshAllCatalogPath (line 20) | func RefreshAllCatalogPath() string {
  function CatalogErrorCatalogPath (line 25) | func CatalogErrorCatalogPath(catalogName string) string {

FILE: api/gen/http/catalog/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 71) | func (s *Server) Service() string { return "catalog" }
    method Use (line 74) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 82) | func (s *Server) MethodNames() []string { return catalog.MethodNames[:] }
    method Mount (line 93) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 30) | type MountPoint struct
  function New (line 46) | func New(
  function Mount (line 85) | func Mount(mux goahttp.Muxer, h *Server) {
  function MountRefreshHandler (line 99) | func MountRefreshHandler(mux goahttp.Muxer, h http.Handler) {
  function NewRefreshHandler (line 111) | func NewRefreshHandler(
  function MountRefreshAllHandler (line 150) | func MountRefreshAllHandler(mux goahttp.Muxer, h http.Handler) {
  function NewRefreshAllHandler (line 162) | func NewRefreshAllHandler(
  function MountCatalogErrorHandler (line 201) | func MountCatalogErrorHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCatalogErrorHandler (line 213) | func NewCatalogErrorHandler(
  function MountCORSHandler (line 252) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 260) | func NewCORSHandler() http.Handler {
  function HandleCatalogOrigin (line 268) | func HandleCatalogOrigin(h http.Handler) http.Handler {

FILE: api/gen/http/catalog/server/types.go
  type RefreshResponseBody (line 18) | type RefreshResponseBody struct
  type RefreshAllResponseBody (line 29) | type RefreshAllResponseBody
  type CatalogErrorResponseBody (line 33) | type CatalogErrorResponseBody struct
  type RefreshNotFoundResponseBody (line 40) | type RefreshNotFoundResponseBody struct
  type RefreshInternalErrorResponseBody (line 58) | type RefreshInternalErrorResponseBody struct
  type RefreshAllInternalErrorResponseBody (line 76) | type RefreshAllInternalErrorResponseBody struct
  type CatalogErrorInternalErrorResponseBody (line 94) | type CatalogErrorInternalErrorResponseBody struct
  type JobResponse (line 111) | type JobResponse struct
  type CatalogErrorsResponseBody (line 121) | type CatalogErrorsResponseBody struct
  function NewRefreshResponseBody (line 130) | func NewRefreshResponseBody(res *catalogviews.JobView) *RefreshResponseB...
  function NewRefreshAllResponseBody (line 141) | func NewRefreshAllResponseBody(res []*catalog.Job) RefreshAllResponseBody {
  function NewCatalogErrorResponseBody (line 151) | func NewCatalogErrorResponseBody(res *catalog.CatalogErrorResult) *Catal...
  function NewRefreshNotFoundResponseBody (line 166) | func NewRefreshNotFoundResponseBody(res *goa.ServiceError) *RefreshNotFo...
  function NewRefreshInternalErrorResponseBody (line 180) | func NewRefreshInternalErrorResponseBody(res *goa.ServiceError) *Refresh...
  function NewRefreshAllInternalErrorResponseBody (line 194) | func NewRefreshAllInternalErrorResponseBody(res *goa.ServiceError) *Refr...
  function NewCatalogErrorInternalErrorResponseBody (line 208) | func NewCatalogErrorInternalErrorResponseBody(res *goa.ServiceError) *Ca...
  function NewRefreshPayload (line 221) | func NewRefreshPayload(catalogName string, token string) *catalog.Refres...
  function NewRefreshAllPayload (line 230) | func NewRefreshAllPayload(token string) *catalog.RefreshAllPayload {
  function NewCatalogErrorPayload (line 239) | func NewCatalogErrorPayload(catalogName string, token string) *catalog.C...

FILE: api/gen/http/category/client/client.go
  type Client (line 19) | type Client struct
    method List (line 58) | func (c *Client) List() goa.Endpoint {
  function NewClient (line 37) | func NewClient(

FILE: api/gen/http/category/client/encode_decode.go
  method BuildListRequest (line 23) | func (c *Client) BuildListRequest(ctx context.Context, v any) (*http.Req...
  function DecodeListResponse (line 42) | func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, re...
  function unmarshalCategoryResponseBodyToCategoryCategory (line 95) | func unmarshalCategoryResponseBodyToCategoryCategory(v *CategoryResponse...

FILE: api/gen/http/category/client/paths.go
  function ListCategoryPath (line 11) | func ListCategoryPath() string {
  function ListCategoryPath2 (line 16) | func ListCategoryPath2() string {

FILE: api/gen/http/category/client/types.go
  type ListResponseBody (line 17) | type ListResponseBody struct
  type ListInternalErrorResponseBody (line 23) | type ListInternalErrorResponseBody struct
  type CategoryResponseBody (line 40) | type CategoryResponseBody struct
  function NewListResultOK (line 49) | func NewListResultOK(body *ListResponseBody) *category.ListResult {
  function NewListInternalError (line 63) | func NewListInternalError(body *ListInternalErrorResponseBody) *goa.Serv...
  function ValidateListResponseBody (line 77) | func ValidateListResponseBody(body *ListResponseBody) (err error) {
  function ValidateListInternalErrorResponseBody (line 90) | func ValidateListInternalErrorResponseBody(body *ListInternalErrorRespon...
  function ValidateCategoryResponseBody (line 114) | func ValidateCategoryResponseBody(body *CategoryResponseBody) (err error) {

FILE: api/gen/http/category/server/encode_decode.go
  function EncodeListResponse (line 22) | func EncodeListResponse(encoder func(context.Context, http.ResponseWrite...
  function EncodeListError (line 34) | func EncodeListError(encoder func(context.Context, http.ResponseWriter) ...
  function marshalCategoryCategoryToCategoryResponseBody (line 63) | func marshalCategoryCategoryToCategoryResponseBody(v *category.Category)...

FILE: api/gen/http/category/server/paths.go
  function ListCategoryPath (line 11) | func ListCategoryPath() string {
  function ListCategoryPath2 (line 16) | func ListCategoryPath2() string {

FILE: api/gen/http/category/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 65) | func (s *Server) Service() string { return "category" }
    method Use (line 68) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 74) | func (s *Server) MethodNames() []string { return category.MethodNames[...
    method Mount (line 83) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 28) | type MountPoint struct
  function New (line 44) | func New(
  function Mount (line 77) | func Mount(mux goahttp.Muxer, h *Server) {
  function MountListHandler (line 89) | func MountListHandler(mux goahttp.Muxer, h http.Handler) {
  function NewListHandler (line 102) | func NewListHandler(
  function MountCORSHandler (line 134) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 141) | func NewCORSHandler() http.Handler {
  function HandleCategoryOrigin (line 149) | func HandleCategoryOrigin(h http.Handler) http.Handler {

FILE: api/gen/http/category/server/types.go
  type ListResponseBody (line 17) | type ListResponseBody struct
  type ListInternalErrorResponseBody (line 23) | type ListInternalErrorResponseBody struct
  type CategoryResponseBody (line 40) | type CategoryResponseBody struct
  function NewListResponseBody (line 49) | func NewListResponseBody(res *category.ListResult) *ListResponseBody {
  function NewListInternalErrorResponseBody (line 62) | func NewListInternalErrorResponseBody(res *goa.ServiceError) *ListIntern...

FILE: api/gen/http/cli/hub/cli.go
  function UsageCommands (line 29) | func UsageCommands() string {
  function UsageExamples (line 40) | func UsageExamples() string {
  function ParseEndpoint (line 72) | func ParseEndpoint(
  function adminUsage (line 397) | func adminUsage() {
  function adminUpdateAgentUsage (line 410) | func adminUpdateAgentUsage() {
  function adminRefreshConfigUsage (line 428) | func adminRefreshConfigUsage() {
  function catalogUsage (line 440) | func catalogUsage() {
  function catalogRefreshUsage (line 454) | func catalogRefreshUsage() {
  function catalogRefreshAllUsage (line 466) | func catalogRefreshAllUsage() {
  function catalogCatalogErrorUsage (line 477) | func catalogCatalogErrorUsage() {
  function categoryUsage (line 490) | func categoryUsage() {
  function categoryListUsage (line 502) | func categoryListUsage() {
  function ratingUsage (line 513) | func ratingUsage() {
  function ratingGetUsage (line 526) | func ratingGetUsage() {
  function ratingUpdateUsage (line 538) | func ratingUpdateUsage() {
  function resourceUsage (line 554) | func resourceUsage() {
  function resourceQueryUsage (line 572) | func resourceQueryUsage() {
  function resourceListUsage (line 605) | func resourceListUsage() {
  function resourceVersionsByIDUsage (line 615) | func resourceVersionsByIDUsage() {
  function resourceByCatalogKindNameVersionUsage (line 626) | func resourceByCatalogKindNameVersionUsage() {
  function resourceByVersionIDUsage (line 640) | func resourceByVersionIDUsage() {
  function resourceByCatalogKindNameUsage (line 651) | func resourceByCatalogKindNameUsage() {
  function resourceByIDUsage (line 665) | func resourceByIDUsage() {
  function statusUsage (line 677) | func statusUsage() {
  function statusStatusUsage (line 689) | func statusStatusUsage() {

FILE: api/gen/http/rating/client/cli.go
  function BuildGetPayload (line 21) | func BuildGetPayload(ratingGetID string, ratingGetToken string) (*rating...
  function BuildUpdatePayload (line 45) | func BuildUpdatePayload(ratingUpdateBody string, ratingUpdateID string, ...

FILE: api/gen/http/rating/client/client.go
  type Client (line 19) | type Client struct
    method Get (line 62) | func (c *Client) Get() goa.Endpoint {
    method Update (line 86) | func (c *Client) Update() goa.Endpoint {
  function NewClient (line 40) | func NewClient(

FILE: api/gen/http/rating/client/encode_decode.go
  method BuildGetRequest (line 24) | func (c *Client) BuildGetRequest(ctx context.Context, v any) (*http.Requ...
  function EncodeGetRequest (line 49) | func EncodeGetRequest(encoder func(*http.Request) goahttp.Encoder) func(...
  function DecodeGetResponse (line 76) | func DecodeGetResponse(decoder func(*http.Response) goahttp.Decoder, res...
  method BuildUpdateRequest (line 171) | func (c *Client) BuildUpdateRequest(ctx context.Context, v any) (*http.R...
  function EncodeUpdateRequest (line 196) | func EncodeUpdateRequest(encoder func(*http.Request) goahttp.Encoder) fu...
  function DecodeUpdateResponse (line 227) | func DecodeUpdateResponse(decoder func(*http.Response) goahttp.Decoder, ...

FILE: api/gen/http/rating/client/paths.go
  function GetRatingPath (line 15) | func GetRatingPath(id uint) string {
  function UpdateRatingPath (line 20) | func UpdateRatingPath(id uint) string {

FILE: api/gen/http/rating/client/types.go
  type UpdateRequestBody (line 17) | type UpdateRequestBody struct
  type GetResponseBody (line 24) | type GetResponseBody struct
  type GetNotFoundResponseBody (line 31) | type GetNotFoundResponseBody struct
  type GetInternalErrorResponseBody (line 49) | type GetInternalErrorResponseBody struct
  type GetInvalidTokenResponseBody (line 67) | type GetInvalidTokenResponseBody struct
  type GetInvalidScopesResponseBody (line 85) | type GetInvalidScopesResponseBody struct
  type UpdateNotFoundResponseBody (line 103) | type UpdateNotFoundResponseBody struct
  type UpdateInternalErrorResponseBody (line 121) | type UpdateInternalErrorResponseBody struct
  type UpdateInvalidTokenResponseBody (line 139) | type UpdateInvalidTokenResponseBody struct
  type UpdateInvalidScopesResponseBody (line 157) | type UpdateInvalidScopesResponseBody struct
  function NewUpdateRequestBody (line 175) | func NewUpdateRequestBody(p *rating.UpdatePayload) *UpdateRequestBody {
  function NewGetResultOK (line 184) | func NewGetResultOK(body *GetResponseBody) *rating.GetResult {
  function NewGetNotFound (line 193) | func NewGetNotFound(body *GetNotFoundResponseBody) *goa.ServiceError {
  function NewGetInternalError (line 208) | func NewGetInternalError(body *GetInternalErrorResponseBody) *goa.Servic...
  function NewGetInvalidToken (line 222) | func NewGetInvalidToken(body *GetInvalidTokenResponseBody) *goa.ServiceE...
  function NewGetInvalidScopes (line 237) | func NewGetInvalidScopes(body *GetInvalidScopesResponseBody) *goa.Servic...
  function NewUpdateNotFound (line 251) | func NewUpdateNotFound(body *UpdateNotFoundResponseBody) *goa.ServiceErr...
  function NewUpdateInternalError (line 266) | func NewUpdateInternalError(body *UpdateInternalErrorResponseBody) *goa....
  function NewUpdateInvalidToken (line 281) | func NewUpdateInvalidToken(body *UpdateInvalidTokenResponseBody) *goa.Se...
  function NewUpdateInvalidScopes (line 296) | func NewUpdateInvalidScopes(body *UpdateInvalidScopesResponseBody) *goa....
  function ValidateGetResponseBody (line 310) | func ValidateGetResponseBody(body *GetResponseBody) (err error) {
  function ValidateGetNotFoundResponseBody (line 319) | func ValidateGetNotFoundResponseBody(body *GetNotFoundResponseBody) (err...
  function ValidateGetInternalErrorResponseBody (line 343) | func ValidateGetInternalErrorResponseBody(body *GetInternalErrorResponse...
  function ValidateGetInvalidTokenResponseBody (line 367) | func ValidateGetInvalidTokenResponseBody(body *GetInvalidTokenResponseBo...
  function ValidateGetInvalidScopesResponseBody (line 391) | func ValidateGetInvalidScopesResponseBody(body *GetInvalidScopesResponse...
  function ValidateUpdateNotFoundResponseBody (line 415) | func ValidateUpdateNotFoundResponseBody(body *UpdateNotFoundResponseBody...
  function ValidateUpdateInternalErrorResponseBody (line 439) | func ValidateUpdateInternalErrorResponseBody(body *UpdateInternalErrorRe...
  function ValidateUpdateInvalidTokenResponseBody (line 463) | func ValidateUpdateInvalidTokenResponseBody(body *UpdateInvalidTokenResp...
  function ValidateUpdateInvalidScopesResponseBody (line 487) | func ValidateUpdateInvalidScopesResponseBody(body *UpdateInvalidScopesRe...

FILE: api/gen/http/rating/server/encode_decode.go
  function EncodeGetResponse (line 25) | func EncodeGetResponse(encoder func(context.Context, http.ResponseWriter...
  function DecodeGetRequest (line 37) | func DecodeGetRequest(mux goahttp.Muxer, decoder func(*http.Request) goa...
  function EncodeGetError (line 74) | func EncodeGetError(encoder func(context.Context, http.ResponseWriter) g...
  function EncodeUpdateResponse (line 142) | func EncodeUpdateResponse(encoder func(context.Context, http.ResponseWri...
  function DecodeUpdateRequest (line 151) | func DecodeUpdateRequest(mux goahttp.Muxer, decoder func(*http.Request) ...
  function EncodeUpdateError (line 207) | func EncodeUpdateError(encoder func(context.Context, http.ResponseWriter...

FILE: api/gen/http/rating/server/paths.go
  function GetRatingPath (line 15) | func GetRatingPath(id uint) string {
  function UpdateRatingPath (line 20) | func UpdateRatingPath(id uint) string {

FILE: api/gen/http/rating/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 66) | func (s *Server) Service() string { return "rating" }
    method Use (line 69) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 76) | func (s *Server) MethodNames() []string { return rating.MethodNames[:] }
    method Mount (line 86) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 29) | type MountPoint struct
  function New (line 45) | func New(
  function Mount (line 79) | func Mount(mux goahttp.Muxer, h *Server) {
  function MountGetHandler (line 92) | func MountGetHandler(mux goahttp.Muxer, h http.Handler) {
  function NewGetHandler (line 104) | func NewGetHandler(
  function MountUpdateHandler (line 143) | func MountUpdateHandler(mux goahttp.Muxer, h http.Handler) {
  function NewUpdateHandler (line 155) | func NewUpdateHandler(
  function MountCORSHandler (line 194) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 200) | func NewCORSHandler() http.Handler {
  function HandleRatingOrigin (line 208) | func HandleRatingOrigin(h http.Handler) http.Handler {

FILE: api/gen/http/rating/server/types.go
  type UpdateRequestBody (line 17) | type UpdateRequestBody struct
  type GetResponseBody (line 24) | type GetResponseBody struct
  type GetNotFoundResponseBody (line 31) | type GetNotFoundResponseBody struct
  type GetInternalErrorResponseBody (line 49) | type GetInternalErrorResponseBody struct
  type GetInvalidTokenResponseBody (line 67) | type GetInvalidTokenResponseBody struct
  type GetInvalidScopesResponseBody (line 85) | type GetInvalidScopesResponseBody struct
  type UpdateNotFoundResponseBody (line 103) | type UpdateNotFoundResponseBody struct
  type UpdateInternalErrorResponseBody (line 121) | type UpdateInternalErrorResponseBody struct
  type UpdateInvalidTokenResponseBody (line 139) | type UpdateInvalidTokenResponseBody struct
  type UpdateInvalidScopesResponseBody (line 157) | type UpdateInvalidScopesResponseBody struct
  function NewGetResponseBody (line 175) | func NewGetResponseBody(res *rating.GetResult) *GetResponseBody {
  function NewGetNotFoundResponseBody (line 184) | func NewGetNotFoundResponseBody(res *goa.ServiceError) *GetNotFoundRespo...
  function NewGetInternalErrorResponseBody (line 198) | func NewGetInternalErrorResponseBody(res *goa.ServiceError) *GetInternal...
  function NewGetInvalidTokenResponseBody (line 212) | func NewGetInvalidTokenResponseBody(res *goa.ServiceError) *GetInvalidTo...
  function NewGetInvalidScopesResponseBody (line 226) | func NewGetInvalidScopesResponseBody(res *goa.ServiceError) *GetInvalidS...
  function NewUpdateNotFoundResponseBody (line 240) | func NewUpdateNotFoundResponseBody(res *goa.ServiceError) *UpdateNotFoun...
  function NewUpdateInternalErrorResponseBody (line 254) | func NewUpdateInternalErrorResponseBody(res *goa.ServiceError) *UpdateIn...
  function NewUpdateInvalidTokenResponseBody (line 268) | func NewUpdateInvalidTokenResponseBody(res *goa.ServiceError) *UpdateInv...
  function NewUpdateInvalidScopesResponseBody (line 282) | func NewUpdateInvalidScopesResponseBody(res *goa.ServiceError) *UpdateIn...
  function NewGetPayload (line 295) | func NewGetPayload(id uint, token string) *rating.GetPayload {
  function NewUpdatePayload (line 304) | func NewUpdatePayload(body *UpdateRequestBody, id uint, token string) *r...
  function ValidateUpdateRequestBody (line 315) | func ValidateUpdateRequestBody(body *UpdateRequestBody) (err error) {

FILE: api/gen/http/resource/client/cli.go
  function BuildQueryPayload (line 21) | func BuildQueryPayload(resourceQueryName string, resourceQueryCatalogs s...
  function BuildVersionsByIDPayload (line 112) | func BuildVersionsByIDPayload(resourceVersionsByIDID string) (*resource....
  function BuildByCatalogKindNameVersionPayload (line 131) | func BuildByCatalogKindNameVersionPayload(resourceByCatalogKindNameVersi...
  function BuildByVersionIDPayload (line 166) | func BuildByVersionIDPayload(resourceByVersionIDVersionID string) (*reso...
  function BuildByCatalogKindNamePayload (line 185) | func BuildByCatalogKindNamePayload(resourceByCatalogKindNameCatalog stri...
  function BuildByIDPayload (line 226) | func BuildByIDPayload(resourceByIDID string) (*resource.ByIDPayload, err...

FILE: api/gen/http/resource/client/client.go
  type Client (line 19) | type Client struct
    method Query (line 86) | func (c *Client) Query() goa.Endpoint {
    method List (line 110) | func (c *Client) List() goa.Endpoint {
    method VersionsByID (line 129) | func (c *Client) VersionsByID() goa.Endpoint {
    method ByCatalogKindNameVersion (line 148) | func (c *Client) ByCatalogKindNameVersion() goa.Endpoint {
    method ByVersionID (line 167) | func (c *Client) ByVersionID() goa.Endpoint {
    method ByCatalogKindName (line 186) | func (c *Client) ByCatalogKindName() goa.Endpoint {
    method ByID (line 210) | func (c *Client) ByID() goa.Endpoint {
  function NewClient (line 59) | func NewClient(

FILE: api/gen/http/resource/client/encode_decode.go
  method BuildQueryRequest (line 26) | func (c *Client) BuildQueryRequest(ctx context.Context, v any) (*http.Re...
  function EncodeQueryRequest (line 41) | func EncodeQueryRequest(encoder func(*http.Request) goahttp.Encoder) fun...
  function DecodeQueryResponse (line 74) | func DecodeQueryResponse(decoder func(*http.Response) goahttp.Decoder, r...
  method BuildListRequest (line 114) | func (c *Client) BuildListRequest(ctx context.Context, v any) (*http.Req...
  function DecodeListResponse (line 130) | func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, re...
  method BuildVersionsByIDRequest (line 171) | func (c *Client) BuildVersionsByIDRequest(ctx context.Context, v any) (*...
  function DecodeVersionsByIDResponse (line 197) | func DecodeVersionsByIDResponse(decoder func(*http.Response) goahttp.Dec...
  method BuildByCatalogKindNameVersionRequest (line 238) | func (c *Client) BuildByCatalogKindNameVersionRequest(ctx context.Contex...
  function DecodeByCatalogKindNameVersionResponse (line 270) | func DecodeByCatalogKindNameVersionResponse(decoder func(*http.Response)...
  method BuildByVersionIDRequest (line 310) | func (c *Client) BuildByVersionIDRequest(ctx context.Context, v any) (*h...
  function DecodeByVersionIDResponse (line 336) | func DecodeByVersionIDResponse(decoder func(*http.Response) goahttp.Deco...
  method BuildByCatalogKindNameRequest (line 376) | func (c *Client) BuildByCatalogKindNameRequest(ctx context.Context, v an...
  function EncodeByCatalogKindNameRequest (line 405) | func EncodeByCatalogKindNameRequest(encoder func(*http.Request) goahttp....
  function DecodeByCatalogKindNameResponse (line 423) | func DecodeByCatalogKindNameResponse(decoder func(*http.Response) goahtt...
  method BuildByIDRequest (line 463) | func (c *Client) BuildByIDRequest(ctx context.Context, v any) (*http.Req...
  function DecodeByIDResponse (line 489) | func DecodeByIDResponse(decoder func(*http.Response) goahttp.Decoder, re...
  function unmarshalResourceDataResponseBodyToResourceviewsResourceDataView (line 530) | func unmarshalResourceDataResponseBodyToResourceviewsResourceDataView(v ...
  function unmarshalCatalogResponseBodyToResourceviewsCatalogView (line 563) | func unmarshalCatalogResponseBodyToResourceviewsCatalogView(v *CatalogRe...
  function unmarshalCategoryResponseBodyToResourceviewsCategoryView (line 577) | func unmarshalCategoryResponseBodyToResourceviewsCategoryView(v *Categor...
  function unmarshalResourceVersionDataResponseBodyToResourceviewsResourceVersionDataView (line 589) | func unmarshalResourceVersionDataResponseBodyToResourceviewsResourceVers...
  function unmarshalPlatformResponseBodyToResourceviewsPlatformView (line 614) | func unmarshalPlatformResponseBodyToResourceviewsPlatformView(v *Platfor...
  function unmarshalTagResponseBodyToResourceviewsTagView (line 625) | func unmarshalTagResponseBodyToResourceviewsTagView(v *TagResponseBody) ...

FILE: api/gen/http/resource/client/paths.go
  function QueryResourcePath (line 15) | func QueryResourcePath() string {
  function ListResourcePath (line 20) | func ListResourcePath() string {
  function VersionsByIDResourcePath (line 25) | func VersionsByIDResourcePath(id uint) string {
  function ByCatalogKindNameVersionResourcePath (line 30) | func ByCatalogKindNameVersionResourcePath(catalog string, kind string, n...
  function ByVersionIDResourcePath (line 35) | func ByVersionIDResourcePath(versionID uint) string {
  function ByCatalogKindNameResourcePath (line 40) | func ByCatalogKindNameResourcePath(catalog string, kind string, name str...
  function ByIDResourcePath (line 45) | func ByIDResourcePath(id uint) string {

FILE: api/gen/http/resource/client/types.go
  type ListResponseBody (line 18) | type ListResponseBody struct
  type ResourceDataCollectionResponseBody (line 24) | type ResourceDataCollectionResponseBody
  type ResourceDataResponseBody (line 27) | type ResourceDataResponseBody struct
  type CatalogResponseBody (line 55) | type CatalogResponseBody struct
  type CategoryResponseBody (line 69) | type CategoryResponseBody struct
  type ResourceVersionDataResponseBody (line 78) | type ResourceVersionDataResponseBody struct
  type PlatformResponseBody (line 108) | type PlatformResponseBody struct
  type TagResponseBody (line 116) | type TagResponseBody struct
  function NewQueryResultFound (line 125) | func NewQueryResultFound(location string) *resource.QueryResult {
  function NewListResourcesMovedPermanently (line 134) | func NewListResourcesMovedPermanently(body *ListResponseBody) *resourcev...
  function NewVersionsByIDResultFound (line 146) | func NewVersionsByIDResultFound(location string) *resource.VersionsByIDR...
  function NewByCatalogKindNameVersionResultFound (line 155) | func NewByCatalogKindNameVersionResultFound(location string) *resource.B...
  function NewByVersionIDResultFound (line 164) | func NewByVersionIDResultFound(location string) *resource.ByVersionIDRes...
  function NewByCatalogKindNameResultFound (line 173) | func NewByCatalogKindNameResultFound(location string) *resource.ByCatalo...
  function NewByIDResultFound (line 182) | func NewByIDResultFound(location string) *resource.ByIDResult {
  function ValidateResourceDataCollectionResponseBody (line 191) | func ValidateResourceDataCollectionResponseBody(body ResourceDataCollect...
  function ValidateResourceDataResponseBody (line 204) | func ValidateResourceDataResponseBody(body *ResourceDataResponseBody) (e...
  function ValidateCatalogResponseBody (line 284) | func ValidateCatalogResponseBody(body *CatalogResponseBody) (err error) {
  function ValidateCategoryResponseBody (line 310) | func ValidateCategoryResponseBody(body *CategoryResponseBody) (err error) {
  function ValidateResourceVersionDataResponseBody (line 322) | func ValidateResourceVersionDataResponseBody(body *ResourceVersionDataRe...
  function ValidatePlatformResponseBody (line 385) | func ValidatePlatformResponseBody(body *PlatformResponseBody) (err error) {
  function ValidateTagResponseBody (line 396) | func ValidateTagResponseBody(body *TagResponseBody) (err error) {

FILE: api/gen/http/resource/server/encode_decode.go
  function EncodeQueryResponse (line 23) | func EncodeQueryResponse(encoder func(context.Context, http.ResponseWrit...
  function DecodeQueryRequest (line 34) | func DecodeQueryRequest(mux goahttp.Muxer, decoder func(*http.Request) g...
  function EncodeVersionsByIDResponse (line 89) | func EncodeVersionsByIDResponse(encoder func(context.Context, http.Respo...
  function DecodeVersionsByIDRequest (line 100) | func DecodeVersionsByIDRequest(mux goahttp.Muxer, decoder func(*http.Req...
  function EncodeByCatalogKindNameVersionResponse (line 127) | func EncodeByCatalogKindNameVersionResponse(encoder func(context.Context...
  function DecodeByCatalogKindNameVersionRequest (line 138) | func DecodeByCatalogKindNameVersionRequest(mux goahttp.Muxer, decoder fu...
  function EncodeByVersionIDResponse (line 167) | func EncodeByVersionIDResponse(encoder func(context.Context, http.Respon...
  function DecodeByVersionIDRequest (line 178) | func DecodeByVersionIDRequest(mux goahttp.Muxer, decoder func(*http.Requ...
  function EncodeByCatalogKindNameResponse (line 205) | func EncodeByCatalogKindNameResponse(encoder func(context.Context, http....
  function DecodeByCatalogKindNameRequest (line 216) | func DecodeByCatalogKindNameRequest(mux goahttp.Muxer, decoder func(*htt...
  function EncodeByIDResponse (line 251) | func EncodeByIDResponse(encoder func(context.Context, http.ResponseWrite...
  function DecodeByIDRequest (line 262) | func DecodeByIDRequest(mux goahttp.Muxer, decoder func(*http.Request) go...
  function marshalResourceviewsResourceDataViewToResourceDataResponseBodyWithoutVersion (line 290) | func marshalResourceviewsResourceDataViewToResourceDataResponseBodyWitho...
  function marshalResourceviewsCatalogViewToCatalogResponseBodyMin (line 335) | func marshalResourceviewsCatalogViewToCatalogResponseBodyMin(v *resource...
  function marshalResourceviewsCategoryViewToCategoryResponseBody (line 347) | func marshalResourceviewsCategoryViewToCategoryResponseBody(v *resourcev...
  function marshalResourceviewsResourceVersionDataViewToResourceVersionDataResponseBodyWithoutResource (line 359) | func marshalResourceviewsResourceVersionDataViewToResourceVersionDataRes...
  function marshalResourceviewsPlatformViewToPlatformResponseBody (line 387) | func marshalResourceviewsPlatformViewToPlatformResponseBody(v *resourcev...
  function marshalResourceviewsTagViewToTagResponseBody (line 398) | func marshalResourceviewsTagViewToTagResponseBody(v *resourceviews.TagVi...

FILE: api/gen/http/resource/server/paths.go
  function QueryResourcePath (line 15) | func QueryResourcePath() string {
  function ListResourcePath (line 20) | func ListResourcePath() string {
  function VersionsByIDResourcePath (line 25) | func VersionsByIDResourcePath(id uint) string {
  function ByCatalogKindNameVersionResourcePath (line 30) | func ByCatalogKindNameVersionResourcePath(catalog string, kind string, n...
  function ByVersionIDResourcePath (line 35) | func ByVersionIDResourcePath(versionID uint) string {
  function ByCatalogKindNameResourcePath (line 40) | func ByCatalogKindNameResourcePath(catalog string, kind string, name str...
  function ByIDResourcePath (line 45) | func ByIDResourcePath(id uint) string {

FILE: api/gen/http/resource/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 87) | func (s *Server) Service() string { return "resource" }
    method Use (line 90) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 102) | func (s *Server) MethodNames() []string { return resource.MethodNames[...
    method Mount (line 117) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 34) | type MountPoint struct
  function New (line 50) | func New(
  function Mount (line 105) | func Mount(mux goahttp.Muxer, h *Server) {
  function MountQueryHandler (line 123) | func MountQueryHandler(mux goahttp.Muxer, h http.Handler) {
  function NewQueryHandler (line 135) | func NewQueryHandler(
  function MountListHandler (line 174) | func MountListHandler(mux goahttp.Muxer, h http.Handler) {
  function NewListHandler (line 186) | func NewListHandler(
  function MountVersionsByIDHandler (line 204) | func MountVersionsByIDHandler(mux goahttp.Muxer, h http.Handler) {
  function NewVersionsByIDHandler (line 216) | func NewVersionsByIDHandler(
  function MountByCatalogKindNameVersionHandler (line 255) | func MountByCatalogKindNameVersionHandler(mux goahttp.Muxer, h http.Hand...
  function NewByCatalogKindNameVersionHandler (line 268) | func NewByCatalogKindNameVersionHandler(
  function MountByVersionIDHandler (line 307) | func MountByVersionIDHandler(mux goahttp.Muxer, h http.Handler) {
  function NewByVersionIDHandler (line 319) | func NewByVersionIDHandler(
  function MountByCatalogKindNameHandler (line 358) | func MountByCatalogKindNameHandler(mux goahttp.Muxer, h http.Handler) {
  function NewByCatalogKindNameHandler (line 370) | func NewByCatalogKindNameHandler(
  function MountByIDHandler (line 409) | func MountByIDHandler(mux goahttp.Muxer, h http.Handler) {
  function NewByIDHandler (line 421) | func NewByIDHandler(
  function MountCORSHandler (line 460) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 472) | func NewCORSHandler() http.Handler {
  function HandleResourceOrigin (line 480) | func HandleResourceOrigin(h http.Handler) http.Handler {

FILE: api/gen/http/resource/server/types.go
  type ListResponseBody (line 17) | type ListResponseBody struct
  type ResourceDataResponseBodyWithoutVersionCollection (line 23) | type ResourceDataResponseBodyWithoutVersionCollection
  type ResourceDataResponseBodyWithoutVersion (line 27) | type ResourceDataResponseBodyWithoutVersion struct
  type CatalogResponseBodyMin (line 53) | type CatalogResponseBodyMin struct
  type CategoryResponseBody (line 63) | type CategoryResponseBody struct
  type ResourceVersionDataResponseBodyWithoutResource (line 72) | type ResourceVersionDataResponseBodyWithoutResource struct
  type PlatformResponseBody (line 100) | type PlatformResponseBody struct
  type TagResponseBody (line 108) | type TagResponseBody struct
  function NewListResponseBody (line 117) | func NewListResponseBody(res *resourceviews.ResourcesView) *ListResponse...
  function NewQueryPayload (line 131) | func NewQueryPayload(name string, catalogs []string, categories []string...
  function NewVersionsByIDPayload (line 147) | func NewVersionsByIDPayload(id uint) *resource.VersionsByIDPayload {
  function NewByCatalogKindNameVersionPayload (line 156) | func NewByCatalogKindNameVersionPayload(catalog string, kind string, nam...
  function NewByVersionIDPayload (line 167) | func NewByVersionIDPayload(versionID uint) *resource.ByVersionIDPayload {
  function NewByCatalogKindNamePayload (line 176) | func NewByCatalogKindNamePayload(catalog string, kind string, name strin...
  function NewByIDPayload (line 187) | func NewByIDPayload(id uint) *resource.ByIDPayload {

FILE: api/gen/http/status/client/client.go
  type Client (line 19) | type Client struct
    method Status (line 58) | func (c *Client) Status() goa.Endpoint {
  function NewClient (line 37) | func NewClient(

FILE: api/gen/http/status/client/encode_decode.go
  method BuildStatusRequest (line 23) | func (c *Client) BuildStatusRequest(ctx context.Context, v any) (*http.R...
  function DecodeStatusResponse (line 39) | func DecodeStatusResponse(decoder func(*http.Response) goahttp.Decoder, ...
  function unmarshalHubServiceResponseBodyToStatusHubService (line 78) | func unmarshalHubServiceResponseBodyToStatusHubService(v *HubServiceResp...

FILE: api/gen/http/status/client/paths.go
  function StatusStatusPath (line 11) | func StatusStatusPath() string {
  function StatusStatusPath2 (line 16) | func StatusStatusPath2() string {

FILE: api/gen/http/status/client/types.go
  type StatusResponseBody (line 17) | type StatusResponseBody struct
  type HubServiceResponseBody (line 23) | type HubServiceResponseBody struct
  function NewStatusResultOK (line 34) | func NewStatusResultOK(body *StatusResponseBody) *status.StatusResult {
  function ValidateStatusResponseBody (line 47) | func ValidateStatusResponseBody(body *StatusResponseBody) (err error) {
  function ValidateHubServiceResponseBody (line 60) | func ValidateHubServiceResponseBody(body *HubServiceResponseBody) (err e...

FILE: api/gen/http/status/server/encode_decode.go
  function EncodeStatusResponse (line 20) | func EncodeStatusResponse(encoder func(context.Context, http.ResponseWri...
  function marshalStatusHubServiceToHubServiceResponseBody (line 32) | func marshalStatusHubServiceToHubServiceResponseBody(v *status.HubServic...

FILE: api/gen/http/status/server/paths.go
  function StatusStatusPath (line 11) | func StatusStatusPath() string {
  function StatusStatusPath2 (line 16) | func StatusStatusPath2() string {

FILE: api/gen/http/status/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 65) | func (s *Server) Service() string { return "status" }
    method Use (line 68) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 74) | func (s *Server) MethodNames() []string { return status.MethodNames[:] }
    method Mount (line 83) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 28) | type MountPoint struct
  function New (line 44) | func New(
  function Mount (line 77) | func Mount(mux goahttp.Muxer, h *Server) {
  function MountStatusHandler (line 89) | func MountStatusHandler(mux goahttp.Muxer, h http.Handler) {
  function NewStatusHandler (line 102) | func NewStatusHandler(
  function MountCORSHandler (line 134) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 141) | func NewCORSHandler() http.Handler {
  function HandleStatusOrigin (line 149) | func HandleStatusOrigin(h http.Handler) http.Handler {

FILE: api/gen/http/status/server/types.go
  type StatusResponseBody (line 16) | type StatusResponseBody struct
  type HubServiceResponseBody (line 22) | type HubServiceResponseBody struct
  function NewStatusResponseBody (line 33) | func NewStatusResponseBody(res *status.StatusResult) *StatusResponseBody {

FILE: api/gen/http/swagger/client/client.go
  type Client (line 17) | type Client struct
  function NewClient (line 32) | func NewClient(

FILE: api/gen/http/swagger/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 68) | func (s *Server) Service() string { return "swagger" }
    method Use (line 71) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 76) | func (s *Server) MethodNames() []string { return swagger.MethodNames[:] }
    method Mount (line 85) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 28) | type MountPoint struct
  function New (line 44) | func New(
  function Mount (line 79) | func Mount(mux goahttp.Muxer, h *Server) {
  type appendFS (line 91) | type appendFS struct
    method Open (line 98) | func (s appendFS) Open(name string) (http.File, error) {
  function appendPrefix (line 108) | func appendPrefix(fsys http.FileSystem, prefix string) http.FileSystem {
  function MountDocsOpenapi3JSON (line 114) | func MountDocsOpenapi3JSON(mux goahttp.Muxer, h http.Handler) {
  function MountCORSHandler (line 120) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 126) | func NewCORSHandler() http.Handler {
  function HandleSwaggerOrigin (line 134) | func HandleSwaggerOrigin(h http.Handler) http.Handler {

FILE: api/gen/rating/client.go
  type Client (line 17) | type Client struct
    method Get (line 37) | func (c *Client) Get(ctx context.Context, p *GetPayload) (res *GetResu...
    method Update (line 53) | func (c *Client) Update(ctx context.Context, p *UpdatePayload) (err er...
  function NewClient (line 23) | func NewClient(get, update goa.Endpoint) *Client {

FILE: api/gen/rating/endpoints.go
  type Endpoints (line 18) | type Endpoints struct
    method Use (line 34) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 24) | func NewEndpoints(s Service) *Endpoints {
  function NewGetEndpoint (line 41) | func NewGetEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.Endpo...
  function NewUpdateEndpoint (line 60) | func NewUpdateEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.En...

FILE: api/gen/rating/service.go
  type Service (line 19) | type Service interface
  type Auther (line 27) | type Auther interface
  constant APIName (line 33) | APIName = "hub"
  constant APIVersion (line 36) | APIVersion = "1.0"
  constant ServiceName (line 41) | ServiceName = "rating"
  type GetPayload (line 49) | type GetPayload struct
  type GetResult (line 57) | type GetResult struct
  type UpdatePayload (line 63) | type UpdatePayload struct
  function MakeNotFound (line 73) | func MakeNotFound(err error) *goa.ServiceError {
  function MakeInternalError (line 78) | func MakeInternalError(err error) *goa.ServiceError {
  function MakeInvalidToken (line 83) | func MakeInvalidToken(err error) *goa.ServiceError {
  function MakeInvalidScopes (line 88) | func MakeInvalidScopes(err error) *goa.ServiceError {

FILE: api/gen/resource/client.go
  type Client (line 17) | type Client struct
    method Query (line 45) | func (c *Client) Query(ctx context.Context, p *QueryPayload) (res *Que...
    method List (line 59) | func (c *Client) List(ctx context.Context) (res *Resources, err error) {
    method VersionsByID (line 73) | func (c *Client) VersionsByID(ctx context.Context, p *VersionsByIDPayl...
    method ByCatalogKindNameVersion (line 88) | func (c *Client) ByCatalogKindNameVersion(ctx context.Context, p *ByCa...
    method ByVersionID (line 102) | func (c *Client) ByVersionID(ctx context.Context, p *ByVersionIDPayloa...
    method ByCatalogKindName (line 117) | func (c *Client) ByCatalogKindName(ctx context.Context, p *ByCatalogKi...
    method ByID (line 131) | func (c *Client) ByID(ctx context.Context, p *ByIDPayload) (res *ByIDR...
  function NewClient (line 28) | func NewClient(query, list, versionsByID, byCatalogKindNameVersion, byVe...

FILE: api/gen/resource/endpoints.go
  type Endpoints (line 17) | type Endpoints struct
    method Use (line 41) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 28) | func NewEndpoints(s Service) *Endpoints {
  function NewQueryEndpoint (line 53) | func NewQueryEndpoint(s Service) goa.Endpoint {
  function NewListEndpoint (line 62) | func NewListEndpoint(s Service) goa.Endpoint {
  function NewVersionsByIDEndpoint (line 75) | func NewVersionsByIDEndpoint(s Service) goa.Endpoint {
  function NewByCatalogKindNameVersionEndpoint (line 84) | func NewByCatalogKindNameVersionEndpoint(s Service) goa.Endpoint {
  function NewByVersionIDEndpoint (line 93) | func NewByVersionIDEndpoint(s Service) goa.Endpoint {
  function NewByCatalogKindNameEndpoint (line 102) | func NewByCatalogKindNameEndpoint(s Service) goa.Endpoint {
  function NewByIDEndpoint (line 111) | func NewByIDEndpoint(s Service) goa.Endpoint {

FILE: api/gen/resource/service.go
  type Service (line 18) | type Service interface
  constant APIName (line 37) | APIName = "hub"
  constant APIVersion (line 40) | APIVersion = "1.0"
  constant ServiceName (line 45) | ServiceName = "resource"
  type ByCatalogKindNamePayload (line 54) | type ByCatalogKindNamePayload struct
  type ByCatalogKindNameResult (line 67) | type ByCatalogKindNameResult struct
  type ByCatalogKindNameVersionPayload (line 74) | type ByCatalogKindNameVersionPayload struct
  type ByCatalogKindNameVersionResult (line 87) | type ByCatalogKindNameVersionResult struct
  type ByIDPayload (line 93) | type ByIDPayload struct
  type ByIDResult (line 99) | type ByIDResult struct
  type ByVersionIDPayload (line 106) | type ByVersionIDPayload struct
  type ByVersionIDResult (line 113) | type ByVersionIDResult struct
  type Catalog (line 118) | type Catalog struct
  type Category (line 131) | type Category struct
  type Platform (line 138) | type Platform struct
  type QueryPayload (line 146) | type QueryPayload struct
  type QueryResult (line 166) | type QueryResult struct
  type ResourceData (line 172) | type ResourceData struct
  type ResourceDataCollection (line 199) | type ResourceDataCollection
  type ResourceVersionData (line 202) | type ResourceVersionData struct
  type Resources (line 232) | type Resources struct
  type Tag (line 236) | type Tag struct
  type VersionsByIDPayload (line 245) | type VersionsByIDPayload struct
  type VersionsByIDResult (line 252) | type VersionsByIDResult struct
  function MakeInternalError (line 258) | func MakeInternalError(err error) *goa.ServiceError {
  function MakeNotFound (line 263) | func MakeNotFound(err error) *goa.ServiceError {
  function NewResources (line 269) | func NewResources(vres *resourceviews.Resources) *Resources {
  function NewViewedResources (line 275) | func NewViewedResources(res *Resources, view string) *resourceviews.Reso...
  function newResources (line 281) | func newResources(vres *resourceviews.ResourcesView) *Resources {
  function newResourcesView (line 291) | func newResourcesView(res *Resources) *resourceviews.ResourcesView {
  function newResourceDataCollectionInfo (line 301) | func newResourceDataCollectionInfo(vres resourceviews.ResourceDataCollec...
  function newResourceDataCollectionWithoutVersion (line 311) | func newResourceDataCollectionWithoutVersion(vres resourceviews.Resource...
  function newResourceDataCollection (line 321) | func newResourceDataCollection(vres resourceviews.ResourceDataCollection...
  function newResourceDataCollectionViewInfo (line 332) | func newResourceDataCollectionViewInfo(res ResourceDataCollection) resou...
  function newResourceDataCollectionViewWithoutVersion (line 343) | func newResourceDataCollectionViewWithoutVersion(res ResourceDataCollect...
  function newResourceDataCollectionView (line 353) | func newResourceDataCollectionView(res ResourceDataCollection) resourcev...
  function newResourceDataInfo (line 363) | func newResourceDataInfo(vres *resourceviews.ResourceDataView) *Resource...
  function newResourceDataWithoutVersion (line 409) | func newResourceDataWithoutVersion(vres *resourceviews.ResourceDataView)...
  function newResourceData (line 458) | func newResourceData(vres *resourceviews.ResourceDataView) *ResourceData {
  function newResourceDataViewInfo (line 513) | func newResourceDataViewInfo(res *ResourceData) *resourceviews.ResourceD...
  function newResourceDataViewWithoutVersion (line 553) | func newResourceDataViewWithoutVersion(res *ResourceData) *resourceviews...
  function newResourceDataView (line 597) | func newResourceDataView(res *ResourceData) *resourceviews.ResourceDataV...
  function newCatalogMin (line 648) | func newCatalogMin(vres *resourceviews.CatalogView) *Catalog {
  function newCatalog (line 663) | func newCatalog(vres *resourceviews.CatalogView) *Catalog {
  function newCatalogViewMin (line 685) | func newCatalogViewMin(res *Catalog) *resourceviews.CatalogView {
  function newCatalogView (line 696) | func newCatalogView(res *Catalog) *resourceviews.CatalogView {
  function newResourceVersionDataTiny (line 709) | func newResourceVersionDataTiny(vres *resourceviews.ResourceVersionDataV...
  function newResourceVersionDataMin (line 725) | func newResourceVersionDataMin(vres *resourceviews.ResourceVersionDataVi...
  function newResourceVersionDataWithoutResource (line 759) | func newResourceVersionDataWithoutResource(vres *resourceviews.ResourceV...
  function newResourceVersionData (line 807) | func newResourceVersionData(vres *resourceviews.ResourceVersionDataView)...
  function newResourceVersionDataViewTiny (line 855) | func newResourceVersionDataViewTiny(res *ResourceVersionData) *resourcev...
  function newResourceVersionDataViewMin (line 865) | func newResourceVersionDataViewMin(res *ResourceVersionData) *resourcevi...
  function newResourceVersionDataViewWithoutResource (line 888) | func newResourceVersionDataViewWithoutResource(res *ResourceVersionData)...
  function newResourceVersionDataView (line 915) | func newResourceVersionDataView(res *ResourceVersionData) *resourceviews...
  function transformResourceviewsCategoryViewToCategory (line 945) | func transformResourceviewsCategoryViewToCategory(v *resourceviews.Categ...
  function transformResourceviewsTagViewToTag (line 959) | func transformResourceviewsTagViewToTag(v *resourceviews.TagView) *Tag {
  function transformResourceviewsPlatformViewToPlatform (line 973) | func transformResourceviewsPlatformViewToPlatform(v *resourceviews.Platf...
  function transformResourceviewsResourceVersionDataViewToResourceVersionData (line 988) | func transformResourceviewsResourceVersionDataViewToResourceVersionData(...
  function transformResourceviewsResourceDataViewToResourceData (line 1022) | func transformResourceviewsResourceDataViewToResourceData(v *resourcevie...
  function transformCategoryToResourceviewsCategoryView (line 1072) | func transformCategoryToResourceviewsCategoryView(v *Category) *resource...
  function transformTagToResourceviewsTagView (line 1083) | func transformTagToResourceviewsTagView(v *Tag) *resourceviews.TagView {
  function transformPlatformToResourceviewsPlatformView (line 1094) | func transformPlatformToResourceviewsPlatformView(v *Platform) *resource...
  function transformResourceVersionDataToResourceviewsResourceVersionDataView (line 1106) | func transformResourceVersionDataToResourceviewsResourceVersionDataView(...
  function transformResourceDataToResourceviewsResourceDataView (line 1137) | func transformResourceDataToResourceviewsResourceDataView(v *ResourceDat...

FILE: api/gen/resource/views/view.go
  type Resources (line 15) | type Resources struct
  type ResourcesView (line 23) | type ResourcesView struct
  type ResourceDataCollectionView (line 29) | type ResourceDataCollectionView
  type ResourceDataView (line 32) | type ResourceDataView struct
  type CatalogView (line 60) | type CatalogView struct
  type CategoryView (line 74) | type CategoryView struct
  type ResourceVersionDataView (line 82) | type ResourceVersionDataView struct
  type PlatformView (line 112) | type PlatformView struct
  type TagView (line 120) | type TagView struct
  function ValidateResources (line 283) | func ValidateResources(result *Resources) (err error) {
  function ValidateResourcesView (line 295) | func ValidateResourcesView(result *ResourcesView) (err error) {
  function ValidateResourceDataCollectionViewInfo (line 307) | func ValidateResourceDataCollectionViewInfo(result ResourceDataCollectio...
  function ValidateResourceDataCollectionViewWithoutVersion (line 318) | func ValidateResourceDataCollectionViewWithoutVersion(result ResourceDat...
  function ValidateResourceDataCollectionView (line 329) | func ValidateResourceDataCollectionView(result ResourceDataCollectionVie...
  function ValidateResourceDataViewInfo (line 340) | func ValidateResourceDataViewInfo(result *ResourceDataView) (err error) {
  function ValidateResourceDataViewWithoutVersion (line 396) | func ValidateResourceDataViewWithoutVersion(result *ResourceDataView) (e...
  function ValidateResourceDataView (line 460) | func ValidateResourceDataView(result *ResourceDataView) (err error) {
  function ValidateCatalogViewMin (line 534) | func ValidateCatalogViewMin(result *CatalogView) (err error) {
  function ValidateCatalogView (line 554) | func ValidateCatalogView(result *CatalogView) (err error) {
  function ValidateCategoryView (line 579) | func ValidateCategoryView(result *CategoryView) (err error) {
  function ValidateResourceVersionDataViewTiny (line 591) | func ValidateResourceVersionDataViewTiny(result *ResourceVersionDataView...
  function ValidateResourceVersionDataViewMin (line 603) | func ValidateResourceVersionDataViewMin(result *ResourceVersionDataView)...
  function ValidateResourceVersionDataViewWithoutResource (line 643) | func ValidateResourceVersionDataViewWithoutResource(result *ResourceVers...
  function ValidateResourceVersionDataView (line 698) | func ValidateResourceVersionDataView(result *ResourceVersionDataView) (e...
  function ValidatePlatformView (line 757) | func ValidatePlatformView(result *PlatformView) (err error) {
  function ValidateTagView (line 768) | func ValidateTagView(result *TagView) (err error) {

FILE: api/gen/status/client.go
  type Client (line 17) | type Client struct
    method Status (line 29) | func (c *Client) Status(ctx context.Context) (res *StatusResult, err e...
  function NewClient (line 22) | func NewClient(status goa.Endpoint) *Client {

FILE: api/gen/status/endpoints.go
  type Endpoints (line 17) | type Endpoints struct
    method Use (line 29) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 22) | func NewEndpoints(s Service) *Endpoints {
  function NewStatusEndpoint (line 35) | func NewStatusEndpoint(s Service) goa.Endpoint {

FILE: api/gen/status/service.go
  type Service (line 15) | type Service interface
  constant APIName (line 21) | APIName = "hub"
  constant APIVersion (line 24) | APIVersion = "1.0"
  constant ServiceName (line 29) | ServiceName = "status"
  type HubService (line 37) | type HubService struct
  type StatusResult (line 47) | type StatusResult struct

FILE: api/gen/swagger/client.go
  type Client (line 15) | type Client struct
  function NewClient (line 19) | func NewClient(goa.Endpoint) *Client {

FILE: api/gen/swagger/endpoints.go
  type Endpoints (line 15) | type Endpoints struct
    method Use (line 24) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 19) | func NewEndpoints(s Service) *Endpoints {

FILE: api/gen/swagger/service.go
  type Service (line 11) | type Service interface
  constant APIName (line 15) | APIName = "hub"
  constant APIVersion (line 18) | APIVersion = "1.0"
  constant ServiceName (line 23) | ServiceName = "swagger"

FILE: api/pkg/app/api_logger.go
  type Logger (line 19) | type Logger struct
    method Log (line 36) | func (logger *Logger) Log(keyvals ...interface{}) error {
  function New (line 24) | func New(serviceName string, production bool) *Logger {

FILE: api/pkg/app/app.go
  type BaseConfig (line 37) | type BaseConfig interface
  type APIBase (line 48) | type APIBase struct
    method Environment (line 117) | func (ab *APIBase) Environment() EnvMode {
    method DB (line 122) | func (ab *APIBase) DB() *gorm.DB {
    method Database (line 133) | func (ab *APIBase) Database() Database {
    method Logger (line 138) | func (ab *APIBase) Logger(service string) *Logger {
    method Service (line 145) | func (ab *APIBase) Service(name string) Service {
    method Data (line 167) | func (ab *APIBase) Data() *Data {
    method ReloadData (line 172) | func (ab *APIBase) ReloadData() error {
    method Cleanup (line 238) | func (ab *APIBase) Cleanup() {
  type Config (line 57) | type Config interface
  type APIConfig (line 64) | type APIConfig struct
    method JWTConfig (line 246) | func (ac *APIConfig) JWTConfig() *JWTConfig {
  type JWTConfig (line 70) | type JWTConfig struct
  type EnvMode (line 81) | type EnvMode
  constant Production (line 85) | Production             EnvMode = "production"
  constant Development (line 86) | Development            EnvMode = "development"
  constant Test (line 87) | Test                   EnvMode = "test"
  constant ConfigFileDir (line 88) | ConfigFileDir          string  = "/tmp/config/"
  constant CatalogRefreshInterval (line 89) | CatalogRefreshInterval string  = "catalog_refresh_interval"
  constant DefaultScopes (line 90) | DefaultScopes          string  = "default"
  constant DBDialect (line 94) | DBDialect = "postgres"
  type Database (line 97) | type Database struct
    method String (line 105) | func (db *Database) String() string {
    method ConnectionString (line 110) | func (db Database) ConnectionString() string {
  function DBWithLogger (line 127) | func DBWithLogger(env EnvMode, db *gorm.DB, logger *Logger) *gorm.DB {
  function CatalogClonePath (line 158) | func CatalogClonePath() string {
  function FromEnv (line 254) | func FromEnv() (*APIConfig, error) {
  function FromEnvFile (line 262) | func FromEnvFile(file string) (*APIConfig, error) {
  function APIBaseFromEnv (line 286) | func APIBaseFromEnv() (*APIBase, error) {
  function APIBaseFromEnvFile (line 294) | func APIBaseFromEnvFile(file string) (*APIBase, error) {
  function Environment (line 336) | func Environment() EnvMode {
  function initDB (line 353) | func initDB() (*Database, error) {
  function initLogger (line 375) | func initLogger(mode EnvMode) (*Logger, error) {
  function configFileURL (line 397) | func configFileURL() (string, error) {
  function jwtConfig (line 408) | func jwtConfig() (*JWTConfig, error) {
  function ComputeDuration (line 442) | func ComputeDuration(dur string) (time.Duration, error) {

FILE: api/pkg/app/app_test.go
  function TestComputeDuration (line 23) | func TestComputeDuration(t *testing.T) {
  function TestComputeDurationError (line 30) | func TestComputeDurationError(t *testing.T) {

FILE: api/pkg/app/data.go
  type Data (line 25) | type Data struct
  type Category (line 33) | type Category struct
  type Catalog (line 37) | type Catalog struct
  type Scope (line 48) | type Scope struct
  type Default (line 53) | type Default struct
  function dataFromURL (line 58) | func dataFromURL(url string) ([]byte, error) {
  function httpRead (line 67) | func httpRead(url string) ([]byte, error) {
  function readLocalFile (line 83) | func readLocalFile(path string) ([]byte, error) {

FILE: api/pkg/app/gorm_logger.go
  function newGormLogger (line 25) | func newGormLogger(mode EnvMode, l *Logger) glog.Interface {
  type prodWriter (line 42) | type prodWriter struct
    method Printf (line 46) | func (w *prodWriter) Printf(format string, data ...interface{}) {
  type devWriter (line 79) | type devWriter struct
    method Printf (line 83) | func (w *devWriter) Printf(msg string, data ...interface{}) {

FILE: api/pkg/app/service.go
  type Service (line 25) | type Service interface
  type environmenter (line 32) | type environmenter interface
  type BaseService (line 38) | type BaseService struct
    method Logger (line 47) | func (s *BaseService) Logger(ctx context.Context) *Logger {
    method LoggerWith (line 57) | func (s *BaseService) LoggerWith(ctx context.Context, args ...interfac...
    method CatalogClonePath (line 62) | func (s *BaseService) CatalogClonePath() string {
    method DB (line 69) | func (s *BaseService) DB(ctx context.Context) *gorm.DB {

FILE: api/pkg/auth/app/app.go
  type Provider (line 17) | type Provider struct
  type ProviderList (line 21) | type ProviderList struct
  type AuthenticateResult (line 25) | type AuthenticateResult struct
  type AuthTokens (line 31) | type AuthTokens struct
  type Token (line 39) | type Token struct

FILE: api/pkg/auth/base.go
  function generateRandomKey (line 37) | func generateRandomKey(length int) (string, error) {
  function AuthProvider (line 48) | func AuthProvider(r *mux.Router, api app.Config) {

FILE: api/pkg/auth/provider/bitbucket.go
  function BitbucketProvider (line 25) | func BitbucketProvider(AUTH_URL string) provider {

FILE: api/pkg/auth/provider/github.go
  type provider (line 24) | type provider struct
  function GithubProvider (line 35) | func GithubProvider(AUTH_URL string) provider {

FILE: api/pkg/auth/provider/gitlab.go
  function GitlabProvider (line 27) | func GitlabProvider(AUTH_URL string) provider {

FILE: api/pkg/auth/service/auth.go
  type service (line 32) | type service struct
    method AuthCallBack (line 100) | func (s *service) AuthCallBack(res http.ResponseWriter, req *http.Requ...
    method HubAuthenticate (line 131) | func (s *service) HubAuthenticate(res http.ResponseWriter, req *http.R...
  type request (line 37) | type request struct
  type AuthService (line 45) | type AuthService struct
  type Services (line 50) | type Services struct
  type Service (line 59) | type Service interface
  function New (line 65) | func New(api app.Config) Service {
  function Status (line 73) | func Status(res http.ResponseWriter, req *http.Request) {
  function Authenticate (line 91) | func Authenticate(res http.ResponseWriter, req *http.Request) {
  function List (line 202) | func List(res http.ResponseWriter, req *http.Request) {

FILE: api/pkg/auth/service/auth_test.go
  function TestLogin (line 31) | func TestLogin(t *testing.T) {
  function TestInvalidLogin (line 81) | func TestInvalidLogin(t *testing.T) {
  function TestProviderList (line 104) | func TestProviderList(t *testing.T) {
  function TestInsertData_AccountExistsButNotEmail (line 126) | func TestInsertData_AccountExistsButNotEmail(t *testing.T) {
  function TestInsertData_AddNewEmailAndAccount (line 157) | func TestInsertData_AddNewEmailAndAccount(t *testing.T) {
  function TestInsertData_EmailExistsAddNewAccount (line 197) | func TestInsertData_EmailExistsAddNewAccount(t *testing.T) {

FILE: api/pkg/auth/service/service.go
  method userScopes (line 29) | func (r *request) userScopes(account *model.Account) ([]string, error) {
  method createTokens (line 48) | func (r *request) createTokens(user *model.User, scopes []string, provid...
  function createChecksum (line 92) | func createChecksum(token string) string {
  method insertData (line 111) | func (r *request) insertData(gitUser goth.User, code, provider string) e...
  function updateAccountDetails (line 189) | func updateAccountDetails(accountQuery *gorm.DB, existingAccountDetails ...
  method insertIntoUsersTable (line 214) | func (r *request) insertIntoUsersTable(gitUser goth.User, code string) (...
  method insertIntoAccountsTable (line 238) | func (r *request) insertIntoAccountsTable(gitUser goth.User, provider st...

FILE: api/pkg/cli/app/app.go
  type Stream (line 24) | type Stream struct
  type CLI (line 29) | type CLI interface
  type cli (line 36) | type cli struct
    method Stream (line 47) | func (c *cli) Stream() Stream {
    method SetStream (line 51) | func (c *cli) SetStream(out, err io.Writer) {
    method Hub (line 55) | func (c *cli) Hub() hub.Client {
    method SetHub (line 59) | func (c *cli) SetHub(hubType string) error {
  function New (line 43) | func New() *cli {

FILE: api/pkg/cli/cmd/check_upgrade/check_upgrade_test.go
  function TestUpdateAvailable (line 69) | func TestUpdateAvailable(t *testing.T) {
  function TestV1UpdateAvailable (line 118) | func TestV1UpdateAvailable(t *testing.T) {
  function TestUpdateAvailable_WithSkippedTasks (line 167) | func TestUpdateAvailable_WithSkippedTasks(t *testing.T) {
  function TestV1UpdateAvailable_WithSkippedTasks (line 226) | func TestV1UpdateAvailable_WithSkippedTasks(t *testing.T) {
  function TestNoUpdateAvailable (line 285) | func TestNoUpdateAvailable(t *testing.T) {
  function TestV1NoUpdateAvailable (line 334) | func TestV1NoUpdateAvailable(t *testing.T) {
  function TestNoUpdateAvailable_TaskNotInstalledViaHubCLI (line 383) | func TestNoUpdateAvailable_TaskNotInstalledViaHubCLI(t *testing.T) {
  function TestV1NoUpdateAvailable_TaskNotInstalledViaHubCLI (line 431) | func TestV1NoUpdateAvailable_TaskNotInstalledViaHubCLI(t *testing.T) {
  function TestUpdateAvailable_PipelinesUnknown (line 479) | func TestUpdateAvailable_PipelinesUnknown(t *testing.T) {
  function TestV1UpdateAvailable_PipelinesUnknown (line 522) | func TestV1UpdateAvailable_PipelinesUnknown(t *testing.T) {
  function TestUpdateAvailable_WithSkippedTasks_PipelinesUnknown (line 565) | func TestUpdateAvailable_WithSkippedTasks_PipelinesUnknown(t *testing.T) {
  function TestV1UpdateAvailable_WithSkippedTasks_PipelinesUnknown (line 618) | func TestV1UpdateAvailable_WithSkippedTasks_PipelinesUnknown(t *testing....

FILE: api/pkg/cli/cmd/check_upgrade/check_uprade.go
  constant upgradeTemplate (line 33) | upgradeTemplate = `{{decorate "underline bold" "Upgrades Available\n" }}
  type hubRes (line 69) | type hubRes struct
  type templateData (line 76) | type templateData struct
  constant versionLabel (line 84) | versionLabel = "app.kubernetes.io/version"
  constant hubLabel (line 85) | hubLabel     = "hub.tekton.dev/catalog"
  type options (line 88) | type options struct
    method run (line 154) | func (opts *options) run() error {
  function Command (line 109) | func Command(cli app.CLI) *cobra.Command {
  function commandForKind (line 134) | func commandForKind(kind string, opts *options) *cobra.Command {
  function examples (line 231) | func examples(kind string) string {

FILE: api/pkg/cli/cmd/downgrade/downgrade.go
  constant defaultCatalog (line 34) | defaultCatalog = "tekton"
  constant catalogLabel (line 35) | catalogLabel   = "hub.tekton.dev/catalog"
  constant versionLabel (line 36) | versionLabel   = "app.kubernetes.io/version"
  type options (line 39) | type options struct
    method run (line 112) | func (opts *options) run() error {
    method findLowerVersion (line 192) | func (opts *options) findLowerVersion(current string) (string, error) {
    method validate (line 213) | func (opts *options) validate() error {
    method name (line 222) | func (opts *options) name() string {
    method resCatalog (line 231) | func (opts *options) resCatalog() string {
    method resVersion (line 243) | func (opts *options) resVersion() string {
    method lookupError (line 248) | func (opts *options) lookupError(err error) error {
    method errors (line 272) | func (opts *options) errors(resourcePipelineMinVersion, pipelinesVersi...
  function Command (line 64) | func Command(cli app.CLI) *cobra.Command {
  function commandForKind (line 92) | func commandForKind(kind string, opts *options) *cobra.Command {
  function msg (line 186) | func msg(res *unstructured.Unstructured) string {
  function examples (line 226) | func examples(kind string) string {

FILE: api/pkg/cli/cmd/downgrade/downgrade_test.go
  function TestDowngrade_ResourceNotExist (line 155) | func TestDowngrade_ResourceNotExist(t *testing.T) {
  function TestV1Downgrade_ResourceNotExist (line 176) | func TestV1Downgrade_ResourceNotExist(t *testing.T) {
  function TestDowngrade_VersionCatalogMissing (line 197) | func TestDowngrade_VersionCatalogMissing(t *testing.T) {
  function TestV1Downgrade_VersionCatalogMissing (line 225) | func TestV1Downgrade_VersionCatalogMissing(t *testing.T) {
  function TestDowngrade_VersionMissing (line 253) | func TestDowngrade_VersionMissing(t *testing.T) {
  function TestV1Downgrade_VersionMissing (line 282) | func TestV1Downgrade_VersionMissing(t *testing.T) {
  function TestDowngrade (line 311) | func TestDowngrade(t *testing.T) {
  function TestV1Downgrade (line 378) | func TestV1Downgrade(t *testing.T) {
  function TestDowngrade_ToSpecificVersion (line 445) | func TestDowngrade_ToSpecificVersion(t *testing.T) {
  function TestV1Downgrade_ToSpecificVersion (line 513) | func TestV1Downgrade_ToSpecificVersion(t *testing.T) {
  function TestDowngrade_SameVersionError (line 581) | func TestDowngrade_SameVersionError(t *testing.T) {
  function TestV1Downgrade_SameVersionError (line 646) | func TestV1Downgrade_SameVersionError(t *testing.T) {
  function TestDowngrade_HigherVersionError (line 711) | func TestDowngrade_HigherVersionError(t *testing.T) {
  function TestV1Downgrade_HigherVersionError (line 761) | func TestV1Downgrade_HigherVersionError(t *testing.T) {
  function TestDowngrade_ToSpecificVersionRespectingPipelinesVersionSuccess (line 811) | func TestDowngrade_ToSpecificVersionRespectingPipelinesVersionSuccess(t ...
  function TestV1Downgrade_ToSpecificVersionRespectingPipelinesVersionSuccess (line 883) | func TestV1Downgrade_ToSpecificVersionRespectingPipelinesVersionSuccess(...
  function TestDowngrade_ToSpecificVersionRespectingPipelinesVersionFailure (line 955) | func TestDowngrade_ToSpecificVersionRespectingPipelinesVersionFailure(t ...
  function TestV1Downgrade_ToSpecificVersionRespectingPipelinesVersionFailure (line 1027) | func TestV1Downgrade_ToSpecificVersionRespectingPipelinesVersionFailure(...

FILE: api/pkg/cli/cmd/get/get.go
  type options (line 31) | type options struct
    method run (line 98) | func (opts *options) run() error {
    method validate (line 128) | func (opts *options) validate() error {
    method name (line 137) | func (opts *options) name() string {
    method GetResourceInfo (line 149) | func (opts *options) GetResourceInfo() (string, error) {
  function Command (line 52) | func Command(cli app.CLI) *cobra.Command {
  function commandForKind (line 79) | func commandForKind(kind string, opts *options) *cobra.Command {
  function examples (line 144) | func examples(kind string) string {

FILE: api/pkg/cli/cmd/get/get_test.go
  function TestValidate (line 80) | func TestValidate(t *testing.T) {
  function TestValidate_ErrorCase (line 101) | func TestValidate_ErrorCase(t *testing.T) {
  function TestGetResource_WithNewVersion (line 115) | func TestGetResource_WithNewVersion(t *testing.T) {
  function TestGetResource_WithOldVersion (line 147) | func TestGetResource_WithOldVersion(t *testing.T) {
  function TestGet_ResourceNotFound (line 178) | func TestGet_ResourceNotFound(t *testing.T) {
  function Test_examples (line 208) | func Test_examples(t *testing.T) {

FILE: api/pkg/cli/cmd/get/task.go
  type taskOptions (line 23) | type taskOptions struct
    method run (line 50) | func (opts *taskOptions) run() error {
  function taskCommand (line 27) | func taskCommand(opts *options) *cobra.Command {

FILE: api/pkg/cli/cmd/get/task_test.go
  function TestGetTask_WithNewVersion (line 48) | func TestGetTask_WithNewVersion(t *testing.T) {

FILE: api/pkg/cli/cmd/info/info.go
  constant resTemplate (line 45) | resTemplate = `{{ icon "name" }}Name: {{ .Resource.Name }}
  type templateData (line 94) | type templateData struct
  type options (line 101) | type options struct
    method run (line 154) | func (opts *options) run() error {
    method validate (line 231) | func (opts *options) validate() error {
    method name (line 240) | func (opts *options) name() string {
  function Command (line 110) | func Command(cli app.CLI) *cobra.Command {
  function commandForKind (line 135) | func commandForKind(kind string, opts *options) *cobra.Command {
  function examples (line 247) | func examples(kind string) string {

FILE: api/pkg/cli/cmd/info/info_test.go
  type InfoOptions (line 30) | type InfoOptions struct
  function mockApi (line 130) | func mockApi(io InfoOptions, taskWithVersion *res.ResourceVersionData) {
  function TestInfoTask_WithLatestVersion (line 143) | func TestInfoTask_WithLatestVersion(t *testing.T) {
  function TestInfoTask_WithOldVersion (line 173) | func TestInfoTask_WithOldVersion(t *testing.T) {
  function TestPipelineTask_MultiLineDescription (line 203) | func TestPipelineTask_MultiLineDescription(t *testing.T) {

FILE: api/pkg/cli/cmd/install/install.go
  constant defaultTektonHubCatalog (line 34) | defaultTektonHubCatalog = "tekton"
  constant versionLabel (line 35) | versionLabel            = "app.kubernetes.io/version"
  constant deprecationAnnotation (line 36) | deprecationAnnotation   = "tekton.dev/deprecated"
  type options (line 39) | type options struct
    method run (line 129) | func (opts *options) run() error {
    method validate (line 209) | func (opts *options) validate() error {
    method name (line 213) | func (opts *options) name() string {
    method isResourceNotFoundError (line 217) | func (opts *options) isResourceNotFoundError(err error) error {
    method errors (line 228) | func (opts *options) errors(pipelinesVersion string, errors []error) e...
  function Command (line 66) | func Command(cli app.CLI) *cobra.Command {
  function commandForKind (line 95) | func commandForKind(kind string, opts *options) *cobra.Command {
  function msg (line 203) | func msg(res *unstructured.Unstructured) string {
  function examples (line 292) | func examples(kind string) string {

FILE: api/pkg/cli/cmd/install/install_test.go
  function TestInstall_NewResource (line 145) | func TestInstall_NewResource(t *testing.T) {
  function TestV1Install_NewResource (line 204) | func TestV1Install_NewResource(t *testing.T) {
  function TestInstall_ResourceNotFound (line 263) | func TestInstall_ResourceNotFound(t *testing.T) {
  function TestInstall_ResourceAlreadyExistError (line 326) | func TestInstall_ResourceAlreadyExistError(t *testing.T) {
  function TestV1Install_ResourceAlreadyExistError (line 379) | func TestV1Install_ResourceAlreadyExistError(t *testing.T) {
  function TestInstall_UpgradeError (line 432) | func TestInstall_UpgradeError(t *testing.T) {
  function TestV1Install_UpgradeError (line 486) | func TestV1Install_UpgradeError(t *testing.T) {
  function TestInstall_SameVersionError (line 540) | func TestInstall_SameVersionError(t *testing.T) {
  function TestV1Install_SameVersionError (line 594) | func TestV1Install_SameVersionError(t *testing.T) {
  function TestInstall_LowerVersionError (line 648) | func TestInstall_LowerVersionError(t *testing.T) {
  function TestV1Install_LowerVersionError (line 701) | func TestV1Install_LowerVersionError(t *testing.T) {
  function TestInstall_RespectingPipelinesVersion (line 754) | func TestInstall_RespectingPipelinesVersion(t *testing.T) {
  function TestV1Install_RespectingPipelinesVersion (line 805) | func TestV1Install_RespectingPipelinesVersion(t *testing.T) {
  function TestInstall_RespectingPipelinesVersionFailure (line 856) | func TestInstall_RespectingPipelinesVersionFailure(t *testing.T) {
  function TestV1Install_RespectingPipelinesVersionFailure (line 907) | func TestV1Install_RespectingPipelinesVersionFailure(t *testing.T) {
  function TestInstall_DeprecatedVersion (line 958) | func TestInstall_DeprecatedVersion(t *testing.T) {
  function TestV1Install_DeprecatedVersion (line 1005) | func TestV1Install_DeprecatedVersion(t *testing.T) {
  function createOpts (line 1052) | func createOpts(t *testing.T, buf *bytes.Buffer, hubType, from, version ...
  function createV1Opts (line 1070) | func createV1Opts(t *testing.T, buf *bytes.Buffer, hubType, from, versio...

FILE: api/pkg/cli/cmd/reinstall/reinstall.go
  constant defaultCatalog (line 34) | defaultCatalog = "tekton"
  constant catalogLabel (line 35) | catalogLabel   = "hub.tekton.dev/catalog"
  constant versionLabel (line 36) | versionLabel   = "app.kubernetes.io/version"
  type options (line 39) | type options struct
    method run (line 112) | func (opts *options) run() error {
    method validate (line 174) | func (opts *options) validate() error {
    method name (line 183) | func (opts *options) name() string {
    method isResourceNotFoundError (line 187) | func (opts *options) isResourceNotFoundError(err error) error {
    method lookupError (line 198) | func (opts *options) lookupError(err error) error {
    method errors (line 228) | func (opts *options) errors(resourcePipelineMinVersion, pipelinesVersi...
    method resCatalog (line 253) | func (opts *options) resCatalog() string {
    method resVersion (line 268) | func (opts *options) resVersion() string {
  function Command (line 63) | func Command(cli app.CLI) *cobra.Command {
  function commandForKind (line 92) | func commandForKind(kind string, opts *options) *cobra.Command {
  function msg (line 168) | func msg(res *unstructured.Unstructured) string {
  function examples (line 283) | func examples(kind string) string {

FILE: api/pkg/cli/cmd/reinstall/reinstall_test.go
  function TestReinstall_ResourceNotExist (line 102) | func TestReinstall_ResourceNotExist(t *testing.T) {
  function TestV1Reinstall_ResourceNotExist (line 123) | func TestV1Reinstall_ResourceNotExist(t *testing.T) {
  function TestReinstall_VersionCatalogMissing (line 144) | func TestReinstall_VersionCatalogMissing(t *testing.T) {
  function TestV1Reinstall_VersionCatalogMissing (line 172) | func TestV1Reinstall_VersionCatalogMissing(t *testing.T) {
  function TestReinstall_VersionMissing (line 200) | func TestReinstall_VersionMissing(t *testing.T) {
  function TestV1Reinstall_VersionMissing (line 229) | func TestV1Reinstall_VersionMissing(t *testing.T) {
  function TestReinstall_DifferentVersionPassedByFlag (line 258) | func TestReinstall_DifferentVersionPassedByFlag(t *testing.T) {
  function TestV1Reinstall_DifferentVersionPassedByFlag (line 312) | func TestV1Reinstall_DifferentVersionPassedByFlag(t *testing.T) {
  function TestReinstall_DifferentCatalogPassedByFlag (line 366) | func TestReinstall_DifferentCatalogPassedByFlag(t *testing.T) {
  function TestV1Reinstall_DifferentCatalogPassedByFlag (line 423) | func TestV1Reinstall_DifferentCatalogPassedByFlag(t *testing.T) {
  function TestReinstall (line 480) | func TestReinstall(t *testing.T) {
  function TestV1Reinstall (line 534) | func TestV1Reinstall(t *testing.T) {
  function TestReinstall_RespectPipelinesVersionSuccess (line 588) | func TestReinstall_RespectPipelinesVersionSuccess(t *testing.T) {
  function TestV1Reinstall_RespectPipelinesVersionSuccess (line 646) | func TestV1Reinstall_RespectPipelinesVersionSuccess(t *testing.T) {
  function TestReinstall_RespectPipelinesVersionFailure (line 704) | func TestReinstall_RespectPipelinesVersionFailure(t *testing.T) {
  function TestV1Reinstall_RespectPipelinesVersionFailure (line 763) | func TestV1Reinstall_RespectPipelinesVersionFailure(t *testing.T) {

FILE: api/pkg/cli/cmd/root.go
  function Root (line 34) | func Root(cli app.CLI) *cobra.Command {

FILE: api/pkg/cli/cmd/search/search.go
  constant resTemplate (line 31) | resTemplate = `{{- $rl := len .Resources }}{{ if eq $rl 0 -}}
  constant minResTemplate (line 41) | minResTemplate = `{{- $rl := len .Resources }}{{ if eq $rl 0 -}}
  type options (line 64) | type options struct
    method run (line 119) | func (opts *options) run() error {
    method validate (line 160) | func (opts *options) validate() error {
    method name (line 192) | func (opts *options) name() string {
  function Command (line 88) | func Command(cli app.CLI) *cobra.Command {

FILE: api/pkg/cli/cmd/search/search_test.go
  function TestValidate (line 95) | func TestValidate(t *testing.T) {
  function TestValidate_ErrorCases (line 123) | func TestValidate_ErrorCases(t *testing.T) {
  function TestSearch_TableFormat (line 166) | func TestSearch_TableFormat(t *testing.T) {
  function TestSearch_JSONFormat (line 195) | func TestSearch_JSONFormat(t *testing.T) {
  function TestSearch_ResourceNotFound (line 223) | func TestSearch_ResourceNotFound(t *testing.T) {
  function TestSearch_InternalServerError (line 252) | func TestSearch_InternalServerError(t *testing.T) {
  function TestSearch_InvalidAPIServerURL (line 282) | func TestSearch_InvalidAPIServerURL(t *testing.T) {

FILE: api/pkg/cli/cmd/upgrade/upgrade.go
  constant defaultCatalog (line 34) | defaultCatalog = "tekton"
  constant catalogLabel (line 35) | catalogLabel   = "hub.tekton.dev/catalog"
  constant versionLabel (line 36) | versionLabel   = "app.kubernetes.io/version"
  type options (line 39) | type options struct
    method run (line 110) | func (opts *options) run() error {
    method validate (line 189) | func (opts *options) validate() error {
    method name (line 198) | func (opts *options) name() string {
    method resCatalog (line 207) | func (opts *options) resCatalog() string {
    method lookupError (line 219) | func (opts *options) lookupError(err error) error {
    method errors (line 243) | func (opts *options) errors(resourcePipelineMinVersion, pipelinesVersi...
  function Command (line 62) | func Command(cli app.CLI) *cobra.Command {
  function commandForKind (line 90) | func commandForKind(kind string, opts *options) *cobra.Command {
  function msg (line 183) | func msg(res *unstructured.Unstructured) string {
  function examples (line 202) | func examples(kind string) string {

FILE: api/pkg/cli/cmd/upgrade/upgrade_test.go
  function TestUpgrade_ResourceNotExist (line 102) | func TestUpgrade_ResourceNotExist(t *testing.T) {
  function TestV1Upgrade_ResourceNotExist (line 123) | func TestV1Upgrade_ResourceNotExist(t *testing.T) {
  function TestUpgrade_VersionCatalogMissing (line 144) | func TestUpgrade_VersionCatalogMissing(t *testing.T) {
  function TestV1Upgrade_VersionCatalogMissing (line 172) | func TestV1Upgrade_VersionCatalogMissing(t *testing.T) {
  function TestUpgrade_VersionMissing (line 200) | func TestUpgrade_VersionMissing(t *testing.T) {
  function TestV1Upgrade_VersionMissing (line 229) | func TestV1Upgrade_VersionMissing(t *testing.T) {
  function TestUpgrade_ToSpecificVersion (line 258) | func TestUpgrade_ToSpecificVersion(t *testing.T) {
  function TestV1Upgrade_ToSpecificVersion (line 313) | func TestV1Upgrade_ToSpecificVersion(t *testing.T) {
  function TestUpgrade_SameVersionError (line 368) | func TestUpgrade_SameVersionError(t *testing.T) {
  function TestV1Upgrade_SameVersionError (line 420) | func TestV1Upgrade_SameVersionError(t *testing.T) {
  function TestUpgrade_LowerVersionError (line 472) | func TestUpgrade_LowerVersionError(t *testing.T) {
  function TestV1Upgrade_LowerVersionError (line 524) | func TestV1Upgrade_LowerVersionError(t *testing.T) {
  function TestUpgrade_ToSpecificVersion_RespectingPipelineSuccess (line 576) | func TestUpgrade_ToSpecificVersion_RespectingPipelineSuccess(t *testing....
  function TestV1Upgrade_ToSpecificVersion_RespectingPipelineSuccess (line 636) | func TestV1Upgrade_ToSpecificVersion_RespectingPipelineSuccess(t *testin...
  function TestUpgrade_ToSpecificVersion_RespectingPipelineFailure (line 696) | func TestUpgrade_ToSpecificVersion_RespectingPipelineFailure(t *testing....
  function TestV1Upgrade_ToSpecificVersion_RespectingPipelineFailure (line 756) | func TestV1Upgrade_ToSpecificVersion_RespectingPipelineFailure(t *testin...

FILE: api/pkg/cli/flag/validate.go
  function InList (line 24) | func InList(option, val string, list []string) error {
  function TrimArray (line 38) | func TrimArray(arr []string) []string {
  function AllEmpty (line 44) | func AllEmpty(arr ...[]string) bool {
  function ValidateVersion (line 54) | func ValidateVersion(version string) error {

FILE: api/pkg/cli/flag/validate_test.go
  function TestInList (line 23) | func TestInList(t *testing.T) {
  function TestTrimArray (line 34) | func TestTrimArray(t *testing.T) {
  function TestValidateVersion (line 42) | func TestValidateVersion(t *testing.T) {

FILE: api/pkg/cli/formatter/field.go
  function FormatName (line 44) | func FormatName(name, latestVersion string) string {
  function FormatCatalogName (line 49) | func FormatCatalogName(catalogName string) string {
  function FormatDesc (line 54) | func FormatDesc(desc string, num int) string {
  function FormatTags (line 65) | func FormatTags(tags []*client.TagResponseBody) string {
  function FormatCategories (line 81) | func FormatCategories(categories []*client.CategoryResponseBody) string {
  function FormatPlatforms (line 97) | func FormatPlatforms(platforms []*client.PlatformResponseBody) string {
  function WrapText (line 116) | func WrapText(desc string, maxWidth, titleLength int) string {
  function breakString (line 133) | func breakString(desc string, width, titleLength int) string {
  function findSpaceIndexFromLast (line 157) | func findSpaceIndexFromLast(str string) int {
  function FormatVersion (line 163) | func FormatVersion(version string, latest bool, deprecated bool) string {
  function Icon (line 174) | func Icon(title string) string {
  function DefaultValue (line 183) | func DefaultValue(val, def string) string {
  function FormatInstallCMD (line 191) | func FormatInstallCMD(res hub.ResourceData, resVer hub.ResourceWithVersi...
  function DecorateAttr (line 209) | func DecorateAttr(attrString, message string) string {

FILE: api/pkg/cli/formatter/field_test.go
  function TestFormatName (line 24) | func TestFormatName(t *testing.T) {
  function TestFormatCatalogName (line 29) | func TestFormatCatalogName(t *testing.T) {
  function TestFormatDesc (line 34) | func TestFormatDesc(t *testing.T) {
  function TestFormatTags (line 49) | func TestFormatTags(t *testing.T) {
  function TestFormatCategories (line 71) | func TestFormatCategories(t *testing.T) {
  function TestFormatPlatforms (line 93) | func TestFormatPlatforms(t *testing.T) {
  function TestWrapText (line 115) | func TestWrapText(t *testing.T) {
  function TestFormatVersion (line 126) | func TestFormatVersion(t *testing.T) {
  function TestIcon (line 137) | func TestIcon(t *testing.T) {
  function TestDecorate (line 142) | func TestDecorate(t *testing.T) {

FILE: api/pkg/cli/formatter/json.go
  function FormatJSON (line 23) | func FormatJSON(b []byte) ([]byte, error) {

FILE: api/pkg/cli/formatter/json_test.go
  function TestFormatJSON (line 28) | func TestFormatJSON(t *testing.T) {

FILE: api/pkg/cli/gvr/gvr.go
  function GetVersionList (line 30) | func GetVersionList(gr schema.GroupVersionResource, discovery discovery....
  function InitializeAPIGroupRes (line 55) | func InitializeAPIGroupRes(discovery discovery.DiscoveryInterface) error {

FILE: api/pkg/cli/hub/get_catalog.go
  type CatalogResult (line 25) | type CatalogResult struct
    method Type (line 47) | func (cr *CatalogResult) Type() (CatalogData, error) {
  type artifactHubCatalogResponse (line 33) | type artifactHubCatalogResponse struct
  method GetAllCatalogs (line 37) | func (c *tektonHubClient) GetAllCatalogs() CatalogResult {
  method GetCatalogsList (line 59) | func (a *artifactHubClient) GetCatalogsList() ([]string, error) {
  method GetCatalogsList (line 79) | func (t *tektonHubClient) GetCatalogsList() ([]string, error) {

FILE: api/pkg/cli/hub/get_catalog_test.go
  function TestGetCatalogEndpoint (line 23) | func TestGetCatalogEndpoint(t *testing.T) {

FILE: api/pkg/cli/hub/get_resource.go
  type ResourceOption (line 30) | type ResourceOption struct
    method Endpoint (line 240) | func (opt ResourceOption) Endpoint() string {
  type ResourceResult (line 39) | type ResourceResult interface
  type TektonHubResourceResult (line 51) | type TektonHubResourceResult struct
    method UnmarshalData (line 255) | func (rr *TektonHubResourceResult) UnmarshalData() error {
    method RawURL (line 295) | func (rr *TektonHubResourceResult) RawURL() (string, error) {
    method Manifest (line 312) | func (rr *TektonHubResourceResult) Manifest() ([]byte, error) {
    method Resource (line 337) | func (rr *TektonHubResourceResult) Resource() (interface{}, error) {
    method ResourceYaml (line 354) | func (rr *TektonHubResourceResult) ResourceYaml() (string, error) {
    method ResourceVersion (line 389) | func (rr *TektonHubResourceResult) ResourceVersion() (string, error) {
    method MinPipelinesVersion (line 416) | func (rr *TektonHubResourceResult) MinPipelinesVersion() (string, erro...
    method Org (line 455) | func (rr *TektonHubResourceResult) Org() (string, error) {
  type ArtifactHubResourceResult (line 66) | type ArtifactHubResourceResult struct
    method UnmarshalData (line 290) | func (rr *ArtifactHubResourceResult) UnmarshalData() error {
    method RawURL (line 307) | func (rr *ArtifactHubResourceResult) RawURL() (string, error) {
    method Manifest (line 332) | func (rr *ArtifactHubResourceResult) Manifest() ([]byte, error) {
    method Resource (line 349) | func (rr *ArtifactHubResourceResult) Resource() (interface{}, error) {
    method ResourceYaml (line 377) | func (rr *ArtifactHubResourceResult) ResourceYaml() (string, error) {
    method ResourceVersion (line 401) | func (rr *ArtifactHubResourceResult) ResourceVersion() (string, error) {
    method MinPipelinesVersion (line 428) | func (rr *ArtifactHubResourceResult) MinPipelinesVersion() (string, er...
    method Org (line 443) | func (rr *ArtifactHubResourceResult) Org() (string, error) {
    method validateData (line 460) | func (rr *ArtifactHubResourceResult) validateData() error {
  type ResourceVersionOptions (line 74) | type ResourceVersionOptions struct
  type ArtifactHubPkgResponse (line 97) | type ArtifactHubPkgResponse struct
  type ArtifactHubRepo (line 104) | type ArtifactHubRepo struct
  type ArtifactHubPkgData (line 108) | type ArtifactHubPkgData struct
  type ArtifactHubVersion (line 114) | type ArtifactHubVersion struct
  method GetResource (line 119) | func (a *artifactHubClient) GetResource(opt ResourceOption) ResourceResu...
  method GetResource (line 124) | func (t *tektonHubClient) GetResource(opt ResourceOption) ResourceResult {
  method GetResourceYaml (line 137) | func (a *artifactHubClient) GetResourceYaml(opt ResourceOption) Resource...
  method GetResourceYaml (line 150) | func (t *tektonHubClient) GetResourceYaml(opt ResourceOption) ResourceRe...
  method GetResourcesList (line 168) | func (a *artifactHubClient) GetResourcesList(so SearchOption) ([]string,...
  method GetResourcesList (line 173) | func (t *tektonHubClient) GetResourcesList(so SearchOption) ([]string, e...
  method GetResourceVersionslist (line 201) | func (a *artifactHubClient) GetResourceVersionslist(r ResourceOption) ([...
  method GetResourceVersionslist (line 216) | func (t *tektonHubClient) GetResourceVersionslist(r ResourceOption) ([]s...
  function findArtifactHubResourceVersions (line 474) | func findArtifactHubResourceVersions(data []byte) ([]string, error) {
  function sortVersionsSemanticaly (line 493) | func sortVersionsSemanticaly(versions []string) []string {

FILE: api/pkg/cli/hub/get_resource_test.go
  function TestGetResourceEndpoint (line 23) | func TestGetResourceEndpoint(t *testing.T) {
  function TestSortVersionsSemanticaly (line 43) | func TestSortVersionsSemanticaly(t *testing.T) {

FILE: api/pkg/cli/hub/get_resource_version.go
  type ResourceVersionResult (line 31) | type ResourceVersionResult interface
  type TektonHubResourceVersionResult (line 37) | type TektonHubResourceVersionResult struct
    method UnmarshalData (line 79) | func (rvr *TektonHubResourceVersionResult) UnmarshalData() error {
    method ResourceVersions (line 97) | func (rvr *TektonHubResourceVersionResult) ResourceVersions() (*ResVer...
  method GetResourceVersions (line 47) | func (a *artifactHubClient) GetResourceVersions(opt ResourceOption) Reso...
  method GetResourceVersions (line 53) | func (t *tektonHubClient) GetResourceVersions(opt ResourceOption) Resour...
  function resVersionsEndpoint (line 75) | func resVersionsEndpoint(rID uint) string {

FILE: api/pkg/cli/hub/get_resource_version_test.go
  function TestGetResourceVersionEndpoint (line 23) | func TestGetResourceVersionEndpoint(t *testing.T) {

FILE: api/pkg/cli/hub/hub.go
  constant ArtifactHubType (line 29) | ArtifactHubType = "artifact"
  constant TektonHubType (line 30) | TektonHubType   = "tekton"
  constant tektonHubURL (line 33) | tektonHubURL   = "https://api.hub.tekton.dev"
  constant artifactHubURL (line 34) | artifactHubURL = "https://artifacthub.io"
  constant hubConfigPath (line 35) | hubConfigPath  = ".tekton/hub-config"
  constant tektonHubCatEndpoint (line 37) | tektonHubCatEndpoint         = "/v1/catalogs"
  constant artifactHubCatSearchEndpoint (line 38) | artifactHubCatSearchEndpoint = "/api/v1/repositories/search"
  constant artifactHubCatInfoEndpoint (line 39) | artifactHubCatInfoEndpoint   = "/api/v1/packages/tekton"
  constant artifactHubTaskType (line 40) | artifactHubTaskType          = 7
  constant artifactHubPipelineType (line 41) | artifactHubPipelineType      = 11
  type Client (line 44) | type Client interface
  type tektonHubClient (line 57) | type tektonHubClient struct
    method GetType (line 87) | func (t *tektonHubClient) GetType() string {
    method SetURL (line 107) | func (t *tektonHubClient) SetURL(apiURL string) error {
    method Get (line 123) | func (t *tektonHubClient) Get(endpoint string) ([]byte, int, error) {
  type artifactHubClient (line 61) | type artifactHubClient struct
    method GetType (line 82) | func (a *artifactHubClient) GetType() string {
    method SetURL (line 94) | func (a *artifactHubClient) SetURL(apiURL string) error {
    method Get (line 118) | func (a *artifactHubClient) Get(endpoint string) ([]byte, int, error) {
  function NewTektonHubClient (line 68) | func NewTektonHubClient() *tektonHubClient {
  function NewArtifactHubClient (line 72) | func NewArtifactHubClient() *artifactHubClient {
  function URL (line 77) | func URL() string {
  function resolveUrl (line 127) | func resolveUrl(apiURL, envVariable, defaultUrl string) (string, error) {
  function get (line 153) | func get(url string) ([]byte, int, error) {
  function httpGet (line 174) | func httpGet(url string) ([]byte, int, error) {
  function loadConfigFile (line 197) | func loadConfigFile() error {

FILE: api/pkg/cli/hub/hub_test.go
  function TestSetURL_TektonHub (line 9) | func TestSetURL_TektonHub(t *testing.T) {
  function TestSetURL_ArtifactHub (line 26) | func TestSetURL_ArtifactHub(t *testing.T) {
  function TestSetURL_InvalidCase (line 43) | func TestSetURL_InvalidCase(t *testing.T) {

FILE: api/pkg/cli/hub/search.go
  type SearchOption (line 27) | type SearchOption struct
    method Endpoint (line 89) | func (so SearchOption) Endpoint() string {
  type SearchResult (line 45) | type SearchResult struct
    method Raw (line 68) | func (sr *SearchResult) Raw() ([]byte, error) {
    method Typed (line 73) | func (sr *SearchResult) Typed() (SearchResponse, error) {
  method Search (line 53) | func (a *artifactHubClient) Search(so SearchOption) SearchResult {
  method Search (line 59) | func (t *tektonHubClient) Search(so SearchOption) SearchResult {
  function addArraytoURL (line 120) | func addArraytoURL(param string, arr []string, v url.Values) {

FILE: api/pkg/cli/hub/search_test.go
  function TestEndpoint (line 23) | func TestEndpoint(t *testing.T) {

FILE: api/pkg/cli/installer/action.go
  constant versionLabel (line 31) | versionLabel                = "app.kubernetes.io/version"
  constant tektonHubCatalogLabel (line 32) | tektonHubCatalogLabel       = "hub.tekton.dev/catalog"
  constant artifactHubCatalogLabel (line 33) | artifactHubCatalogLabel     = "artifacthub.io/catalog"
  constant artifactHubOrgLabel (line 34) | artifactHubOrgLabel         = "artifacthub.io/org"
  constant artifactHubSupportTierLabel (line 35) | artifactHubSupportTierLabel = "artifacthub.io/support-tier"
  constant communitySupportTier (line 36) | communitySupportTier        = "Community"
  constant verifiedSupportTier (line 37) | verifiedSupportTier         = "Verified"
  constant verifiedCatOrg (line 38) | verifiedCatOrg              = "tektoncd"
  type action (line 55) | type action
  constant update (line 58) | update             action = "update"
  constant upgrade (line 59) | upgrade            action = "upgrade"
  constant downgrade (line 60) | downgrade          action = " downgrade"
  constant ResourceMinVersion (line 61) | ResourceMinVersion string = "tekton.dev/pipelines.minVersion"
  method TektonPipelinesVersion (line 64) | func (i *Installer) TektonPipelinesVersion() {
  method GetPipelineVersion (line 73) | func (i *Installer) GetPipelineVersion() string {
  method checkVersion (line 77) | func (i *Installer) checkVersion(resPipMinVersion string) error {
  method Install (line 92) | func (i *Installer) Install(data []byte, hubType, org, catalog, namespac...
  method LookupInstalled (line 137) | func (i *Installer) LookupInstalled(name, kind, namespace string) (*unst...
  method ListInstalled (line 155) | func (i *Installer) ListInstalled(kind, namespace string) ([]unstructure...
  method Update (line 166) | func (i *Installer) Update(data []byte, catalog, namespace string) (*uns...
  method Upgrade (line 171) | func (i *Installer) Upgrade(data []byte, catalog, namespace string) (*un...
  method Downgrade (line 176) | func (i *Installer) Downgrade(data []byte, catalog, namespace string) (*...
  method updateByAction (line 180) | func (i *Installer) updateByAction(data []byte, catalog, namespace strin...
  function isUpgradable (line 239) | func isUpgradable(existingVersion, newVersion string) error {
  function isDowngradable (line 250) | func isDowngradable(existingVersion, newVersion string) error {
  function checkLabels (line 261) | func checkLabels(res *unstructured.Unstructured) error {
  method createRes (line 287) | func (i *Installer) createRes(obj *unstructured.Unstructured, hubType, o...
  method updateRes (line 299) | func (i *Installer) updateRes(existing, new *unstructured.Unstructured, ...
  function toUnstructured (line 318) | func toUnstructured(data []byte) (*unstructured.Unstructured, error) {
  function addCatalogLabel (line 330) | func addCatalogLabel(obj *unstructured.Unstructured, hubType, org, catal...

FILE: api/pkg/cli/installer/action_test.go
  constant res (line 28) | res = `---
  function TestToUnstructuredAndAddLabel (line 45) | func TestToUnstructuredAndAddLabel(t *testing.T) {
  function TestListInstalled (line 106) | func TestListInstalled(t *testing.T) {

FILE: api/pkg/cli/installer/config.go
  type ClientSet (line 23) | type ClientSet interface
  type Installer (line 28) | type Installer struct
  function New (line 34) | func New(cs ClientSet) *Installer {

FILE: api/pkg/cli/installer/kube_action.go
  constant tektonGroup (line 28) | tektonGroup = "tekton.dev"
  method create (line 30) | func (i *Installer) create(object *unstructured.Unstructured, namespace ...
  method get (line 56) | func (i *Installer) get(objectName, kind, namespace string, op metav1.Ge...
  method update (line 76) | func (i *Installer) update(object *unstructured.Unstructured, namespace ...
  method list (line 100) | func (i *Installer) list(kind, namespace string, op metav1.ListOptions) ...
  function contains (line 121) | func contains(list []string, value string) bool {

FILE: api/pkg/cli/kube/client.go
  type Config (line 26) | type Config struct
  type clients (line 32) | type clients struct
    method Dynamic (line 48) | func (p *clients) Dynamic() dynamic.Interface {
    method Tekton (line 52) | func (p *clients) Tekton() versioned.Interface {
    method Namespace (line 55) | func (p *clients) Namespace() string {
    method config (line 85) | func (p *clients) config() (*rest.Config, error) {
  type ClientSet (line 40) | type ClientSet interface
  function NewClientSet (line 59) | func NewClientSet(p Config) (*clients, error) {
  function dynamicClient (line 109) | func dynamicClient(config *rest.Config) (dynamic.Interface, error) {
  function tektonClient (line 117) | func tektonClient(config *rest.Config) (versioned.Interface, error) {

FILE: api/pkg/cli/options/select_options.go
  type Options (line 26) | type Options struct
    method Ask (line 36) | func (opts *Options) Ask(resourceInfo string, options []string) error {
    method AskCatalogName (line 64) | func (opts *Options) AskCatalogName() (string, error) {
    method AskResourceName (line 86) | func (opts *Options) AskResourceName() (string, error) {
    method AskVersion (line 110) | func (opts *Options) AskVersion(name string) (string, error) {

FILE: api/pkg/cli/options/select_options_test.go
  function TestOptions_Ask (line 25) | func TestOptions_Ask(t *testing.T) {

FILE: api/pkg/cli/printer/print.go
  type Printer (line 26) | type Printer struct
    method JSON (line 36) | func (p *Printer) JSON(data []byte, err error) error {
    method Tabbed (line 50) | func (p *Printer) Tabbed(tmpl *template.Template, templateData interfa...
    method Raw (line 59) | func (p *Printer) Raw(data []byte, err error) error {
    method String (line 69) | func (p *Printer) String(str string) error {
  function New (line 31) | func New(out io.Writer) *Printer {

FILE: api/pkg/cli/test/builder/apiresource.go
  constant group (line 24) | group string = "tekton.dev"
  function APIResourceList (line 27) | func APIResourceList(version string, kinds []string) []*metav1.APIResour...
  function apiresources (line 36) | func apiresources(version string, kinds []string) []metav1.APIResource {

FILE: api/pkg/cli/test/builder/unstructured.go
  function UnstructuredV1beta1T (line 24) | func UnstructuredV1beta1T(task *v1beta1.Task, version string) *unstructu...
  function UnstructuredV1 (line 33) | func UnstructuredV1(task *v1.Task, version string) *unstructured.Unstruc...

FILE: api/pkg/cli/test/client.go
  type fakeClients (line 24) | type fakeClients struct
    method Dynamic (line 32) | func (p *fakeClients) Dynamic() dynamic.Interface {
    method Tekton (line 36) | func (p *fakeClients) Tekton() versioned.Interface {
    method Namespace (line 39) | func (p *fakeClients) Namespace() string {
  function FakeClientSet (line 43) | func FakeClientSet(tekton versioned.Interface, dynamic dynamic.Interface...

FILE: api/pkg/cli/test/config.go
  constant API (line 26) | API string = "http://test.hub.cli"
  type cli (line 28) | type cli struct
    method Stream (line 57) | func (c *cli) Stream() app.Stream {
    method SetStream (line 61) | func (c *cli) SetStream(out, err io.Writer) {
    method Hub (line 65) | func (c *cli) Hub() hub.Client {
    method SetHub (line 69) | func (c *cli) SetHub(hubType string) error {
  function NewCLI (line 35) | func NewCLI(hubType string) *cli {

FILE: api/pkg/cli/test/dynamictestclient.go
  function DynamicClient (line 23) | func DynamicClient(objects ...runtime.Object) *fake.FakeDynamicClient {

FILE: api/pkg/cli/test/helpers.go
  type Data (line 31) | type Data struct
  function SeedTestData (line 36) | func SeedTestData(t *testing.T, d pipelinetest.Data) (pipelinetest.Clien...
  function SeedV1beta1TestData (line 41) | func SeedV1beta1TestData(t *testing.T, d Data) (Clients, Informers) {
  function GetDeploymentData (line 46) | func GetDeploymentData(name, version string) *unstructured.Unstructured {
  function GetConfigMapData (line 82) | func GetConfigMapData(name string, version string) *unstructured.Unstruc...
  function CreateTektonPipelineController (line 101) | func CreateTektonPipelineController(dynamic dynamic.Interface, version s...

FILE: api/pkg/cli/test/prompt/prompt.go
  type Prompt (line 29) | type Prompt struct
    method RunTest (line 36) | func (pt *Prompt) RunTest(t *testing.T, procedure func(*goexpect.Conso...
  function WithStdio (line 65) | func WithStdio(stdio terminal.Stdio) survey.AskOpt {
  function stdio (line 74) | func stdio(c *goexpect.Console) terminal.Stdio {

FILE: api/pkg/cli/test/v1beta.go
  type Clients (line 18) | type Clients struct
  type Informers (line 24) | type Informers struct
  function seedTestData (line 32) | func seedTestData(t *testing.T, ctx context.Context, d Data) (Clients, I...

FILE: api/pkg/cli/version/version.go
  constant pipelinesControllerSelector (line 29) | pipelinesControllerSelector string = "app.kubernetes.io/part-of=tekton-p...
  constant pipelinesConfigMapName (line 30) | pipelinesConfigMapName      string = "pipelines-info"
  function GetPipelineVersion (line 35) | func GetPipelineVersion(dynamic dynamic.Interface) (string, error) {
  function getDeployments (line 63) | func getDeployments(dynamic dynamic.Interface, newLabel string) (*unstru...
  function getDeploy (line 85) | func getDeploy(dynamic dynamic.Interface, newLabel, ns string) (*unstruc...
  function getConfigMap (line 94) | func getConfigMap(dynamic dynamic.Interface, name string) (*unstructured...
  function findPipelineVersion (line 116) | func findPipelineVersion(deployments []unstructured.Unstructured) string {

FILE: api/pkg/cli/version/version_test.go
  function TestGetPipelineVersion (line 28) | func TestGetPipelineVersion(t *testing.T) {
  function TestGetPipelineVersionViaConfigMap (line 61) | func TestGetPipelineVersionViaConfigMap(t *testing.T) {

FILE: api/pkg/db/initializer/initializer.go
  type Initializer (line 28) | type Initializer struct
    method Run (line 49) | func (i *Initializer) Run(ctx context.Context) (*model.Config, error) {
    method CreateApiServerAccount (line 252) | func (i *Initializer) CreateApiServerAccount(db *gorm.DB, logger *app....
  function New (line 41) | func New(api app.BaseConfig) *Initializer {
  type initFn (line 102) | type initFn
  function addCategories (line 104) | func addCategories(db *gorm.DB, log *app.Logger, data *app.Data) error {
  function addCatalogs (line 132) | func addCatalogs(db *gorm.DB, log *app.Logger, data *app.Data) error {
  function addUsers (line 153) | func addUsers(db *gorm.DB, log *app.Logger, data *app.Data) error {
  function withTransaction (line 208) | func withTransaction(db *gorm.DB, log *app.Logger, data *app.Data, fns ....
  function addApiServerUser (line 221) | func addApiServerUser(db *gorm.DB, log *app.Logger) error {

FILE: api/pkg/db/migration/202010061403_rename_name_to_agent_name_in_user.go
  function renameNameColumnToAgentNameInUserTable (line 23) | func renameNameColumnToAgentNameInUserTable(log *app.Logger) *gormigrate...

FILE: api/pkg/db/migration/202010071100_create_config_table.go
  function createConfigTable (line 24) | func createConfigTable(log *app.Logger) *gormigrate.Migration {

FILE: api/pkg/db/migration/202010271300_add_refresh_token_checksum_col_in_user_table.go
  function addRefreshTokenChecksumColumnInUserTable (line 24) | func addRefreshTokenChecksumColumnInUserTable(log *app.Logger) *gormigra...

FILE: api/pkg/db/migration/202102171333_update_catalog_branch_to_main.go
  function updateCatalogBranchToMain (line 24) | func updateCatalogBranchToMain(log *app.Logger) *gormigrate.Migration {

FILE: api/pkg/db/migration/202103161200_add_avatar_url_column_in_users_table.go
  function addAvatarURLColumnInUsersTable (line 24) | func addAvatarURLColumnInUsersTable(log *app.Logger) *gormigrate.Migrati...

FILE: api/pkg/db/migration/202106031300_update_resources_category_table.go
  function updateResourcesCategoryTable (line 26) | func updateResourcesCategoryTable(log *app.Logger) *gormigrate.Migration {

FILE: api/pkg/db/migration/202106281500_create_platform_tables.go
  function createPlatformTables (line 24) | func createPlatformTables(log *app.Logger) *gormigrate.Migration {

FILE: api/pkg/db/migration/202106282200_add_deprecated_col_in_resource_version_table.go
  function addDeprecatedColumnInResoureVersionTable (line 24) | func addDeprecatedColumnInResoureVersionTable(log *app.Logger) *gormigra...

FILE: api/pkg/db/migration/202107221500_add_ondelete_constraints.go
  function addOnDeleteConstraints (line 26) | func addOnDeleteConstraints(log *app.Logger) *gormigrate.Migration {
  function addOnDelete (line 44) | func addOnDelete(txn *gorm.DB, log *app.Logger) error {

FILE: api/pkg/db/migration/202107291608_refresh_all_tables.go
  function refreshAllTables (line 31) | func refreshAllTables(log *app.Logger) *gormigrate.Migration {
  function migrateDB (line 48) | func migrateDB(txn *gorm.DB, log *app.Logger) error {

FILE: api/pkg/db/migration/202109151102_add_provider_in_catalog_table.go
  function addProviderColumnInCatalogsTable (line 24) | func addProviderColumnInCatalogsTable(log *app.Logger) *gormigrate.Migra...

FILE: api/pkg/db/migration/202109201733_add-code_col_in_user_table.go
  function addCodeColInUserTable (line 24) | func addCodeColInUserTable(log *app.Logger) *gormigrate.Migration {

FILE: api/pkg/db/migration/202111091037_backup_users_add_account_table_and_update_data.go
  function addUsersDetailsInAccountTable (line 30) | func addUsersDetailsInAccountTable(log *app.Logger) *gormigrate.Migration {

FILE: api/pkg/db/migration/202202191725_add_ssh_url_column_in_catalogs_table.go
  function addSSHURLColumnInCatalogsTable (line 24) | func addSSHURLColumnInCatalogsTable(log *app.Logger) *gormigrate.Migrati...

FILE: api/pkg/db/migration/migration.go
  function Migrate (line 25) | func Migrate(api *app.APIBase) error {

FILE: api/pkg/db/model/model.go
  type Category (line 24) | type Category struct
  type Tag (line 30) | type Tag struct
  type Platform (line 36) | type Platform struct
  type Catalog (line 43) | type Catalog struct
  type CatalogError (line 58) | type CatalogError struct
  type Resource (line 66) | type Resource struct
  type ResourceVersion (line 79) | type ResourceVersion struct
  type ResourceTag (line 93) | type ResourceTag struct
  type VersionPlatform (line 98) | type VersionPlatform struct
  type ResourcePlatform (line 103) | type ResourcePlatform struct
  type ResourceCategory (line 108) | type ResourceCategory struct
  type UserBackup (line 113) | type UserBackup struct
  type User (line 125) | type User struct
  type Scope (line 136) | type Scope struct
  type UserResourceRating (line 141) | type UserResourceRating struct
  type Account (line 150) | type Account struct
  type UserScope (line 159) | type UserScope struct
  type Config (line 164) | type Config struct
  type UserType (line 170) | type UserType
  constant NormalUserType (line 174) | NormalUserType UserType = "user"
  constant AgentUserType (line 175) | AgentUserType  UserType = "agent"

FILE: api/pkg/db/model/sync_job.go
  type JobState (line 22) | type JobState
    method String (line 32) | func (s JobState) String() string {
  constant JobQueued (line 26) | JobQueued JobState = iota
  constant JobRunning (line 27) | JobRunning
  constant JobDone (line 28) | JobDone
  constant JobError (line 29) | JobError
  type SyncJob (line 36) | type SyncJob struct
    method SetState (line 45) | func (j *SyncJob) SetState(s JobState) {
    method IsRunning (line 49) | func (j *SyncJob) IsRunning() bool {

FILE: api/pkg/db/validation/validation_test.go
  function TestCheckNotNull (line 28) | func TestCheckNotNull(t *testing.T) {
  function TestCheckUnique (line 47) | func TestCheckUnique(t *testing.T) {

FILE: api/pkg/git/fetch_spec.go
  type FetchSpec (line 23) | type FetchSpec struct
    method sanitize (line 33) | func (f *FetchSpec) sanitize() {
    method clonePath (line 41) | func (f *FetchSpec) clonePath() string {

FILE: api/pkg/git/git.go
  type Client (line 29) | type Client interface
  type client (line 33) | type client struct
    method Fetch (line 42) | func (c *client) Fetch(spec FetchSpec) (Repo, error) {
    method initRepo (line 76) | func (c *client) initRepo(spec FetchSpec) (*LocalRepo, error) {
  function New (line 37) | func New(log *zap.SugaredLogger) Client {
  function ensureHomeEnv (line 116) | func ensureHomeEnv(log *zap.SugaredLogger) error {
  function git (line 145) | func git(log *zap.SugaredLogger, kind string, args ...string) (string, e...
  function rawGit (line 159) | func rawGit(dir string, args ...string) (string, error) {

FILE: api/pkg/git/repo.go
  type Repo (line 23) | type Repo interface
  type LocalRepo (line 30) | type LocalRepo struct
    method Path (line 35) | func (r LocalRepo) Path() string {
    method Head (line 39) | func (r LocalRepo) Head() string {
    method ModifiedTime (line 49) | func (r LocalRepo) ModifiedTime(path string) (time.Time, error) {
    method RelPath (line 64) | func (r LocalRepo) RelPath(file string) (string, error) {

FILE: api/pkg/parser/catalog.go
  constant VersionLabel (line 40) | VersionLabel                  = "app.kubernetes.io/version"
  constant DisplayNameAnnotation (line 41) | DisplayNameAnnotation         = "tekton.dev/displayName"
  constant MinPipelinesVersionAnnotation (line 42) | MinPipelinesVersionAnnotation = "tekton.dev/pipelines.minVersion"
  constant TagsAnnotation (line 43) | TagsAnnotation                = "tekton.dev/tags"
  constant CategoryAnnotation (line 44) | CategoryAnnotation            = "tekton.dev/categories"
  constant PlatformsAnnotation (line 45) | PlatformsAnnotation           = "tekton.dev/platforms"
  constant DefaultPlatform (line 46) | DefaultPlatform               = "linux/amd64"
  constant DeprecatedAnnotation (line 47) | DeprecatedAnnotation          = "tekton.dev/deprecated"
  type Resource (line 51) | type Resource struct
  type VersionInfo (line 60) | type VersionInfo struct
  type CatalogParser (line 72) | type CatalogParser struct
    method Parse (line 78) | func (c *CatalogParser) Parse() ([]Resource, Result) {
    method findResourcesByKind (line 100) | func (c CatalogParser) findResourcesByKind(kind string) ([]Resource, R...
    method parseResource (line 158) | func (c CatalogParser) parseResource(kind, kindPath string, f os.FileI...
    method appendVersion (line 212) | func (c CatalogParser) appendVersion(res *Resource, filePath string) R...
  function ignoreNotExists (line 93) | func ignoreNotExists(err error) error {
  function dirCount (line 147) | func dirCount(path string) int {
  function decodeResource (line 334) | func decodeResource(reader io.Reader, kind string) (*TektonResource, err...
  function convertToTyped (line 387) | func convertToTyped(u *unstructured.Unstructured) (interface{}, error) {
  function isEmptyFieldError (line 405) | func isEmptyFieldError(fe *apis.FieldError) bool {
  type tektonKind (line 412) | type tektonKind interface
  function typeForKind (line 417) | func typeForKind(kind string) (tektonKind, error) {
  function isTektonKind (line 428) | func isTektonKind(gvk *schema.GroupVersionKind) bool {

FILE: api/pkg/parser/catalog_test.go
  type fakeRepo (line 28) | type fakeRepo struct
    method Path (line 36) | func (r fakeRepo) Path() string {
    method Head (line 40) | func (r fakeRepo) Head() string {
    method ModifiedTime (line 44) | func (r fakeRepo) ModifiedTime(path string) (time.Time, error) {
    method RelPath (line 50) | func (r fakeRepo) RelPath(f string) (string, error) {
  function TestParse_NonExistentRepo (line 54) | func TestParse_NonExistentRepo(t *testing.T) {
  function TestParse_ValidRepo (line 66) | func TestParse_ValidRepo(t *testing.T) {
  function TestParse_InvalidTask (line 96) | func TestParse_InvalidTask(t *testing.T) {
  function TestParse_InvalidFilename (line 116) | func TestParse_InvalidFilename(t *testing.T) {

FILE: api/pkg/parser/kind.go
  function SupportedKinds (line 28) | func SupportedKinds() []string {
  function IsSupportedKind (line 33) | func IsSupportedKind(kind string) bool {

FILE: api/pkg/parser/parser.go
  type Parser (line 29) | type Parser interface
  function registerSchema (line 33) | func registerSchema() {
  function ForCatalog (line 42) | func ForCatalog(logger *zap.SugaredLogger, repo git.Repo, contextPath st...

FILE: api/pkg/parser/resource.go
  type TektonResource (line 24) | type TektonResource struct
    method ToType (line 33) | func (r *TektonResource) ToType() (interface{}, error) {

FILE: api/pkg/parser/result.go
  type IssueType (line 22) | type IssueType
    method String (line 30) | func (t IssueType) String() string {
  constant Critical (line 25) | Critical IssueType = iota
  constant Warning (line 26) | Warning
  constant Info (line 27) | Info
  type Issue (line 34) | type Issue struct
  type Result (line 39) | type Result struct
    method add (line 44) | func (r *Result) add(t IssueType, format string, args ...interface{}) {
    method Critical (line 52) | func (r *Result) Critical(format string, args ...interface{}) {
    method Warn (line 56) | func (r *Result) Warn(format string, args ...interface{}) {
    method Info (line 60) | func (r *Result) Info(format string, args ...interface{}) {
    method Error (line 64) | func (r *Result) Error() string {
    method AddError (line 82) | func (r *Result) AddError(err error) {
    method Combine (line 89) | func (r *Result) Combine(other Result) {

FILE: api/pkg/service/admin/admin.go
  type service (line 30) | type service struct
    method UpdateAgent (line 61) | func (s *service) UpdateAgent(ctx context.Context, p *admin.UpdateAgen...
    method RefreshConfig (line 215) | func (s *service) RefreshConfig(ctx context.Context, p *admin.RefreshC...
  type agentRequest (line 35) | type agentRequest struct
    method run (line 71) | func (r *agentRequest) run(name string, scopes []string) (*admin.Updat...
    method updateAgent (line 91) | func (r *agentRequest) updateAgent(name string, scopes []string) (stri...
    method addNewAgent (line 117) | func (r *agentRequest) addNewAgent(name string, scopes []string) (stri...
    method updateExistingAgent (line 149) | func (r *agentRequest) updateExistingAgent(agent *model.User, scopes [...
    method addScopesForAgent (line 171) | func (r *agentRequest) addScopesForAgent(agent *model.User, scopes []s...
    method userExistWithAgentName (line 198) | func (r *agentRequest) userExistWithAgentName(name string) error {
  type refreshRequest (line 41) | type refreshRequest struct
    method run (line 226) | func (r *refreshRequest) run(ctx context.Context) (*admin.RefreshConfi...
  function New (line 53) | func New(api app.Config) admin.Service {

FILE: api/pkg/service/admin/admin_http_test.go
  function UpdateAgentChecker (line 38) | func UpdateAgentChecker(tc *testutils.TestConfig) *goahttpcheck.APICheck...
  function TestUpdateAgent_Http_NewAgent (line 47) | func TestUpdateAgent_Http_NewAgent(t *testing.T) {
  function TestUpdateAgent_Http_NormalUserExistWithName (line 83) | func TestUpdateAgent_Http_NormalUserExistWithName(t *testing.T) {
  function TestUpdateAgent_Http_InvalidScopeCase (line 113) | func TestUpdateAgent_Http_InvalidScopeCase(t *testing.T) {
  function TestUpdateAgent_Http_UpdateCase (line 144) | func TestUpdateAgent_Http_UpdateCase(t *testing.T) {
  function RefreshConfigChecker (line 180) | func RefreshConfigChecker(tc *testutils.TestConfig) *goahttpcheck.APIChe...
  function TestRefreshConfig_Http (line 188) | func TestRefreshConfig_Http(t *testing.T) {
  function computeChecksum (line 233) | func computeChecksum() (string, error) {

FILE: api/pkg/service/admin/admin_test.go
  function TestUpdateAgent (line 28) | func TestUpdateAgent(t *testing.T) {
  function TestUpdateAgent_NormalUserExistsWithName (line 54) | func TestUpdateAgent_NormalUserExistsWithName(t *testing.T) {
  function TestUpdateAgent_InvalidScopeInPayload (line 71) | func TestUpdateAgent_InvalidScopeInPayload(t *testing.T) {
  function TestUpdateAgent_UpdateScopesCase (line 88) | func TestUpdateAgent_UpdateScopesCase(t *testing.T) {

FILE: api/pkg/service/catalog/catalog.go
  type service (line 30) | type service struct
    method Refresh (line 62) | func (s *service) Refresh(ctx context.Context, p *catalog.RefreshPaylo...
    method RefreshAll (line 90) | func (s *service) RefreshAll(ctx context.Context, p *catalog.RefreshAl...
    method CatalogError (line 118) | func (s *service) CatalogError(ctx context.Context, p *catalog.Catalog...
  function New (line 47) | func New(api app.Config) catalog.Service {
  function catalogNotFoundErr (line 155) | func catalogNotFoundErr(name string) error {

FILE: api/pkg/service/catalog/catalog_http_test.go
  function RefreshChecker (line 33) | func RefreshChecker(tc *testutils.TestConfig) *goahttpcheck.APIChecker {
  function TestRefresh_Http (line 42) | func TestRefresh_Http(t *testing.T) {
  function RefreshAllChecker (line 66) | func RefreshAllChecker(tc *testutils.TestConfig) *goahttpcheck.APIChecker {
  function CatalogErrorChecker (line 75) | func CatalogErrorChecker(tc *testutils.TestConfig) *goahttpcheck.APIChec...
  function TestRefreshAll_Http (line 84) | func TestRefreshAll_Http(t *testing.T) {
  function TestCatalogError_Http (line 108) | func TestCatalogError_Http(t *testing.T) {
  function TestCatalogError_HttpHavingNoError (line 132) | func TestCatalogError_HttpHavingNoError(t *testing.T) {

FILE: api/pkg/service/catalog/catalog_test.go
  function NewServiceTest (line 29) | func NewServiceTest(api app.Config) catalog.Service {
  function TestRefresh (line 40) | func TestRefresh(t *testing.T) {
  function TestRefresh_CatalogNotFound (line 59) | func TestRefresh_CatalogNotFound(t *testing.T) {
  function TestRefreshAgain (line 77) | func TestRefreshAgain(t *testing.T) {
  function TestRefresh_All (line 101) | func TestRefresh_All(t *testing.T) {
  function TestCatalogError (line 126) | func TestCatalogError(t *testing.T) {
  function TestCatalogErrorHavingNoError (line 147) | func TestCatalogErrorHavingNoError(t *testing.T) {

FILE: api/pkg/service/catalog/syncer.go
  type syncer (line 32) | type syncer struct
    method Enqueue (line 59) | func (s *syncer) Enqueue(userID, catalogID uint) (*model.SyncJob, erro...
    method wakeUp (line 75) | func (s *syncer) wakeUp() {
    method Run (line 83) | func (s *syncer) Run() {
    method enqueueCatalog (line 122) | func (s *syncer) enqueueCatalog(catalogs []model.Catalog, apiServerBot...
    method SyncCatalogs (line 135) | func (s *syncer) SyncCatalogs() error {
    method Stop (line 176) | func (s *syncer) Stop() {
    method Next (line 182) | func (s *syncer) Next() {
    method Process (line 205) | func (s *syncer) Process() error {
    method updateJob (line 261) | func (s *syncer) updateJob(syncJob model.SyncJob, sha string, res []pa...
    method updateResources (line 294) | func (s *syncer) updateResources(
    method updateResourceTags (line 358) | func (s *syncer) updateResourceTags(
    method updateResourcePlatforms (line 378) | func (s *syncer) updateResourcePlatforms(
    method updateResourceCategory (line 396) | func (s *syncer) updateResourceCategory(txn *gorm.DB, log *zap.Sugared...
    method updateResourceVersions (line 418) | func (s *syncer) updateResourceVersions(
    method updateCatalogResult (line 474) | func (s *syncer) updateCatalogResult(
    method deleteResource (line 502) | func (s *syncer) deleteResource(txn *gorm.DB, log *zap.SugaredLogger, ...
    method deleteTag (line 510) | func (s *syncer) deleteTag(txn *gorm.DB, log *zap.SugaredLogger, tags ...
    method deletePlatform (line 524) | func (s *syncer) deletePlatform(txn *gorm.DB, log *zap.SugaredLogger, ...
  function NewSyncer (line 47) | func NewSyncer(api app.BaseConfig, clonePath string) *syncer {
  function ignoreNotFound (line 198) | func ignoreNotFound(err error) error {

FILE: api/pkg/service/category/category.go
  type service (line 26) | type service struct
    method List (line 40) | func (s *service) List(ctx context.Context) (*category.ListResult, err...
  function New (line 35) | func New(api app.BaseConfig) category.Service {

FILE: api/pkg/service/category/category_http_test.go
  function TestCategories_List_Http (line 31) | func TestCategories_List_Http(t *testing.T) {
  function TestCategories_List_Http_V1 (line 54) | func TestCategories_List_Http_V1(t *testing.T) {

FILE: api/pkg/service/category/category_test.go
  function TestCategory_List (line 25) | func TestCategory_List(t *testing.T) {

FILE: api/pkg/service/rating/rating.go
  type service (line 34) | type service struct
    method Get (line 50) | func (s *service) Get(ctx context.Context, p *rating.GetPayload) (*rat...
    method Update (line 62) | func (s *service) Update(ctx context.Context, p *rating.UpdatePayload)...
  type request (line 38) | type request struct
    method getRating (line 73) | func (r *request) getRating(resID uint) (*rating.GetResult, error) {
    method updateRating (line 94) | func (r *request) updateRating(resID, userRating uint) error {
    method updateUserRating (line 108) | func (r *request) updateUserRating(resID, rating uint) error {
    method updateResourceRating (line 127) | func (r *request) updateResourceRating(res *model.Resource) error {
    method validateResourceID (line 148) | func (r *request) validateResourceID(id uint) (*model.Resource, error) {
  function New (line 45) | func New(api app.Config) rating.Service {

FILE: api/pkg/service/rating/rating_http_test.go
  function GetChecker (line 34) | func GetChecker(tc *testutils.TestConfig) *goahttpcheck.APIChecker {
  function TestGet_Http_InvalidToken (line 43) | func TestGet_Http_InvalidToken(t *testing.T) {
  function TestGet_Http_ExpiredToken (line 62) | func TestGet_Http_ExpiredToken(t *testing.T) {
  function TestGet_Http_InvalidScopes (line 90) | func TestGet_Http_InvalidScopes(t *testing.T) {
  function TestGet_Http (line 117) | func TestGet_Http(t *testing.T) {
  function TestGet_Http_RatingNotFound (line 144) | func TestGet_Http_RatingNotFound(t *testing.T) {
  function TestGet_Http_ResourceNotFound (line 171) | func TestGet_Http_ResourceNotFound(t *testing.T) {
  function UpdateChecker (line 197) | func UpdateChecker(tc *testutils.TestConfig) *goahttpcheck.APIChecker {
  function TestUpdate_Http (line 206) | func TestUpdate_Http(t *testing.T) {
  function TestUpdate_Http_Existing (line 232) | func TestUpdate_Http_Existing(t *testing.T) {
  function TestUpdate_Http_ResourceNotFound (line 258) | func TestUpdate_Http_ResourceNotFound(t *testing.T) {

FILE: api/pkg/service/rating/rating_test.go
  function TestGet (line 27) | func TestGet(t *testing.T) {
  function TestGet_RatingNotFound (line 44) | func TestGet_RatingNotFound(t *testing.T) {
  function TestGet_ResourceNotFound (line 61) | func TestGet_ResourceNotFound(t *testing.T) {
  function TestUpdate (line 78) | func TestUpdate(t *testing.T) {
  function TestUpdate_ResourceNotFound (line 94) | func TestUpdate_ResourceNotFound(t *testing.T) {

FILE: api/pkg/service/resource/resource.go
  type service (line 25) | type service struct
    method Query (line 35) | func (s *service) Query(ctx context.Context, p *resource.QueryPayload)...
    method List (line 89) | func (s *service) List(ctx context.Context) (*resource.Resources, erro...
    method VersionsByID (line 94) | func (s *service) VersionsByID(ctx context.Context, p *resource.Versio...
    method ByCatalogKindNameVersion (line 99) | func (s *service) ByCatalogKindNameVersion(ctx context.Context, p *res...
    method ByVersionID (line 104) | func (s *service) ByVersionID(ctx context.Context, p *resource.ByVersi...
    method ByCatalogKindName (line 109) | func (s *service) ByCatalogKindName(ctx context.Context, p *resource.B...
    method ByID (line 117) | func (s *service) ByID(ctx context.Context, p *resource.ByIDPayload) (...
  function New (line 30) | func New(api app.BaseConfig) resource.Service {
  function queryBuilder (line 121) | func queryBuilder(queryParam, key, value string) string {

FILE: api/pkg/service/resource/resource_test.go
  function TestQueryBuilder (line 26) | func TestQueryBuilder(t *testing.T) {
  function TestQuery_ByNameAndKind (line 31) | func TestQuery_ByNameAndKind(t *testing.T) {
  function TestVersionsByID (line 43) | func TestVersionsByID(t *testing.T) {
  function TestByCatalogKindNameVersion (line 54) | func TestByCatalogKindNameVersion(t *testing.T) {
  function TestByVersionID (line 65) | func TestByVersionID(t *testing.T) {
  function TestByCatalogKindName (line 76) | func TestByCatalogKindName(t *testing.T) {
  function TestByID (line 87) | func TestByID(t *testing.T) {

FILE: api/pkg/service/status/status.go
  type service (line 25) | type service struct
    method Status (line 35) | func (s *service) Status(ctx context.Context) (*status.StatusResult, e...
  function New (line 30) | func New(api app.BaseConfig) status.Service {

FILE: api/pkg/service/status/status_http_test.go
  type statusTestConfig (line 36) | type statusTestConfig struct
    method Service (line 55) | func (tc statusTestConfig) Service(n string) app.Service {
  function newStatusTestConfig (line 42) | func newStatusTestConfig(t *testing.T) *statusTestConfig {
  type fakeService (line 59) | type fakeService struct
    method Logger (line 65) | func (fs *fakeService) Logger(ctx context.Context) *app.Logger {
    method LoggerWith (line 69) | func (fs *fakeService) LoggerWith(ctx context.Context, args ...interfa...
    method DB (line 73) | func (fs *fakeService) DB(ctx context.Context) *gorm.DB {
    method CatalogClonePath (line 77) | func (fs *fakeService) CatalogClonePath() string {
  function TestOk_http (line 81) | func TestOk_http(t *testing.T) {
  function TestDB_NotOK (line 105) | func TestDB_NotOK(t *testing.T) {

FILE: api/pkg/service/validator/validator.go
  type contextKey (line 30) | type contextKey
  type Service (line 42) | type Service struct
    method JWTAuth (line 55) | func (s *Service) JWTAuth(ctx context.Context, jwt string, scheme *sec...
    method Logger (line 81) | func (s *Service) Logger(ctx context.Context) *app.Logger {
    method User (line 87) | func (s *Service) User(ctx context.Context) (*model.User, error) {
  function NewService (line 47) | func NewService(api app.Config, name string) *Service {
  function WithUserID (line 107) | func WithUserID(ctx context.Context, id uint) context.Context {
  function UserID (line 112) | func UserID(ctx context.Context) uint {

FILE: api/pkg/shared/resource/resource.go
  type Request (line 27) | type Request struct
    method Query (line 53) | func (r *Request) Query() ([]model.Resource, error) {
    method AllResources (line 83) | func (r *Request) AllResources() ([]model.Resource, error) {
    method AllVersions (line 93) | func (r *Request) AllVersions() ([]model.ResourceVersion, error) {
    method ByCatalogKindNameVersion (line 112) | func (r *Request) ByCatalogKindNameVersion() (model.Resource, error) {
    method ByVersionID (line 130) | func (r *Request) ByVersionID() (model.ResourceVersion, error) {
    method ByCatalogKindName (line 144) | func (r *Request) ByCatalogKindName() (model.Resource, error) {
    method ByID (line 162) | func (r *Request) ByID() (model.Resource, error) {
    method findAllResources (line 174) | func (r *Request) findAllResources() ([]model.Resource, error) {
    method GetLatestVersion (line 406) | func (r *Request) GetLatestVersion() (string, error) {
  function withCatalogAndTags (line 189) | func withCatalogAndTags(db *gorm.DB) *gorm.DB {
  function withResourceDetails (line 196) | func withResourceDetails(db *gorm.DB) *gorm.DB {
  function withResourceDetailsWithoutVersions (line 207) | func withResourceDetailsWithoutVersions(db *gorm.DB) *gorm.DB {
  function withVersionInfo (line 218) | func withVersionInfo(version string) func(db *gorm.DB) *gorm.DB {
  function withResourceVersionDetails (line 229) | func withResourceVersionDetails(db *gorm.DB) *gorm.DB {
  function orderByCategories (line 238) | func orderByCategories(db *gorm.DB) *gorm.DB {
  function orderByTags (line 242) | func orderByTags(db *gorm.DB) *gorm.DB {
  function orderByPlatforms (line 246) | func orderByPlatforms(db *gorm.DB) *gorm.DB {
  function orderByVersion (line 250) | func orderByVersion(db *gorm.DB) *gorm.DB {
  function findOne (line 254) | func findOne(db *gorm.DB, log *app.Logger, result interface{}) error {
  function filterByID (line 267) | func filterByID(id uint) func(db *gorm.DB) *gorm.DB {
  function filterByCatalog (line 273) | func filterByCatalog(catalog string) func(db *gorm.DB) *gorm.DB {
  function filterByKind (line 281) | func filterByKind(t string) func(db *gorm.DB) *gorm.DB {
  function filterByKinds (line 292) | func filterByKinds(t []string) func(db *gorm.DB) *gorm.DB {
  function filterByTags (line 303) | func filterByTags(tags []string) func(db *gorm.DB) *gorm.DB {
  function filterByPlatforms (line 317) | func filterByPlatforms(platforms []string) func(db *gorm.DB) *gorm.DB {
  function filterByCategories (line 331) | func filterByCategories(categories []string) func(db *gorm.DB) *gorm.DB {
  function filterByResourceID (line 345) | func filterByResourceID(id uint) func(db *gorm.DB) *gorm.DB {
  function filterByVersionID (line 351) | func filterByVersionID(versionID uint) func(db *gorm.DB) *gorm.DB {
  function filterResourceName (line 357) | func filterResourceName(match, name string) func(db *gorm.DB) *gorm.DB {
  function filterByCatalogs (line 375) | func filterByCatalogs(catalogs []string) func(db *gorm.DB) *gorm.DB {
  function noop (line 388) | func noop(db *gorm.DB) *gorm.DB {
  function lower (line 393) | func lower(t []string) []string {
  function invalidKindError (line 400) | func invalidKindError(kind string) error {

FILE: api/pkg/shared/resource/resource_test.go
  function TestQuery_DefaultLimit (line 24) | func TestQuery_DefaultLimit(t *testing.T) {
  function TestQuery_ByLimit (line 41) | func TestQuery_ByLimit(t *testing.T) {
  function TestQuery_ByName (line 58) | func TestQuery_ByName(t *testing.T) {
  function TestQuery_ByPartialName (line 76) | func TestQuery_ByPartialName(t *testing.T) {
  function TestQuery_ByKind (line 93) | func TestQuery_ByKind(t *testing.T) {
  function TestQuery_ByMultipleKinds (line 110) | func TestQuery_ByMultipleKinds(t *testing.T) {
  function TestQuery_ByTags (line 127) | func TestQuery_ByTags(t *testing.T) {
  function TestQuery_ByPlatforms (line 145) | func TestQuery_ByPlatforms(t *testing.T) {
  function TestQuery_ByCatalogs (line 166) | func TestQuery_ByCatalogs(t *testing.T) {
  function TestQuery_ByWrongCatalogs (line 186) | func TestQuery_ByWrongCatalogs(t *testing.T) {
  function TestQuery_ByNameAndKind (line 205) | func TestQuery_ByNameAndKind(t *testing.T) {
  function TestQuery_ByNameTagsAndMultipleType (line 223) | func TestQuery_ByNameTagsAndMultipleType(t *testing.T) {
  function TestQuery_ByExactNameAndMultipleType (line 242) | func TestQuery_ByExactNameAndMultipleType(t *testing.T) {
  function TestQuery_ExactNameNotFoundError (line 260) | func TestQuery_ExactNameNotFoundError(t *testing.T) {
  function TestQuery_NotFoundError (line 278) | func TestQuery_NotFoundError(t *testing.T) {
  function TestList_ByLimit (line 295) | func TestList_ByLimit(t *testing.T) {
  function TestVersionsByID (line 311) | func TestVersionsByID(t *testing.T) {
  function TestVersionsByID_NotFoundError (line 327) | func TestVersionsByID_NotFoundError(t *testing.T) {
  function TestByCatalogKindNameVersion (line 342) | func TestByCatalogKindNameVersion(t *testing.T) {
  function TestByCatalogKindNameVersion_NoResourceWithName (line 361) | func TestByCatalogKindNameVersion_NoResourceWithName(t *testing.T) {
  function TestByCatalogKindNameVersion_NoCatalogWithName (line 379) | func TestByCatalogKindNameVersion_NoCatalogWithName(t *testing.T) {
  function TestByCatalogKindNameVersion_ResourceVersionNotFound (line 397) | func TestByCatalogKindNameVersion_ResourceVersionNotFound(t *testing.T) {
  function TestByVersionID (line 418) | func TestByVersionID(t *testing.T) {
  function TestByVersionID_NotFoundError (line 433) | func TestByVersionID_NotFoundError(t *testing.T) {
  function TestByCatalogKindName (line 448) | func TestByCatalogKindName(t *testing.T) {
  function TestByCatalogKindName_NoCatalogWithName (line 465) | func TestByCatalogKindName_NoCatalogWithName(t *testing.T) {
  function TestByCatalogKindName_ResourceNotFoundError (line 482) | func TestByCatalogKindName_ResourceNotFoundError(t *testing.T) {
  function TestByID (line 499) | func TestByID(t *testing.T) {
  function TestByID_NotFoundError (line 514) | func TestByID_NotFoundError(t *testing.T) {
  function TestGetLatestVersion (line 529) | func TestGetLatestVersion(t *testing.T) {
  function TestGetLatestVersion_NotFoundError (line 546) | func TestGetLatestVersion_NotFoundError(t *testing.T) {

FILE: api/pkg/testutils/config.go
  type TestConfig (line 32) | type TestConfig struct
    method Path (line 54) | func (tc *TestConfig) Path() string {
    method FixturePath (line 59) | func (tc *TestConfig) FixturePath() string {
    method IsValid (line 64) | func (tc *TestConfig) IsValid() bool {
    method Error (line 69) | func (tc *TestConfig) Error() error {
  function Config (line 46) | func Config() *TestConfig {
  function initializeConfig (line 75) | func initializeConfig() *TestConfig {

FILE: api/pkg/testutils/db.go
  function LoadFixtures (line 28) | func LoadFixtures(t *testing.T, dir string) {
  function applyMigration (line 41) | func applyMigration() error {

FILE: api/pkg/testutils/run.go
  function Setup (line 27) | func Setup(t *testing.T) *TestConfig {

FILE: api/pkg/testutils/utils.go
  function NowAfterDuration (line 32) | func NowAfterDuration(dur time.Duration) func() time.Time {
  function FormatJSON (line 39) | func FormatJSON(b []byte) (string, error) {
  method UserWithScopes (line 50) | func (tc *TestConfig) UserWithScopes(name, email string, scopes ...strin...
  method RefreshTokenForUser (line 81) | func (tc *TestConfig) RefreshTokenForUser(name, email string) (*model.Us...
  method AgentWithScopes (line 101) | func (tc *TestConfig) AgentWithScopes(name string, scopes ...string) (*m...
  method AddScopesForUser (line 125) | func (tc *TestConfig) AddScopesForUser(userID uint, scopes []string) err...

FILE: api/pkg/token/jwt.go
  function Create (line 25) | func Create(claim jwt.Claims, jwtKey string) (string, error) {
  function Verify (line 38) | func Verify(token string, jwtKey string) (jwt.MapClaims, error) {
  function ValidateScopes (line 56) | func ValidateScopes(claims jwt.MapClaims, scheme *security.JWTScheme) er...

FILE: api/pkg/token/user.go
  constant issuer (line 26) | issuer           = "Tekton Hub"
  constant accessTokenType (line 27) | accessTokenType  = "access-token"
  constant refreshTokenType (line 28) | refreshTokenType = "refresh-token"
  constant agentTokenType (line 29) | agentTokenType   = "agent-token"
  type Request (line 32) | type Request struct
    method AccessJWT (line 42) | func (r *Request) AccessJWT() (string, int64, error) {
    method RefreshJWT (line 63) | func (r *Request) RefreshJWT() (string, int64, error) {
    method AgentJWT (line 84) | func (r *Request) AgentJWT() (string, error) {

FILE: api/pkg/user/app/app.go
  type InfoResult (line 17) | type InfoResult struct
  type UserData (line 23) | type UserData struct
  type RefreshAccessTokenResult (line 34) | type RefreshAccessTokenResult struct
  type NewRefreshTokenResult (line 41) | type NewRefreshTokenResult struct
  type Token (line 47) | type Token struct
  type AccessToken (line 57) | type AccessToken struct
  type RefreshToken (line 63) | type RefreshToken struct

FILE: api/pkg/user/base.go
  function User (line 23) | func User(r *mux.Router, api app.Config) {

FILE: api/pkg/user/service/service.go
  type JWTScheme (line 32) | type JWTScheme struct
    method Validate (line 122) | func (s *JWTScheme) Validate(scopes []string) error {
  method JWTAuth (line 43) | func (s *UserService) JWTAuth(handler http.HandlerFunc) http.HandlerFunc {
  function ValidateScopes (line 97) | func ValidateScopes(claims jwt.MapClaims, scheme *JWTScheme) error {
  function validateScopes (line 126) | func validateScopes(expected, actual []string) error {
  method User (line 146) | func (r *request) User(id int) (*model.User, error) {
  method GitUser (line 162) | func (r *request) GitUser(id int) (*model.Account, error) {
  method newRequest (line 178) | func (s *UserService) newRequest(user *model.User, provider string) *req...
  method validateRefreshToken (line 189) | func (s *UserService) validateRefreshToken(id int, token string) (*model...
  function createChecksum (line 215) | func createChecksum(token string) string {
  method userScopes (line 220) | func (r *request) userScopes() ([]string, error) {

FILE: api/pkg/user/service/service_test.go
  function TestValidateScopes (line 10) | func TestValidateScopes(t *testing.T) {
  function TestInValidateScopes (line 26) | func TestInValidateScopes(t *testing.T) {
  function TestValidateMissingScopes (line 40) | func TestValidateMissingScopes(t *testing.T) {

FILE: api/pkg/user/service/user.go
  type request (line 33) | type request struct
    method refreshAccessToken (line 153) | func (r *request) refreshAccessToken() (*userApp.RefreshAccessTokenRes...
    method newRefreshToken (line 224) | func (r *request) newRefreshToken() (*userApp.NewRefreshTokenResult, e...
  type UserService (line 42) | type UserService struct
    method Info (line 69) | func (s *UserService) Info(res http.ResponseWriter, req *http.Request) {
    method RefreshAccessToken (line 112) | func (s *UserService) RefreshAccessToken(res http.ResponseWriter, req ...
    method NewRefreshToken (line 184) | func (s *UserService) NewRefreshToken(res http.ResponseWriter, req *ht...
  type Service (line 48) | type Service interface
  function New (line 60) | func New(api app.Config) Service {
  function ParseStringToFloat (line 255) | func ParseStringToFloat(str string) (float64, error) {

FILE: api/pkg/user/service/user_test.go
  function TestInfo (line 29) | func TestInfo(t *testing.T) {
  function TestRefreshAccessToken (line 67) | func TestRefreshAccessToken(t *testing.T) {
  function TestRefreshAccessToken_RefreshTokenChecksumIsDifferent (line 113) | func TestRefreshAccessToken_RefreshTokenChecksumIsDifferent(t *testing.T) {
  function TestNewRefreshToken (line 143) | func TestNewRefreshToken(t *testing.T) {
  function TestNewRefreshToken_RefreshTokenChecksumIsDifferent (line 189) | func TestNewRefreshToken_RefreshTokenChecksumIsDifferent(t *testing.T) {
  function TestParseStringToFloat (line 219) | func TestParseStringToFloat(t *testing.T) {

FILE: api/test/cli/cli.go
  constant timeout (line 33) | timeout = 5 * time.Minute
  type TknHubRunner (line 38) | type TknHubRunner struct
    method Run (line 62) | func (e TknHubRunner) Run(args ...string) *icmd.Result {
    method RunInteractiveTests (line 71) | func (e TknHubRunner) RunInteractiveTests(t *testing.T, ops *Prompt) *...
    method MustSucceed (line 112) | func (e TknHubRunner) MustSucceed(t *testing.T, args ...string) *icmd....
    method Assert (line 117) | func (e TknHubRunner) Assert(t *testing.T, exp icmd.Expected, args ......
  type Prompt (line 44) | type Prompt struct
  function NewTknHubRunner (line 50) | func NewTknHubRunner() (TknHubRunner, error) {

FILE: api/test/e2e/get/get_test.go
  function TestGetIneractiveE2E (line 47) | func TestGetIneractiveE2E(t *testing.T) {

FILE: api/test/e2e/info/info_test.go
  constant expected (line 27) | expected = `📦 Name: tkn
  function TestGetIneractiveE2E (line 52) | func TestGetIneractiveE2E(t *testing.T) {

FILE: api/v1/gen/catalog/client.go
  type Client (line 17) | type Client struct
    method List (line 32) | func (c *Client) List(ctx context.Context) (res *ListResult, err error) {
  function NewClient (line 22) | func NewClient(list goa.Endpoint) *Client {

FILE: api/v1/gen/catalog/endpoints.go
  type Endpoints (line 17) | type Endpoints struct
    method Use (line 29) | func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
  function NewEndpoints (line 22) | func NewEndpoints(s Service) *Endpoints {
  function NewListEndpoint (line 35) | func NewListEndpoint(s Service) goa.Endpoint {

FILE: api/v1/gen/catalog/service.go
  type Service (line 18) | type Service interface
  constant APIName (line 24) | APIName = "v1"
  constant APIVersion (line 27) | APIVersion = "1.0"
  constant ServiceName (line 32) | ServiceName = "catalog"
  type Catalog (line 39) | type Catalog struct
  type ListResult (line 53) | type ListResult struct
  function MakeInternalError (line 58) | func MakeInternalError(err error) *goa.ServiceError {
  function newCatalogMin (line 63) | func newCatalogMin(vres *catalogviews.CatalogView) *Catalog {
  function newCatalog (line 78) | func newCatalog(vres *catalogviews.CatalogView) *Catalog {
  function newCatalogViewMin (line 100) | func newCatalogViewMin(res *Catalog) *catalogviews.CatalogView {
  function newCatalogView (line 111) | func newCatalogView(res *Catalog) *catalogviews.CatalogView {

FILE: api/v1/gen/catalog/views/view.go
  type CatalogView (line 15) | type CatalogView struct
  function ValidateCatalogViewMin (line 48) | func ValidateCatalogViewMin(result *CatalogView) (err error) {
  function ValidateCatalogView (line 68) | func ValidateCatalogView(result *CatalogView) (err error) {

FILE: api/v1/gen/http/catalog/client/client.go
  type Client (line 19) | type Client struct
    method List (line 58) | func (c *Client) List() goa.Endpoint {
  function NewClient (line 37) | func NewClient(

FILE: api/v1/gen/http/catalog/client/encode_decode.go
  method BuildListRequest (line 23) | func (c *Client) BuildListRequest(ctx context.Context, v any) (*http.Req...
  function DecodeListResponse (line 42) | func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, re...
  function unmarshalCatalogResponseBodyToCatalogCatalog (line 95) | func unmarshalCatalogResponseBodyToCatalogCatalog(v *CatalogResponseBody...

FILE: api/v1/gen/http/catalog/client/paths.go
  function ListCatalogPath (line 11) | func ListCatalogPath() string {

FILE: api/v1/gen/http/catalog/client/types.go
  type ListResponseBody (line 17) | type ListResponseBody struct
  type ListInternalErrorResponseBody (line 23) | type ListInternalErrorResponseBody struct
  type CatalogResponseBody (line 40) | type CatalogResponseBody struct
  function NewListResultOK (line 55) | func NewListResultOK(body *ListResponseBody) *catalog.ListResult {
  function NewListInternalError (line 69) | func NewListInternalError(body *ListInternalErrorResponseBody) *goa.Serv...
  function ValidateListResponseBody (line 83) | func ValidateListResponseBody(body *ListResponseBody) (err error) {
  function ValidateListInternalErrorResponseBody (line 96) | func ValidateListInternalErrorResponseBody(body *ListInternalErrorRespon...
  function ValidateCatalogResponseBody (line 120) | func ValidateCatalogResponseBody(body *CatalogResponseBody) (err error) {

FILE: api/v1/gen/http/catalog/server/encode_decode.go
  function EncodeListResponse (line 22) | func EncodeListResponse(encoder func(context.Context, http.ResponseWrite...
  function EncodeListError (line 34) | func EncodeListError(encoder func(context.Context, http.ResponseWriter) ...
  function marshalCatalogCatalogToCatalogResponseBody (line 63) | func marshalCatalogCatalogToCatalogResponseBody(v *catalog.Catalog) *Cat...

FILE: api/v1/gen/http/catalog/server/paths.go
  function ListCatalogPath (line 11) | func ListCatalogPath() string {

FILE: api/v1/gen/http/catalog/server/server.go
  type Server (line 21) | type Server struct
    method Service (line 63) | func (s *Server) Service() string { return "catalog" }
    method Use (line 66) | func (s *Server) Use(m func(http.Handler) http.Handler) {
    method MethodNames (line 72) | func (s *Server) MethodNames() []string { return catalog.MethodNames[:] }
    method Mount (line 81) | func (s *Server) Mount(mux goahttp.Muxer) {
  type MountPoint (line 28) | type MountPoint struct
  function New (line 44) | func New(
  function Mount (line 75) | func Mount(mux goahttp.Muxer, h *Server) {
  function MountListHandler (line 87) | func MountListHandler(mux goahttp.Muxer, h http.Handler) {
  function NewListHandler (line 99) | func NewListHandler(
  function MountCORSHandler (line 131) | func MountCORSHandler(mux goahttp.Muxer, h http.Handler) {
  function NewCORSHandler (line 137) | func NewCORSHandler() http.Handler {
  function HandleCatalogOrigin (line 145) | func HandleCatalogOrigin(h http.Handler) http.Handler {

FILE: api/v1/gen/http/catalog/server/types.go
  type ListResponseBody (line 17) | type ListResponseBody struct
  type ListInternalErrorResponseBody (line 23) | type ListInternalErrorResponseBody struct
  type CatalogResponseBody (line 40) | type CatalogResponseBody struct
  function NewListResponseBody (line 55) | func NewListResponseBody(res *catalog.ListResult) *ListResponseBody {
  function NewListInternalErrorResponseBody (line 68) | func NewListInternalErrorResponseBody(res *goa.ServiceError) *ListIntern...

FILE: api/v1/gen/http/cli/hub/cli.go
  function UsageCommands (line 25) | func UsageCommands() string {
  function UsageExamples (line 32) | func UsageExamples() string {
  function ParseEndpoint (line 55) | func ParseEndpoint(
  function catalogUsage (line 293) | func catalogUsage() {
  function catalogListUsage (line 305) | func catalogListUsage() {
  function resourceUsage (line 316) | func resourceUsage() {
  function resourceQueryUsage (line 338) | func resourceQueryUsage() {
  function resourceListUsage (line 371) | func resourceListUsage() {
  function resourceVersionsByIDUsage (line 382) | func resourceVersionsByIDUsage() {
  function resourceByCatalogKindNameVersionUsage (line 393) | func resourceByCatalogKindNameVersionUsage() {
  function resourceByCatalogKindNameVersionReadmeUsage (line 407) | func resourceByCatalogKindNameVersionReadmeUsage() {
  function resourceByCatalogKindNameVersionYamlUsage (line 421) | func resourceByCatalogKindNameVersionYamlUsage() {
  function resourceByVersionIDUsage (line 435) | func resourceByVersionIDUsage() {
  function resourceByCatalogKindNameUsage (line 446) | func resourceByCatalogKindNameUsage() {
  function resourceByIDUsage (line 460) | func resourceByIDUsage() {
  function resourceGetRawYamlByCatalogKindNameVersionUsage (line 471) | func resourceGetRawYamlByCatalogKindNameVersionUsage() {
  function resourceGetLatestRawYamlByCatalogKindNameUsage (line 485) | func resourceGetLatestRawYamlByCatalogKindNameUsage() {

FILE: api/v1/gen/http/resource/client/cli.go
  function BuildQueryPayload (line 21) | func BuildQueryPayload(resourceQueryName string, resourceQueryCatalogs s...
  function BuildListPayload (line 112) | func BuildListPayload(resourceListLimit string) (*resource.ListPayload, ...
  function BuildVersionsByIDPayload (line 133) | func BuildVersionsByIDPayload(resourceVersionsByIDID string) (*resource....
  function BuildByCatalogKindNameVersionPayload (line 152) | func BuildByCatalogKindNameVersionPayload(resourceByCatalogKindNameVersi...
  function BuildByCatalogKindNameVersionReadmePayload (line 187) | func BuildByCatalogKindNameVersionReadmePayload(resourceByCatalogKindNam...
  function BuildByCatalogKindNameVersionYamlPayload (line 222) | func BuildByCatalogKindNameVersionYamlPayload(resourceByCatalogKindNameV...
  function BuildByVersionIDPayload (line 257) | func BuildByVersionIDPayload(resourceByVersionIDVersionID string) (*reso...
  function BuildByCatalogKindNamePayload (line 276) | func BuildByCatalogKindNamePayload(resourceByCatalogKindNameCatalog stri...
  function BuildByIDPayload (line 317) | func BuildByIDPayload(resourceByIDID string) (*resource.ByIDPayload, err...
  function BuildGetRawYamlByCatalogKindNameVersionPayload (line 336) | func BuildGetRawYamlByCatalogKindNameVersionPayload(resourceGetRawYamlBy...
  function BuildGetLatestRawYamlByCatalogKindNamePayload (line 371) | func BuildGetLatestRawYamlByCatalogKindNamePayload(resourceGetLatestRawY...

FILE: api/v1/gen/http/resource/client/client.go
  type Client (line 20) | type Client struct
    method Query (line 107) | func (c *Client) Query() goa.Endpoint {
    method List (line 131) | func (c *Client) List() goa.Endpoint {
    method VersionsByID (line 155) | func (c *Client) VersionsByID() goa.Endpoint {
    method ByCatalogKindNameVersion (line 174) | func (c *Client) ByCatalogKindNameVersion() goa.Endpoint {
    method ByCatalogKindNameVersionReadme (line 193) | func (c *Client) ByCatalogKindNameVersionReadme() goa.Endpoint {
    method ByCatalogKindNameVersionYaml (line 212) | func (c *Client) ByCatalogKindNameVersionYaml() goa.Endpoint {
    method ByVersionID (line 231) | func (c *Client) ByVersionID() goa.Endpoint {
    method ByCatalogKindName (line 250) | func (c *Client) ByCatalogKindName() goa.Endpoint {
    method ByID (line 274) | func (c *Client) ByID() goa.Endpoint {
    method GetRawYamlByCatalogKindNameVersion (line 293) | func (c *Client) GetRawYamlByCatalogKindNameVersion() goa.Endpoint {
    method GetLatestRawYamlByCatalogKindName (line 317) | func (c *Client) GetLatestRawYamlByCatalogKindName() goa.Endpoint {
  function NewClient (line 76) | func NewClient(

FILE: api/v1/gen/http/resource/client/encode_decode.go
  method BuildQueryRequest (line 25) | func (c *Client) BuildQueryRequest(ctx context.Context, v any) (*http.Re...
  function EncodeQueryRequest (line 40) | func EncodeQueryRequest(encoder func(*http.Request) goahttp.Encoder) fun...
  function DecodeQueryResponse (line 78) | func DecodeQueryResponse(decoder func(*http.Response) goahttp.Decoder, r...
  method BuildListRequest (line 161) | func (c *Client) BuildListRequest(ctx context.Context, v any) (*http.Req...
  function EncodeListRequest (line 176) | func EncodeListRequest(encoder func(*http.Request) goahttp.Encoder) func...
  function DecodeListResponse (line 196) | func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, re...
  method BuildVersionsByIDRequest (line 265) | func (c *Client) BuildVersionsByIDRequest(ctx context.Context, v any) (*...
  function DecodeVersionsByIDResponse (line 295) | func DecodeVersionsByIDResponse(decoder func(*http.Response) goahttp.Dec...
  method BuildByCatalogKindNameVersionRequest (line 365) | func (c *Client) BuildByCatalogKindNameVersionRequest(ctx context.Contex...
  function DecodeByCatalogKindNameVersionResponse (line 401) | func DecodeByCatalogKindNameVersionResponse(decoder func(*http.Response)...
  method BuildByCatalogKindNameVersionReadmeRequest (line 471) | func (c *Client) BuildByCatalogKindNameVersionReadmeRequest(ctx context....
  function DecodeByCatalogKindNameVersionReadmeResponse (line 508) | func DecodeByCatalogKindNameVersionReadmeResponse(decoder func(*http.Res...
  method BuildByCatalogKindNameVersionYamlRequest (line 578) | func (c *Client) BuildByCatalogKindNameVersionYamlRequest(ctx context.Co...
  function DecodeByCatalogKindNameVersionYamlResponse (line 614) | func DecodeByCatalogKindNameVersionYamlResponse(decoder func(*http.Respo...
  method BuildByVersionIDRequest (line 683) | func (c *Client) BuildByVersionIDRequest(ctx context.Context, v any) (*h...
  function DecodeByVersionIDResponse (line 713) | func DecodeByVersionIDResponse(decoder func(*http.Response) goahttp.Deco...
  method BuildByCatalogKindNameRequest (line 782) | func (c *Client) BuildByCatalogKindNameRequest(ctx context.Context, v an...
  function EncodeByCatalogKindNameRequest (line 811) | func EncodeByCatalogKindNameRequest(encoder func(*http.Request) goahttp....
  function DecodeByCatalogKindNameResponse (line 833) | func DecodeByCatalogKindNameResponse(decoder func(*http.Response) goahtt...
  method BuildByIDRequest (line 902) | func (c *Client) BuildByIDRequest(ctx context.Context, v any) (*http.Req...
  function DecodeByIDResponse (line 932) | func DecodeByIDResponse(decoder func(*http.Response) goahttp.Decoder, re...
  method BuildGetRawYamlByCatalogKindNameVersionRequest (line 1002) | func (c *Client) BuildGetRawYamlByCatalogKindNameVersionRequest(ctx cont...
  function DecodeGetRawYamlByCatalogKindNameVersionResponse (line 1040) | func DecodeGetRawYamlByCatalogKindNameVersionResponse(decoder func(*http...
  method BuildGetLatestRawYamlByCatalogKindNameRequest (line 1093) | func (c *Client) BuildGetLatestRawYamlByCatalogKindNameRequest(ctx conte...
  function DecodeGetLatestRawYamlByCatalogKindNameResponse (line 1129) | func DecodeGetLatestRawYamlByCatalogKindNameResponse(decoder func(*http....
  function unmarshalResourceDataResponseBodyToResourceviewsResourceDataView (line 1182) | func unmarshalResourceDataResponseBodyToResourceviewsResourceDataView(v ...
  function unmarshalCatalogResponseBodyToResourceviewsCatalogView (line 1215) | func unmarshalCatalogResponseBodyToResourceviewsCatalogView(v *CatalogRe...
  function unmarshalCategoryResponseBodyToResourceviewsCategoryView (line 1229) | func unmarshalCategoryResponseBodyToResourceviewsCategoryView(v *Categor...
  function unmarshalResourceVersionDataResponseBodyToResourceviewsResourceVersionDataView (line 1241) | func unmarshalResourceVersionDataResponseBodyToResourceviewsResourceVers...
  function unmarshalPlatformResponseBodyToResourceviewsPlatformView (line 1266) | func unmarshalPlatformResponseBodyToResourceviewsPlatformView(v *Platfor...
  function unmarshalTagResponseBodyToResourceviewsTagView (line 1277) | func unmarshalTagResponseBodyToResourceviewsTagView(v *TagResponseBody) ...
  function unmarshalVersionsResponseBodyToResourceviewsVersionsView (line 1288) | func unmarshalVersionsResponseBodyToResourceviewsVersionsView(v *Version...
  function unmarshalResourceContentResponseBodyToResourceviewsResourceContentView (line 1302) | func unmarshalResourceContentResponseBodyToResourceviewsResourceContentV...

FILE: api/v1/gen/http/resource/client/paths.go
  function QueryResourcePath (line 15) | func QueryResourcePath() string {
  function ListResourcePath (line 20) | func ListResourcePath() string {
  function VersionsByIDResourcePath (line 25) | func VersionsByIDResourcePath(id uint) string {
  function ByCatalogKindNameVersionResourcePath (line 30) | func ByCatalogKindNameVersionResourcePath(catalog string, kind string, n...
  function ByCatalogKindNameVersionReadmeResourcePath (line 35) | func ByCatalogKindNameVersionReadmeResourcePath(catalog string, kind str...
  function ByCatalogKindNameVersionYamlResourcePath (line 40) | func ByCatalogKindNameVersionYamlResourcePath(catalog string, kind strin...
  function ByVersionIDResourcePath (line 45) | func ByVersionIDResourcePath(versionID uint) string {
  function ByCatalogKindNameResourcePath (line 50) | func ByCatalogKindNameResourcePath(catalog string, kind string, name str...
  function ByIDResourcePath (line 55) | func ByIDResourcePath(id uint) string {
  function GetRawYamlByCatalogKindNameVersionResourcePath (line 60) | func GetRawYamlByCatalogKindNameVersionResourcePath(catalog string, kind...
  function GetLatestRawYamlByCatalogKindNameResourcePath (line 65) | func GetLatestRawYamlByCatalogKindNameResourcePath(catalog string, kind ...

FILE: api/v1/gen/http/resource/client/types.go
  type QueryResponseBody (line 17) | type QueryResponseBody struct
  type ListResponseBody (line 23) | type ListResponseBody struct
  type VersionsByIDResponseBody (line 29) | type VersionsByIDResponseBody struct
  type ByCatalogKindNameVersionResponseBody (line 35) | type ByCatalogKindNameVersionResponseBody struct
  type ByCatalogKindNameVersionReadmeResponseBody (line 41) | type ByCatalogKindNameVersionReadmeResponseBody struct
  type ByCatalogKindNameVersionYamlResponseBody (line 47) | type ByCatalogKindNameVersionYamlResponseBody struct
  type ByVersionIDResponseBody (line 53) | type ByVersionIDResponseBody struct
  type ByCatalogKindNameResponseBody (line 59) | type ByCatalogKindNameResponseBody struct
  type ByIDResponseBody (line 65) | type ByIDResponseBody struct
  type QueryInternalErrorResponseBody (line 71) | type QueryInternalErrorResponseBody struct
  type QueryInvalidKindResponseBody (line 89) | type QueryInvalidKindResponseBody struct
  type QueryNotFoundResponseBody (line 107) | type QueryNotFoundResponseBody struct
  type ListInternalErrorResponseBody (line 125) | type ListInternalErrorResponseBody struct
  type ListNotFoundResponseBody (line 143) | type ListNotFoundResponseBody struct
  type VersionsByIDInternalErrorResponseBody (line 161) | type VersionsByIDInternalErrorResponseBody struct
  type VersionsByIDNotFoundResponseBody (line 179) | type VersionsByIDNotFoundResponseBody struct
  type ByCatalogKindNameVersionInternalErrorResponseBody (line 198) | type ByCatalogKindNameVersionInternalErrorResponseBody struct
  type ByCatalogKindNameVersionNotFoundResponseBody (line 217) | type ByCatalogKindNameVersionNotFoundResponseBody struct
  type ByCatalogKindNameVersionReadmeInternalErrorResponseBody (line 236) | type ByCatalogKindNameVersionReadmeInternalErrorResponseBody struct
  type ByCatalogKindNameVersionReadmeNotFoundResponseBody (line 255) | type ByCatalogKindNameVersionReadmeNotFoundResponseBody struct
  type ByCatalogKindNameVersionYamlInternalErrorResponseBody (line 274) | type ByCatalogKindNameVersionYamlInternalErrorResponseBody struct
  type ByCatalogKindNameVersionYamlNotFoundResponseBody (line 293) | type ByCatalogKindNameVersionYamlNotFoundResponseBody struct
  type ByVersionIDInternalErrorResponseBody (line 311) | type ByVersionIDInternalErrorResponseBody struct
  type ByVersionIDNotFoundResponseBody (line 329) | type ByVersionIDNotFoundResponseBody struct
  type ByCatalogKindNameInternalErrorResponseBody (line 348) | type ByCatalogKindNameInternalErrorResponseBody struct
  type ByCatalogKindNameNotFoundResponseBody (line 366) | type ByCatalogKindNameNotFoundResponseBody struct
  type ByIDInternalErrorResponseBody (line 384) | type ByIDInternalErrorResponseBody struct
  type ByIDNotFoundResponseBody (line 402) | type ByIDNotFoundResponseBody struct
  type GetRawYamlByCatalogKindNameVersionInternalErrorResponseBody (line 421) | type GetRawYamlByCatalogKindNameVersionInternalErrorResponseBody struct
  type GetRawYamlByCatalogKindNameVersionNotFoundResponseBody (line 440) | type GetRawYamlByCatalogKindNameVersionNotFoundResponseBody struct
  type GetLatestRawYamlByCatalogKindNameInternalErrorResponseBody (line 459) | type GetLatestRawYamlByCatalogKindNameInternalErrorResponseBody struct
  type GetLatestRawYamlByCatalogKindNameNotFoundResponseBody (line 478) | type GetLatestRawYamlByCatalogKindNameNotFoundResponseBody struct
  type ResourceDataCollectionResponseBody (line 496) | type ResourceDataCollectionResponseBody
  type ResourceDataResponseBody (line 499) | type ResourceDataResponseBody struct
  type CatalogResponseBody (line 527) | type CatalogResponseBody struct
  type CategoryResponseBody (line 541) | type CategoryResponseBody struct
  type ResourceVersionDataResponseBody (line 550) | type ResourceVersionDataResponseBody struct
  type PlatformResponseBody (line 580) | type PlatformResponseBody struct
  type TagResponseBody (line 588) | type TagResponseBody struct
  type VersionsResponseBody (line 596) | type VersionsResponseBody struct
  type ResourceContentResponseBody (line 604) | type ResourceContentResponseBody struct
  function NewQueryResourcesOK (line 613) | func NewQueryResourcesOK(body *QueryResponseBody) *resourceviews.Resourc...
  function NewQueryInternalError (line 625) | func NewQueryInternalError(body *QueryInternalErrorResponseBody) *goa.Se...
  function NewQueryInvalidKind (line 640) | func NewQueryInvalidKind(body *QueryInvalidKindResponseBody) *goa.Servic...
  function NewQueryNotFound (line 654) | func NewQueryNotFound(body *QueryNotFoundResponseBody) *goa.ServiceError {
  function NewListResourcesOK (line 669) | func NewListResourcesOK(body *ListResponseBody) *resourceviews.Resources...
  function NewListInternalError (line 681) | func NewListInternalError(body *ListInternalErrorResponseBody) *goa.Serv...
  function NewListNotFound (line 695) | func NewListNotFound(body *ListNotFoundResponseBody) *goa.ServiceError {
  function NewVersionsByIDResourceVersionsOK (line 710) | func NewVersionsByIDResourceVersionsOK(body *VersionsByIDResponseBody) *...
  function NewVersionsByIDInternalError (line 719) | func NewVersionsByIDInternalError(body *VersionsByIDInternalErrorRespons...
  function NewVersionsByIDNotFound (line 734) | func NewVersionsByIDNotFound(body *VersionsByIDNotFoundResponseBody) *go...
  function NewByCatalogKindNameVersionResourceVersionOK (line 749) | func NewByCatalogKindNameVersionResourceVersionOK(body *ByCatalogKindNam...
  function NewByCatalogKindNameVersionInternalError (line 758) | func NewByCatalogKindNameVersionInternalError(body *ByCatalogKindNameVer...
  function NewByCatalogKindNameVersionNotFound (line 773) | func NewByCatalogKindNameVersionNotFound(body *ByCatalogKindNameVersionN...
  function NewByCatalogKindNameVersionReadmeResourceVersionReadmeOK (line 789) | func NewByCatalogKindNameVersionReadmeResourceVersionReadmeOK(body *ByCa...
  function NewByCatalogKindNameVersionReadmeInternalError (line 798) | func NewByCatalogKindNameVersionReadmeInternalError(body *ByCatalogKindN...
  function NewByCatalogKindNameVersionReadmeNotFound (line 813) | func NewByCatalogKindNameVersionReadmeNotFound(body *ByCatalogKindNameVe...
  function NewByCatalogKindNameVersionYamlResourceVersionYamlOK (line 829) | func NewByCatalogKindNameVersionYamlResourceVersionYamlOK(body *ByCatalo...
  function NewByCatalogKindNameVersionYamlInternalError (line 838) | func NewByCatalogKindNameVersionYamlInternalError(body *ByCatalogKindNam...
  function NewByCatalogKindNameVersionYamlNotFound (line 853) | func NewByCatalogKindNameVersionYamlNotFound(body *ByCatalogKindNameVers...
  function NewByVersionIDResourceVersionOK (line 868) | func NewByVersionIDResourceVersionOK(body *ByVersionIDResponseBody) *res...
  function NewByVersionIDInternalError (line 877) | func NewByVersionIDInternalError(body *ByVersionIDInternalErrorResponseB...
  function NewByVersionIDNotFound (line 892) | func NewByVersionIDNotFound(body *ByVersionIDNotFoundResponseBody) *goa....
  function NewByCatalogKindNameResourceOK (line 907) | func NewByCatalogKindNameResourceOK(body *ByCatalogKindNameResponseBody)...
  function NewByCatalogKindNameInternalError (line 916) | func NewByCatalogKindNameInternalError(body *ByCatalogKindNameInternalEr...
  function NewByCatalogKindNameNotFound (line 931) | func NewByCatalogKindNameNotFound(body *ByCatalogKindNameNotFoundRespons...
  function NewByIDResourceOK (line 946) | func NewByIDResourceOK(body *ByIDResponseBody) *resourceviews.ResourceVi...
  function NewByIDInternalError (line 955) | func NewByIDInternalError(body *ByIDInternalErrorResponseBody) *goa.Serv...
  function NewByIDNotFound (line 969) | func NewByIDNotFound(body *ByIDNotFoundResponseBody) *goa.ServiceError {
  function NewGetRawYamlByCatalogKindNameVersionInternalError (line 984) | func NewGetRawYamlByCatalogKindNameVersionInternalError(body *GetRawYaml...
  function NewGetRawYamlByCatalogKindNameVersionNotFound (line 999) | func NewGetRawYamlByCatalogKindNameVersionNotFound(body *GetRawYamlByCat...
  function NewGetLatestRawYamlByCatalogKindNameInternalError (line 1014) | func NewGetLatestRawYamlByCatalogKindNameInternalError(body *GetLatestRa...
  function NewGetLatestRawYamlByCatalogKindNameNotFound (line 1029) | func NewGetLatestRawYamlByCatalogKindNameNotFound(body *GetLatestRawYaml...
  function ValidateQueryInternalErrorResponseBody (line 1044) | func ValidateQueryInternalErrorResponseBody(body *QueryInternalErrorResp...
  function ValidateQueryInvalidKindResponseBody (line 1068) | func ValidateQueryInvalidKindResponseBody(body *QueryInvalidKindResponse...
  function ValidateQueryNotFoundResponseBody (line 1092) | func ValidateQueryNotFoundResponseBody(body *QueryNotFoundResponseBody) ...
  function ValidateListInternalErrorResponseBody (line 1116) | func ValidateListInternalErrorResponseBody(body *ListInternalErrorRespon...
  function ValidateListNotFoundResponseBody (line 1140) | func ValidateListNotFoundResponseBody(body *ListNotFoundResponseBody) (e...
  function ValidateVersionsByIDInternalErrorResponseBody (line 1164) | func ValidateVersionsByIDInternalErrorResponseBody(body *VersionsByIDInt...
  function ValidateVersionsByIDNotFoundResponseBody (line 1188) | func ValidateVersionsByIDNotFoundResponseBody(body *VersionsByIDNotFound...
  function ValidateByCatalogKindNameVersionInternalErrorResponseBody (line 1212) | func ValidateByCatalogKindNameVersionInternalErrorResponseBody(body *ByC...
  function ValidateByCatalogKindNameVersionNotFoundResponseBody (line 1236) | func ValidateByCatalogKindNameVersionNotFoundResponseBody(body *ByCatalo...
  function ValidateByCatalogKindNameVersionReadmeInternalErrorResponseBody (line 1261) | func ValidateByCatalogKindNameVersionReadmeInternalErrorResponseBody(bod...
  function ValidateByCatalogKindNameVersionReadmeNotFoundResponseBody (line 1285) | func ValidateByCatalogKindNameVersionReadmeNotFoundResponseBody(body *By...
  function ValidateByCatalogKindNameVersionYamlInternalErrorResponseBody (line 1310) | func ValidateByCatalogKindNameVersionYamlInternalErrorResponseBody(body ...
  function ValidateByCatalogKindNameVersionYamlNotFoundResponseBody (line 1334) | func ValidateByCatalogKindNameVersionYamlNotFoundResponseBody(body *ByCa...
  function ValidateByVersionIDInternalErrorResponseBody (line 1358) | func ValidateByVersionIDInternalErrorResponseBody(body *ByVersionIDInter...
  function ValidateByVersionIDNotFoundResponseBody (line 1382) | func ValidateByVersionIDNotFoundResponseBody(body *ByVersionIDNotFoundRe...
  function ValidateByCatalogKindNameInternalErrorResponseBody (line 1406) | func ValidateByCatalogKindNameInternalErrorResponseBody(body *ByCatalogK...
  function ValidateByCatalogKindNameNotFoundResponseBody (line 1430) | func ValidateByCatalogKindNameNotFoundResponseBody(body *ByCatalogKindNa...
  function ValidateByIDInternalErrorResponseBody (line 1454) | func ValidateByIDInternalErrorResponseBody(body *ByIDInternalErrorRespon...
  function ValidateByIDNotFoundResponseBody (line 1478) | func ValidateByIDNotFoundResponseBody(body *ByIDNotFoundResponseBody) (e...
  function ValidateGetRawYamlByCatalogKindNameVersionInternalErrorResponseBody (line 1503) | func ValidateGetRawYamlByCatalogKindNameVersionInternalErrorResponseBody...
  function ValidateGetRawYamlByCatalogKindNameVersionNotFoundResponseBody (line 1528) | func ValidateGetRawYamlByCatalogKindNameVersionNotFoundResponseBody(body...
  function ValidateGetLatestRawYamlByCatalogKindNameInternalErrorResponseBody (line 1553) | func ValidateGetLatestRawYamlByCatalogKindNameInternalErrorResponseBody(...
  function ValidateGetLatestRawYamlByCatalogKindNameNotFoundResponseBody (line 1578) | func ValidateGetLatestRawYamlByCatalogKindNameNotFoundResponseBody(body ...
  function ValidateResourceDataCollectionResponseBody (line 1602) | func ValidateResourceDataCollectionResponseBody(body ResourceDataCollect...
  function ValidateResourceDataResponseBody (line 1615) | func ValidateResourceDataResponseBody(body *ResourceDataResponseBody) (e...
  function ValidateCatalogResponseBody (line 1695) | func ValidateCatalogResponseBody(body *CatalogResponseBody) (err error) {
  function ValidateCategoryResponseBody (line 1721) | func ValidateCategoryResponseBody(body *CategoryResponseBody) (err error) {
  function ValidateResourceVersionDataResponseBody (line 1733) | func ValidateResourceVersionDataResponseBody(body *ResourceVersionDataRe...
  function ValidatePlatformResponseBody (line 1796) | func ValidatePlatformResponseBody(body *PlatformResponseBody) (err error) {
  function ValidateTagResponseBody (line 1807) | func ValidateTagResponseBody(body *TagResponseBody) (err error) {
  function ValidateVersionsResponseBody (line 1819) | func ValidateVersionsResponseBody(body *VersionsResponseBody) (err error) {

FILE: api/v1/gen/http/resource/server/encode_decode.go
  function EncodeQueryResponse (line 23) | func EncodeQueryResponse(encoder func(context.Context, http.ResponseWrit...
  function DecodeQueryRequest (line 35) | func DecodeQueryRequest(mux goahttp.Muxer, decoder func(*http.Request) g...
  function EncodeQueryError (line 90) | func EncodeQueryError(encoder func(context.Context, http.ResponseWriter)...
  function EncodeListResponse (line 145) | func EncodeListResponse(encoder func(context.Context, http.ResponseWrite...
  function DecodeListRequest (line 157) | func DecodeListRequest(mux goahttp.Muxer, decoder func(*http.Request) go...
  function EncodeListError (line 186) | func EncodeListError(encoder func(context.Context, http.ResponseWriter) ...
  function EncodeVersionsByIDResponse (line 228) | func EncodeVersionsByIDResponse(encoder func(context.Context, http.Respo...
  function DecodeVersionsByIDRequest (line 240) | func DecodeVersionsByIDRequest(mux goahttp.Muxer, decoder func(*http.Req...
  function EncodeVersionsByIDError (line 267) | func EncodeVersionsByIDError(encoder func(context.Context, http.Response...
  function EncodeByCatalogKindNameVersionResponse (line 309) | func EncodeByCatalogKindNameVersionResponse(encoder func(context.Context...
  function DecodeByCatalogKindNameVersionRequest (line 321) | func DecodeByCatalogKindNameVersionRequest(mux goahttp.Muxer, decoder fu...
  function EncodeByCatalogKindNameVersionError (line 350) | func EncodeByCatalogKindNameVersionError(encoder func(context.Context, h...
  function EncodeByCatalogKindNameVersionReadmeResponse (line 392) | func EncodeByCatalogKindNameVersionReadmeResponse(encoder func(context.C...
  function DecodeByCatalogKindNameVersionReadmeRequest (line 404) | func DecodeByCatalogKindNameVersionReadmeRequest(mux goahttp.Muxer, deco...
  function EncodeByCatalogKindNameVersionReadmeError (line 433) | func EncodeByCatalogKindNameVersionReadmeError(encoder func(context.Cont...
  function EncodeByCatalogKindNameVersionYamlResponse (line 475) | func EncodeByCatalogKindNameVersionYamlResponse(encoder func(context.Con...
  function DecodeByCatalogKindNameVersionYamlRequest (line 487) | func DecodeByCatalogKindNameVersionYamlRequest(mux goahttp.Muxer, decode...
  function EncodeByCatalogKindNameVersionYamlError (line 516) | func EncodeByCatalogKindNameVersionYamlError(encoder func(context.Contex...
  function EncodeByVersionIDResponse (line 558) | func EncodeByVersionIDResponse(encoder func(context.Context, http.Respon...
  function DecodeByVersionIDRequest (line 570) | func DecodeByVersionIDRequest(mux goahttp.Muxer, decoder func(*http.Requ...
  function EncodeByVersionIDError (line 597) | func EncodeByVersionIDError(encoder func(context.Context, http.ResponseW...
  function EncodeByCatalogKindNameResponse (line 639) | func EncodeByCatalogKindNameResponse(encoder func(context.Context, http....
  function DecodeByCatalogKindNameRequest (line 651) | func DecodeByCatalogKindNameRequest(mux goahttp.Muxer, decoder func(*htt...
  function EncodeByCatalogKindNameError (line 686) | func EncodeByCatalogKindNameError(encoder func(context.Context, http.Res...
  function EncodeByIDResponse (line 728) | func EncodeByIDResponse(encoder func(context.Context, http.ResponseWrite...
  function DecodeByIDRequest (line 740) | func DecodeByIDRequest(mux goahttp.Muxer, decoder func(*http.Request) go...
  function EncodeByIDError (line 767) | func EncodeByIDError(encoder func(context.Context, http.ResponseWriter) ...
  function EncodeGetRawYamlByCatalogKindNameVersionResponse (line 810) | func EncodeGetRawYamlByCatalogKindNameVersionResponse(encoder func(conte...
  function DecodeGetRawYamlByCatalogKindNameVersionRequest (line 818) | func DecodeGetRawYamlByCatalogKindNameVersionRequest(mux goahttp.Muxer, ...
  function EncodeGetRawYamlByCatalogKindNameVersionError (line 847) | func EncodeGetRawYamlByCatalogKindNameVersionError(encoder func(context....
  function EncodeGetLatestRawYamlByCatalogKindNameResponse (line 890) | func EncodeGetLatestRawYamlByCatalogKindNameResponse(encoder func(contex...
  function DecodeGetLatestRawYamlByCatalogKindNameRequest (line 898) | func DecodeGetLatestRawYamlByCatalogKindNameRequest(mux goahttp.Muxer, d...
  function EncodeGetLatestRawYamlByCatalogKindNameError (line 925) | func EncodeGetLatestRawYamlByCatalogKindNameError(encoder func(context.C...
  function marshalResourceviewsResourceDataViewToResourceDataResponseBodyWithoutVersion (line 968) | func marshalResourceviewsResourceDataViewToResourceDataResponseBodyWitho...
  function marshalResourceviewsCatalogViewToCatalogResponseBodyMin (line 1013) | func marshalResourceviewsCatalogViewToCatalogResponseBodyMin(v *resource...
  function marshalResourceviewsCategoryViewToCategoryResponseBody (line 1025) | func marshalResourceviewsCategoryViewToCategoryResponseBody(v *resourcev...
  function marshalResourceviewsResourceVersionDataViewToResourceVersionDataResponseBodyWithoutResource (line 1037) | func marshalResourceviewsResourceVersionDataViewToResourceVersionDataRes...
  function marshalResourceviewsPlatformViewToPlatformResponseBody (line 1065) | func marshalResourceviewsPlatformViewToPlatformResponseBody(v *resourcev...
  function marshalResourceviewsTagViewToTagResponseBody (line 1076) | func marshalResourceviewsTagViewToTagResponseBody(v *resourceviews.TagVi...
  function marshalResourceviewsVersionsViewToVersionsResponseBody (line 1087) | func marshalResourceviewsVersionsViewToVersionsResponseBody(v *resourcev...
  function marshalResourceviewsResourceVersionDataViewToResourceVersionDataResponseBodyMin (line 1107) | func marshalResourceviewsResourceVersionDataViewToResourceVersionDataRes...
  function marshalResourceviewsResourceVersionDataViewToResourceVersionDataResponseBody (line 1131) | func marshalResourceviewsResourceVersionDataViewToResourceVersionDataRes...
  function marshalResourceviewsResourceDataViewToResourceDataResponseBodyInfo (line 1163) | func marshalResourceviewsResourceDataViewToResourceDataResponseBodyInfo(...
  function marshalResourceviewsResourceContentViewToResourceContentResponseBodyReadme (line 1205) | func marshalResourceviewsResourceContentViewToResourceContentResponseBod...
  function marshalResourceviewsResourceContentViewToResourceContentResponseBodyYaml (line 1216) | func marshalResourceviewsResourceContentViewToResourceContentResponseBod...
  function marshalResourceviewsResourceDataViewToResourceDataResponseBody (line 1227) | func marshalResourceviewsResourceDataViewToResourceDataResponseBody(v *r...
  function marshalResourceviewsResourceVersionDataViewToResourceVersionDataResponseBodyTiny (line 1281) | func marshalResourceviewsResourceVersionDataViewToResourceVersionDataRes...

FILE: api/v1/gen/http/resource/server/paths.go
  function QueryResourcePath (line 15) | func QueryResourcePath() string {
  function ListResourcePath (line 20) | func ListResourcePath() string {
  function VersionsByIDResourcePath (line 25) | func VersionsByIDResourcePath(id uint) string {
  function ByCatalogKindNameVersionResourcePath (line 30) | func ByCatalogKindNameVersionResourcePath(catalog string, kind string, n...
  function ByCatalogKindNameVersionReadmeResourcePath (line 35) | func ByCatalogKindNameVersionReadmeResourcePath(catalog string, kind str...
  function ByCatalogKindNameVersionYamlResourcePath (line 40) | func ByCatalogKindNameVersionYamlResourcePath(catalog string, kind strin...
  function ByVersionIDResourcePath (line 45) | func ByVersionIDResourcePath(versionID uint) string {
  function ByCatalogKindNameResourcePath (line 50) | func ByCatalogKindNameResourcePath(catalog string, kind string, name str...
  function ByIDResourcePath (line 55) | func ByI
Copy disabled (too large) Download .json
Condensed preview — 8059 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (77,292K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.md",
    "chars": 293,
    "preview": "---\nname: Bug Report\nabout: Template for bug reports\nlabels: kind/bug\n---\n\n# Expected Behavior\n\n# Actual Behavior\n\n# Ste"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.md",
    "chars": 459,
    "preview": "---\nname: Feature Request\nabout: Template for feature requests\nlabels: kind/feature\n---\n\n### Feature request\n\n<!-- Pleas"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/free-form.md",
    "chars": 60,
    "preview": "---\nname: Free Form\nabout: Create an unstructured issue\n---\n"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 1117,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"gomod\" # See documentation for possible values\n    directory: \"/\" # Location"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 1577,
    "preview": "<!-- 🎉🎉🎉 Thank you for the PR!!! 🎉🎉🎉 -->\n\n# Changes\n\n<!-- Describe your changes here- ideally you can get that descripti"
  },
  {
    "path": ".github/workflows/chatops_retest.yaml",
    "chars": 290,
    "preview": "name: Rerun Failed Actions\n\npermissions:\n  contents: read\n\non:\n  repository_dispatch:\n    types: [retest-command]\n\njobs:"
  },
  {
    "path": ".github/workflows/cherry-pick-command.yaml",
    "chars": 1121,
    "preview": "# Cherry Pick Command Workflow\n#\n# This workflow is triggered by the /cherry-pick slash command from the slash.yaml work"
  },
  {
    "path": ".github/workflows/ci.yaml",
    "chars": 3813,
    "preview": "name: Tekton Hub CI\n\non:\n  push:\n    branches: [ main, release-* ]\n  pull_request:\n    branches: [ \"**\" ]\n\npermissions:\n"
  },
  {
    "path": ".github/workflows/goa-gen-dependabot.yml",
    "chars": 2687,
    "preview": "name: Bump Goa version and updates `gen` directory on main branch\n\non:\n  workflow_dispatch:\n  schedule:\n  - cron: '0 0 *"
  },
  {
    "path": ".github/workflows/golangci-lint.yaml",
    "chars": 1150,
    "preview": "name: golangci-lint\non:  # yamllint disable-line rule:truthy\n  push:\n    branches:\n      - main\n  pull_request:  # yamll"
  },
  {
    "path": ".github/workflows/slash.yaml",
    "chars": 486,
    "preview": "name: Slash Command Routing\n\npermissions:\n  contents: read\n\non:\n  issue_comment:\n    types: [created]\n\njobs:\n  check_com"
  },
  {
    "path": ".gitignore",
    "chars": 39,
    "preview": "\n# IntelliJ IDE specific\n.idea\n.vscode\n"
  },
  {
    "path": ".golangci.yml",
    "chars": 146,
    "preview": "run:\n  issues-exit-code: 1\n  skip-dirs:\n    - vendor\nlinters-settings:\n  staticcheck:\n    checks:\n      - '-SA1019' # ig"
  },
  {
    "path": ".yamllint",
    "chars": 687,
    "preview": "ignore: |\n  /vendor\n  /api/vendor\n\nrules:\n  braces: enable\n  brackets: enable\n  colons: enable\n  commas: enable\n  commen"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 586,
    "preview": "# Contributing to the catalog repo\n\nThank you for your interest in contributing!\n\nThis doc is about how to contribute to"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "Makefile",
    "chars": 3004,
    "preview": ".PHONY: test\ntest: api-test ui-test ## run all Unit Tests\n\n.PHONY: lint\nlint: api-lint ui-lint yaml-lint ## check all Li"
  },
  {
    "path": "OWNERS",
    "chars": 154,
    "preview": "# The OWNERS file is used by prow to automatically merge approved PRs.\n\napprovers:\n- vdemeester\n- sthaha\n- PuneetPunamiy"
  },
  {
    "path": "README.md",
    "chars": 2863,
    "preview": "# Tekton Hub\n\n> [!CAUTION]\n> **This repository is archived and no longer maintained.**\n>\n> - The public Tekton Hub insta"
  },
  {
    "path": "ROADMAP.md",
    "chars": 1925,
    "preview": "# Tekton Hub 2021 Roadmap\n\n## Roadmap\n\n### Multi Catalog Support\n\n - User should be able to provide multi catalogs in co"
  },
  {
    "path": "api/.gitignore",
    "chars": 27,
    "preview": "# tkn-hub binary \n/tkn-hub\n"
  },
  {
    "path": "api/cmd/api/http.go",
    "chars": 7903,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/cmd/api/main.go",
    "chars": 7028,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/cmd/api-cli/http.go",
    "chars": 1266,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/cmd/api-cli/main.go",
    "chars": 3187,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/cmd/db/main.go",
    "chars": 1080,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/cmd/tkn-hub/main.go",
    "chars": 830,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/admin.go",
    "chars": 3089,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/api.go",
    "chars": 1325,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/catalog.go",
    "chars": 2886,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/category.go",
    "chars": 1193,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/rating.go",
    "chars": 2492,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/resource.go",
    "chars": 6226,
    "preview": "// Copyright © 2022 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/status.go",
    "chars": 1050,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/swagger.go",
    "chars": 1225,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/design/types/type.go",
    "chars": 14980,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/gen/admin/client.go",
    "chars": 1930,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin client\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/ap"
  },
  {
    "path": "api/gen/admin/endpoints.go",
    "chars": 2215,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin endpoints\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub"
  },
  {
    "path": "api/gen/admin/service.go",
    "chars": 2893,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin service\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/a"
  },
  {
    "path": "api/gen/catalog/client.go",
    "chars": 2171,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog client\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/"
  },
  {
    "path": "api/gen/catalog/endpoints.go",
    "chars": 3065,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog endpoints\n//\n// Command:\n// $ goa gen github.com/tektoncd/h"
  },
  {
    "path": "api/gen/catalog/service.go",
    "chars": 4010,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog service\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub"
  },
  {
    "path": "api/gen/catalog/views/view.go",
    "chars": 1480,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog views\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/a"
  },
  {
    "path": "api/gen/category/client.go",
    "chars": 854,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category client\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub"
  },
  {
    "path": "api/gen/category/endpoints.go",
    "chars": 873,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category endpoints\n//\n// Command:\n// $ goa gen github.com/tektoncd/"
  },
  {
    "path": "api/gen/category/service.go",
    "chars": 1404,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category service\n//\n// Command:\n// $ goa gen github.com/tektoncd/hu"
  },
  {
    "path": "api/gen/http/admin/client/cli.go",
    "chars": 1664,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin HTTP client CLI support package\n//\n// Command:\n// $ goa gen g"
  },
  {
    "path": "api/gen/http/admin/client/client.go",
    "chars": 2850,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin client HTTP transport\n//\n// Command:\n// $ goa gen github.com/"
  },
  {
    "path": "api/gen/http/admin/client/encode_decode.go",
    "chars": 9120,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin HTTP client encoders and decoders\n//\n// Command:\n// $ goa gen"
  },
  {
    "path": "api/gen/http/admin/client/paths.go",
    "chars": 520,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the admin service.\n//\n// Command"
  },
  {
    "path": "api/gen/http/admin/client/types.go",
    "chars": 18545,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin HTTP client types\n//\n// Command:\n// $ goa gen github.com/tekt"
  },
  {
    "path": "api/gen/http/admin/server/encode_decode.go",
    "chars": 7106,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin HTTP server encoders and decoders\n//\n// Command:\n// $ goa gen"
  },
  {
    "path": "api/gen/http/admin/server/paths.go",
    "chars": 520,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the admin service.\n//\n// Command"
  },
  {
    "path": "api/gen/http/admin/server/server.go",
    "chars": 7678,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin HTTP server\n//\n// Command:\n// $ goa gen github.com/tektoncd/h"
  },
  {
    "path": "api/gen/http/admin/server/types.go",
    "chars": 11916,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// admin HTTP server types\n//\n// Command:\n// $ goa gen github.com/tekt"
  },
  {
    "path": "api/gen/http/catalog/client/cli.go",
    "chars": 1483,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog HTTP client CLI support package\n//\n// Command:\n// $ goa gen"
  },
  {
    "path": "api/gen/http/catalog/client/client.go",
    "chars": 3634,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog client HTTP transport\n//\n// Command:\n// $ goa gen github.co"
  },
  {
    "path": "api/gen/http/catalog/client/encode_decode.go",
    "chars": 11257,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog HTTP client encoders and decoders\n//\n// Command:\n// $ goa g"
  },
  {
    "path": "api/gen/http/catalog/client/paths.go",
    "chars": 785,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the catalog service.\n//\n// Comma"
  },
  {
    "path": "api/gen/http/catalog/client/types.go",
    "chars": 13189,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog HTTP client types\n//\n// Command:\n// $ goa gen github.com/te"
  },
  {
    "path": "api/gen/http/catalog/server/encode_decode.go",
    "chars": 8501,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog HTTP server encoders and decoders\n//\n// Command:\n// $ goa g"
  },
  {
    "path": "api/gen/http/catalog/server/paths.go",
    "chars": 785,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the catalog service.\n//\n// Comma"
  },
  {
    "path": "api/gen/http/catalog/server/server.go",
    "chars": 9729,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog HTTP server\n//\n// Command:\n// $ goa gen github.com/tektoncd"
  },
  {
    "path": "api/gen/http/catalog/server/types.go",
    "chars": 8852,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// catalog HTTP server types\n//\n// Command:\n// $ goa gen github.com/te"
  },
  {
    "path": "api/gen/http/category/client/cli.go",
    "chars": 173,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category HTTP client CLI support package\n//\n// Command:\n// $ goa ge"
  },
  {
    "path": "api/gen/http/category/client/client.go",
    "chars": 1811,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category client HTTP transport\n//\n// Command:\n// $ goa gen github.c"
  },
  {
    "path": "api/gen/http/category/client/encode_decode.go",
    "chars": 2958,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category HTTP client encoders and decoders\n//\n// Command:\n// $ goa "
  },
  {
    "path": "api/gen/http/category/client/paths.go",
    "chars": 480,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the category service.\n//\n// Comm"
  },
  {
    "path": "api/gen/http/category/client/types.go",
    "chars": 4064,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category HTTP client types\n//\n// Command:\n// $ goa gen github.com/t"
  },
  {
    "path": "api/gen/http/category/server/encode_decode.go",
    "chars": 2136,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category HTTP server encoders and decoders\n//\n// Command:\n// $ goa "
  },
  {
    "path": "api/gen/http/category/server/paths.go",
    "chars": 480,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the category service.\n//\n// Comm"
  },
  {
    "path": "api/gen/http/category/server/server.go",
    "chars": 5438,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category HTTP server\n//\n// Command:\n// $ goa gen github.com/tektonc"
  },
  {
    "path": "api/gen/http/category/server/types.go",
    "chars": 2439,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// category HTTP server types\n//\n// Command:\n// $ goa gen github.com/t"
  },
  {
    "path": "api/gen/http/cli/hub/cli.go",
    "chars": 22746,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// hub HTTP client CLI support package\n//\n// Command:\n// $ goa gen git"
  },
  {
    "path": "api/gen/http/openapi.json",
    "chars": 53080,
    "preview": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Tekton Hub\",\"description\":\"HTTP services for managing Tekton Hub\",\"version\":\"1.0\"},\"ho"
  },
  {
    "path": "api/gen/http/openapi.yaml",
    "chars": 79733,
    "preview": "swagger: \"2.0\"\ninfo:\n    title: Tekton Hub\n    description: HTTP services for managing Tekton Hub\n    version: \"1.0\"\nhos"
  },
  {
    "path": "api/gen/http/openapi3.json",
    "chars": 27064,
    "preview": "{\"openapi\":\"3.0.3\",\"info\":{\"title\":\"Tekton Hub\",\"description\":\"HTTP services for managing Tekton Hub\",\"version\":\"1.0\"},\""
  },
  {
    "path": "api/gen/http/openapi3.yaml",
    "chars": 45958,
    "preview": "openapi: 3.0.3\ninfo:\n    title: Tekton Hub\n    description: HTTP services for managing Tekton Hub\n    version: \"1.0\"\nser"
  },
  {
    "path": "api/gen/http/rating/client/cli.go",
    "chars": 1925,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating HTTP client CLI support package\n//\n// Command:\n// $ goa gen "
  },
  {
    "path": "api/gen/http/rating/client/client.go",
    "chars": 2684,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating client HTTP transport\n//\n// Command:\n// $ goa gen github.com"
  },
  {
    "path": "api/gen/http/rating/client/encode_decode.go",
    "chars": 9002,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating HTTP client encoders and decoders\n//\n// Command:\n// $ goa ge"
  },
  {
    "path": "api/gen/http/rating/client/paths.go",
    "chars": 547,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the rating service.\n//\n// Comman"
  },
  {
    "path": "api/gen/http/rating/client/types.go",
    "chars": 18834,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating HTTP client types\n//\n// Command:\n// $ goa gen github.com/tek"
  },
  {
    "path": "api/gen/http/rating/server/encode_decode.go",
    "chars": 7643,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating HTTP server encoders and decoders\n//\n// Command:\n// $ goa ge"
  },
  {
    "path": "api/gen/http/rating/server/paths.go",
    "chars": 547,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the rating service.\n//\n// Comman"
  },
  {
    "path": "api/gen/http/rating/server/server.go",
    "chars": 7293,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating HTTP server\n//\n// Command:\n// $ goa gen github.com/tektoncd/"
  },
  {
    "path": "api/gen/http/rating/server/types.go",
    "chars": 12026,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating HTTP server types\n//\n// Command:\n// $ goa gen github.com/tek"
  },
  {
    "path": "api/gen/http/resource/client/cli.go",
    "chars": 6850,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource HTTP client CLI support package\n//\n// Command:\n// $ goa ge"
  },
  {
    "path": "api/gen/http/resource/client/client.go",
    "chars": 6514,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource client HTTP transport\n//\n// Command:\n// $ goa gen github.c"
  },
  {
    "path": "api/gen/http/resource/client/encode_decode.go",
    "chars": 20576,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource HTTP client encoders and decoders\n//\n// Command:\n// $ goa "
  },
  {
    "path": "api/gen/http/resource/client/paths.go",
    "chars": 1646,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the resource service.\n//\n// Comm"
  },
  {
    "path": "api/gen/http/resource/client/types.go",
    "chars": 15079,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource HTTP client types\n//\n// Command:\n// $ goa gen github.com/t"
  },
  {
    "path": "api/gen/http/resource/server/encode_decode.go",
    "chars": 12991,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource HTTP server encoders and decoders\n//\n// Command:\n// $ goa "
  },
  {
    "path": "api/gen/http/resource/server/paths.go",
    "chars": 1646,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the resource service.\n//\n// Comm"
  },
  {
    "path": "api/gen/http/resource/server/server.go",
    "chars": 17778,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource HTTP server\n//\n// Command:\n// $ goa gen github.com/tektonc"
  },
  {
    "path": "api/gen/http/resource/server/types.go",
    "chars": 7136,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource HTTP server types\n//\n// Command:\n// $ goa gen github.com/t"
  },
  {
    "path": "api/gen/http/status/client/cli.go",
    "chars": 171,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status HTTP client CLI support package\n//\n// Command:\n// $ goa gen "
  },
  {
    "path": "api/gen/http/status/client/client.go",
    "chars": 1821,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status client HTTP transport\n//\n// Command:\n// $ goa gen github.com"
  },
  {
    "path": "api/gen/http/status/client/encode_decode.go",
    "chars": 2413,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status HTTP client encoders and decoders\n//\n// Command:\n// $ goa ge"
  },
  {
    "path": "api/gen/http/status/client/paths.go",
    "chars": 457,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the status service.\n//\n// Comman"
  },
  {
    "path": "api/gen/http/status/client/types.go",
    "chars": 2312,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status HTTP client types\n//\n// Command:\n// $ goa gen github.com/tek"
  },
  {
    "path": "api/gen/http/status/server/encode_decode.go",
    "chars": 1159,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status HTTP server encoders and decoders\n//\n// Command:\n// $ goa ge"
  },
  {
    "path": "api/gen/http/status/server/paths.go",
    "chars": 457,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the status service.\n//\n// Comman"
  },
  {
    "path": "api/gen/http/status/server/server.go",
    "chars": 5357,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status HTTP server\n//\n// Command:\n// $ goa gen github.com/tektoncd/"
  },
  {
    "path": "api/gen/http/status/server/types.go",
    "chars": 1356,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status HTTP server types\n//\n// Command:\n// $ goa gen github.com/tek"
  },
  {
    "path": "api/gen/http/swagger/client/client.go",
    "chars": 1130,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger client HTTP transport\n//\n// Command:\n// $ goa gen github.co"
  },
  {
    "path": "api/gen/http/swagger/client/encode_decode.go",
    "chars": 174,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger HTTP client encoders and decoders\n//\n// Command:\n// $ goa g"
  },
  {
    "path": "api/gen/http/swagger/client/paths.go",
    "chars": 188,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the swagger service.\n//\n// Comma"
  },
  {
    "path": "api/gen/http/swagger/client/types.go",
    "chars": 158,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger HTTP client types\n//\n// Command:\n// $ goa gen github.com/te"
  },
  {
    "path": "api/gen/http/swagger/server/paths.go",
    "chars": 188,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// HTTP request path constructors for the swagger service.\n//\n// Comma"
  },
  {
    "path": "api/gen/http/swagger/server/server.go",
    "chars": 5121,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger HTTP server\n//\n// Command:\n// $ goa gen github.com/tektoncd"
  },
  {
    "path": "api/gen/http/swagger/server/types.go",
    "chars": 158,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger HTTP server types\n//\n// Command:\n// $ goa gen github.com/te"
  },
  {
    "path": "api/gen/rating/client.go",
    "chars": 1659,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating client\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/a"
  },
  {
    "path": "api/gen/rating/endpoints.go",
    "chars": 2076,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating endpoints\n//\n// Command:\n// $ goa gen github.com/tektoncd/hu"
  },
  {
    "path": "api/gen/rating/service.go",
    "chars": 2642,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// rating service\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/"
  },
  {
    "path": "api/gen/resource/client.go",
    "chars": 4890,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource client\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub"
  },
  {
    "path": "api/gen/resource/endpoints.go",
    "chars": 3641,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource endpoints\n//\n// Command:\n// $ goa gen github.com/tektoncd/"
  },
  {
    "path": "api/gen/resource/service.go",
    "chars": 35097,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource service\n//\n// Command:\n// $ goa gen github.com/tektoncd/hu"
  },
  {
    "path": "api/gen/resource/views/view.go",
    "chars": 21642,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// resource views\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/"
  },
  {
    "path": "api/gen/status/client.go",
    "chars": 722,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status client\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/a"
  },
  {
    "path": "api/gen/status/endpoints.go",
    "chars": 879,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status endpoints\n//\n// Command:\n// $ goa gen github.com/tektoncd/hu"
  },
  {
    "path": "api/gen/status/service.go",
    "chars": 1275,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// status service\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/"
  },
  {
    "path": "api/gen/swagger/client.go",
    "chars": 389,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger client\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub/"
  },
  {
    "path": "api/gen/swagger/endpoints.go",
    "chars": 552,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger endpoints\n//\n// Command:\n// $ goa gen github.com/tektoncd/h"
  },
  {
    "path": "api/gen/swagger/service.go",
    "chars": 815,
    "preview": "// Code generated by goa v3.21.1, DO NOT EDIT.\n//\n// swagger service\n//\n// Command:\n// $ goa gen github.com/tektoncd/hub"
  },
  {
    "path": "api/pkg/app/api_logger.go",
    "chars": 1188,
    "preview": "// Copyright © 2024 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/app/app.go",
    "chars": 12852,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/app/app_test.go",
    "chars": 1093,
    "preview": "// Copyright © 2022 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/app/data.go",
    "chars": 1848,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/app/gorm_logger.go",
    "chars": 1976,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/app/service.go",
    "chars": 2240,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/auth/app/app.go",
    "chars": 1258,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/auth/base.go",
    "chars": 3410,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/auth/provider/bitbucket.go",
    "chars": 856,
    "preview": "/*\nCopyright 2022 The Tekton Authors\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use th"
  },
  {
    "path": "api/pkg/auth/provider/github.go",
    "chars": 1613,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/auth/provider/gitlab.go",
    "chars": 1321,
    "preview": "/*\nCopyright 2022 The Tekton Authors\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use th"
  },
  {
    "path": "api/pkg/auth/service/auth.go",
    "chars": 6089,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/auth/service/auth_test.go",
    "chars": 7648,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/auth/service/service.go",
    "chars": 7542,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/app/app.go",
    "chars": 1441,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/check_upgrade_test.go",
    "chars": 17195,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/check_uprade.go",
    "chars": 6672,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestNoUpdateAvailable.golden",
    "chars": 40,
    "preview": "Upgrades Available\n\nNo task for upgrade\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestNoUpdateAvailable_TaskNotInstalledViaHubCLI.golden",
    "chars": 71,
    "preview": "Upgrades Available\n\nNo task for upgrade\n\nSkipped Resources\n\nNAME\n∙ foo\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestUpdateAvailable.golden",
    "chars": 120,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_COMPATIBLE_VERSION\nfoo    Tekton    0.1               0.2\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestUpdateAvailable_PipelinesUnknown.golden",
    "chars": 190,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_VERSION\nfoo    Tekton    0.1               0.2\n\nWARN: Pipe"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestUpdateAvailable_WithSkippedTasks.golden",
    "chars": 155,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_COMPATIBLE_VERSION\nfoo    Tekton    0.1               0.2\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestUpdateAvailable_WithSkippedTasks_PipelinesUnknown.golden",
    "chars": 225,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_VERSION\nfoo    Tekton    0.1               0.2\n\nSkipped Re"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestV1NoUpdateAvailable.golden",
    "chars": 40,
    "preview": "Upgrades Available\n\nNo task for upgrade\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestV1NoUpdateAvailable_TaskNotInstalledViaHubCLI.golden",
    "chars": 71,
    "preview": "Upgrades Available\n\nNo task for upgrade\n\nSkipped Resources\n\nNAME\n∙ foo\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestV1UpdateAvailable.golden",
    "chars": 120,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_COMPATIBLE_VERSION\nfoo    Tekton    0.1               0.2\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestV1UpdateAvailable_PipelinesUnknown.golden",
    "chars": 190,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_VERSION\nfoo    Tekton    0.1               0.2\n\nWARN: Pipe"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestV1UpdateAvailable_WithSkippedTasks.golden",
    "chars": 155,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_COMPATIBLE_VERSION\nfoo    Tekton    0.1               0.2\n"
  },
  {
    "path": "api/pkg/cli/cmd/check_upgrade/testdata/TestV1UpdateAvailable_WithSkippedTasks_PipelinesUnknown.golden",
    "chars": 225,
    "preview": "Upgrades Available\n\nNAME   CATALOG   CURRENT_VERSION   LATEST_VERSION\nfoo    Tekton    0.1               0.2\n\nSkipped Re"
  },
  {
    "path": "api/pkg/cli/cmd/downgrade/downgrade.go",
    "chars": 9122,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/downgrade/downgrade_test.go",
    "chars": 30858,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/downgrade/testdata/foo-v0.2.yaml",
    "chars": 288,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  labels:\n    app.kubernetes.io/version: '0.2'\n  ann"
  },
  {
    "path": "api/pkg/cli/cmd/downgrade/testdata/foo-v0.3.yaml",
    "chars": 288,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  labels:\n    app.kubernetes.io/version: '0.3'\n  ann"
  },
  {
    "path": "api/pkg/cli/cmd/get/get.go",
    "chars": 4344,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/get/get_test.go",
    "chars": 4670,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/get/task.go",
    "chars": 1806,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/get/task_test.go",
    "chars": 1991,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/TestGetResource_WithNewVersion.golden",
    "chars": 251,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Pipeline\nmetadata:\n  name: mango\n  annotations:\n    tekton.dev/pipelines.minVer"
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/TestGetResource_WithOldVersion.golden",
    "chars": 251,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Pipeline\nmetadata:\n  name: mango\n  annotations:\n    tekton.dev/pipelines.minVer"
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/TestGetTask_WithNewVersion.golden",
    "chars": 242,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  annotations:\n    tekton.dev/pipelines.minVersion: "
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/foo-v0.1.yaml",
    "chars": 241,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  annotations:\n    tekton.dev/pipelines.minVersion: "
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/foo-v0.3.yaml",
    "chars": 241,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  annotations:\n    tekton.dev/pipelines.minVersion: "
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/pipeline-apple-v0.1.yaml",
    "chars": 253,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Pipeline\nmetadata:\n  name: apple\n  annotations:\n    tekton.dev/pipelines.minVer"
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/pipeline-mango-v0.2.yaml",
    "chars": 250,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Pipeline\nmetadata:\n  name: mango\n  annotations:\n    tekton.dev/pipelines.minVer"
  },
  {
    "path": "api/pkg/cli/cmd/get/testdata/pipeline-mango-v0.3.yaml",
    "chars": 250,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Pipeline\nmetadata:\n  name: mango\n  annotations:\n    tekton.dev/pipelines.minVer"
  },
  {
    "path": "api/pkg/cli/cmd/info/info.go",
    "chars": 6189,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/info/info_test.go",
    "chars": 5264,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/info/testdata/TestInfoTask_WithLatestVersion.golden",
    "chars": 277,
    "preview": "📦 Name: foo-bar\n\n📌 Version: 0.2\n\n📖 Description: Description for task foo-bar version 0.2\n\n🗒  Minimum Pipeline Version: 0"
  },
  {
    "path": "api/pkg/cli/cmd/info/testdata/TestInfoTask_WithOldVersion.golden",
    "chars": 290,
    "preview": "📦 Name: foo-bar\n\n📌 Version: 0.1 (Deprecated)\n\n📖 Description: Description for task foo-bar version 0.1\n\n🗒  Minimum Pipeli"
  },
  {
    "path": "api/pkg/cli/cmd/info/testdata/TestPipelineTask_MultiLineDescription.golden",
    "chars": 479,
    "preview": "📦 Name: foo-bar\n\n📌 Version: 0.2\n\n📖 Description: A Task is a collection of Steps that you define and arrange in\n a specif"
  },
  {
    "path": "api/pkg/cli/cmd/install/install.go",
    "chars": 9464,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/install/install_test.go",
    "chars": 29952,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/install/testdata/foo-v0.2.yaml",
    "chars": 322,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  labels:\n    app.kubernetes.io/version: '0.2'\n  ann"
  },
  {
    "path": "api/pkg/cli/cmd/install/testdata/foo-v0.3.yaml",
    "chars": 288,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  labels:\n    app.kubernetes.io/version: '0.3'\n  ann"
  },
  {
    "path": "api/pkg/cli/cmd/reinstall/reinstall.go",
    "chars": 8395,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/reinstall/reinstall_test.go",
    "chars": 23055,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/reinstall/testdata/foo-v0.3.yaml",
    "chars": 288,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  labels:\n    app.kubernetes.io/version: '0.3'\n  ann"
  },
  {
    "path": "api/pkg/cli/cmd/root.go",
    "chars": 2576,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/search/search.go",
    "chars": 5841,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/search/search_test.go",
    "chars": 6792,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/search/testdata/TestSearch_JSONFormat.golden",
    "chars": 841,
    "preview": "{\n\t\"Data\": [\n\t\t{\n\t\t\t\"ID\": 2,\n\t\t\t\"Name\": \"foo-bar\",\n\t\t\t\"Catalog\": {\n\t\t\t\t\"ID\": 1,\n\t\t\t\t\"Name\": \"foo\",\n\t\t\t\t\"Type\": \"communit"
  },
  {
    "path": "api/pkg/cli/cmd/search/testdata/TestSearch_TableFormat.golden",
    "chars": 385,
    "preview": "NAME            KIND       CATALOG   DESCRIPTION                                  PLATFORMS                  TAGS       "
  },
  {
    "path": "api/pkg/cli/cmd/upgrade/testdata/foo-v0.3.yaml",
    "chars": 288,
    "preview": "---\napiVersion: tekton.dev/v1beta1\nkind: Task\nmetadata:\n  name: foo\n  labels:\n    app.kubernetes.io/version: '0.3'\n  ann"
  },
  {
    "path": "api/pkg/cli/cmd/upgrade/upgrade.go",
    "chars": 8361,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/cmd/upgrade/upgrade_test.go",
    "chars": 22861,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/flag/validate.go",
    "chars": 1785,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/flag/validate_test.go",
    "chars": 1478,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/formatter/field.go",
    "chars": 5802,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/formatter/field_test.go",
    "chars": 4335,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/formatter/json.go",
    "chars": 888,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/formatter/json_test.go",
    "chars": 880,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/gvr/gvr.go",
    "chars": 1499,
    "preview": "// Copyright © 2023 The Tekton \tAuthors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you ma"
  },
  {
    "path": "api/pkg/cli/hub/get_catalog.go",
    "chars": 2440,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/hub/get_catalog_test.go",
    "chars": 775,
    "preview": "// Copyright © 2021 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  },
  {
    "path": "api/pkg/cli/hub/get_resource.go",
    "chars": 15542,
    "preview": "// Copyright © 2020 The Tekton Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may"
  }
]

// ... and 7859 more files (download for full content)

About this extraction

This page contains the full source code of the tektoncd/hub GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 8059 files (68.1 MB), approximately 18.3M tokens, and a symbol index with 192407 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!