2023-03-13 21:28:39 +01:00
---
date: "2023-01-10T00:00:00+00:00"
2023-05-24 14:21:39 +08:00
title: "Swift Package Registry"
2023-04-27 22:33:41 -05:00
slug: "swift"
2023-07-25 23:53:13 -05:00
sidebar_position: 95
2023-03-13 21:28:39 +01:00
draft: false
toc: false
menu:
sidebar:
parent: "packages"
name: "Swift"
2023-07-25 23:53:13 -05:00
sidebar_position: 95
2023-03-13 21:28:39 +01:00
identifier: "swift"
---
2023-05-24 14:21:39 +08:00
# Swift Package Registry
2023-03-13 21:28:39 +01:00
2023-05-10 15:43:56 +02:00
Publish [Swift ](https://www.swift.org/ ) packages for your user or organization.
2023-03-13 21:28:39 +01:00
## Requirements
To work with the Swift package registry, you need to use [swift ](https://www.swift.org/getting-started/ ) to consume and a HTTP client (like `curl` ) to publish packages.
## Configuring the package registry
To register the package registry and provide credentials, execute:
``` shell
swift package-registry set https://gitea.example.com/api/packages/{ owner} /swift -login { username} -password { password}
```
| Placeholder | Description |
| ------------ | ----------- |
| `owner` | The owner of the package. |
| `username` | Your Gitea username. |
2023-07-25 23:53:13 -05:00
| `password` | Your Gitea password. If you are using 2FA or OAuth use a [personal access token ](development/api-usage.md#authentication ) instead of the password. |
2023-03-13 21:28:39 +01:00
The login is optional and only needed if the package registry is private.
## Publish a package
First you have to pack the contents of your package:
``` shell
swift package archive-source
```
To publish the package perform a HTTP PUT request with the package content in the request body.
```shell --user your_username:your_password_or_token \
curl -X PUT --user {username}:{password} \
-H "Accept: application/vnd.swift.registry.v1+json" \
-F source-archive=@/path/to/package.zip \
-F metadata={metadata} \
https://gitea.example.com/api/packages/{owner}/swift/{scope}/{name}/{version}
` ``
| Placeholder | Description |
| ----------- | ----------- |
| ` username` | Your Gitea username. |
2023-07-25 23:53:13 -05:00
| ` password` | Your Gitea password. If you are using 2FA or OAuth use a [personal access token](development/api-usage.md#authentication) instead of the password. |
2023-03-13 21:28:39 +01:00
| ` owner` | The owner of the package. |
| ` scope` | The package scope. |
| ` name` | The package name. |
| ` version` | The package version. |
| ` metadata` | (Optional) The metadata of the package. JSON encoded subset of https://schema.org/SoftwareSourceCode |
You cannot publish a package if a package of the same name and version already exists. You must delete the existing package first.
## Install a package
To install a Swift package from the package registry, add it in the ` Package.swift` file dependencies list:
` ``
dependencies: [
.package(id: "{scope}.{name}", from:"{version}")
]
` ``
| Parameter | Description |
| ----------- | ----------- |
| ` scope` | The package scope. |
| ` name` | The package name. |
| ` version` | The package version. |
Afterwards execute the following command to install it:
` ``shell
swift package resolve
` ``