packages

package
v0.0.0-...-e61ee7f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2024 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrQuotaTypeSize   = errors.New("maximum allowed package type size exceeded")
	ErrQuotaTotalSize  = errors.New("maximum allowed package storage quota exceeded")
	ErrQuotaTotalCount = errors.New("maximum allowed package count exceeded")
)

Functions

func AddFileToExistingPackage

func AddFileToExistingPackage(ctx context.Context, pvi *PackageInfo, pfci *PackageFileCreationInfo) (*packages_model.PackageFile, error)

AddFileToExistingPackage adds a file to an existing package. If the package does not exist, ErrPackageNotExist is returned

func AddFileToPackageVersionInternal

func AddFileToPackageVersionInternal(ctx context.Context, pv *packages_model.PackageVersion, pfci *PackageFileCreationInfo) (*packages_model.PackageFile, error)

AddFileToPackageVersionInternal adds a file to the package This method skips quota checks and should only be used for system-managed packages.

func CheckCountQuotaExceeded

func CheckCountQuotaExceeded(ctx context.Context, doer, owner *user_model.User) error

CheckCountQuotaExceeded checks if the owner has more than the allowed packages The check is skipped if the doer is an admin.

func CheckSizeQuotaExceeded

func CheckSizeQuotaExceeded(ctx context.Context, doer, owner *user_model.User, packageType packages_model.Type, uploadSize int64) error

CheckSizeQuotaExceeded checks if the upload size is bigger than the allowed size The check is skipped if the doer is an admin.

func CreateAuthorizationToken

func CreateAuthorizationToken(u *user_model.User, packageScope auth_model.AccessTokenScope) (string, error)

func CreatePackageAndAddFile

CreatePackageAndAddFile creates a package with a file. If the same package exists already, ErrDuplicatePackageVersion is returned

func CreatePackageOrAddFileToExisting

CreatePackageOrAddFileToExisting creates a package with a file or adds the file if the package exists already

func DeletePackageFile

func DeletePackageFile(ctx context.Context, pf *packages_model.PackageFile) error

DeletePackageFile deletes the package file and its properties

func DeletePackageVersionAndReferences

func DeletePackageVersionAndReferences(ctx context.Context, pv *packages_model.PackageVersion) error

DeletePackageVersionAndReferences deletes the package version and its properties and files

func GetFileStreamByPackageNameAndVersion

func GetFileStreamByPackageNameAndVersion(ctx context.Context, pvi *PackageInfo, pfi *PackageFileInfo) (io.ReadSeekCloser, *url.URL, *packages_model.PackageFile, error)

GetFileStreamByPackageNameAndVersion returns the content of the specific package file

func GetFileStreamByPackageVersion

GetFileStreamByPackageVersion returns the content of the specific package file

func GetOrCreateInternalPackageVersion

func GetOrCreateInternalPackageVersion(ctx context.Context, ownerID int64, packageType packages_model.Type, name, version string) (*packages_model.PackageVersion, error)

GetOrCreateInternalPackageVersion gets or creates an internal package Some package types need such internal packages for housekeeping.

func GetPackageBlobStream

func GetPackageBlobStream(ctx context.Context, pf *packages_model.PackageFile, pb *packages_model.PackageBlob, serveDirectReqParams url.Values) (io.ReadSeekCloser, *url.URL, *packages_model.PackageFile, error)

GetPackageBlobStream returns the content of the specific package blob If the storage supports direct serving and it's enabled, only the direct serving url is returned.

func GetPackageFileStream

GetPackageFileStream returns the content of the specific package file

func NewPackageBlob

NewPackageBlob creates a package blob instance

func RemoveAllPackages

func RemoveAllPackages(ctx context.Context, userID int64) (int, error)

RemoveAllPackages for User

func RemovePackageFileAndVersionIfUnreferenced

func RemovePackageFileAndVersionIfUnreferenced(ctx context.Context, doer *user_model.User, pf *packages_model.PackageFile) error

RemovePackageFileAndVersionIfUnreferenced deletes the package file and the version if there are no referenced files afterwards

func RemovePackageVersion

func RemovePackageVersion(ctx context.Context, doer *user_model.User, pv *packages_model.PackageVersion) error

RemovePackageVersion deletes the package version and all associated files

func RemovePackageVersionByNameAndVersion

func RemovePackageVersionByNameAndVersion(ctx context.Context, doer *user_model.User, pvi *PackageInfo) error

RemovePackageVersionByNameAndVersion deletes a package version and all associated files

Types

type PackageCreationInfo

type PackageCreationInfo struct {
	PackageInfo
	SemverCompatible  bool
	Creator           *user_model.User
	Metadata          any
	PackageProperties map[string]string
	VersionProperties map[string]string
}

PackageCreationInfo describes a package to create

type PackageFileCreationInfo

type PackageFileCreationInfo struct {
	PackageFileInfo
	Creator           *user_model.User
	Data              packages_module.HashedSizeReader
	IsLead            bool
	Properties        map[string]string
	OverwriteExisting bool
}

PackageFileCreationInfo describes a package file to create

type PackageFileInfo

type PackageFileInfo struct {
	Filename     string
	CompositeKey string
}

PackageFileInfo describes a package file

type PackageInfo

type PackageInfo struct {
	Owner       *user_model.User
	PackageType packages_model.Type
	Name        string
	Version     string
}

PackageInfo describes a package

type PackageMeta

type PackageMeta struct {
	UserID int64
	Scope  auth_model.AccessTokenScope
}

func ParseAuthorizationRequest

func ParseAuthorizationRequest(req *http.Request) (*PackageMeta, error)

func ParseAuthorizationToken

func ParseAuthorizationToken(tokenStr string) (*PackageMeta, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL