GithubSwift 0.5.0

GithubSwift 0.5.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后一次发布2016年4月
SPM支持 SPM

Khoa Pham 维护。



 
pod try GithubSwift
依赖>= 0
Tailor~> 2.4
RxSwift~> 3.3
Alamofire~> 0.5
ISO8601>= 0
 

变更日志

Github.swift

  • 描述
  • 使用 RxSwift、Alamofire 和 Tailor 实现的 octokit.objc 的 Swift 实现方案。

尽可能地使用 Swift 风格。

用法

  • 客户端
  • User: 识别一个用户
  • Server: 识别服务器 (GitHub 或 GitHub Enterprise)
let _ =
  Client.signInUsingWebBrowser(Server.dotComServer, scopes: [.Repository])
    .flatMap { client in
      return client.fetchUserRepositories()
    }.subscribeNext { repositories in
      repositories.forEach { print($0.name)
    }
  }

Client: 发起请求。如果关联了一个有效的 token,则被认为是已认证客户端

请求描述符

let requestDescriptor: RequestDescriptor = construct {
  $0.path = "repos/\(owner)/\(name)"
  $0.etag = "12345"
  $0.offset = 2
  $0.perPage = 50
  $0.parameters["param"] = "value"
  $0.headers["header"] = "value"
  $0.method = .PUT  
}

return enqueue(requestDescriptor).map {
  return Parser.one($0)
}

使用 RequestDescriptor 创建自己的请求

  • 分页
client
.fetchUserRepositories()
.subscribeNext { repositories in
  // This gets called many times depending pagination
  repositories.forEach { print($0.name)
}
  • 如果有分页,则 subscribe 将多次被调用
client
.fetchUserRepositories()
.toArray()
.subscribeNext { repositories: [[Repository]] in
  repositories.flatMap({$0}).forEach { print($0.name)
}

如果我们希望 subscribe 一次调用就收集所有值,可以使用 toArray

功能

  • 元数据

获取服务器元数据

  • 登录
  • 原生流程

OAuth 流程

  • 用户
  • 关注
  • 取消关注

获取用户信息

  • 仓库
  • 获取仓库
  • 创建仓库
  • 获取提交
  • 获取拉取请求
  • 获取问题

关注

  • 发起 pull 请求

问题

  • 创建问题
  • 获取拉取请求

组织

  • 获取组织
  • 获取团队

搜索

  • 搜索仓库

事件

  • 获取用户事件

代码片段

  • 获取代码片段

Git

  • 创建树
  • 创建 blob
  • 创建提交

活动

  • 星标
  • 取消星标

通知

  • 获取通知

安装

GithubSwift 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行

pod 'Github.swift'

GithubSwift 同样通过 Carthage 提供。要安装,只需在 Cartfile 中写入

github "onmyway133/Github.swift"

作者

Khoa Pham, [email protected]

贡献

我们很愿意您为 GithubSwift 做出贡献,有关更多信息,请查看 CONTRIBUTING 文件。

许可

GithubSwift 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。