Cocoapods. Network layer. Fetching repos.
This commit is contained in:
parent
e348ad1eb1
commit
3dafdbc09c
143 changed files with 12470 additions and 47 deletions
171
Pods/GithubAPI/README.md
generated
Normal file
171
Pods/GithubAPI/README.md
generated
Normal file
|
@ -0,0 +1,171 @@
|
|||
# GithubAPI
|
||||
|
||||
[](https://travis-ci.org/serhii-londar/GithubAPI)
|
||||
[](http://cocoapods.org/pods/GithubAPI)
|
||||
[](http://cocoapods.org/pods/GithubAPI)
|
||||
[](http://cocoapods.org/pods/GithubAPI)
|
||||
|
||||
Swift implementation of Github REST api v3. Library support swift 4.0. Work is in progress.
|
||||
|
||||
Currently supported:
|
||||
|
||||
- [x] [Issues API](https://developer.github.com/v3/issues/).
|
||||
- [x] [Activity API(Notification)](https://developer.github.com/v3/activity/notifications/).
|
||||
- [x] [Repositories API](https://developer.github.com/v3/repos/).
|
||||
- [x] [Search API](https://developer.github.com/v3/search/).
|
||||
- [x] [User API](https://developer.github.com/v3/users/).
|
||||
|
||||
TODO:
|
||||
|
||||
- [ ] [Activity API (Events, Feeds, Starring, Watching)](https://developer.github.com/v3/activity/).
|
||||
- [ ] [Organizations API](https://developer.github.com/v3/orgs/).
|
||||
- [ ] [Projects API](https://developer.github.com/v3/projects/).
|
||||
- [ ] [Pull Requests API](https://developer.github.com/v3/pulls/).
|
||||
- [ ] [Reactions API](https://developer.github.com/v3/reactions/).
|
||||
- [ ] [Repositories API](https://developer.github.com/v3/repos/).
|
||||
- [ ] [Users API (Emails, Followers, Public Keys, GPG Keys, Block Another User)](https://developer.github.com/v3/users/).
|
||||
- [ ] Documentation.
|
||||
|
||||
## Example Usage
|
||||
|
||||
### Authentication
|
||||
|
||||
#### Basic Authentication
|
||||
|
||||
This lib support Basic Authentication with login/password:
|
||||
|
||||
```swift
|
||||
let authentication = BasicAuthentication(username: "username", password: "password")
|
||||
UserAPI(authentication: authentication).getUser { (response, error) in
|
||||
if let response = response {
|
||||
print(response)
|
||||
} else {
|
||||
print(error ?? "")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### OAuth2 Token (sent in a header)
|
||||
|
||||
If you generate personal access token or receive access token from OAuth2, you can use it with AccessTokenAuthentication:
|
||||
|
||||
```swift
|
||||
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 ?? "")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### OAuth2 Token (sent as a parameter)
|
||||
|
||||
If you generate personal access token or receive access token from OAuth2, you can use it in next way:
|
||||
|
||||
```swift
|
||||
let authentication = TokenAuthentication(token: "token")
|
||||
UserAPI(authentication: authentication).getAllUsers(since: "1") { (reposne, error) in
|
||||
if let response = response {
|
||||
print(response)
|
||||
} else {
|
||||
print(error ?? "")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Issues API
|
||||
|
||||
#### Create Issue:
|
||||
|
||||
```swift
|
||||
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 ?? "")
|
||||
}
|
||||
}
|
||||
```
|
||||
#### Update Issue:
|
||||
|
||||
```swift
|
||||
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 ?? "")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Repositories API
|
||||
|
||||
#### Get list of all repositories of user:
|
||||
|
||||
```swift
|
||||
RepositoriesAPI(authentication: AccessTokenAuthentication(access_token: "access_token")).repositories(user: "user", type: .all) { (response, error) in
|
||||
if let response = response {
|
||||
|
||||
} else {
|
||||
print(error ?? "")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Search API
|
||||
|
||||
#### Seart all repositories which contains qwer in name:
|
||||
|
||||
```swift
|
||||
SearchAPI().searchRepositories(q: "qwer", page: 1, per_page: 100) { (response, error) in
|
||||
if let response = response {
|
||||
|
||||
} else {
|
||||
print(error ?? "")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Example Application
|
||||
|
||||
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.
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="./Screenshots/main_screen.png" width="350"/>
|
||||
</p>
|
||||
|
||||
## Requirements
|
||||
|
||||
* Xcode 9 or later
|
||||
* iOS 9.0 or later
|
||||
* macOS 10.12 or later
|
||||
* Ubuntu 16.04 or later
|
||||
* Swift 4.0 or later
|
||||
|
||||
## Installation
|
||||
|
||||
GithubAPI is available through [CocoaPods](http://cocoapods.org). To install
|
||||
it, simply add the following line to your Podfile:
|
||||
|
||||
```ruby
|
||||
pod 'GithubAPI'
|
||||
```
|
||||
|
||||
## Author
|
||||
|
||||
Serhii Londar, serhii.londar@gmail.com
|
||||
|
||||
## License
|
||||
|
||||
GithubAPI is available under the MIT license. See the LICENSE file for more info.
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue