XcodeCloudKit
是一个 Swift SDK,让从 App Store Connect API 使用 Xcode Cloud 端点变得轻而易举!
XcodeCloudKit
依赖于 Antoine Van Der Lee 的 appstoreconnect-swift-sdk,它提供了一个出色的 Swift 接口来与 App Store Connect API 交互。
App Store Connect API 要求所有网络请求都必须进行身份验证,并且,由于它不支持 OAuth,您必须从仪表板创建一个 API 密钥。
一旦您生成了密钥,您必须通过使用它的 Factory
枚举来初始化 SDK
import XcodeCloudKit
let xcodeCloudKit = try Factory.make(
issuerID: "🙈",
privateKeyID: "🙈",
privateKey: "🙈"
)
XcodeCloudKit
的结构试图尽可能地镜像 Xcode Cloud 的数据结构,并有三个主要实体:产品 (products)、工作流 (workflows) 和 构建 (builds)。
产品 (Product) 是您的应用的 Xcode Cloud 表示,您可以请求它们的列表并使用 SDK 选择一个
// Get a list of all available products
let allProducts = try await xcodeCloudKit.allProducts()
// Get a product by Xcode Cloud ID
let productById = try await xcodeCloudKit.product(withId: "...")
// By repository name
let product = try await xcodeCloudKit.product(withRepositoryName: "NowPlaying")
一旦您拥有了一个产品,您就可以直接在该实例上访问它的一个或所有工作流 (workflows),这些工作流是您的 CI/CD 管道的蓝图
// Get a list of all available workflows
let allWorkflows = try await product?.workflows()
// Get a workflow by Xcode Cloud ID
let workflowByID = try await product?.workflow(withId: "...")
// Get a workflow by name
let workflow = try await product?.workflow(withName: "Test Workflow")
一旦您拥有了一个工作流 (workflow),您就可以访问特定工作流的构建 (builds) 或工作流运行的列表
// Get a list of all available builds
let allBuilds = try await workflow?.allBuilds()
// Get a build by its number
let build = try await workflow?.build(withNumber: 32)
您甚至可以为您选择的 git 引用为特定工作流启动新的构建 (build)
try await workflow?.start(atGitReference: .branch(name: "main"))
请注意,SDK 的功能目前是有限的,更多功能将在未来几天和几个月内添加。
就目前而言,XcodeCloudKit
只能通过 SPM 安装,如下所示
dependencies: [
.package(url: "https://github.com/runway-org/xcode-cloud-kit.git", .upToNextMajor(from: "0.1.0"))
]
XcodeCloudKit 在 MIT 许可下可用,并使用来自开源项目的源代码。有关更多信息,请参阅 LICENSE 文件。
此项目由 Runway 开发和维护开源,并由 Pol Piella Abadia 领导。