by Owain R Hunt
UAGithubEngine is a wrapper around the Github API. Check out the API documentation for full details of what the API can do.
UAGithubEngine is compatible with Mac OS X 10.7 and above, and iOS 5.0.
The master
branch is built on version 3 of the API, and uses up-to-date technologies such as blocks and ARC. Version 1 of UAGE, found in the branch v1
, was built on version 2 of the API, and may be more suited to your uses if you need to support earlier versions of OS X or iOS. This branch is no longer under active development.
-
UAGithubEngine is available from CocoaPods. Just add the following to your Podfile:
dependency 'UAGithubEngine'
Then run
pod install
. -
The easiest way to use the engine is with the framework - build and link against the
UAGithubEngine
framework, and#import <UAGithubEngine/UAGithubEngine.h>
where you want to use the framework. -
If you don't fancy using CocoaPods or the framework, copy across all the files in the 'UAGithubEngine' group from the UAGithubEngine project into your app's project and
#import "UAGithubEngine.h"
where you want to use the engine. -
Note that UAGE has undergone a complete rewrite from version 1 to version 2. It now longer uses delegates, and instead relies on a block and callback structure.
-
Instantiate an engine, passing a username and password. If you want to receive notifications when reachability status changes (
UAGithubReachabilityStatusDidChangeNotification
), passYES
as the final argument. For example:UAGithubEngine *engine = [[UAGithubEngine alloc] initWithUsername:@"aUser" password:@"aPassword" withReachability:YES];
-
Call some methods.
[engine repositoriesWithSuccess:^(id response){
NSLog(@"Got an array of repos: %@", obj);
} failure:^(NSError *error) {
NSLog(@"Crapsticks: %@", error);
}];
[engine user:@"this_guy" isCollaboratorForRepository:@"UAGithubEngine" success:^(BOOL hotOrNot) {
NSLog(@"%d", hotOrNot);
} failure:^(NSError *error){
NSLog(@"Monkey balls: %@", error);
}];
Any questions, comments, improvements and so on, you can find me on Twitter (@orhunt) or send me an email ([email protected]).
The original UAGithubEngine was heavily based on the structure (and in some places the code) of Matt Gemmell's MGTwitterEngine.
Now that NSJSONSerialization
is available in OS X and iOS, UAGithubEngine no longer uses Jonathan Wight's TouchJSON parser.