gitea/docs/content/doc/packages/vagrant.en-us.md
KN4CK3R 41c76ad714
Add support for Vagrant packages (#20930)
* Add support for Vagrant boxes.

* Add authentication.

* Add tests.

* Add integration tests.

* Add docs.

* Add icons.

* Update routers/api/packages/api.go

Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: 6543 <6543@obermui.de>
2022-08-29 15:04:45 +08:00

2.2 KiB

date title slug draft toc menu
2022-08-23T00:00:00+00:00 Vagrant Packages Repository packages/vagrant false false
sidebar
parent name weight identifier
packages vagrant 120 vagrant

Vagrant Packages Repository

Publish Vagrant packages for your user or organization.

Table of Contents

{{< toc >}}

Requirements

To work with the Vagrant package registry, you need Vagrant and a tool to make HTTP requests like curl.

Publish a package

Publish a Vagrant box by performing a HTTP PUT request to the registry:

PUT https://gitea.example.com/api/packages/{owner}/vagrant/{package_name}/{package_version}/{provider}.box
Parameter Description
owner The owner of the package.
package_name The package name.
package_version The package version, semver compatible.
provider One of the supported provider names.

Example for uploading a Hyper-V box:

curl --user your_username:your_password_or_token \
     --upload-file path/to/your/vagrant.box \
     https://gitea.example.com/api/packages/testuser/vagrant/test_system/1.0.0/hyperv.box

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

Install a package

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

vagrant box add "https://gitea.example.com/api/packages/{owner}/vagrant/{package_name}"
Parameter Description
owner The owner of the package.
package_name The package name.

For example:

vagrant box add "https://gitea.example.com/api/packages/testuser/vagrant/test_system"

This will install the latest version of the package. To add a specific version, use the --box-version parameter. If the registry is private you can pass your [personal access token]({{< relref "doc/developers/api-usage.en-us.md#authentication" >}}) in the VAGRANT_CLOUD_TOKEN environment variable.

Supported commands

vagrant box add