GoatHerb

CI Status Code Coverage Latest Release Swift Compatibility Platform Compatibility License

GoatHerb 是一个用于访问 GitHub API 的跨平台 Swift 库。

特性

通用

大多数跨平台 SDK 只是简单地将 Foundation 的 URLSession 替换为 SwiftNIO 的 AsyncHTTPClient 就完事了。 GoatHerb 不是! GoatHerb 构建于 KippleNetworking 之上,它可以根据平台智能地选择 Foundation 的 URLSession 或 SwiftNIO 的 AsyncHTTPClient,从而确保它运行的平台获得最佳网络性能。

GitHub API

目前就这些!如果您正在寻找功能更完整的 SDK,请查看 Swift Package Index 上的 GitHub SDK 列表

用法

创建一个 GitHub 对象。

let gitHub = GitHub()

您可以选择在初始化程序中提供 accessToken,或者通过设置 GITHUB_ACCESS_TOKENGITHUB_TOKEN 环境变量来提供。

let gitHub = GitHub(accessToken: "<token>")

从那里开始,请求非常简单。这里有一些例子

// Get a user.
let user = try await self.gitHub.getUser("bdrelling")

// Get an organization.
let organization = try await self.gitHub.getOrganization("swift-kipple")

// Get all repositories for a user.
let repositories = try await self.gitHub.getRepositories(user: "bdrelling")

// Get all repositories for an organization.
let repositories = try await self.gitHub.getRepositories(org: "swift-kipple")

贡献

欢迎进行讨论、提出问题和提交拉取请求!我很乐意扩展此库的功能,但需要遵守 超出范围 部分中列出的功能。

如果打开一个拉取请求,请确保包尽可能地保持 100% 的代码覆盖率。

鸣谢

特别感谢 @boiarqin 为我提供了一个令人难忘的仓库名称。

许可证

本项目在 MIT 许可证下发布。 有关详细信息,请参阅 LICENSE