Swift implementation of GitHub REST api v3. Library support Swift 4.2. Work is in progress.
Currently supported:
TODO:
- Activity API (Events, Starring, Watching).
- Organizations API.
- Projects API.
- Pull Requests API.
- Reactions API.
- Repositories API.
- Users API (Emails, Followers, Public Keys, GPG Keys, Block Another User).
- Documentation.
This lib support Basic Authentication with login/password:
let authentication = BasicAuthentication(username: "username", password: "password")
UserAPI(authentication: authentication).getUser { (response, error) in
if let response = response {
print(response)
} else {
print(error ?? "")
}
}
If you generate personal access token or receive access token from OAuth2, you can use it with AccessTokenAuthentication:
let authentication = AccessTokenAuthentication(access_token: "token")
UserAPI(authentication: authentication).getUser(username: "serhii-londar") { (response, error) in
if let response = response {
print(response)
} else {
print(error ?? "")
}
}
If you generate personal access token or receive access token from OAuth2, you can use it in next way:
let authentication = TokenAuthentication(token: "token")
UserAPI(authentication: authentication).getAllUsers(since: "1") { (reposne, error) in
if let response = response {
print(response)
} else {
print(error ?? "")
}
}
let issue = Issue(title: "New Issue")
IssuesAPI(authentication: AccessTokenAuthentication(access_token: "access_token")).createIssue(owner: "owner", repository: "repository", issue: issue) { (response, error) in
if let response = response {
} else {
print(error ?? "")
}
}
let issue = Issue(title: "Updated Issue")
IssuesAPI(authentication: AccessTokenAuthentication(access_token: "access_token")).updateIssue(owner: "owner", repository: "repository", number: number, issue: issue) { (response, error) in
if let response = response {
} else {
print(error ?? "")
}
}
RepositoriesAPI(authentication: AccessTokenAuthentication(access_token: "access_token")).repositories(user: "user", type: .all) { (response, error) in
if let response = response {
} else {
print(error ?? "")
}
}
SearchAPI().searchRepositories(q: "qwer", page: 1, per_page: 100) { (response, error) in
if let response = response {
} else {
print(error ?? "")
}
}
To run the example project, clone the repo, and run pod install
from the Example directory first.
Example project contains example app with list of all user's GitHub notification.
- Xcode 9 or later
- iOS 9.0 or later
- macOS 10.12 or later
- Ubuntu 16.04 or later
- Swift 4.0 or later
GitHubAPI is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'GithubAPI'
Serhii Londar, serhii.londar@gmail.com
GitHubAPI is available under the MIT license. See the LICENSE file for more info.