Swift 包注册表
发布您用户或组织的 Swift 包。
需求
要使用 Swift 包注册表,您需要使用 swift 来使用它,并使用 HTTP 客户端(如 curl
)来发布包。
配置包注册表
要注册包注册表并提供凭据,请执行以下操作
swift package-registry set https://gitea.example.com/api/packages/{owner}/swift
swift package-registry login https://gitea.example.com/api/packages/{owner}/swift --username {username} --password {password}
占位符 | 描述 |
---|---|
owner | 包的所有者。 |
username | 您的 Gitea 用户名。 |
password | 您的 Gitea 密码。如果您使用的是 2FA 或 OAuth,请使用 个人访问令牌 而不是密码。 |
登录是可选的,仅在包注册表为私有时才需要。
发布包
首先您需要打包包的内容
swift package archive-source
要发布包,请使用包内容作为请求正文执行 HTTP PUT 请求。
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}
占位符 | 描述 |
---|---|
username | 您的 Gitea 用户名。 |
password | 您的 Gitea 密码。如果您使用的是 2FA 或 OAuth,请使用 个人访问令牌 而不是密码。 |
owner | 包的所有者。 |
scope | 包的作用域。 |
name | 包名称。 |
version | 包版本。 |
metadata | (可选) 包的元数据。JSON 编码的 https://schema.org/SoftwareSourceCode 子集 |
如果已存在具有相同名称和版本的包,则无法发布包。您必须先删除现有包。
服务器将返回以下 HTTP 状态代码。
HTTP 状态代码 | 含义 |
---|---|
201 已创建 | 包已发布。 |
400 错误请求 | 包无效。 |
409 冲突 | 已存在具有相同参数组合的包文件。 |
安装包
要从包注册表安装 Swift 包,请将其添加到 Package.swift
文件的依赖项列表中
dependencies: [
.package(id: "{scope}.{name}", from:"{version}")
]
参数 | 描述 |
---|---|
scope | 包的作用域。 |
name | 包名称。 |
version | 包版本。 |
然后执行以下命令进行安装
swift package resolve