feat: [AH-994]: Updated Client setup details. Update pypi to python (#3547)

* Merge branch 'main' of https://git0.harness.io/l7B_kbSEQD2wjrM7PShm5w/PROD/Harness_Commons/gitness into AH-994-client-setup-details-update
* [AH-994]: Merge conflict fixed
* [AH-994]: Merge conflict fixed
* [AH-994]: Updated makefile
* [AH-994]: Merge conflict fixed
* [AH-994]: Updated Client setup details. Update pypi to python
This commit is contained in:
Arvind Choudhary 2025-03-13 04:45:55 +00:00 committed by Harness
parent 32196d481f
commit f660d8b0cd
21 changed files with 229 additions and 260 deletions

View File

@ -60,7 +60,7 @@ run: ar-clean build
ar-conformance-test: ar-clean build ar-conformance-test: ar-clean build
./gitness server .local.env > logfile.log 2>&1 & echo $$! > server.PID ./gitness server .local.env > logfile.log 2>&1 & echo $$! > server.PID
@sleep 10 @sleep 20
./registry/tests/conformance_test.sh localhost:3000 ./registry/tests/conformance_test.sh localhost:3000
EXIT_CODE=$$?; EXIT_CODE=$$?;
kill `cat server.PID` kill `cat server.PID`

View File

@ -25,7 +25,10 @@ import (
gitnessenum "github.com/harness/gitness/types/enum" gitnessenum "github.com/harness/gitness/types/enum"
) )
func ResolveSecret(ctx context.Context, secretResolverFactory *secret.ResolverFactory, config types.GitspaceConfig) (*string, error) { func ResolveSecret(ctx context.Context, secretResolverFactory *secret.ResolverFactory, config types.GitspaceConfig) (
*string,
error,
) {
rootSpaceID, _, err := paths.DisectRoot(config.SpacePath) rootSpaceID, _, err := paths.DisectRoot(config.SpacePath)
if err != nil { if err != nil {
return nil, fmt.Errorf("unable to find root space id from space path: %s", config.SpacePath) return nil, fmt.Errorf("unable to find root space id from space path: %s", config.SpacePath)

View File

@ -44,6 +44,7 @@ func (s *Service) List(
if err != nil { if err != nil {
return nil, 0, err return nil, 0, err
} }
case enum.WebhookParentRegistry:
default: default:
return nil, 0, fmt.Errorf("webhook type %s is not supported", parentType) return nil, 0, fmt.Errorf("webhook type %s is not supported", parentType)
} }

View File

@ -134,6 +134,7 @@ func (s *WebhookStore) FindByIdentifier(
stmt = stmt.Where("webhook_repo_id = ?", parentID) stmt = stmt.Where("webhook_repo_id = ?", parentID)
case enum.WebhookParentSpace: case enum.WebhookParentSpace:
stmt = stmt.Where("webhook_space_id = ?", parentID) stmt = stmt.Where("webhook_space_id = ?", parentID)
case enum.WebhookParentRegistry:
default: default:
return nil, fmt.Errorf("webhook parent type '%s' is not supported", parentType) return nil, fmt.Errorf("webhook parent type '%s' is not supported", parentType)
} }
@ -329,6 +330,7 @@ func (s *WebhookStore) DeleteByIdentifier(
stmt = stmt.Where("webhook_repo_id = ?", parentID) stmt = stmt.Where("webhook_repo_id = ?", parentID)
case enum.WebhookParentSpace: case enum.WebhookParentSpace:
stmt = stmt.Where("webhook_space_id = ?", parentID) stmt = stmt.Where("webhook_space_id = ?", parentID)
case enum.WebhookParentRegistry:
default: default:
return fmt.Errorf("webhook parent type '%s' is not supported", parentType) return fmt.Errorf("webhook parent type '%s' is not supported", parentType)
} }
@ -503,6 +505,7 @@ func mapToInternalWebhook(hook *types.Webhook) (*webhook, error) {
res.RepoID = null.IntFrom(hook.ParentID) res.RepoID = null.IntFrom(hook.ParentID)
case enum.WebhookParentSpace: case enum.WebhookParentSpace:
res.SpaceID = null.IntFrom(hook.ParentID) res.SpaceID = null.IntFrom(hook.ParentID)
case enum.WebhookParentRegistry:
default: default:
return nil, fmt.Errorf("webhook parent type %q is not supported", hook.ParentType) return nil, fmt.Errorf("webhook parent type %q is not supported", hook.ParentType)
} }
@ -581,6 +584,7 @@ func selectWebhookParents(
parentSelector = append(parentSelector, squirrel.Eq{ parentSelector = append(parentSelector, squirrel.Eq{
"webhook_space_id": parent.ID, "webhook_space_id": parent.ID,
}) })
case enum.WebhookParentRegistry:
default: default:
return fmt.Errorf("webhook parent type '%s' is not supported", parent.Type) return fmt.Errorf("webhook parent type '%s' is not supported", parent.Type)
} }

View File

@ -24,6 +24,8 @@ import (
"strings" "strings"
"github.com/harness/gitness/app/paths" "github.com/harness/gitness/app/paths"
"github.com/rs/zerolog/log"
) )
const ( const (
@ -78,7 +80,7 @@ type Provider interface {
GetAPIProto(ctx context.Context) string GetAPIProto(ctx context.Context) string
RegistryURL(ctx context.Context, params ...string) string RegistryURL(ctx context.Context, params ...string) string
PackageURL(ctx context.Context, params ...string) string
GetUIBaseURL(ctx context.Context, params ...string) string GetUIBaseURL(ctx context.Context, params ...string) string
// GenerateUIRegistryURL returns the url for the UI screen of a registry. // GenerateUIRegistryURL returns the url for the UI screen of a registry.
@ -257,6 +259,21 @@ func (p *provider) RegistryURL(_ context.Context, params ...string) string {
return strings.TrimRight(u.String(), "/") return strings.TrimRight(u.String(), "/")
} }
func (p *provider) PackageURL(_ context.Context, params ...string) string {
u, err := url.Parse(p.registryURL.String())
if err != nil {
log.Warn().Msgf("failed to parse registry url: %v", err)
return p.registryURL.String()
}
segments := []string{u.Path}
segments = append(segments, "pkg")
segments = append(segments, params...)
fullPath := path.Join(segments...)
u.Path = fullPath
return strings.TrimRight(u.String(), "/")
}
func (p *provider) GetUIBaseURL(_ context.Context, _ ...string) string { func (p *provider) GetUIBaseURL(_ context.Context, _ ...string) string {
return p.uiURL.String() return p.uiURL.String()
} }

View File

@ -121,8 +121,8 @@ func toPackageType(packageTypeStr string) (artifactapi.PackageType, error) {
return artifactapi.PackageTypeHELM, nil return artifactapi.PackageTypeHELM, nil
case string(artifactapi.PackageTypeMAVEN): case string(artifactapi.PackageTypeMAVEN):
return artifactapi.PackageTypeMAVEN, nil return artifactapi.PackageTypeMAVEN, nil
case string(artifactapi.PackageTypePYPI): case string(artifactapi.PackageTypePYTHON):
return artifactapi.PackageTypePYPI, nil return artifactapi.PackageTypePYTHON, nil
default: default:
return "", errors.New("invalid package type") return "", errors.New("invalid package type")
} }

View File

@ -332,7 +332,8 @@ func (c *APIController) CreateUpstreamProxyEntity(
} }
if res.SecretSpacePath != nil && len(*res.SecretSpacePath) > 0 { if res.SecretSpacePath != nil && len(*res.SecretSpacePath) > 0 {
upstreamProxyConfigEntity.SecretSpaceID, err = c.RegistryMetadataHelper.getSecretSpaceID(ctx, res.SecretSpacePath) upstreamProxyConfigEntity.SecretSpaceID, err = c.RegistryMetadataHelper.getSecretSpaceID(ctx,
res.SecretSpacePath)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
@ -365,7 +366,8 @@ func (c *APIController) CreateUpstreamProxyEntity(
} }
if res.SecretKeySpacePath != nil && len(*res.SecretKeySpacePath) > 0 { if res.SecretKeySpacePath != nil && len(*res.SecretKeySpacePath) > 0 {
upstreamProxyConfigEntity.SecretSpaceID, err = c.RegistryMetadataHelper.getSecretSpaceID(ctx, res.SecretKeySpacePath) upstreamProxyConfigEntity.SecretSpaceID, err = c.RegistryMetadataHelper.getSecretSpaceID(ctx,
res.SecretKeySpacePath)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
@ -377,19 +379,6 @@ func (c *APIController) CreateUpstreamProxyEntity(
return repoEntity, upstreamProxyConfigEntity, nil return repoEntity, upstreamProxyConfigEntity, nil
} }
func (c *APIController) getSecretSpaceID(ctx context.Context, secretSpacePath *string) (int, error) {
if secretSpacePath == nil {
return -1, fmt.Errorf("secret space path is missing")
}
space, err := c.SpaceFinder.FindByRef(ctx, *secretSpacePath)
if err != nil {
return -1, fmt.Errorf("failed to get Space Path: %w", err)
}
return int(space.ID), nil
}
func isDuplicateKeyError(err error) bool { func isDuplicateKeyError(err error) bool {
return strings.Contains(err.Error(), "resource is a duplicate") return strings.Contains(err.Error(), "resource is a duplicate")
} }

View File

@ -35,7 +35,9 @@ func (c *APIController) CreateWebhook(
) (api.CreateWebhookResponseObject, error) { ) (api.CreateWebhookResponseObject, error) {
webhookRequest := api.WebhookRequest(*r.Body) webhookRequest := api.WebhookRequest(*r.Body)
if webhookRequest.Identifier == internalWebhookIdentifier { if webhookRequest.Identifier == internalWebhookIdentifier {
return createWebhookBadRequestErrorResponse(fmt.Errorf("webhook identifier %s is reserved", internalWebhookIdentifier)) return createWebhookBadRequestErrorResponse(
fmt.Errorf("webhook identifier %s is reserved", internalWebhookIdentifier),
)
} }
regInfo, err := c.RegistryMetadataHelper.GetRegistryRequestBaseInfo(ctx, "", string(r.RegistryRef)) regInfo, err := c.RegistryMetadataHelper.GetRegistryRequestBaseInfo(ctx, "", string(r.RegistryRef))
if err != nil { if err != nil {

View File

@ -17,6 +17,7 @@ package metadata
import ( import (
"context" "context"
"net/http" "net/http"
"net/url"
"strings" "strings"
apiauth "github.com/harness/gitness/app/api/auth" apiauth "github.com/harness/gitness/app/api/auth"
@ -71,37 +72,6 @@ func (c *APIController) GetClientSetupDetails(
}, err }, err
} }
//nolint:nestif
if imageParam != nil {
image, err := c.ImageStore.GetByName(ctx, reg.ID, string(*imageParam))
if err != nil {
return artifact.GetClientSetupDetails404JSONResponse{
NotFoundJSONResponse: artifact.NotFoundJSONResponse(
*GetErrorResponse(http.StatusNotFound, "image doesn't exist"),
),
}, err
}
if reg.PackageType != artifact.PackageTypeDOCKER && reg.PackageType != artifact.PackageTypeHELM && tagParam != nil {
_, err := c.ArtifactStore.GetByName(ctx, image.ID, string(*tagParam))
if err != nil {
return artifact.GetClientSetupDetails404JSONResponse{
NotFoundJSONResponse: artifact.NotFoundJSONResponse(
*GetErrorResponse(http.StatusNotFound, "tag doesn't exist"),
),
}, err
}
} else if tagParam != nil {
_, err := c.TagStore.FindTag(ctx, reg.ID, string(*imageParam), string(*tagParam))
if err != nil {
return artifact.GetClientSetupDetails404JSONResponse{
NotFoundJSONResponse: artifact.NotFoundJSONResponse(
*GetErrorResponse(http.StatusNotFound, "tag doesn't exist"),
),
}, err
}
}
}
packageType := string(reg.PackageType) packageType := string(reg.PackageType)
return artifact.GetClientSetupDetails200JSONResponse{ return artifact.GetClientSetupDetails200JSONResponse{
@ -132,8 +102,8 @@ func (c *APIController) GenerateClientSetupDetails(
loginPasswordLabel, username, registryRef, image, tag) loginPasswordLabel, username, registryRef, image, tag)
case string(artifact.PackageTypeGENERIC): case string(artifact.PackageTypeGENERIC):
return c.generateGenericClientSetupDetail(ctx, blankString, registryRef, image, tag) return c.generateGenericClientSetupDetail(ctx, blankString, registryRef, image, tag)
case string(artifact.PackageTypePYPI): case string(artifact.PackageTypePYTHON):
return c.generatePyPIClientSetupDetail(ctx, registryRef, username, image, tag) return c.generatePythonClientSetupDetail(ctx, registryRef, username, image, tag)
} }
header1 := "Login to Docker" header1 := "Login to Docker"
section1step1Header := "Run this Docker command in your terminal to authenticate the client." section1step1Header := "Run this Docker command in your terminal to authenticate the client."
@ -738,7 +708,7 @@ func (c *APIController) generateMavenClientSetupDetail(
} }
} }
func (c *APIController) generatePyPIClientSetupDetail( func (c *APIController) generatePythonClientSetupDetail(
ctx context.Context, ctx context.Context,
registryRef string, registryRef string,
username string, username string,
@ -750,7 +720,7 @@ func (c *APIController) generatePyPIClientSetupDetail(
// Authentication section // Authentication section
section1 := artifact.ClientSetupSection{ section1 := artifact.ClientSetupSection{
Header: stringPtr("1. Configure Authentication"), Header: stringPtr("Configure Authentication"),
} }
_ = section1.FromClientSetupStepConfig(artifact.ClientSetupStepConfig{ _ = section1.FromClientSetupStepConfig(artifact.ClientSetupStepConfig{
Steps: &[]artifact.ClientSetupStep{ Steps: &[]artifact.ClientSetupStep{
@ -762,9 +732,9 @@ func (c *APIController) generatePyPIClientSetupDetail(
Value: stringPtr("[distutils]\n" + Value: stringPtr("[distutils]\n" +
"index-servers = harness\n\n" + "index-servers = harness\n\n" +
"[harness]\n" + "[harness]\n" +
"repository: <REGISTRY_URL>/<REGISTRY_NAME>\n" + "repository = <REGISTRY_URL>\n" +
"username: <USERNAME>\n" + "username = <USERNAME>\n" +
"password: {{identity-token}}"), "password = *see step 2*"),
}, },
}, },
}, },
@ -775,29 +745,11 @@ func (c *APIController) generatePyPIClientSetupDetail(
}, },
}) })
// Install section // Publish section
section2 := artifact.ClientSetupSection{ section2 := artifact.ClientSetupSection{
Header: stringPtr("2. Install Package"), Header: stringPtr("Publish Package"),
} }
_ = section2.FromClientSetupStepConfig(artifact.ClientSetupStepConfig{ _ = section2.FromClientSetupStepConfig(artifact.ClientSetupStepConfig{
Steps: &[]artifact.ClientSetupStep{
{
Header: stringPtr("Install a package using pip:"),
Type: &staticStepType,
Commands: &[]artifact.ClientSetupStepCommand{
{
Value: stringPtr("pip install --index-url <REGISTRY_URL>/<REGISTRY_NAME> <PACKAGE_NAME>==<VERSION>"),
},
},
},
},
})
// Publish section
section3 := artifact.ClientSetupSection{
Header: stringPtr("3. Publish Package"),
}
_ = section3.FromClientSetupStepConfig(artifact.ClientSetupStepConfig{
Steps: &[]artifact.ClientSetupStep{ Steps: &[]artifact.ClientSetupStep{
{ {
Header: stringPtr("Build and publish your package:"), Header: stringPtr("Build and publish your package:"),
@ -807,7 +759,25 @@ func (c *APIController) generatePyPIClientSetupDetail(
Value: stringPtr("python -m build"), Value: stringPtr("python -m build"),
}, },
{ {
Value: stringPtr("python -m twine upload --repository harness dist/*"), Value: stringPtr("python -m twine upload --repository harness /path/to/files/*"),
},
},
},
},
})
// Install section
section3 := artifact.ClientSetupSection{
Header: stringPtr("Install Package"),
}
_ = section3.FromClientSetupStepConfig(artifact.ClientSetupStepConfig{
Steps: &[]artifact.ClientSetupStep{
{
Header: stringPtr("Install a package using pip:"),
Type: &staticStepType,
Commands: &[]artifact.ClientSetupStepCommand{
{
Value: stringPtr("pip install --index-url <UPLOAD_URL>/simple --no-deps <ARTIFACT_NAME>==<VERSION>"),
}, },
}, },
}, },
@ -815,7 +785,7 @@ func (c *APIController) generatePyPIClientSetupDetail(
}) })
clientSetupDetails := artifact.ClientSetupDetails{ clientSetupDetails := artifact.ClientSetupDetails{
MainHeader: "PyPI Client Setup", MainHeader: "Python Client Setup",
SecHeader: "Follow these instructions to install/use Python packages from this registry.", SecHeader: "Follow these instructions to install/use Python packages from this registry.",
Sections: []artifact.ClientSetupSection{ Sections: []artifact.ClientSetupSection{
section1, section1,
@ -824,10 +794,10 @@ func (c *APIController) generatePyPIClientSetupDetail(
}, },
} }
rootSpace, _, _ := paths.DisectRoot(registryRef) registryURL := c.URLProvider.PackageURL(ctx, registryRef, "python")
registryURL := c.URLProvider.RegistryURL(ctx, "pypi", rootSpace)
c.replacePlaceholders(ctx, &clientSetupDetails.Sections, username, registryRef, image, tag, registryURL, "", "pypi") c.replacePlaceholders(ctx, &clientSetupDetails.Sections, username, registryRef, image, tag, registryURL, "",
string(artifact.PackageTypePYTHON))
return &artifact.ClientSetupDetailsResponseJSONResponse{ return &artifact.ClientSetupDetailsResponseJSONResponse{
Data: clientSetupDetails, Data: clientSetupDetails,
@ -846,15 +816,23 @@ func (c *APIController) replacePlaceholders(
groupID string, groupID string,
pkgType string, pkgType string,
) { ) {
uploadURL := ""
if pkgType == string(artifact.PackageTypePYTHON) {
regURL, _ := url.Parse(registryURL)
// append username:password to the host
regURL.User = url.UserPassword(username, "identity-token")
uploadURL = regURL.String()
}
for i := range *clientSetupSections { for i := range *clientSetupSections {
tab, err := (*clientSetupSections)[i].AsTabSetupStepConfig() tab, err := (*clientSetupSections)[i].AsTabSetupStepConfig()
if err != nil || tab.Tabs == nil { if err != nil || tab.Tabs == nil {
//nolint:lll //nolint:lll
c.replacePlaceholdersInSection(ctx, &(*clientSetupSections)[i], username, regRef, image, tag, pkgType, c.replacePlaceholdersInSection(ctx, &(*clientSetupSections)[i], username, regRef, image, tag, pkgType,
groupID, registryURL) registryURL, groupID, uploadURL)
} else { } else {
for j := range *tab.Tabs { for j := range *tab.Tabs {
c.replacePlaceholders(ctx, (*tab.Tabs)[j].Sections, username, regRef, image, tag, groupID, registryURL, c.replacePlaceholders(ctx, (*tab.Tabs)[j].Sections, username, regRef, image, tag, registryURL, groupID,
pkgType) pkgType)
} }
_ = (*clientSetupSections)[i].FromTabSetupStepConfig(tab) _ = (*clientSetupSections)[i].FromTabSetupStepConfig(tab)
@ -872,6 +850,7 @@ func (c *APIController) replacePlaceholdersInSection(
pkgType string, pkgType string,
registryURL string, registryURL string,
groupID string, groupID string,
uploadURL string,
) { ) {
rootSpace, _, _ := paths.DisectRoot(regRef) rootSpace, _, _ := paths.DisectRoot(regRef)
_, registryName, _ := paths.DisectLeaf(regRef) _, registryName, _ := paths.DisectLeaf(regRef)
@ -891,7 +870,7 @@ func (c *APIController) replacePlaceholdersInSection(
continue continue
} }
for j := range *st.Commands { for j := range *st.Commands {
replaceText(username, st, j, hostname, registryName, image, tag, registryURL, groupID) replaceText(username, st, j, hostname, registryName, image, tag, registryURL, groupID, uploadURL)
} }
} }
_ = clientSetupSection.FromClientSetupStepConfig(sec) _ = clientSetupSection.FromClientSetupStepConfig(sec)
@ -907,6 +886,7 @@ func replaceText(
tag *artifact.VersionParam, tag *artifact.VersionParam,
registryURL string, registryURL string,
groupID string, groupID string,
uploadURL string,
) { ) {
if username != "" { if username != "" {
(*st.Commands)[i].Value = stringPtr(strings.ReplaceAll(*(*st.Commands)[i].Value, "<USERNAME>", username)) (*st.Commands)[i].Value = stringPtr(strings.ReplaceAll(*(*st.Commands)[i].Value, "<USERNAME>", username))
@ -920,6 +900,9 @@ func replaceText(
if registryURL != "" { if registryURL != "" {
(*st.Commands)[i].Value = stringPtr(strings.ReplaceAll(*(*st.Commands)[i].Value, "<REGISTRY_URL>", registryURL)) (*st.Commands)[i].Value = stringPtr(strings.ReplaceAll(*(*st.Commands)[i].Value, "<REGISTRY_URL>", registryURL))
} }
if uploadURL != "" {
(*st.Commands)[i].Value = stringPtr(strings.ReplaceAll(*(*st.Commands)[i].Value, "<UPLOAD_URL>", uploadURL))
}
if hostname != "" { if hostname != "" {
(*st.Commands)[i].Value = stringPtr(strings.ReplaceAll(*(*st.Commands)[i].Value, "<HOSTNAME>", hostname)) (*st.Commands)[i].Value = stringPtr(strings.ReplaceAll(*(*st.Commands)[i].Value, "<HOSTNAME>", hostname))
} }

View File

@ -170,6 +170,7 @@ func mapTpAPIExecutionResult(result enum.WebhookExecutionResult) api.WebhookExec
return "" return ""
} }
//nolint:exhaustive
func mapTpAPITriggerType(trigger enum.WebhookTrigger) api.Trigger { func mapTpAPITriggerType(trigger enum.WebhookTrigger) api.Trigger {
switch trigger { switch trigger {
case enum.WebhookTriggerArtifactCreated: case enum.WebhookTriggerArtifactCreated:

View File

@ -115,7 +115,7 @@ var validPackageTypes = []string{
string(a.PackageTypeHELM), string(a.PackageTypeHELM),
string(a.PackageTypeGENERIC), string(a.PackageTypeGENERIC),
string(a.PackageTypeMAVEN), string(a.PackageTypeMAVEN),
string(a.PackageTypePYPI), string(a.PackageTypePYTHON),
} }
var validUpstreamSources = []string{ var validUpstreamSources = []string{

View File

@ -83,13 +83,13 @@ type PathPackageType string
const ( const (
PathPackageTypeGeneric PathPackageType = "generic" PathPackageTypeGeneric PathPackageType = "generic"
PathPackageTypeMaven PathPackageType = "maven" PathPackageTypeMaven PathPackageType = "maven"
PathPackageTypePyPI PathPackageType = "pypi" PathPackageTypePython PathPackageType = "python"
) )
var packageTypeMap = map[PathPackageType]artifact2.PackageType{ var packageTypeMap = map[PathPackageType]artifact2.PackageType{
PathPackageTypeGeneric: artifact2.PackageTypeGENERIC, PathPackageTypeGeneric: artifact2.PackageTypeGENERIC,
PathPackageTypeMaven: artifact2.PackageTypeMAVEN, PathPackageTypeMaven: artifact2.PackageTypeMAVEN,
PathPackageTypePyPI: artifact2.PackageTypePYPI, PathPackageTypePython: artifact2.PackageTypePYTHON,
} }
func (h *handler) GetAuthenticator() authn.Authenticator { func (h *handler) GetAuthenticator() authn.Authenticator {

View File

@ -1749,13 +1749,13 @@ components:
HELM: "#/components/schemas/HelmArtifactDetailConfig" HELM: "#/components/schemas/HelmArtifactDetailConfig"
GENERIC: "#/components/schemas/GenericArtifactDetailConfig" GENERIC: "#/components/schemas/GenericArtifactDetailConfig"
MAVEN: "#/components/schemas/MavenArtifactDetailConfig" MAVEN: "#/components/schemas/MavenArtifactDetailConfig"
PYPI: "#/components/schemas/PyPiArtifactDetailConfig" PYTHON: "#/components/schemas/PythonArtifactDetailConfig"
oneOf: oneOf:
- $ref: "#/components/schemas/DockerArtifactDetailConfig" - $ref: "#/components/schemas/DockerArtifactDetailConfig"
- $ref: "#/components/schemas/HelmArtifactDetailConfig" - $ref: "#/components/schemas/HelmArtifactDetailConfig"
- $ref: "#/components/schemas/GenericArtifactDetailConfig" - $ref: "#/components/schemas/GenericArtifactDetailConfig"
- $ref: "#/components/schemas/MavenArtifactDetailConfig" - $ref: "#/components/schemas/MavenArtifactDetailConfig"
- $ref: "#/components/schemas/PyPiArtifactDetailConfig" - $ref: "#/components/schemas/PythonArtifactDetailConfig"
required: required:
- imageName - imageName
- version - version
@ -1782,9 +1782,9 @@ components:
type: string type: string
artifactId: artifactId:
type: string type: string
PyPiArtifactDetailConfig: PythonArtifactDetailConfig:
type: object type: object
description: Config for pypi artifact details description: Config for python artifact details
properties: properties:
groupId: groupId:
type: string type: string
@ -2196,7 +2196,7 @@ components:
enum: enum:
- DOCKER - DOCKER
- MAVEN - MAVEN
- PYPI - PYTHON
- GENERIC - GENERIC
- HELM - HELM
SectionType: SectionType:

View File

@ -1,6 +1,6 @@
// Package artifact provides primitives to interact with the openapi HTTP API. // Package artifact provides primitives to interact with the openapi HTTP API.
// //
// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT. // Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
package artifact package artifact
import ( import (
@ -346,7 +346,6 @@ type MiddlewareFunc func(http.Handler) http.Handler
// CreateRegistry operation middleware // CreateRegistry operation middleware
func (siw *ServerInterfaceWrapper) CreateRegistry(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) CreateRegistry(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -369,12 +368,11 @@ func (siw *ServerInterfaceWrapper) CreateRegistry(w http.ResponseWriter, r *http
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// DeleteRegistry operation middleware // DeleteRegistry operation middleware
func (siw *ServerInterfaceWrapper) DeleteRegistry(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) DeleteRegistry(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -395,12 +393,11 @@ func (siw *ServerInterfaceWrapper) DeleteRegistry(w http.ResponseWriter, r *http
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetRegistry operation middleware // GetRegistry operation middleware
func (siw *ServerInterfaceWrapper) GetRegistry(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetRegistry(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -421,12 +418,11 @@ func (siw *ServerInterfaceWrapper) GetRegistry(w http.ResponseWriter, r *http.Re
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// ModifyRegistry operation middleware // ModifyRegistry operation middleware
func (siw *ServerInterfaceWrapper) ModifyRegistry(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) ModifyRegistry(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -447,12 +443,11 @@ func (siw *ServerInterfaceWrapper) ModifyRegistry(w http.ResponseWriter, r *http
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// ListArtifactLabels operation middleware // ListArtifactLabels operation middleware
func (siw *ServerInterfaceWrapper) ListArtifactLabels(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) ListArtifactLabels(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -500,12 +495,11 @@ func (siw *ServerInterfaceWrapper) ListArtifactLabels(w http.ResponseWriter, r *
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetArtifactStatsForRegistry operation middleware // GetArtifactStatsForRegistry operation middleware
func (siw *ServerInterfaceWrapper) GetArtifactStatsForRegistry(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetArtifactStatsForRegistry(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -545,12 +539,11 @@ func (siw *ServerInterfaceWrapper) GetArtifactStatsForRegistry(w http.ResponseWr
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// DeleteArtifact operation middleware // DeleteArtifact operation middleware
func (siw *ServerInterfaceWrapper) DeleteArtifact(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) DeleteArtifact(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -580,12 +573,11 @@ func (siw *ServerInterfaceWrapper) DeleteArtifact(w http.ResponseWriter, r *http
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// UpdateArtifactLabels operation middleware // UpdateArtifactLabels operation middleware
func (siw *ServerInterfaceWrapper) UpdateArtifactLabels(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) UpdateArtifactLabels(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -615,12 +607,11 @@ func (siw *ServerInterfaceWrapper) UpdateArtifactLabels(w http.ResponseWriter, r
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetArtifactStats operation middleware // GetArtifactStats operation middleware
func (siw *ServerInterfaceWrapper) GetArtifactStats(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetArtifactStats(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -669,12 +660,11 @@ func (siw *ServerInterfaceWrapper) GetArtifactStats(w http.ResponseWriter, r *ht
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetArtifactSummary operation middleware // GetArtifactSummary operation middleware
func (siw *ServerInterfaceWrapper) GetArtifactSummary(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetArtifactSummary(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -704,12 +694,11 @@ func (siw *ServerInterfaceWrapper) GetArtifactSummary(w http.ResponseWriter, r *
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// DeleteArtifactVersion operation middleware // DeleteArtifactVersion operation middleware
func (siw *ServerInterfaceWrapper) DeleteArtifactVersion(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) DeleteArtifactVersion(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -748,12 +737,11 @@ func (siw *ServerInterfaceWrapper) DeleteArtifactVersion(w http.ResponseWriter,
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetArtifactDetails operation middleware // GetArtifactDetails operation middleware
func (siw *ServerInterfaceWrapper) GetArtifactDetails(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetArtifactDetails(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -803,12 +791,11 @@ func (siw *ServerInterfaceWrapper) GetArtifactDetails(w http.ResponseWriter, r *
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetDockerArtifactDetails operation middleware // GetDockerArtifactDetails operation middleware
func (siw *ServerInterfaceWrapper) GetDockerArtifactDetails(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetDockerArtifactDetails(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -865,12 +852,11 @@ func (siw *ServerInterfaceWrapper) GetDockerArtifactDetails(w http.ResponseWrite
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetDockerArtifactLayers operation middleware // GetDockerArtifactLayers operation middleware
func (siw *ServerInterfaceWrapper) GetDockerArtifactLayers(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetDockerArtifactLayers(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -927,12 +913,11 @@ func (siw *ServerInterfaceWrapper) GetDockerArtifactLayers(w http.ResponseWriter
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetDockerArtifactManifest operation middleware // GetDockerArtifactManifest operation middleware
func (siw *ServerInterfaceWrapper) GetDockerArtifactManifest(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetDockerArtifactManifest(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -989,12 +974,11 @@ func (siw *ServerInterfaceWrapper) GetDockerArtifactManifest(w http.ResponseWrit
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetDockerArtifactManifests operation middleware // GetDockerArtifactManifests operation middleware
func (siw *ServerInterfaceWrapper) GetDockerArtifactManifests(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetDockerArtifactManifests(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1033,12 +1017,11 @@ func (siw *ServerInterfaceWrapper) GetDockerArtifactManifests(w http.ResponseWri
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetArtifactFiles operation middleware // GetArtifactFiles operation middleware
func (siw *ServerInterfaceWrapper) GetArtifactFiles(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetArtifactFiles(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1120,12 +1103,11 @@ func (siw *ServerInterfaceWrapper) GetArtifactFiles(w http.ResponseWriter, r *ht
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetHelmArtifactDetails operation middleware // GetHelmArtifactDetails operation middleware
func (siw *ServerInterfaceWrapper) GetHelmArtifactDetails(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetHelmArtifactDetails(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1164,12 +1146,11 @@ func (siw *ServerInterfaceWrapper) GetHelmArtifactDetails(w http.ResponseWriter,
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetHelmArtifactManifest operation middleware // GetHelmArtifactManifest operation middleware
func (siw *ServerInterfaceWrapper) GetHelmArtifactManifest(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetHelmArtifactManifest(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1208,12 +1189,11 @@ func (siw *ServerInterfaceWrapper) GetHelmArtifactManifest(w http.ResponseWriter
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetArtifactVersionSummary operation middleware // GetArtifactVersionSummary operation middleware
func (siw *ServerInterfaceWrapper) GetArtifactVersionSummary(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetArtifactVersionSummary(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1252,12 +1232,11 @@ func (siw *ServerInterfaceWrapper) GetArtifactVersionSummary(w http.ResponseWrit
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetAllArtifactVersions operation middleware // GetAllArtifactVersions operation middleware
func (siw *ServerInterfaceWrapper) GetAllArtifactVersions(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetAllArtifactVersions(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1330,12 +1309,11 @@ func (siw *ServerInterfaceWrapper) GetAllArtifactVersions(w http.ResponseWriter,
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetAllArtifactsByRegistry operation middleware // GetAllArtifactsByRegistry operation middleware
func (siw *ServerInterfaceWrapper) GetAllArtifactsByRegistry(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetAllArtifactsByRegistry(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1407,12 +1385,11 @@ func (siw *ServerInterfaceWrapper) GetAllArtifactsByRegistry(w http.ResponseWrit
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetClientSetupDetails operation middleware // GetClientSetupDetails operation middleware
func (siw *ServerInterfaceWrapper) GetClientSetupDetails(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetClientSetupDetails(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1452,12 +1429,11 @@ func (siw *ServerInterfaceWrapper) GetClientSetupDetails(w http.ResponseWriter,
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// ListWebhooks operation middleware // ListWebhooks operation middleware
func (siw *ServerInterfaceWrapper) ListWebhooks(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) ListWebhooks(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1521,12 +1497,11 @@ func (siw *ServerInterfaceWrapper) ListWebhooks(w http.ResponseWriter, r *http.R
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// CreateWebhook operation middleware // CreateWebhook operation middleware
func (siw *ServerInterfaceWrapper) CreateWebhook(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) CreateWebhook(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1547,12 +1522,11 @@ func (siw *ServerInterfaceWrapper) CreateWebhook(w http.ResponseWriter, r *http.
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// DeleteWebhook operation middleware // DeleteWebhook operation middleware
func (siw *ServerInterfaceWrapper) DeleteWebhook(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) DeleteWebhook(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1582,12 +1556,11 @@ func (siw *ServerInterfaceWrapper) DeleteWebhook(w http.ResponseWriter, r *http.
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetWebhook operation middleware // GetWebhook operation middleware
func (siw *ServerInterfaceWrapper) GetWebhook(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetWebhook(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1617,12 +1590,11 @@ func (siw *ServerInterfaceWrapper) GetWebhook(w http.ResponseWriter, r *http.Req
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// UpdateWebhook operation middleware // UpdateWebhook operation middleware
func (siw *ServerInterfaceWrapper) UpdateWebhook(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) UpdateWebhook(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1652,12 +1624,11 @@ func (siw *ServerInterfaceWrapper) UpdateWebhook(w http.ResponseWriter, r *http.
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// ListWebhookExecutions operation middleware // ListWebhookExecutions operation middleware
func (siw *ServerInterfaceWrapper) ListWebhookExecutions(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) ListWebhookExecutions(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1706,12 +1677,11 @@ func (siw *ServerInterfaceWrapper) ListWebhookExecutions(w http.ResponseWriter,
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetWebhookExecution operation middleware // GetWebhookExecution operation middleware
func (siw *ServerInterfaceWrapper) GetWebhookExecution(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetWebhookExecution(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1750,12 +1720,11 @@ func (siw *ServerInterfaceWrapper) GetWebhookExecution(w http.ResponseWriter, r
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// ReTriggerWebhookExecution operation middleware // ReTriggerWebhookExecution operation middleware
func (siw *ServerInterfaceWrapper) ReTriggerWebhookExecution(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) ReTriggerWebhookExecution(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1794,12 +1763,11 @@ func (siw *ServerInterfaceWrapper) ReTriggerWebhookExecution(w http.ResponseWrit
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetArtifactStatsForSpace operation middleware // GetArtifactStatsForSpace operation middleware
func (siw *ServerInterfaceWrapper) GetArtifactStatsForSpace(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetArtifactStatsForSpace(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1839,12 +1807,11 @@ func (siw *ServerInterfaceWrapper) GetArtifactStatsForSpace(w http.ResponseWrite
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetAllArtifacts operation middleware // GetAllArtifacts operation middleware
func (siw *ServerInterfaceWrapper) GetAllArtifacts(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetAllArtifacts(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -1932,12 +1899,11 @@ func (siw *ServerInterfaceWrapper) GetAllArtifacts(w http.ResponseWriter, r *htt
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
// GetAllRegistries operation middleware // GetAllRegistries operation middleware
func (siw *ServerInterfaceWrapper) GetAllRegistries(w http.ResponseWriter, r *http.Request) { func (siw *ServerInterfaceWrapper) GetAllRegistries(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
var err error var err error
@ -2025,7 +1991,7 @@ func (siw *ServerInterfaceWrapper) GetAllRegistries(w http.ResponseWriter, r *ht
handler = middleware(handler) handler = middleware(handler)
} }
handler.ServeHTTP(w, r.WithContext(ctx)) handler.ServeHTTP(w, r)
} }
type UnescapedCookieParamError struct { type UnescapedCookieParamError struct {
@ -5796,69 +5762,69 @@ var swaggerSpec = []string{
"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",
"o/vY4wAA", "knNw4uTjAAA=",
} }
// GetSwagger returns the content of the embedded swagger specification file // GetSwagger returns the content of the embedded swagger specification file

View File

@ -1,6 +1,6 @@
// Package artifact provides primitives to interact with the openapi HTTP API. // Package artifact provides primitives to interact with the openapi HTTP API.
// //
// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT. // Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
package artifact package artifact
import ( import (
@ -30,7 +30,7 @@ const (
PackageTypeGENERIC PackageType = "GENERIC" PackageTypeGENERIC PackageType = "GENERIC"
PackageTypeHELM PackageType = "HELM" PackageTypeHELM PackageType = "HELM"
PackageTypeMAVEN PackageType = "MAVEN" PackageTypeMAVEN PackageType = "MAVEN"
PackageTypePYPI PackageType = "PYPI" PackageTypePYTHON PackageType = "PYTHON"
) )
// Defines values for RegistryType. // Defines values for RegistryType.
@ -478,8 +478,8 @@ type MavenArtifactDetailConfig struct {
// PackageType refers to package // PackageType refers to package
type PackageType string type PackageType string
// PyPiArtifactDetailConfig Config for pypi artifact details // PythonArtifactDetailConfig Config for python artifact details
type PyPiArtifactDetailConfig struct { type PythonArtifactDetailConfig struct {
ArtifactId *string `json:"artifactId,omitempty"` ArtifactId *string `json:"artifactId,omitempty"`
GroupId *string `json:"groupId,omitempty"` GroupId *string `json:"groupId,omitempty"`
} }
@ -1359,25 +1359,25 @@ func (t *ArtifactDetail) MergeMavenArtifactDetailConfig(v MavenArtifactDetailCon
return err return err
} }
// AsPyPiArtifactDetailConfig returns the union data inside the ArtifactDetail as a PyPiArtifactDetailConfig // AsPythonArtifactDetailConfig returns the union data inside the ArtifactDetail as a PythonArtifactDetailConfig
func (t ArtifactDetail) AsPyPiArtifactDetailConfig() (PyPiArtifactDetailConfig, error) { func (t ArtifactDetail) AsPythonArtifactDetailConfig() (PythonArtifactDetailConfig, error) {
var body PyPiArtifactDetailConfig var body PythonArtifactDetailConfig
err := json.Unmarshal(t.union, &body) err := json.Unmarshal(t.union, &body)
return body, err return body, err
} }
// FromPyPiArtifactDetailConfig overwrites any union data inside the ArtifactDetail as the provided PyPiArtifactDetailConfig // FromPythonArtifactDetailConfig overwrites any union data inside the ArtifactDetail as the provided PythonArtifactDetailConfig
func (t *ArtifactDetail) FromPyPiArtifactDetailConfig(v PyPiArtifactDetailConfig) error { func (t *ArtifactDetail) FromPythonArtifactDetailConfig(v PythonArtifactDetailConfig) error {
t.PackageType = "PYPI" t.PackageType = "PYTHON"
b, err := json.Marshal(v) b, err := json.Marshal(v)
t.union = b t.union = b
return err return err
} }
// MergePyPiArtifactDetailConfig performs a merge with any union data inside the ArtifactDetail, using the provided PyPiArtifactDetailConfig // MergePythonArtifactDetailConfig performs a merge with any union data inside the ArtifactDetail, using the provided PythonArtifactDetailConfig
func (t *ArtifactDetail) MergePyPiArtifactDetailConfig(v PyPiArtifactDetailConfig) error { func (t *ArtifactDetail) MergePythonArtifactDetailConfig(v PythonArtifactDetailConfig) error {
t.PackageType = "PYPI" t.PackageType = "PYTHON"
b, err := json.Marshal(v) b, err := json.Marshal(v)
if err != nil { if err != nil {
@ -1411,8 +1411,8 @@ func (t ArtifactDetail) ValueByDiscriminator() (interface{}, error) {
return t.AsHelmArtifactDetailConfig() return t.AsHelmArtifactDetailConfig()
case "MAVEN": case "MAVEN":
return t.AsMavenArtifactDetailConfig() return t.AsMavenArtifactDetailConfig()
case "PYPI": case "PYTHON":
return t.AsPyPiArtifactDetailConfig() return t.AsPythonArtifactDetailConfig()
default: default:
return nil, errors.New("unknown discriminator value: " + discriminator) return nil, errors.New("unknown discriminator value: " + discriminator)
} }

View File

@ -69,7 +69,7 @@ func NewRouter(
r.Put("/*", genericHandler.PushArtifact) r.Put("/*", genericHandler.PushArtifact)
}) })
r.Route("/pypi", func(r chi.Router) { r.Route("/python", func(r chi.Router) {
r.Use(middlewareauthn.Attempt(packageHandler.GetAuthenticator())) r.Use(middlewareauthn.Attempt(packageHandler.GetAuthenticator()))
r.With(middleware.RequestPackageAccess(packageHandler, enum.PermissionArtifactsUpload)). r.With(middleware.RequestPackageAccess(packageHandler, enum.PermissionArtifactsUpload)).
Post("/*", pypiHandler.UploadPackageFile) Post("/*", pypiHandler.UploadPackageFile)

View File

@ -53,7 +53,7 @@ func (c *controller) GetPackageMetadata(ctx context.Context, info ArtifactInfo,
fileInfo := File{ fileInfo := File{
Name: file.Filename, Name: file.Filename,
FileURL: c.urlProvider.RegistryURL(ctx) + fmt.Sprintf( FileURL: c.urlProvider.RegistryURL(ctx) + fmt.Sprintf(
"/pkg/%s/%s/pypi/files/%s/%s/%s", "/pkg/%s/%s/python/files/%s/%s/%s",
info.RootIdentifier, info.RootIdentifier,
info.RegIdentifier, info.RegIdentifier,
packageName, packageName,

View File

@ -426,6 +426,7 @@ func mapToWebhookDB(webhook *gitnesstypes.WebhookCore) (*webhookDB, error) {
dBWebhook.RegistryID = null.IntFrom(webhook.ParentID) dBWebhook.RegistryID = null.IntFrom(webhook.ParentID)
case gitnessenum.WebhookParentSpace: case gitnessenum.WebhookParentSpace:
dBWebhook.SpaceID = null.IntFrom(webhook.ParentID) dBWebhook.SpaceID = null.IntFrom(webhook.ParentID)
case gitnessenum.WebhookParentRepo:
default: default:
return nil, fmt.Errorf("webhook parent type %q is not supported", webhook.ParentType) return nil, fmt.Errorf("webhook parent type %q is not supported", webhook.ParentType)
} }
@ -495,6 +496,7 @@ func selectWebhookParents(
parentSelector = append(parentSelector, squirrel.Eq{ parentSelector = append(parentSelector, squirrel.Eq{
"registry_webhook_space_id": parent.ID, "registry_webhook_space_id": parent.ID,
}) })
case gitnessenum.WebhookParentRepo:
default: default:
return fmt.Errorf("webhook parent type '%s' is not supported", parent.Type) return fmt.Errorf("webhook parent type '%s' is not supported", parent.Type)
} }

View File

@ -224,18 +224,18 @@ func (s *Service) triggerForEventWithArtifact(
func (s *Service) getParentInfoRegistry( func (s *Service) getParentInfoRegistry(
ctx context.Context, ctx context.Context,
registryId int64, registryID int64,
inherited bool, inherited bool,
) ([]types.WebhookParentInfo, error) { ) ([]types.WebhookParentInfo, error) {
var parents []types.WebhookParentInfo var parents []types.WebhookParentInfo
parents = append(parents, types.WebhookParentInfo{ parents = append(parents, types.WebhookParentInfo{
ID: registryId, ID: registryID,
Type: enum.WebhookParentRegistry, Type: enum.WebhookParentRegistry,
}) })
if inherited { if inherited {
registry, err := s.registryRepository.Get(ctx, registryId) registry, err := s.registryRepository.Get(ctx, registryID)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to get registry: %w", err) return nil, fmt.Errorf("failed to get registry: %w", err)
} }

View File

@ -1,3 +1,17 @@
// Copyright 2023 Harness, Inc.
//
// 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 webhook package webhook
import ( import (

View File

@ -19,19 +19,6 @@ import (
"golang.org/x/exp/slices" "golang.org/x/exp/slices"
) )
func toInterfaceSlice[T interface{}](vals []T) []interface{} {
res := make([]interface{}, len(vals))
for i := range vals {
res[i] = vals[i]
}
return res
}
func sortEnum[T constraints.Ordered](slice []T) []T {
slices.Sort(slice)
return slice
}
func Sanitize[E constraints.Ordered](element E, all func() ([]E, E)) (E, bool) { func Sanitize[E constraints.Ordered](element E, all func() ([]E, E)) (E, bool) {
allValues, defValue := all() allValues, defValue := all()
var empty E var empty E