forgejo/docs/content/doc/packages/nuget.en-us.md
KN4CK3R 1d332342db
Add Package Registry (#16510)
* Added package store settings.

* Added models.

* Added generic package registry.

* Added tests.

* Added NuGet package registry.

* Moved service index to api file.

* Added NPM package registry.

* Added Maven package registry.

* Added PyPI package registry.

* Summary is deprecated.

* Changed npm name.

* Sanitize project url.

* Allow only scoped packages.

* Added user interface.

* Changed method name.

* Added missing migration file.

* Set page info.

* Added documentation.

* Added documentation links.

* Fixed wrong error message.

* Lint template files.

* Fixed merge errors.

* Fixed unit test storage path.

* Switch to json module.

* Added suggestions.

* Added package webhook.

* Add package api.

* Fixed swagger file.

* Fixed enum and comments.

* Fixed NuGet pagination.

* Print test names.

* Added api tests.

* Fixed access level.

* Fix User unmarshal.

* Added RubyGems package registry.

* Fix lint.

* Implemented io.Writer.

* Added support for sha256/sha512 checksum files.

* Improved maven-metadata.xml support.

* Added support for symbol package uploads.

* Added tests.

* Added overview docs.

* Added npm dependencies and keywords.

* Added no-packages information.

* Display file size.

* Display asset count.

* Fixed filter alignment.

* Added package icons.

* Formatted instructions.

* Allow anonymous package downloads.

* Fixed comments.

* Fixed postgres test.

* Moved file.

* Moved models to models/packages.

* Use correct error response format per client.

* Use simpler search form.

* Fixed IsProd.

* Restructured data model.

* Prevent empty filename.

* Fix swagger.

* Implemented user/org registry.

* Implemented UI.

* Use GetUserByIDCtx.

* Use table for dependencies.

* make svg

* Added support for unscoped npm packages.

* Add support for npm dist tags.

* Added tests for npm tags.

* Unlink packages if repository gets deleted.

* Prevent user/org delete if a packages exist.

* Use package unlink in repository service.

* Added support for composer packages.

* Restructured package docs.

* Added missing tests.

* Fixed generic content page.

* Fixed docs.

* Fixed swagger.

* Added missing type.

* Fixed ambiguous column.

* Organize content store by sha256 hash.

* Added admin package management.

* Added support for sorting.

* Add support for multiple identical versions/files.

* Added missing repository unlink.

* Added file properties.

* make fmt

* lint

* Added Conan package registry.

* Updated docs.

* Unify package names.

* Added swagger enum.

* Use longer TEXT column type.

* Removed version composite key.

* Merged package and container registry.

* Removed index.

* Use dedicated package router.

* Moved files to new location.

* Updated docs.

* Fixed JOIN order.

* Fixed GROUP BY statement.

* Fixed GROUP BY #2.

* Added symbol server support.

* Added more tests.

* Set NOT NULL.

* Added setting to disable package registries.

* Moved auth into service.

* refactor

* Use ctx everywhere.

* Added package cleanup task.

* Changed packages path.

* Added container registry.

* Refactoring

* Updated comparison.

* Fix swagger.

* Fixed table order.

* Use token auth for npm routes.

* Enabled ReverseProxy auth.

* Added packages link for orgs.

* Fixed anonymous org access.

* Enable copy button for setup instructions.

* Merge error

* Added suggestions.

* Fixed merge.

* Handle "generic".

* Added link for TODO.

* Added suggestions.

* Changed temporary buffer filename.

* Added suggestions.

* Apply suggestions from code review

Co-authored-by: Thomas Boerger <thomas@webhippie.de>

* Update docs/content/doc/packages/nuget.en-us.md

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Thomas Boerger <thomas@webhippie.de>
2022-03-30 16:42:47 +08:00

3.1 KiB

date title slug draft toc menu
2021-07-20T00:00:00+00:00 NuGet Packages Repository packages/nuget false false
sidebar
parent name weight identifier
packages NuGet 70 nuget

NuGet Packages Repository

Publish NuGet packages for your user or organization. The package registry supports NuGet Symbol Packages too.

Table of Contents

{{< toc >}}

Requirements

To work with the NuGet package registry, you can use command-line interface tools as well as NuGet features in various IDEs like Visual Studio. More informations about NuGet clients can be found in the official documentation. The following examples use the dotnet nuget tool.

Configuring the package registry

To register the package registry you need to configure a new NuGet feed source:

dotnet nuget add source --name {source_name} --username {username} --password {password} https://gitea.example.com/api/packages/{owner}/nuget/index.json
Parameter Description
source_name The desired source name.
username Your Gitea username.
password Your Gitea password or a personal access token.
owner The owner of the package.

For example:

dotnet nuget add source --name gitea --username testuser --password password123 https://gitea.example.com/api/packages/testuser/nuget/index.json

Publish a package

Publish a package by running the following command:

dotnet nuget push --source {source_name} {package_file}
Parameter Description
source_name The desired source name.
package_file Path to the package .nupkg file.

For example:

dotnet nuget push --source gitea test_package.1.0.0.nupkg

You cannot publish a package if a package of the same name and version already exists. You must delete the existing package first.

Symbol Packages

The NuGet package registry has build support for a symbol server. The PDB files embedded in a symbol package (.snupkg) can get requested by clients. To do so, register the NuGet package registry as symbol source:

https://gitea.example.com/api/packages/{owner}/nuget/symbols
Parameter Description
owner The owner of the package registry.

For example:

https://gitea.example.com/api/packages/testuser/nuget/symbols

Install a package

To install a NuGet package from the package registry, execute the following command:

dotnet add package --source {source_name} --version {package_version} {package_name}
Parameter Description
source_name The desired source name.
package_name The package name.
package_version The package version.

For example:

dotnet add package --source gitea --version 1.0.0 test_package

Supported commands

dotnet add
dotnet nuget push
dotnet nuget delete