forked from go-gitea/gitea
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Package Registry (go-gitea#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>
- Loading branch information
1 parent
2bce1ea
commit 1d33234
Showing
197 changed files
with
18,563 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,6 @@ draft: false | |
menu: | ||
sidebar: | ||
name: "Developers" | ||
weight: 50 | ||
weight: 55 | ||
identifier: "developers" | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,6 @@ draft: false | |
menu: | ||
sidebar: | ||
name: "開發人員" | ||
weight: 50 | ||
weight: 55 | ||
identifier: "developers" | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--- | ||
date: "2021-07-20T00:00:00+00:00" | ||
title: "Package Registry" | ||
slug: "packages" | ||
toc: false | ||
draft: false | ||
menu: | ||
sidebar: | ||
name: "Package Registry" | ||
weight: 45 | ||
identifier: "packages" | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
--- | ||
date: "2021-07-20T00:00:00+00:00" | ||
title: "Composer Packages Repository" | ||
slug: "packages/composer" | ||
draft: false | ||
toc: false | ||
menu: | ||
sidebar: | ||
parent: "packages" | ||
name: "Composer" | ||
weight: 10 | ||
identifier: "composer" | ||
--- | ||
|
||
# Composer Packages Repository | ||
|
||
Publish [Composer](https://getcomposer.org/) packages for your user or organization. | ||
|
||
**Table of Contents** | ||
|
||
{{< toc >}} | ||
|
||
## Requirements | ||
|
||
To work with the Composer package registry, you can use [Composer](https://getcomposer.org/download/) to consume and a HTTP upload client like `curl` to publish packages. | ||
|
||
## Publish a package | ||
|
||
To publish a Composer package perform a HTTP PUT operation with the package content in the request body. | ||
The package content must be the zipped PHP project with the `composer.json` file. | ||
You cannot publish a package if a package of the same name and version already exists. You must delete the existing package first. | ||
|
||
``` | ||
PUT https://gitea.example.com/api/packages/{owner}/composer | ||
``` | ||
|
||
| Parameter | Description | | ||
| ---------- | ----------- | | ||
| `owner` | The owner of the package. | | ||
|
||
If the `composer.json` file does not contain a `version` property, you must provide it as a query parameter: | ||
|
||
``` | ||
PUT https://gitea.example.com/api/packages/{owner}/composer?version={x.y.z} | ||
``` | ||
|
||
Example request using HTTP Basic authentication: | ||
|
||
```shell | ||
curl --user your_username:your_password_or_token \ | ||
--upload-file path/to/project.zip \ | ||
https://gitea.example.com/api/packages/testuser/composer | ||
``` | ||
|
||
Or specify the package version as query parameter: | ||
|
||
```shell | ||
curl --user your_username:your_password_or_token \ | ||
--upload-file path/to/project.zip \ | ||
https://gitea.example.com/api/packages/testuser/composer?version=1.0.3 | ||
``` | ||
|
||
The server responds with the following HTTP Status codes. | ||
|
||
| HTTP Status Code | Meaning | | ||
| ----------------- | ------- | | ||
| `201 Created` | The package has been published. | | ||
| `400 Bad Request` | The package name and/or version are invalid or a package with the same name and version already exist. | | ||
|
||
## Configuring the package registry | ||
|
||
To register the package registry you need to add it to the Composer `config.json` file (which can usually be found under `<user-home-dir>/.composer/config.json`): | ||
|
||
```json | ||
{ | ||
"repositories": [{ | ||
"type": "composer", | ||
"url": "https://gitea.example.com/api/packages/{owner}/composer" | ||
} | ||
] | ||
} | ||
``` | ||
|
||
To access the package registry using credentials, you must specify them in the `auth.json` file as follows: | ||
|
||
```json | ||
{ | ||
"http-basic": { | ||
"gitea.example.com": { | ||
"username": "{username}", | ||
"password": "{password}" | ||
} | ||
} | ||
} | ||
``` | ||
|
||
| Parameter | Description | | ||
| ---------- | ----------- | | ||
| `owner` | The owner of the package. | | ||
| `username` | Your Gitea username. | | ||
| `password` | Your Gitea password or a personal access token. | | ||
|
||
## Install a package | ||
|
||
To install a package from the package registry, execute the following command: | ||
|
||
```shell | ||
composer require {package_name} | ||
``` | ||
|
||
Optional you can specify the package version: | ||
|
||
```shell | ||
composer require {package_name}:{package_version} | ||
``` | ||
|
||
| Parameter | Description | | ||
| ----------------- | ----------- | | ||
| `package_name` | The package name. | | ||
| `package_version` | The package version. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
--- | ||
date: "2021-07-20T00:00:00+00:00" | ||
title: "Conan Packages Repository" | ||
slug: "packages/conan" | ||
draft: false | ||
toc: false | ||
menu: | ||
sidebar: | ||
parent: "packages" | ||
name: "Conan" | ||
weight: 20 | ||
identifier: "conan" | ||
--- | ||
|
||
# Conan Packages Repository | ||
|
||
Publish [Conan](https://conan.io/) packages for your user or organization. | ||
|
||
**Table of Contents** | ||
|
||
{{< toc >}} | ||
|
||
## Requirements | ||
|
||
To work with the Conan package registry, you need to use the [conan](https://conan.io/downloads.html) command line tool to consume and publish packages. | ||
|
||
## Configuring the package registry | ||
|
||
To register the package registry you need to configure a new Conan remote: | ||
|
||
```shell | ||
conan remote add {remote} https://gitea.example.com/api/packages/{owner}/conan | ||
conan user --remote {remote} --password {password} {username} | ||
``` | ||
|
||
| Parameter | Description | | ||
| -----------| ----------- | | ||
| `remote` | The remote name. | | ||
| `username` | Your Gitea username. | | ||
| `password` | Your Gitea password or a personal access token. | | ||
| `owner` | The owner of the package. | | ||
|
||
For example: | ||
|
||
```shell | ||
conan remote add gitea https://gitea.example.com/api/packages/testuser/conan | ||
conan user --remote gitea --password password123 testuser | ||
``` | ||
|
||
## Publish a package | ||
|
||
Publish a Conan package by running the following command: | ||
|
||
```shell | ||
conan upload --remote={remote} {recipe} | ||
``` | ||
|
||
| Parameter | Description | | ||
| ----------| ----------- | | ||
| `remote` | The remote name. | | ||
| `recipe` | The recipe to upload. | | ||
|
||
For example: | ||
|
||
```shell | ||
conan upload --remote=gitea ConanPackage/1.2@gitea/final | ||
``` | ||
|
||
The Gitea Conan package registry has full [revision](https://docs.conan.io/en/latest/versioning/revisions.html) support. | ||
|
||
## Install a package | ||
|
||
To install a Conan package from the package registry, execute the following command: | ||
|
||
```shell | ||
conan install --remote={remote} {recipe} | ||
``` | ||
|
||
| Parameter | Description | | ||
| ----------| ----------- | | ||
| `remote` | The remote name. | | ||
| `recipe` | The recipe to download. | | ||
|
||
For example: | ||
|
||
```shell | ||
conan install --remote=gitea ConanPackage/1.2@gitea/final | ||
``` | ||
|
||
## Supported commands | ||
|
||
``` | ||
conan install | ||
conan get | ||
conan info | ||
conan search | ||
conan upload | ||
conan user | ||
conan download | ||
conan remove | ||
``` |
Oops, something went wrong.