85个版本 (40个稳定版)
新 1.41.0 | 2024年8月16日 |
---|---|
1.38.0 | 2024年7月22日 |
1.19.0 | 2024年3月26日 |
1.9.0 | 2023年12月21日 |
0.0.0 |
|
2285 在 网络编程
每月 609 次下载
4MB
57K SLoC
aws-sdk-codeartifact
CodeArtifact 是一个与语言原生包管理器和构建工具(如npm、Apache Maven、pip和dotnet)兼容的完全托管的工件存储库。您可以使用 CodeArtifact 与开发团队共享包并拉取包。可以从公共和 CodeArtifact 存储库中拉取包。您还可以在 CodeArtifact 存储库和另一个存储库之间创建上游关系,从而从包管理器客户端的角度有效地合并其内容。
CodeArtifact 概念
-
存储库:一个 CodeArtifact 存储库包含一组 包版本,每个版本都映射到一组资产或文件。存储库是多语言的,因此单个存储库可以包含任何受支持类型的包。每个存储库都公开了使用如 __ npm __ CLI 或 Maven CLI (__ mvn __) 等工具获取和发布包的端点。有关受支持的包管理器的列表,请参阅 CodeArtifact 用户指南。
-
域:存储库被聚合到一个更高级别的实体,称为 域。所有包资产和元数据都存储在域中,但通过存储库来消费。特定的包资产,如 Maven JAR 文件,每个域只存储一次,无论它在多少个存储库中存在。域中的所有资产和元数据都使用在密钥管理服务 (KMS) 中存储的相同客户主密钥 (CMK) 加密。每个存储库是单个域的成员,不能移动到不同的域。域允许在多个存储库上应用组织策略,例如哪些帐户可以访问域中的存储库,以及哪些公共存储库可以用作包的来源。尽管组织可以拥有多个域,但我们建议使用单个生产域来包含所有已发布的工件,以便团队可以在其组织内查找和共享包。
-
软件包:软件包是一组软件及其依赖关系解析和安装所需元数据。CodeArtifact支持npm、PyPI、Maven、NuGet、Swift、Ruby、Cargo和通用软件包格式。有关支持的软件包格式以及如何使用CodeArtifact的相关信息,请参阅CodeArtifact用户指南。在CodeArtifact中,软件包包括
- 名称(例如,webpack是流行的npm软件包的名称)
- 可选的命名空间(例如,@types在@types/node中)
- 一系列版本(例如,1.0.0、1.0.1、1.0.2等)
- 软件包级别的元数据(例如,npm标签)
-
软件包组:匹配特定定义的一组软件包。软件包组可以用于使用软件包格式、软件包命名空间和软件包名称应用配置到多个匹配定义模式的软件包。您可以使用软件包组更方便地配置多个软件包的软件包来源控制。软件包来源控制用于阻止或允许新软件包版本的导入或发布,以保护用户免受称为依赖项替换攻击的恶意行为。
-
软件包版本:软件包的一个版本,例如@types/node 12.6.9。不同软件包格式的版本号格式和语义可能不同。例如,npm软件包版本必须符合语义版本控制规范。在CodeArtifact中,软件包版本由版本标识符、软件包版本级别的元数据和一系列资产组成。
-
上游存储库:当其中一个存储库中的软件包版本可以从下游存储库的存储库端点访问时,该存储库就位于另一个存储库的“上游”。这实际上从客户端的角度将两个存储库的内容合并。CodeArtifact允许在两个存储库之间创建上游关系。
-
资产:与软件包版本关联的存储在CodeArtifact中的单个文件,例如npm .tgz文件或Maven POM和JAR文件。
CodeArtifact支持的API操作
-
AssociateExternalConnection:将现有的外部连接添加到存储库。
-
CopyPackageVersions:将软件包版本从一个存储库复制到同一域名中的另一个存储库。
-
CreateDomain:创建域名。
-
CreatePackageGroup:创建软件包组。
-
CreateRepository:在域名中创建CodeArtifact存储库。
-
DeleteDomain:删除域名。您不能删除包含存储库的域名。
-
DeleteDomainPermissionsPolicy:删除域名上设置的资源策略。
-
DeletePackage:删除软件包及其所有相关软件包版本。
-
DeletePackageGroup:删除软件包组。不会删除与软件包组关联的软件包或软件包版本。
-
DeletePackageVersions:删除软件包的版本。删除软件包后,可以重新发布它,但无法恢复其资产和元数据,因为它们已经被永久地从存储中删除。
-
DeleteRepository:删除存储库。
-
DeleteRepositoryPermissionsPolicy:删除存储库上设置的资源策略。
-
DescribeDomain:返回一个包含请求域名信息的DomainDescription对象。
-
DescribePackage:返回一个PackageDescription对象,其中包含有关软件包的详细信息。
-
DescribePackageGroup:返回一个PackageGroup对象,其中包含有关软件包组的详细信息。
-
DescribePackageVersion:返回一个PackageVersionDescription对象,其中包含有关软件包版本的详细信息。
-
DescribeRepository: 返回一个包含请求的存储库详细信息的RepositoryDescription对象。
-
DisposePackageVersions: 处理包的版本。已处理状态的包版本无法恢复,因为它们已被永久从存储中删除。
-
DisassociateExternalConnection: 从存储库中删除现有的外部连接。
-
GetAssociatedPackageGroup: 返回与指定包最密切相关包组的包。
-
GetAuthorizationToken: 为访问域中的存储库生成临时授权令牌。令牌在授权期过后过期。默认授权期为12小时,可以自定义长度,最长为12小时。
-
GetDomainPermissionsPolicy: 返回附加到指定域的资源策略。
-
GetPackageVersionAsset: 返回存储库版本中资产的内容。
-
GetPackageVersionReadme: 获取包版本的readme文件或描述性文本。
-
GetRepositoryEndpoint: 返回特定包格式的存储库端点。存储库为每个包格式有一个端点
- cargo
- generic
- maven
- npm
- nuget
- pypi
- ruby
- swift
-
GetRepositoryPermissionsPolicy: 返回存储库上设置的资源策略。
-
ListAllowedRepositoriesForGroup: 列出具有原配置设置为ALLOW_SPECIFIC_REPOSITORIES的包组的允许存储库。
-
ListAssociatedPackages: 返回与请求的包组相关联的包列表。
-
ListDomains: 返回一个包含DomainSummary对象的列表。每个返回的DomainSummary对象包含有关域的信息。
-
ListPackages: 列出存储库中的包。
-
ListPackageGroups: 返回请求域中的包组列表。
-
ListPackageVersionAssets: 列出给定包版本的资产。
-
ListPackageVersionDependencies: 返回包版本的直接依赖列表。
-
ListPackageVersions: 返回存储库中指定包的包版本列表。
-
ListRepositories: 返回调用此方法的Amazon Web Services账户拥有的存储库列表。
-
ListRepositoriesInDomain: 返回域中的存储库列表。
-
ListSubPackageGroups: 返回指定包组的直接子列表。
-
PublishPackageVersion: 创建包含一个或多个资产的新包版本。
-
PutDomainPermissionsPolicy: 将资源策略附加到域。
-
PutPackageOriginConfiguration: 设置包的原配置,以确定如何将包的新版本添加到特定存储库。
-
PutRepositoryPermissionsPolicy: 在存储库上设置资源策略,指定访问权限。
-
UpdatePackageGroup: 更新包组。此API不能用于更新包组的原配置或模式。
-
UpdatePackageGroupOriginConfiguration: 更新包组的原配置。
-
UpdatePackageVersionsStatus: 更新包的一个或多个版本的状态。
-
UpdateRepository: 更新存储库的属性。
入门指南
许多服务和操作都有示例,请查看GitHub上的示例文件夹。
SDK为每个AWS服务提供一个crate。您必须在Rust项目中将Tokio添加为依赖项以执行异步代码。要将aws-sdk-codeartifact
添加到您的项目中,请将以下内容添加到您的Cargo.toml
文件中
[dependencies]
aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
aws-sdk-codeartifact = "1.41.0"
tokio = { version = "1", features = ["full"] }
然后在代码中,可以使用以下方式创建客户端
use aws_sdk_codeartifact as codeartifact;
#[::tokio::main]
async fn main() -> Result<(), codeartifact::Error> {
let config = aws_config::load_from_env().await;
let client = aws_sdk_codeartifact::Client::new(&config);
// ... make some calls with the client
Ok(())
}
有关可进行的调用以及每个调用的输入和输出的信息,请参阅客户端文档。
使用SDK
在SDK发布之前,我们将向开发者指南中添加有关使用SDK的信息。您可以通过提交问题并描述您想做什么来提出指南中额外章节的建议。
获取帮助
- GitHub 讨论区 - 用于想法、RFC和一般问题
- GitHub 问题 - 用于错误报告和功能请求
- 生成的文档(最新版本)
- 使用示例
许可证
本项目采用Apache-2.0许可证。
依赖项
~8–20MB
~283K SLoC