TrashCanKit 0.6.3

TrashCanKit 0.6.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017 年 8 月
SwiftSwift 版本3.0
SPM支持 SPM

Piet Brauer 维护。



TrashCanKit

Swift 2.0 API 客户端用于 Bitbucket 2.0 API。

名称

该名称来源于我,Piet Brauer,每次看到 Bitbucket 徽标时的看法以及与 API 的协作经验。

身份验证

TrashCanKit 支持Bitbucket Cloud和Bitbucket Enterprise。身份验证通过配置进行管理。

有两种配置类型,分别是 TokenConfigurationOAuthConfiguration

TokenConfiguration

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

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
  }
}