测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017 年 8 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Piet Brauer 维护。
Swift 2.0 API 客户端用于 Bitbucket 2.0 API。
该名称来源于我,Piet Brauer,每次看到 Bitbucket 徽标时的看法以及与 API 的协作经验。
TrashCanKit 支持Bitbucket Cloud和Bitbucket Enterprise。身份验证通过配置进行管理。
有两种配置类型,分别是 TokenConfiguration
和 OAuthConfiguration
。
TokenConfiguration
用于基于 Access Token 的身份验证(例如,用户向您提供了一个在网站上生成的访问令牌)或您通过 OAuth 流程获取了访问令牌。
您可以使用以下方式初始化一个新的 bitbucket.com
配置
let config = TokenConfiguration(token: "12345")
或者对 Bitbucket Enterprise
let config = TokenConfiguration("https://bitbucket.example.com/api/2.0/", token: "12345")
获取令牌后,您可以使用它与 TrashCanKit
一起使用
TrashCanKit(config).me() { response in
switch response {
case .Success(let user):
println(user.login)
case .Failure(let error):
println(error)
}
}
OAuthConfiguration
适用于您还没有访问令牌,用户需要登录到您的应用程序的情况。这也处理 OAuth 流程。
您可以使用以下方式对 bitbucket.com
的用户进行身份验证
let config = OAuthConfiguration(token: "<Your Client ID>", secret: "<Your Client secret>", scopes: []) // Scopes are not supported by the API yet
config.authenticate()
或者对 Bitbucket Enterprise
let config = OAuthConfiguration("https://bitbucket.example.com/api/v3/", webURL: "https://bitbucket.example.com/", token: "<Your Client ID>", secret: "<Your Client secret>", scopes: []) // Scopes are not supported by the API yet
获取配置后,您可以对用户进行身份验证
// AppDelegate.swift
config.authenticate()
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
config.handleOpenURL(url) { config in
self.loadCurrentUser(config) // purely optional of course
}
return false
}
func loadCurrentUser(config: TokenConfiguration) {
TrashCanKit(config).me() { response in
switch response {
case .Success(let user):
println(user.login)
case .Failure(let error):
println(error)
}
}
}
请注意,您将从 OAuth 流程中获得一个 TokenConfiguration
。您需要自己存储 accessToken
。如果您想做出进一步请求,不必再次执行 OAuth 流程。您只需使用 TokenConfiguration
即可。
let token = // get your token from your keychain, user defaults (not recommended) etc.
let config = TokenConfiguration(token)
TrashCanKit(config).user("bitbucketcat") { response in
switch response {
case .Success(let user):
println(user.login)
case .Failure(let error):
println(error)
}
}
let username = ... // set the username
TrashCanKit().user(username) { response in
switch response {
case .Success(let user):
// do something with the user
case .Failure(let error):
// handle any errors
}
}
TrashCanKit().me() { response in
switch response {
case .Success(let user):
// do something with the user
case .Failure(let error):
// handle any errors
}
TrashCanKit().repositories() { response in
switch response {
case .Success(let repositories):
// do something
case .Failure(let error):
// handle any errors
}
}
TrashCanKit().repository("nerdishbynature", name: "octokit.swift") { response in
switch response {
case .Success(let repository):
// do something
case .Failure(let error):
// handle any errors
}
}