❤️ Support my apps ❤️
- Push Hero - pure Swift native macOS application to test push notifications
- PastePal - Pasteboard, note and shortcut manager
- Quick Check - smart todo manager
- Alias - App and file shortcut manager
- My other apps
❤️❤️😇😍🤘❤️❤️
- A Swift implementation of octokit.objc, using RxSwift, Alamofire and Tailor
- Try to use more Swift style as possible
- Note: you may consider using GraphQL https://developer.github.com/v4/
- User: identify a user
- Server: identify server (Github or Github Enterprise)
- Client: make request. If associated with a valid token, it is considered authenticated client
let _ =
  Client.signInUsingWebBrowser(Server.dotComServer, scopes: [.Repository])
    .flatMap { client in
      return client.fetchUserRepositories()
    }.subscribeNext { repositories in
      repositories.forEach { print($0.name)
    }
  }Make your own request using RequestDescriptor, using syntax from Construction
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)
}- The subscribegets called many times if there is pagination
client
.fetchUserRepositories()
.subscribeNext { repositories in
  // This gets called many times depending pagination
  repositories.forEach { print($0.name)
}- Use toArrayif we wantsubscribeto be called once with all the values collected
client
.fetchUserRepositories()
.toArray()
.subscribeNext { repositories: [[Repository]] in
  repositories.flatMap({$0}).forEach { print($0.name)
}- Fetch server metadata
- Native flow
- OAuth flow
- Follow
- Unfollow
- Fetch user info
- Fetch repositories
- Create repository
- Fetch commits
- Fetch pull requests
- Fetch issues
- Watch
- Make pull requests
- Create issue
- Fetch issues
- Fetch organizations
- Fetch teams
- Search repositories
- Fetch user events
- Fetch gists
- Create tree
- Create blob
- Create commit
- Star
- Unstar
- Fetch notifications
GithubSwift is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'GithubSwift'GithubSwift is also available through Carthage. To install just write into your Cartfile:
github "onmyway133/Github.swift"Khoa Pham, onmyway133@gmail.com
We would love you to contribute to GithubSwift, check the CONTRIBUTING file for more info.
GithubSwift is available under the MIT license. See the LICENSE file for more info.
 Unofficial GitHub API client in Swift
 Unofficial GitHub API client in Swift
      