diff --git a/Gister.app/Contents/Info.plist b/Gister.app/Contents/Info.plist
new file mode 100644
index 0000000..94d290c
--- /dev/null
+++ b/Gister.app/Contents/Info.plist
@@ -0,0 +1,52 @@
+
+
+
+
+ BuildMachineOSBuild
+ 11E53
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ Gister
+ CFBundleIconFile
+ octo
+ CFBundleIdentifier
+ com.500px.Gister
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Gister
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 4G78z
+ DTPlatformVersion
+ GM
+ DTSDKBuild
+ 12A237
+ DTSDKName
+ macosx10.8
+ DTXcode
+ 0450
+ DTXcodeBuild
+ 4G78z
+ LSApplicationCategoryType
+ public.app-category.developer-tools
+ LSMinimumSystemVersion
+ 10.7
+ NSHumanReadableCopyright
+ Copyright © 2012 __MyCompanyName__. All rights reserved.
+ NSMainNibFile
+ MainMenu
+ NSPrincipalClass
+ NSApplication
+
+
diff --git a/Gister.app/Contents/MacOS/Gister b/Gister.app/Contents/MacOS/Gister
new file mode 100755
index 0000000..f1a3d0a
Binary files /dev/null and b/Gister.app/Contents/MacOS/Gister differ
diff --git a/Gister.app/Contents/PkgInfo b/Gister.app/Contents/PkgInfo
new file mode 100644
index 0000000..bd04210
--- /dev/null
+++ b/Gister.app/Contents/PkgInfo
@@ -0,0 +1 @@
+APPL????
\ No newline at end of file
diff --git a/Gister.app/Contents/Resources/en.lproj/Credits.rtf b/Gister.app/Contents/Resources/en.lproj/Credits.rtf
new file mode 100644
index 0000000..46576ef
--- /dev/null
+++ b/Gister.app/Contents/Resources/en.lproj/Credits.rtf
@@ -0,0 +1,29 @@
+{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\paperw9840\paperh8400
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\f0\b\fs24 \cf0 Engineering:
+\b0 \
+ Some people\
+\
+
+\b Human Interface Design:
+\b0 \
+ Some other people\
+\
+
+\b Testing:
+\b0 \
+ Hopefully not nobody\
+\
+
+\b Documentation:
+\b0 \
+ Whoever\
+\
+
+\b With special thanks to:
+\b0 \
+ Mom\
+}
diff --git a/Gister.app/Contents/Resources/en.lproj/InfoPlist.strings b/Gister.app/Contents/Resources/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..5e45963
Binary files /dev/null and b/Gister.app/Contents/Resources/en.lproj/InfoPlist.strings differ
diff --git a/Gister.app/Contents/Resources/en.lproj/MainMenu.nib b/Gister.app/Contents/Resources/en.lproj/MainMenu.nib
new file mode 100644
index 0000000..f3cfe8c
Binary files /dev/null and b/Gister.app/Contents/Resources/en.lproj/MainMenu.nib differ
diff --git a/Gister.app/Contents/Resources/octo.png b/Gister.app/Contents/Resources/octo.png
new file mode 100644
index 0000000..14ad342
Binary files /dev/null and b/Gister.app/Contents/Resources/octo.png differ
diff --git a/Gister.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Gister.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..cb325f2
--- /dev/null
+++ b/Gister.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/Gister.xcodeproj/project.xcworkspace/xcuserdata/paddy.xcuserdatad/UserInterfaceState.xcuserstate b/Gister.xcodeproj/project.xcworkspace/xcuserdata/paddy.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000..f11c8a0
Binary files /dev/null and b/Gister.xcodeproj/project.xcworkspace/xcuserdata/paddy.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/Gister.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/Gister.xcscheme b/Gister.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/Gister.xcscheme
new file mode 100644
index 0000000..87f6304
--- /dev/null
+++ b/Gister.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/Gister.xcscheme
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Gister.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/xcschememanagement.plist b/Gister.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000..2ab3763
--- /dev/null
+++ b/Gister.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ SchemeUserState
+
+ Gister.xcscheme
+
+ orderHint
+ 0
+
+
+ SuppressBuildableAutocreation
+
+ 03F1C12A15B99B94000EE7EB
+
+ primary
+
+
+
+
+
diff --git a/Gister.xcworkspace/contents.xcworkspacedata b/Gister.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..bf601ef
--- /dev/null
+++ b/Gister.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/Gister.xcworkspace/xcuserdata/paddy.xcuserdatad/UserInterfaceState.xcuserstate b/Gister.xcworkspace/xcuserdata/paddy.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000..efba7a6
Binary files /dev/null and b/Gister.xcworkspace/xcuserdata/paddy.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/Gister.xcworkspace/xcuserdata/paddy.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/Gister.xcworkspace/xcuserdata/paddy.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
new file mode 100644
index 0000000..781902b
--- /dev/null
+++ b/Gister.xcworkspace/xcuserdata/paddy.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Podfile b/Podfile
new file mode 100644
index 0000000..213715e
--- /dev/null
+++ b/Podfile
@@ -0,0 +1,2 @@
+platform :osx
+dependency 'UAGithubEngine', '~>2.3'
\ No newline at end of file
diff --git a/Podfile.lock b/Podfile.lock
new file mode 100644
index 0000000..05e128c
--- /dev/null
+++ b/Podfile.lock
@@ -0,0 +1,5 @@
+PODS:
+ - UAGithubEngine (2.3)
+
+DEPENDENCIES:
+ - UAGithubEngine (~> 2.3)
diff --git a/Pods/Headers/UAGithubEngine/NSArray+Utilities.h b/Pods/Headers/UAGithubEngine/NSArray+Utilities.h
new file mode 120000
index 0000000..f52f45d
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/NSArray+Utilities.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/NSArray+Utilities.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/NSData+Base64.h b/Pods/Headers/UAGithubEngine/NSData+Base64.h
new file mode 120000
index 0000000..11b6582
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/NSData+Base64.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/NSData+Base64.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/NSInvocation+Blocks.h b/Pods/Headers/UAGithubEngine/NSInvocation+Blocks.h
new file mode 120000
index 0000000..f2b7b0f
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/NSInvocation+Blocks.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/NSString+UAGithubEngineUtilities.h b/Pods/Headers/UAGithubEngine/NSString+UAGithubEngineUtilities.h
new file mode 120000
index 0000000..35047c7
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/NSString+UAGithubEngineUtilities.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/NSString+UUID.h b/Pods/Headers/UAGithubEngine/NSString+UUID.h
new file mode 120000
index 0000000..7caa7be
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/NSString+UUID.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/NSString+UUID.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/UAGithubEngine.h b/Pods/Headers/UAGithubEngine/UAGithubEngine.h
new file mode 120000
index 0000000..2fd6245
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/UAGithubEngine.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/UAGithubEngine.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/UAGithubEngineConstants.h b/Pods/Headers/UAGithubEngine/UAGithubEngineConstants.h
new file mode 120000
index 0000000..b2657c8
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/UAGithubEngineConstants.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/UAGithubEngineRequestTypes.h b/Pods/Headers/UAGithubEngine/UAGithubEngineRequestTypes.h
new file mode 120000
index 0000000..beb4fde
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/UAGithubEngineRequestTypes.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/UAGithubEngineRequestTypes.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/UAGithubJSONParser.h b/Pods/Headers/UAGithubEngine/UAGithubJSONParser.h
new file mode 120000
index 0000000..f0ca177
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/UAGithubJSONParser.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/UAGithubJSONParser.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/UAGithubURLConnection.h b/Pods/Headers/UAGithubEngine/UAGithubURLConnection.h
new file mode 120000
index 0000000..dcc8e74
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/UAGithubURLConnection.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/UAGithubURLConnection.h
\ No newline at end of file
diff --git a/Pods/Headers/UAGithubEngine/UAReachability.h b/Pods/Headers/UAGithubEngine/UAReachability.h
new file mode 120000
index 0000000..2ff875a
--- /dev/null
+++ b/Pods/Headers/UAGithubEngine/UAReachability.h
@@ -0,0 +1 @@
+../../UAGithubEngine/UAGithubEngine/UAReachability.h
\ No newline at end of file
diff --git a/Pods/Pods-Acknowledgements.markdown b/Pods/Pods-Acknowledgements.markdown
new file mode 100644
index 0000000..e8875ff
--- /dev/null
+++ b/Pods/Pods-Acknowledgements.markdown
@@ -0,0 +1,35 @@
+# Acknowledgements
+This application makes use of the following third party libraries:
+
+## UAGithubEngine
+
+{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\paperw11905\paperh16837\margl1440\margr1440\vieww20460\viewh13960\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+
+\f0\b\fs24 \cf0 UAGithubEngine License
+\b0 \
+Copyright (c) 2010, Owain R Hunt. All rights reserved.\
+\
+
+\b The Short Version\
+
+\b0 Use the code however you like, pass it around, change it, tweak it, build on it, release it, just make sure you include the line
+\b Includes UAGithubEngine by Owain R Hunt
+\b0 , preferably in your app's About box or equivalent.\
+\
+
+\b The Full Legalese
+\b0 \
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
+ * Redistributions in binary form must include the following notice, preferably in the software's About box or suitable equivalent:\
+
+\b Includes UAGithubEngine by Owain R Hunt
+\b0 \
+ * Neither the name Owain R Hunt nor the names of contributors to the code may be used to endorse or promote products derived from this software without specific prior written permission.\
+\
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OWAIN R HUNT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}
+Generated by CocoaPods - http://cocoapods.org
diff --git a/Pods/Pods-Acknowledgements.plist b/Pods/Pods-Acknowledgements.plist
new file mode 100644
index 0000000..d85b1be
--- /dev/null
+++ b/Pods/Pods-Acknowledgements.plist
@@ -0,0 +1,65 @@
+
+
+
+
+ PreferenceSpecifiers
+
+
+ FooterText
+ This application makes use of the following third party libraries:
+ Title
+ Acknowledgements
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\paperw11905\paperh16837\margl1440\margr1440\vieww20460\viewh13960\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+
+\f0\b\fs24 \cf0 UAGithubEngine License
+\b0 \
+Copyright (c) 2010, Owain R Hunt. All rights reserved.\
+\
+
+\b The Short Version\
+
+\b0 Use the code however you like, pass it around, change it, tweak it, build on it, release it, just make sure you include the line
+\b Includes UAGithubEngine by Owain R Hunt
+\b0 , preferably in your app's About box or equivalent.\
+\
+
+\b The Full Legalese
+\b0 \
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
+ * Redistributions in binary form must include the following notice, preferably in the software's About box or suitable equivalent:\
+
+\b Includes UAGithubEngine by Owain R Hunt
+\b0 \
+ * Neither the name Owain R Hunt nor the names of contributors to the code may be used to endorse or promote products derived from this software without specific prior written permission.\
+\
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OWAIN R HUNT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}
+ Title
+ UAGithubEngine
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ Generated by CocoaPods - http://cocoapods.org
+ Title
+
+ Type
+ PSGroupSpecifier
+
+
+ StringsTable
+ Acknowledgements
+ Title
+ Acknowledgements
+
+
diff --git a/Pods/Pods-prefix.pch b/Pods/Pods-prefix.pch
new file mode 100644
index 0000000..00e8847
--- /dev/null
+++ b/Pods/Pods-prefix.pch
@@ -0,0 +1,3 @@
+#ifdef __OBJC__
+#import
+#endif
diff --git a/Pods/Pods-resources.sh b/Pods/Pods-resources.sh
new file mode 100755
index 0000000..70fc22f
--- /dev/null
+++ b/Pods/Pods-resources.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+install_resource()
+{
+ case $1 in
+ *.storyboard)
+ echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
+ ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
+ ;;
+ *.xib)
+ echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
+ ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
+ ;;
+ *)
+ echo "cp -R ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ cp -R "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
+ ;;
+ esac
+}
diff --git a/Pods/Pods.xcconfig b/Pods/Pods.xcconfig
new file mode 100644
index 0000000..4679f56
--- /dev/null
+++ b/Pods/Pods.xcconfig
@@ -0,0 +1,4 @@
+HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/UAGithubEngine"
+ALWAYS_SEARCH_USER_PATHS = YES
+PODS_ROOT = ${SRCROOT}/Pods
+OTHER_LDFLAGS = -ObjC -framework SystemConfiguration
\ No newline at end of file
diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..496284b
--- /dev/null
+++ b/Pods/Pods.xcodeproj/project.pbxproj
@@ -0,0 +1,423 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 019C96CDCCBB4B8583F6F866 /* UAGithubEngine.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A37DB50F5D49458D9192DF15 /* UAGithubEngine.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0C8FFFEDE9CE420DB1D3821B /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = BD3D6FDD95D749FA92459CFA /* NSData+Base64.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 0D5B06A6BD794C499AD12B8D /* NSString+UAGithubEngineUtilities.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 93888C7EAA5349DBBBC3B412 /* NSString+UAGithubEngineUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1341A250DCD04253A2C43589 /* UAGithubEngineConstants.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 408677757E0F4B489A7F11FD /* UAGithubEngineConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 20AE748AD18745CFA61560C8 /* NSString+UAGithubEngineUtilities.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 93888C7EAA5349DBBBC3B412 /* NSString+UAGithubEngineUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27A0B7D11D9B4A9F9AD8D2DD /* UAGithubEngineRequestTypes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 07C4CF7B718D45AA8AD0A5F2 /* UAGithubEngineRequestTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2874080EE86444A8945C4A96 /* UAReachability.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 25429A09DAEC4E03A300EECC /* UAReachability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2CEEA3D0FF4142949B115287 /* NSArray+Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = D7E37CD5D47048E08D07E407 /* NSArray+Utilities.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 2F5B497D538D46C79398E0B1 /* UAGithubJSONParser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D8DDE8EAD83E4000BD99E0C8 /* UAGithubJSONParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 30E736BA36B74BD7B3023DA9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2710F48DEC214BFF969114A4 /* Cocoa.framework */; };
+ 35B2E64385CE4690AC671F17 /* UAGithubEngine.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A37DB50F5D49458D9192DF15 /* UAGithubEngine.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3AE879A01C3C48FAA6F5C0C9 /* NSInvocation+Blocks.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 94DDB5DDEE4E49C690089682 /* NSInvocation+Blocks.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 4655D0C711F1486EA5D0D5BC /* NSInvocation+Blocks.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 94DDB5DDEE4E49C690089682 /* NSInvocation+Blocks.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 49C08FDDC519497384363463 /* UAGithubEngineConstants.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 408677757E0F4B489A7F11FD /* UAGithubEngineConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 553FF891FE6346B0B23AA673 /* UAGithubURLConnection.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FB090980108C47A99AE653D2 /* UAGithubURLConnection.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5BA6C5077249470BBAEB26BE /* NSString+UUID.m in Sources */ = {isa = PBXBuildFile; fileRef = BC46420EE0614C629630C574 /* NSString+UUID.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 5F60AEAE9F2049EF9C87F41B /* NSString+UAGithubEngineUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E433288BC4F74C77B874C864 /* NSString+UAGithubEngineUtilities.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 6906C50CE1D6493E9D58D48C /* UAGithubJSONParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A846831E12B04473AB71EE26 /* UAGithubJSONParser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 6CA90BC8086C407993733AB3 /* UAReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 194BC9AC46F140898A43A28D /* UAReachability.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 73C671FCE9A341919C2D06A6 /* UAReachability.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 25429A09DAEC4E03A300EECC /* UAReachability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 864437B5DE2740AE9BC25304 /* NSString+UUID.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C1CA348FD0A405C8BDF6346 /* NSString+UUID.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8DCB89F30DE84A3D80127450 /* NSArray+Utilities.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = E0E2308B08854A4B971DA07C /* NSArray+Utilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9176C34DFBE94873AEECDEDE /* NSString+UUID.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8C1CA348FD0A405C8BDF6346 /* NSString+UUID.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9450BDFE7C1446C1BE7829D0 /* NSInvocation+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F4D8577E2A4B7CADB943EF /* NSInvocation+Blocks.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 9D1C8BEA21284BC6AF94D437 /* UAGithubEngineConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = C5DBAE78A68041DE984A49B9 /* UAGithubEngineConstants.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 9E8F1EB1D17F431FA8DF4EB9 /* NSArray+Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = D7E37CD5D47048E08D07E407 /* NSArray+Utilities.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ A10B187EF47C4E98A1CF324E /* UAReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 194BC9AC46F140898A43A28D /* UAReachability.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ A21C674C173C4282BA1105FB /* NSString+UUID.m in Sources */ = {isa = PBXBuildFile; fileRef = BC46420EE0614C629630C574 /* NSString+UUID.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ A39DCB3094D4483F8CE1DDE4 /* NSData+Base64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4DBD6F3FDF544074B111519C /* NSData+Base64.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A7ADBDC15D454F49A766F555 /* UAGithubEngineRequestTypes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 07C4CF7B718D45AA8AD0A5F2 /* UAGithubEngineRequestTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AD598EE8DA0B4FED9220B1E2 /* NSArray+Utilities.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = E0E2308B08854A4B971DA07C /* NSArray+Utilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B87E88E23DC44F6AA5CEB509 /* UAGithubEngineConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = C5DBAE78A68041DE984A49B9 /* UAGithubEngineConstants.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ C29B56AD710E4FD1AC3D6273 /* UAGithubURLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DB8AEFB256F433E910D9FD1 /* UAGithubURLConnection.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ D98A0E54DD3B48EFB7D64F3B /* UAGithubJSONParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A846831E12B04473AB71EE26 /* UAGithubJSONParser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ DD139A967479488393EC7E04 /* UAGithubURLConnection.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FB090980108C47A99AE653D2 /* UAGithubURLConnection.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DD5F648E49BA4F3E80A0E3BC /* UAGithubJSONParser.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = D8DDE8EAD83E4000BD99E0C8 /* UAGithubJSONParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E8CCD4967CA54F25A10C2D78 /* NSData+Base64.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4DBD6F3FDF544074B111519C /* NSData+Base64.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ EC41C2A016BE4C1CA02C4577 /* UAGithubEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = B92A60E16ADC4E4788D6FF87 /* UAGithubEngine.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ EEFCC88ECE874BC9A601D444 /* UAGithubURLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DB8AEFB256F433E910D9FD1 /* UAGithubURLConnection.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ F75632447DD44C909E0566F2 /* UAGithubEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = B92A60E16ADC4E4788D6FF87 /* UAGithubEngine.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ F75BA592CC13441D80A037A1 /* NSInvocation+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F4D8577E2A4B7CADB943EF /* NSInvocation+Blocks.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ F99CA5D298A6411A9D7B052C /* PodsDummy_Pods.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ACA79ED1242464C93F00EAF /* PodsDummy_Pods.m */; };
+ FBE8B52D3DE442538BD7DEA4 /* NSString+UAGithubEngineUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E433288BC4F74C77B874C864 /* NSString+UAGithubEngineUtilities.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ FE0863CE164243949811FDF7 /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = BD3D6FDD95D749FA92459CFA /* NSData+Base64.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 5BC2FE66D56A4D17A3B2160E /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "$(PRODUCT_NAME)";
+ dstSubfolderSpec = 16;
+ files = (
+ 8DCB89F30DE84A3D80127450 /* NSArray+Utilities.h in CopyFiles */,
+ E8CCD4967CA54F25A10C2D78 /* NSData+Base64.h in CopyFiles */,
+ 3AE879A01C3C48FAA6F5C0C9 /* NSInvocation+Blocks.h in CopyFiles */,
+ 20AE748AD18745CFA61560C8 /* NSString+UAGithubEngineUtilities.h in CopyFiles */,
+ 9176C34DFBE94873AEECDEDE /* NSString+UUID.h in CopyFiles */,
+ 019C96CDCCBB4B8583F6F866 /* UAGithubEngine.h in CopyFiles */,
+ 49C08FDDC519497384363463 /* UAGithubEngineConstants.h in CopyFiles */,
+ A7ADBDC15D454F49A766F555 /* UAGithubEngineRequestTypes.h in CopyFiles */,
+ DD5F648E49BA4F3E80A0E3BC /* UAGithubJSONParser.h in CopyFiles */,
+ DD139A967479488393EC7E04 /* UAGithubURLConnection.h in CopyFiles */,
+ 2874080EE86444A8945C4A96 /* UAReachability.h in CopyFiles */,
+ AD598EE8DA0B4FED9220B1E2 /* NSArray+Utilities.h in CopyFiles */,
+ A39DCB3094D4483F8CE1DDE4 /* NSData+Base64.h in CopyFiles */,
+ 4655D0C711F1486EA5D0D5BC /* NSInvocation+Blocks.h in CopyFiles */,
+ 0D5B06A6BD794C499AD12B8D /* NSString+UAGithubEngineUtilities.h in CopyFiles */,
+ 864437B5DE2740AE9BC25304 /* NSString+UUID.h in CopyFiles */,
+ 35B2E64385CE4690AC671F17 /* UAGithubEngine.h in CopyFiles */,
+ 1341A250DCD04253A2C43589 /* UAGithubEngineConstants.h in CopyFiles */,
+ 27A0B7D11D9B4A9F9AD8D2DD /* UAGithubEngineRequestTypes.h in CopyFiles */,
+ 2F5B497D538D46C79398E0B1 /* UAGithubJSONParser.h in CopyFiles */,
+ 553FF891FE6346B0B23AA673 /* UAGithubURLConnection.h in CopyFiles */,
+ 73C671FCE9A341919C2D06A6 /* UAReachability.h in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 07C4CF7B718D45AA8AD0A5F2 /* UAGithubEngineRequestTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubEngineRequestTypes.h; path = UAGithubEngine/UAGithubEngine/UAGithubEngineRequestTypes.h; sourceTree = SOURCE_ROOT; };
+ 0D07A696F0D6411BA1E69687 /* NSString+UUID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+UUID.m"; path = "UAGithubEngine/UAGithubEngine/NSString+UUID.m"; sourceTree = SOURCE_ROOT; };
+ 194BC9AC46F140898A43A28D /* UAReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAReachability.m; path = UAGithubEngine/UAGithubEngine/UAReachability.m; sourceTree = SOURCE_ROOT; };
+ 200A871011754C7BA101358F /* NSArray+Utilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+Utilities.h"; path = "UAGithubEngine/UAGithubEngine/NSArray+Utilities.h"; sourceTree = SOURCE_ROOT; };
+ 25429A09DAEC4E03A300EECC /* UAReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAReachability.h; path = UAGithubEngine/UAGithubEngine/UAReachability.h; sourceTree = SOURCE_ROOT; };
+ 2710F48DEC214BFF969114A4 /* Cocoa.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+ 31BA4CA42EA346EFA9DC92CC /* UAReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAReachability.h; path = UAGithubEngine/UAGithubEngine/UAReachability.h; sourceTree = SOURCE_ROOT; };
+ 3A3ED5974EC64035A948B119 /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.xcconfig; sourceTree = SOURCE_ROOT; };
+ 3EE3AC25BAD74A24AEEB6332 /* NSInvocation+Blocks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+Blocks.h"; path = "UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.h"; sourceTree = SOURCE_ROOT; };
+ 408677757E0F4B489A7F11FD /* UAGithubEngineConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubEngineConstants.h; path = UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.h; sourceTree = SOURCE_ROOT; };
+ 4DB8AEFB256F433E910D9FD1 /* UAGithubURLConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubURLConnection.m; path = UAGithubEngine/UAGithubEngine/UAGithubURLConnection.m; sourceTree = SOURCE_ROOT; };
+ 4DBD6F3FDF544074B111519C /* NSData+Base64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+Base64.h"; path = "UAGithubEngine/UAGithubEngine/NSData+Base64.h"; sourceTree = SOURCE_ROOT; };
+ 5104486EC9074ECA86472F40 /* UAGithubURLConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubURLConnection.m; path = UAGithubEngine/UAGithubEngine/UAGithubURLConnection.m; sourceTree = SOURCE_ROOT; };
+ 63F2821A24384CB5B1624CBD /* UAGithubEngineConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubEngineConstants.h; path = UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.h; sourceTree = SOURCE_ROOT; };
+ 64E35A0E75DD4BC68B99064D /* NSString+UAGithubEngineUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+UAGithubEngineUtilities.h"; path = "UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.h"; sourceTree = SOURCE_ROOT; };
+ 6769465C6D2940BCA361E449 /* UAGithubURLConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubURLConnection.h; path = UAGithubEngine/UAGithubEngine/UAGithubURLConnection.h; sourceTree = SOURCE_ROOT; };
+ 693BD19947AF497393D3D079 /* Pods-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-prefix.pch"; sourceTree = SOURCE_ROOT; };
+ 6DAE02C5FCA54799B04EB0A1 /* UAReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAReachability.m; path = UAGithubEngine/UAGithubEngine/UAReachability.m; sourceTree = SOURCE_ROOT; };
+ 79F4D8577E2A4B7CADB943EF /* NSInvocation+Blocks.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+Blocks.m"; path = "UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.m"; sourceTree = SOURCE_ROOT; };
+ 8ACA79ED1242464C93F00EAF /* PodsDummy_Pods.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PodsDummy_Pods.m; sourceTree = SOURCE_ROOT; };
+ 8C1CA348FD0A405C8BDF6346 /* NSString+UUID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+UUID.h"; path = "UAGithubEngine/UAGithubEngine/NSString+UUID.h"; sourceTree = SOURCE_ROOT; };
+ 8DC2FD42D9374D1496BAA96F /* UAGithubEngineConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubEngineConstants.m; path = UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.m; sourceTree = SOURCE_ROOT; };
+ 923876F672024443B7C766CE /* NSString+UAGithubEngineUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+UAGithubEngineUtilities.m"; path = "UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.m"; sourceTree = SOURCE_ROOT; };
+ 93888C7EAA5349DBBBC3B412 /* NSString+UAGithubEngineUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+UAGithubEngineUtilities.h"; path = "UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.h"; sourceTree = SOURCE_ROOT; };
+ 94DDB5DDEE4E49C690089682 /* NSInvocation+Blocks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+Blocks.h"; path = "UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.h"; sourceTree = SOURCE_ROOT; };
+ 9C9F2AE2D42D4542895DC992 /* NSArray+Utilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+Utilities.m"; path = "UAGithubEngine/UAGithubEngine/NSArray+Utilities.m"; sourceTree = SOURCE_ROOT; };
+ A0141FE6DDF841ED8127465A /* UAGithubEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubEngine.h; path = UAGithubEngine/UAGithubEngine/UAGithubEngine.h; sourceTree = SOURCE_ROOT; };
+ A0E801F452A94C01BA5E59CF /* UAGithubEngineRequestTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubEngineRequestTypes.h; path = UAGithubEngine/UAGithubEngine/UAGithubEngineRequestTypes.h; sourceTree = SOURCE_ROOT; };
+ A37DB50F5D49458D9192DF15 /* UAGithubEngine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubEngine.h; path = UAGithubEngine/UAGithubEngine/UAGithubEngine.h; sourceTree = SOURCE_ROOT; };
+ A846831E12B04473AB71EE26 /* UAGithubJSONParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubJSONParser.m; path = UAGithubEngine/UAGithubEngine/UAGithubJSONParser.m; sourceTree = SOURCE_ROOT; };
+ AB58F1E8A25042A4A7F288DE /* NSString+UUID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+UUID.h"; path = "UAGithubEngine/UAGithubEngine/NSString+UUID.h"; sourceTree = SOURCE_ROOT; };
+ AD3D84191D6E45CFA8E8EFEA /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ B6BEC26D9D4F4757B56C50FB /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = SOURCE_ROOT; };
+ B6CA5B8104C540CA815DF5F6 /* NSInvocation+Blocks.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+Blocks.m"; path = "UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.m"; sourceTree = SOURCE_ROOT; };
+ B92A60E16ADC4E4788D6FF87 /* UAGithubEngine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubEngine.m; path = UAGithubEngine/UAGithubEngine/UAGithubEngine.m; sourceTree = SOURCE_ROOT; };
+ BC46420EE0614C629630C574 /* NSString+UUID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+UUID.m"; path = "UAGithubEngine/UAGithubEngine/NSString+UUID.m"; sourceTree = SOURCE_ROOT; };
+ BD3D6FDD95D749FA92459CFA /* NSData+Base64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+Base64.m"; path = "UAGithubEngine/UAGithubEngine/NSData+Base64.m"; sourceTree = SOURCE_ROOT; };
+ C571371067C84788A667ED42 /* UAGithubJSONParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubJSONParser.h; path = UAGithubEngine/UAGithubEngine/UAGithubJSONParser.h; sourceTree = SOURCE_ROOT; };
+ C5DBAE78A68041DE984A49B9 /* UAGithubEngineConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubEngineConstants.m; path = UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.m; sourceTree = SOURCE_ROOT; };
+ CF1C79AA37CC4CD3BE3C5B73 /* UAGithubEngine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubEngine.m; path = UAGithubEngine/UAGithubEngine/UAGithubEngine.m; sourceTree = SOURCE_ROOT; };
+ D5A9092DCB154A84958C1DBB /* NSData+Base64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+Base64.h"; path = "UAGithubEngine/UAGithubEngine/NSData+Base64.h"; sourceTree = SOURCE_ROOT; };
+ D7E37CD5D47048E08D07E407 /* NSArray+Utilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+Utilities.m"; path = "UAGithubEngine/UAGithubEngine/NSArray+Utilities.m"; sourceTree = SOURCE_ROOT; };
+ D8DDE8EAD83E4000BD99E0C8 /* UAGithubJSONParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubJSONParser.h; path = UAGithubEngine/UAGithubEngine/UAGithubJSONParser.h; sourceTree = SOURCE_ROOT; };
+ E0E2308B08854A4B971DA07C /* NSArray+Utilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+Utilities.h"; path = "UAGithubEngine/UAGithubEngine/NSArray+Utilities.h"; sourceTree = SOURCE_ROOT; };
+ E433288BC4F74C77B874C864 /* NSString+UAGithubEngineUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+UAGithubEngineUtilities.m"; path = "UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.m"; sourceTree = SOURCE_ROOT; };
+ EAA9FED9E1B946B6B2057542 /* NSData+Base64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+Base64.m"; path = "UAGithubEngine/UAGithubEngine/NSData+Base64.m"; sourceTree = SOURCE_ROOT; };
+ FB090980108C47A99AE653D2 /* UAGithubURLConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = UAGithubURLConnection.h; path = UAGithubEngine/UAGithubEngine/UAGithubURLConnection.h; sourceTree = SOURCE_ROOT; };
+ FB427B6075294EC0BF365A9F /* UAGithubJSONParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = UAGithubJSONParser.m; path = UAGithubEngine/UAGithubEngine/UAGithubJSONParser.m; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D788B6F78AAB4416A608799D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 30E736BA36B74BD7B3023DA9 /* Cocoa.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 51D090CC67C24A0390580D6F /* Targets Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ 7423FC76945946AF8B6E23C0 /* Pods */,
+ 8ACA79ED1242464C93F00EAF /* PodsDummy_Pods.m */,
+ );
+ name = "Targets Support Files";
+ sourceTree = "";
+ };
+ 7423FC76945946AF8B6E23C0 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ B6BEC26D9D4F4757B56C50FB /* Pods-resources.sh */,
+ 693BD19947AF497393D3D079 /* Pods-prefix.pch */,
+ 3A3ED5974EC64035A948B119 /* Pods.xcconfig */,
+ );
+ name = Pods;
+ sourceTree = "";
+ };
+ 8C6AB5FAF7A149279485E5E0 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ C1334999CDDB41F3B365A71D /* UAGithubEngine */,
+ );
+ name = Pods;
+ sourceTree = "";
+ };
+ C10F3D4A761540748A697BCA = {
+ isa = PBXGroup;
+ children = (
+ D14E14A34C9C446A9942043C /* Products */,
+ 8C6AB5FAF7A149279485E5E0 /* Pods */,
+ 51D090CC67C24A0390580D6F /* Targets Support Files */,
+ C7741726721540BCACF8670C /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ C1334999CDDB41F3B365A71D /* UAGithubEngine */ = {
+ isa = PBXGroup;
+ children = (
+ E0E2308B08854A4B971DA07C /* NSArray+Utilities.h */,
+ D5A9092DCB154A84958C1DBB /* NSData+Base64.h */,
+ 3EE3AC25BAD74A24AEEB6332 /* NSInvocation+Blocks.h */,
+ 64E35A0E75DD4BC68B99064D /* NSString+UAGithubEngineUtilities.h */,
+ 8C1CA348FD0A405C8BDF6346 /* NSString+UUID.h */,
+ A37DB50F5D49458D9192DF15 /* UAGithubEngine.h */,
+ 408677757E0F4B489A7F11FD /* UAGithubEngineConstants.h */,
+ A0E801F452A94C01BA5E59CF /* UAGithubEngineRequestTypes.h */,
+ C571371067C84788A667ED42 /* UAGithubJSONParser.h */,
+ FB090980108C47A99AE653D2 /* UAGithubURLConnection.h */,
+ 25429A09DAEC4E03A300EECC /* UAReachability.h */,
+ D7E37CD5D47048E08D07E407 /* NSArray+Utilities.m */,
+ EAA9FED9E1B946B6B2057542 /* NSData+Base64.m */,
+ B6CA5B8104C540CA815DF5F6 /* NSInvocation+Blocks.m */,
+ 923876F672024443B7C766CE /* NSString+UAGithubEngineUtilities.m */,
+ 0D07A696F0D6411BA1E69687 /* NSString+UUID.m */,
+ CF1C79AA37CC4CD3BE3C5B73 /* UAGithubEngine.m */,
+ C5DBAE78A68041DE984A49B9 /* UAGithubEngineConstants.m */,
+ FB427B6075294EC0BF365A9F /* UAGithubJSONParser.m */,
+ 5104486EC9074ECA86472F40 /* UAGithubURLConnection.m */,
+ 194BC9AC46F140898A43A28D /* UAReachability.m */,
+ 200A871011754C7BA101358F /* NSArray+Utilities.h */,
+ 4DBD6F3FDF544074B111519C /* NSData+Base64.h */,
+ 94DDB5DDEE4E49C690089682 /* NSInvocation+Blocks.h */,
+ 93888C7EAA5349DBBBC3B412 /* NSString+UAGithubEngineUtilities.h */,
+ AB58F1E8A25042A4A7F288DE /* NSString+UUID.h */,
+ A0141FE6DDF841ED8127465A /* UAGithubEngine.h */,
+ 63F2821A24384CB5B1624CBD /* UAGithubEngineConstants.h */,
+ 07C4CF7B718D45AA8AD0A5F2 /* UAGithubEngineRequestTypes.h */,
+ D8DDE8EAD83E4000BD99E0C8 /* UAGithubJSONParser.h */,
+ 6769465C6D2940BCA361E449 /* UAGithubURLConnection.h */,
+ 31BA4CA42EA346EFA9DC92CC /* UAReachability.h */,
+ 9C9F2AE2D42D4542895DC992 /* NSArray+Utilities.m */,
+ BD3D6FDD95D749FA92459CFA /* NSData+Base64.m */,
+ 79F4D8577E2A4B7CADB943EF /* NSInvocation+Blocks.m */,
+ E433288BC4F74C77B874C864 /* NSString+UAGithubEngineUtilities.m */,
+ BC46420EE0614C629630C574 /* NSString+UUID.m */,
+ B92A60E16ADC4E4788D6FF87 /* UAGithubEngine.m */,
+ 8DC2FD42D9374D1496BAA96F /* UAGithubEngineConstants.m */,
+ A846831E12B04473AB71EE26 /* UAGithubJSONParser.m */,
+ 4DB8AEFB256F433E910D9FD1 /* UAGithubURLConnection.m */,
+ 6DAE02C5FCA54799B04EB0A1 /* UAReachability.m */,
+ );
+ name = UAGithubEngine;
+ sourceTree = "";
+ };
+ C7741726721540BCACF8670C /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 2710F48DEC214BFF969114A4 /* Cocoa.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ D14E14A34C9C446A9942043C /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ AD3D84191D6E45CFA8E8EFEA /* libPods.a */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ C1DE079654E842EEA6C6EEC4 /* Pods */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 61C7EF72AF0A419D88F126A6 /* Build configuration list for PBXNativeTarget "Pods" */;
+ buildPhases = (
+ 693193DC593446D9AB7140DC /* Sources */,
+ 5BC2FE66D56A4D17A3B2160E /* CopyFiles */,
+ D788B6F78AAB4416A608799D /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Pods;
+ productName = Pods;
+ productReference = AD3D84191D6E45CFA8E8EFEA /* libPods.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 3CE052DFA3784AAF827E421B /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0420;
+ };
+ buildConfigurationList = 15C330C1ACAD4F4C9416516F /* Build configuration list for PBXProject "Pods" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = C10F3D4A761540748A697BCA;
+ productRefGroup = D14E14A34C9C446A9942043C /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ C1DE079654E842EEA6C6EEC4 /* Pods */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 693193DC593446D9AB7140DC /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 9E8F1EB1D17F431FA8DF4EB9 /* NSArray+Utilities.m in Sources */,
+ 0C8FFFEDE9CE420DB1D3821B /* NSData+Base64.m in Sources */,
+ 9450BDFE7C1446C1BE7829D0 /* NSInvocation+Blocks.m in Sources */,
+ 5F60AEAE9F2049EF9C87F41B /* NSString+UAGithubEngineUtilities.m in Sources */,
+ A21C674C173C4282BA1105FB /* NSString+UUID.m in Sources */,
+ F75632447DD44C909E0566F2 /* UAGithubEngine.m in Sources */,
+ B87E88E23DC44F6AA5CEB509 /* UAGithubEngineConstants.m in Sources */,
+ 6906C50CE1D6493E9D58D48C /* UAGithubJSONParser.m in Sources */,
+ EEFCC88ECE874BC9A601D444 /* UAGithubURLConnection.m in Sources */,
+ A10B187EF47C4E98A1CF324E /* UAReachability.m in Sources */,
+ 2CEEA3D0FF4142949B115287 /* NSArray+Utilities.m in Sources */,
+ FE0863CE164243949811FDF7 /* NSData+Base64.m in Sources */,
+ F75BA592CC13441D80A037A1 /* NSInvocation+Blocks.m in Sources */,
+ FBE8B52D3DE442538BD7DEA4 /* NSString+UAGithubEngineUtilities.m in Sources */,
+ 5BA6C5077249470BBAEB26BE /* NSString+UUID.m in Sources */,
+ EC41C2A016BE4C1CA02C4577 /* UAGithubEngine.m in Sources */,
+ 9D1C8BEA21284BC6AF94D437 /* UAGithubEngineConstants.m in Sources */,
+ D98A0E54DD3B48EFB7D64F3B /* UAGithubJSONParser.m in Sources */,
+ C29B56AD710E4FD1AC3D6273 /* UAGithubURLConnection.m in Sources */,
+ 6CA90BC8086C407993733AB3 /* UAReachability.m in Sources */,
+ F99CA5D298A6411A9D7B052C /* PodsDummy_Pods.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1E025C13EB2E419D8D516D1B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Debug;
+ };
+ 2E6E382E55B04DF3B6AD4836 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 3A3ED5974EC64035A948B119 /* Pods.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DSTROOT = /tmp/xcodeproj.dst;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Pods-prefix.pch";
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ OTHER_LDFLAGS = "";
+ PODS_ROOT = "${SRCROOT}";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ };
+ name = Release;
+ };
+ 50EEAA462F7341739C4DA738 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Release;
+ };
+ FCBE05E0BCAA459992F0E3D9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 3A3ED5974EC64035A948B119 /* Pods.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ DSTROOT = /tmp/xcodeproj.dst;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "Pods-prefix.pch";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)";
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = "";
+ PODS_ROOT = "${SRCROOT}";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 15C330C1ACAD4F4C9416516F /* Build configuration list for PBXProject "Pods" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1E025C13EB2E419D8D516D1B /* Debug */,
+ 50EEAA462F7341739C4DA738 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 61C7EF72AF0A419D88F126A6 /* Build configuration list for PBXNativeTarget "Pods" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ FCBE05E0BCAA459992F0E3D9 /* Debug */,
+ 2E6E382E55B04DF3B6AD4836 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 3CE052DFA3784AAF827E421B /* Project object */;
+}
diff --git a/Pods/Pods.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/Pods.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/Pods.xcscheme
new file mode 100644
index 0000000..a385b95
--- /dev/null
+++ b/Pods/Pods.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/Pods.xcscheme
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Pods/Pods.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000..774f852
--- /dev/null
+++ b/Pods/Pods.xcodeproj/xcuserdata/paddy.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ SchemeUserState
+
+ Pods.xcscheme
+
+ orderHint
+ 1
+
+
+ SuppressBuildableAutocreation
+
+ C1DE079654E842EEA6C6EEC4
+
+ primary
+
+
+
+
+
diff --git a/Pods/PodsDummy_Pods.m b/Pods/PodsDummy_Pods.m
new file mode 100644
index 0000000..99f3235
--- /dev/null
+++ b/Pods/PodsDummy_Pods.m
@@ -0,0 +1,4 @@
+@interface PodsDummy_Pods : NSObject
+@end
+@implementation PodsDummy_Pods
+@end
diff --git a/Pods/UAGithubEngine/License.rtf b/Pods/UAGithubEngine/License.rtf
new file mode 100644
index 0000000..bb5f825
--- /dev/null
+++ b/Pods/UAGithubEngine/License.rtf
@@ -0,0 +1,29 @@
+{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\paperw11905\paperh16837\margl1440\margr1440\vieww20460\viewh13960\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+
+\f0\b\fs24 \cf0 UAGithubEngine License
+\b0 \
+Copyright (c) 2010, Owain R Hunt. All rights reserved.\
+\
+
+\b The Short Version\
+
+\b0 Use the code however you like, pass it around, change it, tweak it, build on it, release it, just make sure you include the line
+\b Includes UAGithubEngine by Owain R Hunt
+\b0 , preferably in your app's About box or equivalent.\
+\
+
+\b The Full Legalese
+\b0 \
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
+ * Redistributions in binary form must include the following notice, preferably in the software's About box or suitable equivalent:\
+
+\b Includes UAGithubEngine by Owain R Hunt
+\b0 \
+ * Neither the name Owain R Hunt nor the names of contributors to the code may be used to endorse or promote products derived from this software without specific prior written permission.\
+\
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OWAIN R HUNT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}
\ No newline at end of file
diff --git a/Pods/UAGithubEngine/README.md b/Pods/UAGithubEngine/README.md
new file mode 100644
index 0000000..7e923a9
--- /dev/null
+++ b/Pods/UAGithubEngine/README.md
@@ -0,0 +1,45 @@
+# UAGithubEngine
+by [Owain R Hunt](http://owainrhunt.com)
+
+UAGithubEngine is a wrapper around the Github API. Check out the [API documentation](http://developer.github.com/) for full details of what the API can do.
+
+UAGithubEngine is compatible with Mac OS X 10.7 and above, and iOS 5.0.
+
+## Note
+
+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.
+
+## How do I use it?
+
+* UAGithubEngine is available from [CocoaPods](http://cocoapods.org). 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 ` where you want to use the framework.
+
+* If you don't fancy using CocoaPods or the framework, either copy across all the files in the 'UAGithubEngine' group from the UAGithubEngine project into your app's project, or add the entire project to your workspace. Use `#import "UAGithubEngine.h"` where you want to use the engine.
+
+* Instantiate an engine, passing a username and password. If you want to receive notifications when reachability status changes (`UAGithubReachabilityStatusDidChangeNotification`), pass `YES` as the final argument.
+
+* Call some methods.
+
+## Code speaks louder than words.
+```objective-c
+UAGithubEngine *engine = [[UAGithubEngine alloc] initWithUsername:@"aUser" password:@"aPassword" withReachability:YES];
+
+[engine repositoriesWithSuccess:^(id response) {
+ NSLog(@"Got an array of repos: %@", obj);
+ } failure:^(NSError *error) {
+ NSLog(@"Oops: %@", error);
+ }];
+
+[engine user:@"this_guy" isCollaboratorForRepository:@"UAGithubEngine" success:^(BOOL collaborates) {
+ NSLog(@"%d", collaborates);
+ } failure:^(NSError *error){
+ NSLog(@"D'oh: %@", error);
+ }];
+```
+
+Any questions, comments, improvements and so on, either open an issue, find me on Twitter (@orhunt) or send me an email (owain@underscoreapps.com).
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSArray+Utilities.h b/Pods/UAGithubEngine/UAGithubEngine/NSArray+Utilities.h
new file mode 100644
index 0000000..d623e6c
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSArray+Utilities.h
@@ -0,0 +1,17 @@
+//
+// NSArray+Utilities.h
+// UAGithubEngine
+//
+// Created by Owain Hunt on 27/07/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import
+
+@interface NSArray (Utilities)
+
+- (id)firstObject;
+- (NSArray *)sortedWithKey:(NSString *)theKey ascending:(BOOL)ascending;
+
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSArray+Utilities.m b/Pods/UAGithubEngine/UAGithubEngine/NSArray+Utilities.m
new file mode 100644
index 0000000..5c51f08
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSArray+Utilities.m
@@ -0,0 +1,31 @@
+//
+// NSArray+Utilities.m
+// UAGithubEngine
+//
+// Created by Owain Hunt on 27/07/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+// Credit: http://troybrant.net/blog/2010/02/adding-firstobject-to-nsarray/
+
+#import "NSArray+Utilities.h"
+
+
+@implementation NSArray (Utilities)
+
+- (id)firstObject
+{
+ if ([self count] > 0)
+ {
+ return [self objectAtIndex:0];
+ }
+ return nil;
+}
+
+
+- (NSArray *)sortedWithKey:(NSString *)theKey ascending:(BOOL)ascending
+{
+ return [self sortedArrayUsingDescriptors:[NSArray arrayWithObject:[[NSSortDescriptor alloc] initWithKey:theKey ascending:ascending selector:@selector(caseInsensitiveCompare:)]]];
+}
+
+
+@end
\ No newline at end of file
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSData+Base64.h b/Pods/UAGithubEngine/UAGithubEngine/NSData+Base64.h
new file mode 100644
index 0000000..eb1ff48
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSData+Base64.h
@@ -0,0 +1,33 @@
+//
+// NSData+Base64.h
+// base64
+//
+// Created by Matt Gallagher on 2009/06/03.
+// Copyright 2009 Matt Gallagher. All rights reserved.
+//
+// Permission is given to use this source code file, free of charge, in any
+// project, commercial or otherwise, entirely at your risk, with the condition
+// that any redistribution (in part or whole) of source code must retain
+// this copyright and permission notice. Attribution in compiled projects is
+// appreciated but not required.
+//
+
+#import
+
+void *NewBase64Decode(
+ const char *inputBuffer,
+ size_t length,
+ size_t *outputLength);
+
+char *NewBase64Encode(
+ const void *inputBuffer,
+ size_t length,
+ bool separateLines,
+ size_t *outputLength);
+
+@interface NSData (Base64)
+
++ (NSData *)dataFromBase64String:(NSString *)aString;
+- (NSString *)base64EncodedString;
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSData+Base64.m b/Pods/UAGithubEngine/UAGithubEngine/NSData+Base64.m
new file mode 100644
index 0000000..bdfdb69
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSData+Base64.m
@@ -0,0 +1,298 @@
+//
+// NSData+Base64.m
+// base64
+//
+// Created by Matt Gallagher on 2009/06/03.
+// Copyright 2009 Matt Gallagher. All rights reserved.
+//
+// Permission is given to use this source code file, free of charge, in any
+// project, commercial or otherwise, entirely at your risk, with the condition
+// that any redistribution (in part or whole) of source code must retain
+// this copyright and permission notice. Attribution in compiled projects is
+// appreciated but not required.
+//
+
+#import "NSData+Base64.h"
+
+//
+// Mapping from 6 bit pattern to ASCII character.
+//
+static unsigned char base64EncodeLookup[65] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+//
+// Definition for "masked-out" areas of the base64DecodeLookup mapping
+//
+#define xx 65
+
+//
+// Mapping from ASCII character to 6 bit pattern.
+//
+static unsigned char base64DecodeLookup[256] =
+{
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, 62, xx, xx, xx, 63,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, xx, xx, xx, xx, xx, xx,
+ xx, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, xx, xx, xx, xx, xx,
+ xx, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx,
+};
+
+//
+// Fundamental sizes of the binary and base64 encode/decode units in bytes
+//
+#define BINARY_UNIT_SIZE 3
+#define BASE64_UNIT_SIZE 4
+
+//
+// NewBase64Decode
+//
+// Decodes the base64 ASCII string in the inputBuffer to a newly malloced
+// output buffer.
+//
+// inputBuffer - the source ASCII string for the decode
+// length - the length of the string or -1 (to specify strlen should be used)
+// outputLength - if not-NULL, on output will contain the decoded length
+//
+// returns the decoded buffer. Must be free'd by caller. Length is given by
+// outputLength.
+//
+void *NewBase64Decode(
+ const char *inputBuffer,
+ size_t length,
+ size_t *outputLength)
+{
+ if (length == -1)
+ {
+ length = strlen(inputBuffer);
+ }
+
+ size_t outputBufferSize =
+ ((length+BASE64_UNIT_SIZE-1) / BASE64_UNIT_SIZE) * BINARY_UNIT_SIZE;
+ unsigned char *outputBuffer = (unsigned char *)malloc(outputBufferSize);
+
+ size_t i = 0;
+ size_t j = 0;
+ while (i < length)
+ {
+ //
+ // Accumulate 4 valid characters (ignore everything else)
+ //
+ unsigned char accumulated[BASE64_UNIT_SIZE];
+ size_t accumulateIndex = 0;
+ while (i < length)
+ {
+ unsigned char decode = base64DecodeLookup[inputBuffer[i++]];
+ if (decode != xx)
+ {
+ accumulated[accumulateIndex] = decode;
+ accumulateIndex++;
+
+ if (accumulateIndex == BASE64_UNIT_SIZE)
+ {
+ break;
+ }
+ }
+ }
+
+ //
+ // Store the 6 bits from each of the 4 characters as 3 bytes
+ //
+ outputBuffer[j] = (accumulated[0] << 2) | (accumulated[1] >> 4);
+ outputBuffer[j + 1] = (accumulated[1] << 4) | (accumulated[2] >> 2);
+ outputBuffer[j + 2] = (accumulated[2] << 6) | accumulated[3];
+ j += accumulateIndex - 1;
+ }
+
+ if (outputLength)
+ {
+ *outputLength = j;
+ }
+ return outputBuffer;
+}
+
+//
+// NewBase64Decode
+//
+// Encodes the arbitrary data in the inputBuffer as base64 into a newly malloced
+// output buffer.
+//
+// inputBuffer - the source data for the encode
+// length - the length of the input in bytes
+// separateLines - if zero, no CR/LF characters will be added. Otherwise
+// a CR/LF pair will be added every 64 encoded chars.
+// outputLength - if not-NULL, on output will contain the encoded length
+// (not including terminating 0 char)
+//
+// returns the encoded buffer. Must be free'd by caller. Length is given by
+// outputLength.
+//
+char *NewBase64Encode(
+ const void *buffer,
+ size_t length,
+ bool separateLines,
+ size_t *outputLength)
+{
+ const unsigned char *inputBuffer = (const unsigned char *)buffer;
+
+ #define MAX_NUM_PADDING_CHARS 2
+ #define OUTPUT_LINE_LENGTH 64
+ #define INPUT_LINE_LENGTH ((OUTPUT_LINE_LENGTH / BASE64_UNIT_SIZE) * BINARY_UNIT_SIZE)
+ #define CR_LF_SIZE 2
+
+ //
+ // Byte accurate calculation of final buffer size
+ //
+ size_t outputBufferSize =
+ ((length / BINARY_UNIT_SIZE)
+ + ((length % BINARY_UNIT_SIZE) ? 1 : 0))
+ * BASE64_UNIT_SIZE;
+ if (separateLines)
+ {
+ outputBufferSize +=
+ (outputBufferSize / OUTPUT_LINE_LENGTH) * CR_LF_SIZE;
+ }
+
+ //
+ // Include space for a terminating zero
+ //
+ outputBufferSize += 1;
+
+ //
+ // Allocate the output buffer
+ //
+ char *outputBuffer = (char *)malloc(outputBufferSize);
+ if (!outputBuffer)
+ {
+ return NULL;
+ }
+
+ size_t i = 0;
+ size_t j = 0;
+ const size_t lineLength = separateLines ? INPUT_LINE_LENGTH : length;
+ size_t lineEnd = lineLength;
+
+ while (true)
+ {
+ if (lineEnd > length)
+ {
+ lineEnd = length;
+ }
+
+ for (; i + BINARY_UNIT_SIZE - 1 < lineEnd; i += BINARY_UNIT_SIZE)
+ {
+ //
+ // Inner loop: turn 48 bytes into 64 base64 characters
+ //
+ outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
+ outputBuffer[j++] = base64EncodeLookup[((inputBuffer[i] & 0x03) << 4)
+ | ((inputBuffer[i + 1] & 0xF0) >> 4)];
+ outputBuffer[j++] = base64EncodeLookup[((inputBuffer[i + 1] & 0x0F) << 2)
+ | ((inputBuffer[i + 2] & 0xC0) >> 6)];
+ outputBuffer[j++] = base64EncodeLookup[inputBuffer[i + 2] & 0x3F];
+ }
+
+ if (lineEnd == length)
+ {
+ break;
+ }
+
+ //
+ // Add the newline
+ //
+ outputBuffer[j++] = '\r';
+ outputBuffer[j++] = '\n';
+ lineEnd += lineLength;
+ }
+
+ if (i + 1 < length)
+ {
+ //
+ // Handle the single '=' case
+ //
+ outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
+ outputBuffer[j++] = base64EncodeLookup[((inputBuffer[i] & 0x03) << 4)
+ | ((inputBuffer[i + 1] & 0xF0) >> 4)];
+ outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i + 1] & 0x0F) << 2];
+ outputBuffer[j++] = '=';
+ }
+ else if (i < length)
+ {
+ //
+ // Handle the double '=' case
+ //
+ outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2];
+ outputBuffer[j++] = base64EncodeLookup[(inputBuffer[i] & 0x03) << 4];
+ outputBuffer[j++] = '=';
+ outputBuffer[j++] = '=';
+ }
+ outputBuffer[j] = 0;
+
+ //
+ // Set the output length and return the buffer
+ //
+ if (outputLength)
+ {
+ *outputLength = j;
+ }
+ return outputBuffer;
+}
+
+@implementation NSData (Base64)
+
+//
+// dataFromBase64String:
+//
+// Creates an NSData object containing the base64 decoded representation of
+// the base64 string 'aString'
+//
+// Parameters:
+// aString - the base64 string to decode
+//
+// returns the autoreleased NSData representation of the base64 string
+//
++ (NSData *)dataFromBase64String:(NSString *)aString
+{
+ NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding];
+ size_t outputLength;
+ void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength);
+ NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength];
+ free(outputBuffer);
+ return result;
+}
+
+//
+// base64EncodedString
+//
+// Creates an NSString object that contains the base 64 encoding of the
+// receiver's data. Lines are broken at 64 characters long.
+//
+// returns an autoreleased NSString being the base 64 representation of the
+// receiver.
+//
+- (NSString *)base64EncodedString
+{
+ size_t outputLength;
+ char *outputBuffer =
+ NewBase64Encode([self bytes], [self length], true, &outputLength);
+
+ NSString *result =
+ [[NSString alloc]
+ initWithBytes:outputBuffer
+ length:outputLength
+ encoding:NSASCIIStringEncoding];
+ free(outputBuffer);
+ return result;
+}
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.h b/Pods/UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.h
new file mode 100755
index 0000000..5444ad7
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.h
@@ -0,0 +1,19 @@
+// NSInvocation+Blocks.h - http://github.com/rentzsch/NSInvocation-blocks
+// Copyright (c) 2010 Jonathan 'Wolf' Rentzsch: http://rentzsch.com
+// Some rights reserved: http://opensource.org/licenses/mit-license.php
+
+#import
+
+@interface NSInvocation (Blocks)
+
+/*
+ Usage example:
+
+ NSInvocation *invocation = [NSInvocation jr_invocationWithTarget:myObject block:^(id myObject){
+ [myObject someMethodWithArg:42.0];
+ }];
+ */
+
++ (id)jr_invocationWithTarget:(id)target block:(void (^)(id target))block;
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.m b/Pods/UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.m
new file mode 100755
index 0000000..c613b74
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSInvocation+Blocks.m
@@ -0,0 +1,47 @@
+// NSInvocation+Blocks.m - http://github.com/rentzsch/NSInvocation-blocks
+// Copyright (c) 2010 Jonathan 'Wolf' Rentzsch: http://rentzsch.com
+// Some rights reserved: http://opensource.org/licenses/mit-license.php
+
+#import "NSInvocation+Blocks.h"
+
+@interface JRInvocationGrabber : NSProxy {
+ id target;
+ NSInvocation *invocation;
+}
+@property (retain) id target;
+@property (retain) NSInvocation *invocation;
+@end
+
+@implementation JRInvocationGrabber
+@synthesize target, invocation;
+
+- (id)initWithTarget:(id)target_ {
+ self.target = target_;
+ return self;
+}
+
+- (NSMethodSignature*)methodSignatureForSelector:(SEL)selector_ {
+ return [self.target methodSignatureForSelector:selector_];
+}
+
+- (void)forwardInvocation:(NSInvocation*)invocation_ {
+ [invocation_ setTarget:self.target];
+ self.invocation = invocation_;
+}
+
+- (void)dealloc {
+ self.target = nil;
+ self.invocation = nil;
+}
+@end
+
+
+@implementation NSInvocation (jr_block)
+
++ (id)jr_invocationWithTarget:(id)target_ block:(void (^)(id target))block_ {
+ JRInvocationGrabber *grabber = [[JRInvocationGrabber alloc] initWithTarget:target_];
+ block_(grabber);
+ return grabber.invocation;
+}
+
+@end
\ No newline at end of file
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.h b/Pods/UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.h
new file mode 100644
index 0000000..13fda5c
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.h
@@ -0,0 +1,18 @@
+//
+// NSString+UAGithubEngineUtilities.h
+// UAGithubEngine
+//
+// Created by Owain Hunt on 08/04/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import
+
+
+
+@interface NSString(UAGithubEngineUtilities)
+
+- (NSDate *)dateFromGithubDateString;
+- (NSString *)encodedString;
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.m b/Pods/UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.m
new file mode 100644
index 0000000..8c0c55e
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSString+UAGithubEngineUtilities.m
@@ -0,0 +1,43 @@
+//
+// NSString+UAGithubEngineUtilities.m
+// UAGithubEngine
+//
+// Created by Owain Hunt on 08/04/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import "NSString+UAGithubEngineUtilities.h"
+
+
+@implementation NSString(UAGithubEngineUtilities)
+
+- (NSDate *)dateFromGithubDateString {
+
+ NSDateFormatter *df = [[NSDateFormatter alloc] init];
+ NSString *dateString = self;
+
+ if (![[self substringWithRange:NSMakeRange([self length] - 1, 1)] isEqualToString:@"Z"])
+ {
+ NSMutableString *newDate = [self mutableCopy];
+ [newDate deleteCharactersInRange:NSMakeRange(19, 1)];
+ [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
+ dateString = newDate;
+ }
+ else
+ {
+ [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
+ }
+
+ return [df dateFromString:dateString];
+
+}
+
+
+- (NSString *)encodedString
+{
+ return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)self, NULL, (CFStringRef)@";/?:@&=$+{}<>,", kCFStringEncodingUTF8);
+
+}
+
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSString+UUID.h b/Pods/UAGithubEngine/UAGithubEngine/NSString+UUID.h
new file mode 100755
index 0000000..a6bdd26
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSString+UUID.h
@@ -0,0 +1,14 @@
+//
+// NSString+UUID.h
+// MGTwitterEngine
+//
+// Created by Matt Gemmell on 16/09/2007.
+// Copyright 2008 Instinctive Code.
+//
+
+
+@interface NSString (UUID)
+
++ (NSString*)stringWithNewUUID;
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/NSString+UUID.m b/Pods/UAGithubEngine/UAGithubEngine/NSString+UUID.m
new file mode 100644
index 0000000..2345c29
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/NSString+UUID.m
@@ -0,0 +1,27 @@
+//
+// NSString+UUID.m
+// MGTwitterEngine
+//
+// Created by Matt Gemmell on 16/09/2007.
+// Copyright 2008 Instinctive Code.
+//
+
+#import "NSString+UUID.h"
+
+
+@implementation NSString (UUID)
+
+
++ (NSString*)stringWithNewUUID
+{
+ // Create a new UUID
+ CFUUIDRef uuidObj = CFUUIDCreate(nil);
+
+ // Get the string representation of the UUID
+ NSString *newUUID = (__bridge_transfer NSString*)CFUUIDCreateString(nil, uuidObj);
+ CFRelease(uuidObj);
+ return newUUID;
+}
+
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngine.h b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngine.h
new file mode 100644
index 0000000..8cb41e3
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngine.h
@@ -0,0 +1,363 @@
+//
+// UAGithubEngine.h
+// UAGithubEngine
+//
+// Created by Owain Hunt on 02/04/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import
+@class UAReachability;
+
+typedef void (^UAGithubEngineSuccessBlock)(id);
+typedef void (^UAGithubEngineBooleanSuccessBlock)(BOOL);
+typedef void (^UAGithubEngineFailureBlock)(NSError *);
+
+@interface UAGithubEngine : NSObject
+
+@property (strong) NSString *username;
+@property (nonatomic, strong) NSString *password;
+@property (nonatomic, strong) UAReachability *reachability;
+@property (nonatomic, assign, readonly) BOOL isReachable;
+
+- (id)initWithUsername:(NSString *)aUsername password:(NSString *)aPassword withReachability:(BOOL)withReach;
+
+/*
+ Where methods take a 'whateverPath' argument, supply the full path to 'whatever'.
+ For example, if the method calls for 'repositoryPath', supply @"username/repository".
+
+ Where methods take a 'whateverName' argument, supply just the name of 'whatever'. The username used will be that set in the engine instance.
+
+ For methods that take an NSDictionary as an argument, this should contain the relevant keys and values for the required API call.
+ See the documentation for more details on updating repositories, and adding and editing issues.
+*/
+
+#pragma mark
+#pragma mark Gists
+#pragma mark
+
+- (void)gistsForUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)gistsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)publicGistsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)starredGistsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)gist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createGist:(NSDictionary *)gistDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editGist:(NSString *)gistId withDictionary:(NSDictionary *)gistDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)starGist:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)unstarGist:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)gistIsStarred:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)forkGist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteGist:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Comments
+
+- (void)commentsForGist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)gistComment:(NSInteger)commentId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addCommitComment:(NSDictionary *)commentDictionary forGist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editGistComment:(NSInteger)commentId withDictionary:(NSDictionary *)commentDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteGistComment:(NSInteger)commentId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark
+#pragma mark Issues
+#pragma mark
+
+- (void)assignedIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createdIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)subscribedIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)mentionedIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)openIssuesForRepository:(NSString *)repositoryPath withParameters:(NSDictionary *)parameters success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)closedIssuesForRepository:(NSString *)repositoryPath withParameters:(NSDictionary *)parameters success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)issue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)issueDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addIssueForRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)issueDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)closeIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)reopenIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Comments
+
+- (void)commentsForIssue:(NSInteger)issueNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)issueComment:(NSInteger)commentNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addComment:(NSString *)comment toIssue:(NSInteger)issueNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editComment:(NSInteger)commentNumber forRepository:(NSString *)repositoryPath withBody:(NSString *)commentBody success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteComment:(NSInteger)commentNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Events
+
+- (void)eventsForIssue:(NSInteger)issueId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)issueEventsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)issueEvent:(NSInteger)eventId forRepository:(NSString*)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Labels
+
+// NOTE where it says ':id' in the documentation for a label, it actually should say ':name'
+- (void)labelsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)label:(NSString *)labelName inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addLabelToRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)labelDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editLabel:(NSString *)labelName inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)labelDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)removeLabel:(NSString *)labelName fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)labelsForIssue:(NSInteger)issueId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+// Note labels supplied to the following method must already exist within the repository (-addLabelToRepository:...)
+- (void)addLabels:(NSArray *)labels toIssue:(NSInteger)issueId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)removeLabel:(NSString *)labelNamed fromIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)removeLabelsFromIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)replaceAllLabelsForIssue:(NSInteger)issueId inRepository:(NSString *)repositoryPath withLabels:(NSArray *)labels success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)labelsForIssueInMilestone:(NSInteger)milestoneId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Milestones
+
+- (void)milestonesForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)milestone:(NSInteger)milestoneNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createMilestoneWithInfo:(NSDictionary *)infoDictionary forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)updateMilestone:(NSInteger)milestoneNumber forRepository:(NSString *)repositoryPath withInfo:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteMilestone:(NSInteger)milestoneNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addIssue:(NSInteger)issueId toMilestone:(NSInteger)milestoneId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark
+#pragma mark Organisations
+#pragma mark
+
+- (void)organizationsForUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)organizationsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)organization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)updateOrganization:(NSString *)org withDictionary:(NSDictionary *)orgDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Members
+
+- (void)membersOfOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)user:(NSString *)user isMemberOfOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)removeUser:(NSString *)user fromOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)publicMembersOfOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)user:(NSString *)user isPublicMemberOfOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)publicizeMembershipOfUser:(NSString *)user inOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)concealMembershipOfUser:(NSString *)user inOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Teams
+
+- (void)teamsInOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)team:(NSInteger)teamId withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createTeam:(NSDictionary *)teamDictionary inOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editTeam:(NSInteger)teamId withDictionary:(NSDictionary *)teamDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)membersOfTeam:(NSInteger)teamId withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)user:(NSString *)user isMemberOfTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addUser:(NSString *)user toTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)removeUser:(NSString *)user fromTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)repositoriesForTeam:(NSInteger)teamId withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)repository:(NSString *)repositoryPath isManagedByTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addRepository:(NSString *)repositoryPath toTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)removeRepository:(NSString *)repositoryPath fromTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark
+#pragma mark Pull Requests
+#pragma mark
+
+- (void)pullRequestsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)pullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createPullRequest:(NSDictionary *)pullRequestDictionary forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)updatePullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)pullRequestDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)commitsInPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)filesInPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)pullRequest:(NSInteger)pullRequestId isMergedForRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)mergePullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Comments
+
+- (void)commentsForPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)pullRequestComment:(NSInteger)commentId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createPullRequestComment:(NSDictionary *)commentDictionary forPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editPullRequestComment:(NSInteger)commentId forRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)commentDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deletePullRequestComment:(NSInteger)commentId forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark
+#pragma mark Repositories
+#pragma mark
+
+- (void)repositoriesForUser:(NSString *)aUser includeWatched:(BOOL)watched success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)repositoriesForUser:(NSString *)aUser includeWatched:(BOOL)watched page:(int)page success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)repositoriesWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createRepositoryWithInfo:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)repository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)updateRepository:(NSString *)repositoryPath withInfo:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)contributorsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)languageBreakdownForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)teamsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)annotatedTagsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)branchesForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Collaborators
+
+- (void)collaboratorsForRepository:(NSString *)repositoryName success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)user:(NSString *)user isCollaboratorForRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addCollaborator:(NSString *)collaborator toRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)removeCollaborator:(NSString *)collaborator fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Commits
+
+- (void)commitsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)commit:(NSString *)commitSha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Commit Comments
+
+- (void)commitCommentsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)commitCommentsForCommit:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addCommitComment:(NSDictionary *)commentDictionary forCommit:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)commitComment:(NSInteger)commentId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editCommitComment:(NSInteger)commentId inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteCommitComment:(NSInteger)commentId inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Downloads
+
+- (void)downloadsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)download:(NSInteger)downloadId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+// See http://developer.github.com/v3/repos/downloads for more information: this is a two-part process.
+- (void)addDownloadToRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)downloadDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteDownload:(NSInteger)downloadId fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Forks
+
+- (void)forksForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)forkRepository:(NSString *)repositoryPath inOrganization:(NSString *)org success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)forkRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Keys
+
+- (void)deployKeysForRepository:(NSString *)repositoryName success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deployKey:(NSInteger)keyId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addDeployKey:(NSString *)keyData withTitle:(NSString *)keyTitle ToRepository:(NSString *)repositoryName success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editDeployKey:(NSInteger)keyId inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)keyDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteDeployKey:(NSInteger)keyId fromRepository:(NSString *)repositoryName success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Watching
+
+- (void)watchersForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)watchedRepositoriesForUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)watchedRepositoriessuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)repositoryIsWatched:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)watchRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)unwatchRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Hooks
+
+- (void)hooksForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)hook:(NSInteger)hookId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addHook:(NSDictionary *)hookDictionary forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editHook:(NSInteger)hookId forRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)hookDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)testHook:(NSInteger)hookId forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteHook:(NSInteger)hookId fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark
+#pragma mark Users
+#pragma mark
+
+- (void)user:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)userWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)editUser:(NSDictionary *)userDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Emails
+
+- (void)emailAddressessuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addEmailAddresses:(NSArray *)emails success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deleteEmailAddresses:(NSArray *)emails success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Followers
+
+- (void)followers:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)followersWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)following:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)follows:(NSString *)user success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)follow:(NSString *)user success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)unfollow:(NSString *)user success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Keys
+
+- (void)publicKeysWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)publicKey:(NSInteger)keyId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)addPublicKey:(NSDictionary *)keyDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)updatePublicKey:(NSInteger)keyId withInfo:(NSDictionary *)keyDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)deletePublicKey:(NSInteger)keyId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark
+#pragma mark Events
+#pragma mark
+
+- (void)eventsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)eventsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)eventsForNetwork:(NSString *)networkPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)eventsReceivedByUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)eventsPerformedByUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)publicEventsPerformedByUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)eventsForOrganization:(NSString *)organization user:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)publicEventsForOrganization:(NSString *)organization success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark -
+#pragma mark Git Database API
+#pragma mark -
+
+// The following methods access the Git Database API.
+// See http://developer.github.com/v3/git/ for more information.
+
+#pragma mark Trees
+
+- (void)tree:(NSString *)sha inRepository:(NSString *)repositoryPath recursive:(BOOL)recursive success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createTree:(NSDictionary *)treeDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Blobs
+
+- (void)blobForSHA:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createBlob:(NSDictionary *)blobDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+/*
+- (void)blob:(NSString *)blobPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)rawBlob:(NSString *)blobPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+ */
+
+
+#pragma mark References
+
+- (void)reference:(NSString *)reference inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)referencesInRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)tagsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createReference:(NSDictionary *)refDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)updateReference:(NSString *)reference inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)referenceDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Tags
+
+- (void)tag:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createTagObject:(NSDictionary *)tagDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+#pragma mark Raw Commits
+
+- (void)rawCommit:(NSString *)commit inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+- (void)createRawCommit:(NSDictionary *)commitDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock;
+
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngine.m b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngine.m
new file mode 100644
index 0000000..31452d0
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngine.m
@@ -0,0 +1,1538 @@
+//
+// UAGithubEngine.m
+// UAGithubEngine
+//
+// Created by Owain Hunt on 02/04/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import "UAGithubEngine.h"
+#import "UAReachability.h"
+
+#import "UAGithubJSONParser.h"
+#import "UAGithubEngineConstants.h"
+#import "UAGithubEngineRequestTypes.h"
+#import "UAGithubURLConnection.h"
+
+#import "NSString+UAGithubEngineUtilities.h"
+#import "NSData+Base64.h"
+#import "NSString+UUID.h"
+
+#import "NSInvocation+Blocks.h"
+
+#define API_PROTOCOL @"https://"
+#define API_DOMAIN @"api.github.com"
+
+
+@interface UAGithubEngine (Private)
+
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType error:(NSError **)error;
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType page:(NSInteger)page error:(NSError **)error;
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType withParameters:(id)params error:(NSError **)error;
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType withParameters:(id)params page:(NSInteger)page error:(NSError **)error;
+
+@end
+
+
+@implementation UAGithubEngine
+
+@synthesize username, password, reachability, isReachable;
+
+#pragma mark
+#pragma mark Setup & Teardown
+#pragma mark
+
+- (id)initWithUsername:(NSString *)aUsername password:(NSString *)aPassword withReachability:(BOOL)withReach
+{
+ self = [super init];
+ if (self)
+ {
+ username = aUsername;
+ password = aPassword;
+ if (withReach)
+ {
+ reachability = [[UAReachability alloc] init];
+ }
+ }
+
+
+ return self;
+
+}
+
+
+#pragma mark
+#pragma mark Reachability
+#pragma mark
+
+- (BOOL)isReachable
+{
+ return [self.reachability currentReachabilityStatus];
+}
+
+
+- (UAReachability *)reachability
+{
+ if (!reachability)
+ {
+ reachability = [[UAReachability alloc] init];
+ }
+
+ return reachability;
+}
+
+
+#pragma mark
+#pragma mark Request Management
+#pragma mark
+
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType withParameters:(id)params page:(NSInteger)page error:(NSError * __strong *)error
+{
+
+ NSMutableString *urlString = [NSMutableString stringWithFormat:@"%@%@/%@", API_PROTOCOL, API_DOMAIN, path];
+ NSData *jsonData = nil;
+ NSError *serializationError = nil;
+
+ if ([params count] > 0)
+ {
+ jsonData = [NSJSONSerialization dataWithJSONObject:params options:0 error:&serializationError];
+
+ if (serializationError)
+ {
+ *error = serializationError;
+ return nil;
+ }
+ }
+
+
+ NSMutableString *querystring = nil;
+
+ if (!jsonData && [params count] > 0)
+ {
+ // Is the querystring already present (ie a question mark is present in the path)? Create it if not.
+ if ([path rangeOfString:@"?"].location == NSNotFound)
+ {
+ querystring = [NSMutableString stringWithString:@"?"];
+ }
+
+ for (NSString *key in [params allKeys])
+ {
+ [querystring appendFormat:@"%@%@=%@", [querystring length] <= 1 ? @"" : @"&", key, [[params valueForKey:key] encodedString]];
+ }
+ }
+
+ if (page > 0)
+ {
+ if (querystring)
+ {
+ [querystring appendFormat:@"&page=%ld", page];
+ }
+ else
+ {
+ querystring = [NSString stringWithFormat:@"?page=%ld", page];
+ }
+ }
+
+ if ([querystring length] > 0)
+ {
+ [urlString appendString:querystring];
+ }
+
+ NSURL *theURL = [NSURL URLWithString:urlString];
+
+ NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:theURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:30];
+ if (self.username && self.password)
+ {
+ NSData *data = [NSData dataWithData:[[NSString stringWithFormat:@"%@:%@", self.username, self.password] dataUsingEncoding:NSUTF8StringEncoding]];
+ NSString *headerval = [data base64EncodedString];
+ [urlRequest setValue:[NSString stringWithFormat:@"Basic %@", headerval] forHTTPHeaderField:@"Authorization"];
+ }
+
+ if (jsonData)
+ {
+ [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
+ [urlRequest setHTTPBody:jsonData];
+ }
+
+ switch (requestType)
+ {
+ case UAGithubIssueAddRequest:
+ case UAGithubRepositoryCreateRequest:
+ case UAGithubRepositoryDeleteConfirmationRequest:
+ case UAGithubMilestoneCreateRequest:
+ case UAGithubDeployKeyAddRequest:
+ case UAGithubDeployKeyDeleteRequest:
+ case UAGithubIssueCommentAddRequest:
+ case UAGithubPublicKeyAddRequest:
+ case UAGithubRepositoryLabelAddRequest:
+ case UAGithubIssueLabelAddRequest:
+ case UAGithubTreeCreateRequest:
+ case UAGithubBlobCreateRequest:
+ case UAGithubReferenceCreateRequest:
+ case UAGithubRawCommitCreateRequest:
+ case UAGithubGistCreateRequest:
+ case UAGithubGistCommentCreateRequest:
+ case UAGithubGistForkRequest:
+ case UAGithubPullRequestCreateRequest:
+ case UAGithubPullRequestCommentCreateRequest:
+ case UAGithubEmailAddRequest:
+ case UAGithubTeamCreateRequest:
+ {
+ [urlRequest setHTTPMethod:@"POST"];
+ }
+ break;
+
+ case UAGithubCollaboratorAddRequest:
+ case UAGithubIssueLabelReplaceRequest:
+ case UAGithubFollowRequest:
+ case UAGithubGistStarRequest:
+ case UAGithubPullRequestMergeRequest:
+ case UAGithubOrganizationMembershipPublicizeRequest:
+ case UAGithubTeamMemberAddRequest:
+ case UAGithubTeamRepositoryManagershipAddRequest:
+ {
+ [urlRequest setHTTPMethod:@"PUT"];
+ }
+ break;
+
+ case UAGithubRepositoryUpdateRequest:
+ case UAGithubMilestoneUpdateRequest:
+ case UAGithubIssueEditRequest:
+ case UAGithubIssueCommentEditRequest:
+ case UAGithubPublicKeyEditRequest:
+ case UAGithubUserEditRequest:
+ case UAGithubRepositoryLabelEditRequest:
+ case UAGithubReferenceUpdateRequest:
+ case UAGithubGistUpdateRequest:
+ case UAGithubGistCommentUpdateRequest:
+ case UAGithubPullRequestUpdateRequest:
+ case UAGithubPullRequestCommentUpdateRequest:
+ case UAGithubOrganizationUpdateRequest:
+ case UAGithubTeamUpdateRequest:
+ {
+ [urlRequest setHTTPMethod:@"PATCH"];
+ }
+ break;
+
+ case UAGithubMilestoneDeleteRequest:
+ case UAGithubIssueDeleteRequest:
+ case UAGithubIssueCommentDeleteRequest:
+ case UAGithubUnfollowRequest:
+ case UAGithubPublicKeyDeleteRequest:
+ case UAGithubCollaboratorRemoveRequest:
+ case UAGithubRepositoryLabelRemoveRequest:
+ case UAGithubIssueLabelRemoveRequest:
+ case UAGithubGistUnstarRequest:
+ case UAGithubGistDeleteRequest:
+ case UAGithubGistCommentDeleteRequest:
+ case UAGithubPullRequestCommentDeleteRequest:
+ case UAGithubEmailDeleteRequest:
+ case UAGithubOrganizationMemberRemoveRequest:
+ case UAGithubOrganizationMembershipConcealRequest:
+ case UAGithubTeamDeleteRequest:
+ case UAGithubTeamMemberRemoveRequest:
+ case UAGithubTeamRepositoryManagershipRemoveRequest:
+ {
+ [urlRequest setHTTPMethod:@"DELETE"];
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ NSError __block __strong *blockError = nil;
+ NSError *connectionError = nil;
+
+ id returnValue = [UAGithubURLConnection asyncRequest:urlRequest
+ success:^(NSData *data, NSURLResponse *response)
+ {
+ NSHTTPURLResponse *resp = (NSHTTPURLResponse *)response;
+ NSInteger statusCode = resp.statusCode;
+
+
+ if ([[[resp allHeaderFields] allKeys] containsObject:@"X-Ratelimit-Remaining"] && [[[resp allHeaderFields] valueForKey:@"X-Ratelimit-Remaining"] isEqualToString:@"1"])
+ {
+ blockError = [NSError errorWithDomain:UAGithubAPILimitReached code:statusCode userInfo:[NSDictionary dictionaryWithObject:urlRequest forKey:@"request"]];
+ return (id)[NSNull null];
+ }
+
+ if (statusCode >= 400)
+ {
+ if (statusCode == 404)
+ {
+ switch (requestType)
+ {
+ case UAGithubFollowingRequest:
+ case UAGithubGistStarStatusRequest:
+ case UAGithubOrganizationMembershipStatusRequest:
+ case UAGithubTeamMembershipStatusRequest:
+ case UAGithubTeamRepositoryManagershipStatusRequest:
+ {
+ return (id)[NSNumber numberWithBool:NO];
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ blockError = [NSError errorWithDomain:@"HTTP" code:statusCode userInfo:[NSDictionary dictionaryWithObject:urlRequest forKey:@"request"]];
+
+ return (id)[NSNull null];
+
+ }
+
+ else if (statusCode == 204)
+ {
+ return (id)[NSNumber numberWithBool:YES];
+ }
+
+ else
+ {
+ return [UAGithubJSONParser parseJSON:data error:&blockError];
+ }
+
+ }
+ error:&connectionError];
+
+ if (blockError)
+ {
+ *error = blockError;
+ return nil;
+ }
+ else if (connectionError)
+ {
+ *error = connectionError;
+ return nil;
+ }
+
+ // If returnValue is of class NSArray, it contains an array of NSDictionary objects.
+ // If it's an NSNumber YES, then we're looking at a successful call that expects a No Content response.
+ // If it's an NSNumber NO then that's a successful call to a method that returns an expected 404 response.
+
+ return returnValue;
+}
+
+
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType withParameters:(id)params error:(NSError **)error
+{
+ return [self sendRequest:path requestType:requestType responseType:responseType withParameters:params page:0 error:error];
+}
+
+
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType page:(NSInteger)page error:(NSError **)error
+{
+ return [self sendRequest:path requestType:requestType responseType:responseType withParameters:nil page:page error:error];
+}
+
+
+- (id)sendRequest:(NSString *)path requestType:(UAGithubRequestType)requestType responseType:(UAGithubResponseType)responseType error:(NSError **)error
+{
+ return [self sendRequest:path requestType:requestType responseType:responseType withParameters:nil page:0 error:error];
+}
+
+
+- (void)invoke:(void (^)(id obj))invocationBlock success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ NSError __unsafe_unretained *error = nil;
+ NSError * __unsafe_unretained *errorPointer = &error;
+ id __unsafe_unretained result;
+
+ NSInvocation *invocation = [NSInvocation jr_invocationWithTarget:self block:invocationBlock];
+ // Method signatures differ between invocations, but the last argument is always where the NSError lives
+ [invocation setArgument:&errorPointer atIndex:[[invocation methodSignature] numberOfArguments] - 1];
+ [invocation invoke];
+ [invocation getReturnValue:&result];
+
+ if (error)
+ {
+ failureBlock(error);
+ return;
+ }
+
+ successBlock(result);
+}
+
+
+- (void)invoke:(void (^)(id obj))invocationBlock booleanSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+
+ NSError __unsafe_unretained *error = nil;
+ NSError * __unsafe_unretained *errorPointer = &error;
+ BOOL result;
+
+ NSInvocation *invocation = [NSInvocation jr_invocationWithTarget:self block:invocationBlock];
+ [invocation setArgument:&errorPointer atIndex:[[invocation methodSignature] numberOfArguments] - 1];
+ [invocation invoke];
+ [invocation getReturnValue:&result];
+
+ if (error)
+ {
+ failureBlock(error);
+ return;
+ }
+
+ successBlock(result);
+}
+
+
+#pragma mark
+#pragma mark Gists
+#pragma mark
+
+- (void)gistsForUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/gists", user] requestType:UAGithubGistsRequest responseType:UAGithubGistsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)gistsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"gists" requestType:UAGithubGistsRequest responseType:UAGithubGistsResponse error:nil];} success:successBlock failure:failureBlock];
+
+}
+
+- (void)publicGistsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"gists/public" requestType:UAGithubGistsRequest responseType:UAGithubGistsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)starredGistsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"gists/starred" requestType:UAGithubGistsRequest responseType:UAGithubGistsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)gist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@", gistId] requestType:UAGithubGistRequest responseType:UAGithubGistResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createGist:(NSDictionary *)gistDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"gists" requestType:UAGithubGistCreateRequest responseType:UAGithubGistResponse withParameters:gistDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editGist:(NSString *)gistId withDictionary:(NSDictionary *)gistDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@", gistId] requestType:UAGithubGistUpdateRequest responseType:UAGithubGistResponse withParameters:gistDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)starGist:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@/star", gistId] requestType:UAGithubGistStarRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)unstarGist:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@/star", gistId] requestType:UAGithubGistUnstarRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)gistIsStarred:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@/star", gistId] requestType:UAGithubGistStarStatusRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)forkGist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@/fork", gistId] requestType:UAGithubGistForkRequest responseType:UAGithubGistResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteGist:(NSString *)gistId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@", gistId] requestType:UAGithubGistDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Comments
+
+- (void)commentsForGist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@/comments", gistId] requestType:UAGithubGistCommentsRequest responseType:UAGithubGistCommentsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)gistComment:(NSInteger)commentId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/comments/%ld", commentId] requestType:UAGithubGistCommentRequest responseType:UAGithubGistCommentResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addCommitComment:(NSDictionary *)commentDictionary forGist:(NSString *)gistId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/%@/comments", gistId] requestType:UAGithubGistCommentCreateRequest responseType:UAGithubGistCommentResponse withParameters:commentDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editGistComment:(NSInteger)commentId withDictionary:(NSDictionary *)commentDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/comments/%ld", commentId] requestType:UAGithubGistCommentUpdateRequest responseType:UAGithubGistCommentResponse withParameters:commentDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteGistComment:(NSInteger)commentId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"gists/comments/%ld", commentId] requestType:UAGithubGistCommentDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark
+#pragma mark Issues
+#pragma mark
+
+- (void)assignedIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"issues?state=%@", state] requestType:UAGithubIssuesOpenRequest responseType:UAGithubIssuesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createdIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"issues?filter=created&state=%@", state] requestType:UAGithubIssuesOpenRequest responseType:UAGithubIssuesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)subscribedIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"issues?filter=subscribed&state=%@", state] requestType:UAGithubIssuesOpenRequest responseType:UAGithubIssuesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)mentionedIssuesWithState:(NSString *)state success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"issues?filter=mentioned&state=%@", state] requestType:UAGithubIssuesOpenRequest responseType:UAGithubIssuesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)openIssuesForRepository:(NSString *)repositoryPath withParameters:(NSDictionary *)parameters success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues", repositoryPath] requestType:UAGithubIssuesOpenRequest responseType:UAGithubIssuesResponse withParameters:parameters error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)closedIssuesForRepository:(NSString *)repositoryPath withParameters:(NSDictionary *)parameters success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues?state=closed", repositoryPath] requestType:UAGithubIssuesClosedRequest responseType:UAGithubIssuesResponse withParameters:parameters error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)issue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld", repositoryPath, issueNumber] requestType:UAGithubIssueRequest responseType:UAGithubIssueResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)issueDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld", repositoryPath, issueNumber] requestType:UAGithubIssueEditRequest responseType:UAGithubIssueResponse withParameters:issueDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addIssueForRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)issueDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues", repositoryPath] requestType:UAGithubIssueAddRequest responseType:UAGithubIssueResponse withParameters:issueDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)closeIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ NSDictionary *paramsDictionary = @{ @"state" : @"closed" };
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld", repositoryPath, issueNumber] requestType:UAGithubIssueEditRequest responseType:UAGithubIssueResponse withParameters:paramsDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)reopenIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ NSDictionary *paramsDictionary = @{ @"state" : @"open" };
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld", repositoryPath, issueNumber] requestType:UAGithubIssueEditRequest responseType:UAGithubIssueResponse withParameters:paramsDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld", repositoryPath, issueNumber] requestType:UAGithubIssueRequest responseType:UAGithubIssueResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Comments
+
+- (void)commentsForIssue:(NSInteger)issueNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/comments", repositoryPath, issueNumber] requestType:UAGithubIssueCommentsRequest responseType:UAGithubIssueCommentsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)issueComment:(NSInteger)commentNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/comments/%ld", repositoryPath, commentNumber] requestType:UAGithubIssueCommentRequest responseType:UAGithubIssueCommentResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addComment:(NSString *)comment toIssue:(NSInteger)issueNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ NSDictionary *commentDictionary = [NSDictionary dictionaryWithObject:comment forKey:@"body"];
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/comments", repositoryPath, issueNumber] requestType:UAGithubIssueCommentAddRequest responseType:UAGithubIssueCommentResponse withParameters:commentDictionary error:nil];} success:successBlock failure:failureBlock];
+
+}
+
+
+- (void)editComment:(NSInteger)commentNumber forRepository:(NSString *)repositoryPath withBody:(NSString *)commentBody success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ NSDictionary *commentDictionary = [NSDictionary dictionaryWithObject:commentBody forKey:@"body"];
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/comments/%ld", repositoryPath, commentNumber] requestType:UAGithubIssueCommentEditRequest responseType:UAGithubIssueCommentResponse withParameters:commentDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteComment:(NSInteger)commentNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/comments/%ld", repositoryPath, commentNumber] requestType:UAGithubIssueCommentDeleteRequest responseType:UAGithubIssueCommentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Events
+
+- (void)eventsForIssue:(NSInteger)issueId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/events", repositoryPath, issueId] requestType:UAGithubIssueEventsRequest responseType:UAGithubIssueEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)issueEventsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/events", repositoryPath] requestType:UAGithubIssueEventsRequest responseType:UAGithubIssueEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)issueEvent:(NSInteger)eventId forRepository:(NSString*)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/events/%ld", repositoryPath, eventId] requestType:UAGithubIssueEventRequest responseType:UAGithubIssueEventResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Labels
+
+- (void)labelsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/labels", repositoryPath] requestType:UAGithubRepositoryLabelsRequest responseType:UAGithubRepositoryLabelsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)label:(NSString *)labelName inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/labels/%@", repositoryPath, labelName] requestType:UAGithubIssueLabelRequest responseType:UAGithubIssueLabelResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+- (void)addLabelToRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)labelDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/labels", repositoryPath] requestType:UAGithubRepositoryLabelAddRequest responseType:UAGithubIssueLabelsResponse withParameters:labelDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editLabel:(NSString *)labelName inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)labelDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/labels/%@", repositoryPath, labelName] requestType:UAGithubRepositoryLabelEditRequest responseType:UAGithubRepositoryLabelResponse withParameters:labelDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)removeLabel:(NSString *)labelName fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/labels/%@", repositoryPath, labelName] requestType:UAGithubRepositoryLabelRemoveRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)addLabels:(NSArray *)labels toIssue:(NSInteger)issueId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/labels", repositoryPath, issueId] requestType:UAGithubIssueLabelAddRequest responseType:UAGithubIssueLabelsResponse withParameters:labels error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)removeLabel:(NSString *)labelName fromIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/labels/%@", repositoryPath, issueNumber, labelName] requestType:UAGithubIssueLabelRemoveRequest responseType:UAGithubIssueLabelsResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)removeLabelsFromIssue:(NSInteger)issueNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/labels", repositoryPath, issueNumber] requestType:UAGithubIssueLabelRemoveRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)replaceAllLabelsForIssue:(NSInteger)issueId inRepository:(NSString *)repositoryPath withLabels:(NSArray *)labels success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/labels", repositoryPath, issueId] requestType:UAGithubIssueLabelReplaceRequest responseType:UAGithubIssueLabelsResponse withParameters:labels error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)labelsForIssue:(NSInteger)issueId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld/labels", repositoryPath, issueId] requestType:UAGithubIssueLabelsRequest responseType:UAGithubIssueLabelsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)labelsForIssueInMilestone:(NSInteger)milestoneId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/milestones/%ld/labels", repositoryPath, milestoneId] requestType:UAGithubIssueLabelsRequest responseType:UAGithubIssueLabelsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Milestones
+
+- (void)milestonesForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/milestones", repositoryPath] requestType:UAGithubMilestonesRequest responseType:UAGithubMilestonesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)milestone:(NSInteger)milestoneNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/milestones/%ld", repositoryPath, milestoneNumber] requestType:UAGithubMilestoneRequest responseType:UAGithubMilestoneResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createMilestoneWithInfo:(NSDictionary *)infoDictionary forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/milestones", repositoryPath] requestType:UAGithubMilestoneCreateRequest responseType:UAGithubMilestoneResponse withParameters:infoDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)updateMilestone:(NSInteger)milestoneNumber forRepository:(NSString *)repositoryPath withInfo:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/milestones/%ld", repositoryPath, milestoneNumber] requestType:UAGithubMilestoneUpdateRequest responseType:UAGithubMilestoneResponse withParameters:infoDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteMilestone:(NSInteger)milestoneNumber forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/milestones/%ld", repositoryPath, milestoneNumber] requestType:UAGithubMilestoneDeleteRequest responseType:UAGithubMilestoneResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)addIssue:(NSInteger)issueNumber toMilestone:(NSInteger)milestoneNumber inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ NSDictionary *params = @{ @"milestone" : [NSString stringWithFormat:@"%ld", milestoneNumber] };
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/issues/%ld", repositoryPath, issueNumber] requestType:UAGithubIssueEditRequest responseType:UAGithubIssueResponse withParameters:params error:nil];} success:successBlock failure:failureBlock];
+
+}
+
+
+
+#pragma mark
+#pragma mark Organizations
+#pragma mark
+
+- (void)organizationsForUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/orgs", user] requestType:UAGithubOrganizationsRequest responseType:UAGithubOrganizationsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)organizationsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/orgs" requestType:UAGithubOrganizationsRequest responseType:UAGithubOrganizationsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)organization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@", org] requestType:UAGithubOrganizationRequest responseType:UAGithubOrganizationResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)updateOrganization:(NSString *)org withDictionary:(NSDictionary *)orgDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@", org] requestType:UAGithubOrganizationUpdateRequest responseType:UAGithubOrganizationResponse withParameters:orgDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Members
+
+- (void)membersOfOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/members", org] requestType:UAGithubOrganizationMembersRequest responseType:UAGithubUsersResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)user:(NSString *)user isMemberOfOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/members/%@", org, user] requestType:UAGithubOrganizationMembershipStatusRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)removeUser:(NSString *)user fromOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/members/%@", org, user] requestType:UAGithubOrganizationMemberRemoveRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)publicMembersOfOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/public_members", org] requestType:UAGithubOrganizationMembersRequest responseType:UAGithubUsersResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)user:(NSString *)user isPublicMemberOfOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/public_members/%@", org, user] requestType:UAGithubOrganizationMembershipStatusRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)publicizeMembershipOfUser:(NSString *)user inOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/public_members/%@", org, user] requestType:UAGithubOrganizationMembershipPublicizeRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)concealMembershipOfUser:(NSString *)user inOrganization:(NSString *)org withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/public_members/%@", org, user] requestType:UAGithubOrganizationMembershipConcealRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Teams
+
+- (void)teamsInOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/teams", org] requestType:UAGithubTeamsRequest responseType:UAGithubTeamsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)team:(NSInteger)teamId withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld", teamId] requestType:UAGithubTeamRequest responseType:UAGithubTeamResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createTeam:(NSDictionary *)teamDictionary inOrganization:(NSString *)org withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/teams", org] requestType:UAGithubTeamCreateRequest responseType:UAGithubTeamResponse withParameters:teamDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editTeam:(NSInteger)teamId withDictionary:(NSDictionary *)teamDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld", teamId] requestType:UAGithubTeamUpdateRequest responseType:UAGithubTeamResponse withParameters:teamDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld", teamId] requestType:UAGithubTeamDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)membersOfTeam:(NSInteger)teamId withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/members", teamId] requestType:UAGithubTeamMembersRequest responseType:UAGithubUsersResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)user:(NSString *)user isMemberOfTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/members/%@", teamId, user] requestType:UAGithubTeamMembershipStatusRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)addUser:(NSString *)user toTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/members/%@", teamId, user] requestType:UAGithubTeamMemberAddRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)removeUser:(NSString *)user fromTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/members/%@", teamId, user] requestType:UAGithubTeamMemberRemoveRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)repositoriesForTeam:(NSInteger)teamId withSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/repos", teamId] requestType:UAGithubRepositoriesRequest responseType:UAGithubRepositoriesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)repository:(NSString *)repositoryPath isManagedByTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/repos/%@", teamId, repositoryPath] requestType:UAGithubTeamRepositoryManagershipStatusRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)addRepository:(NSString *)repositoryPath toTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/repos/%@", teamId, repositoryPath] requestType:UAGithubTeamRepositoryManagershipAddRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)removeRepository:(NSString *)repositoryPath fromTeam:(NSInteger)teamId withSuccess:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"teams/%ld/repos/%@", teamId, repositoryPath] requestType:UAGithubTeamRepositoryManagershipRemoveRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark
+#pragma mark Pull Requests
+#pragma mark
+
+- (void)pullRequestsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls", repositoryPath] requestType:UAGithubPullRequestsRequest responseType:UAGithubPullRequestsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)pullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld", repositoryPath, pullRequestId] requestType:UAGithubPullRequestRequest responseType:UAGithubPullRequestResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createPullRequest:(NSDictionary *)pullRequestDictionary forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls", repositoryPath] requestType:UAGithubPullRequestCreateRequest responseType:UAGithubPullRequestResponse withParameters:pullRequestDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)updatePullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)pullRequestDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld", repositoryPath, pullRequestId] requestType:UAGithubPullRequestUpdateRequest responseType:UAGithubPullRequestResponse withParameters:pullRequestDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)commitsInPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld/commits", repositoryPath, pullRequestId] requestType:UAGithubPullRequestCommitsRequest responseType:UAGithubPullRequestCommitsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)filesInPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld/files", repositoryPath, pullRequestId] requestType:UAGithubPullRequestFilesRequest responseType:UAGithubPullRequestFilesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)pullRequest:(NSInteger)pullRequestId isMergedForRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld/merge", repositoryPath, pullRequestId] requestType:UAGithubPullRequestMergeStatusRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)mergePullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld/merge", repositoryPath, pullRequestId] requestType:UAGithubPullRequestMergeRequest responseType:UAGithubPullRequestMergeSuccessStatusResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Comments
+
+- (void)commentsForPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld/comments", repositoryPath, pullRequestId] requestType:UAGithubPullRequestCommentsRequest responseType:UAGithubPullRequestCommentsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)pullRequestComment:(NSInteger)commentId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/comments/%ld", repositoryPath, commentId] requestType:UAGithubPullRequestCommentRequest responseType:UAGithubPullRequestCommentResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createPullRequestComment:(NSDictionary *)commentDictionary forPullRequest:(NSInteger)pullRequestId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/%ld/comments", repositoryPath, pullRequestId] requestType:UAGithubPullRequestCommentCreateRequest responseType:UAGithubPullRequestCommentResponse withParameters:commentDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editPullRequestComment:(NSInteger)commentId forRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)commentDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/comments/%ld", repositoryPath, commentId] requestType:UAGithubPullRequestCommentUpdateRequest responseType:UAGithubPullRequestCommentResponse withParameters:commentDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deletePullRequestComment:(NSInteger)commentId forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/pulls/comments/%ld", repositoryPath, commentId] requestType:UAGithubPullRequestCommentDeleteRequest responseType:UAGithubPullRequestCommentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark
+#pragma mark Repositories
+#pragma mark
+
+- (void)repositoriesForUser:(NSString *)aUser includeWatched:(BOOL)watched success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self repositoriesForUser:aUser includeWatched:watched page:1 success:successBlock failure:failureBlock];
+}
+
+#pragma mark TODO watched repos?
+- (void)repositoriesForUser:(NSString *)aUser includeWatched:(BOOL)watched page:(int)page success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/repos", aUser] requestType:UAGithubRepositoriesRequest responseType:UAGithubRepositoriesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)repositoriesWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/repos" requestType:UAGithubRepositoriesRequest responseType:UAGithubRepositoriesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createRepositoryWithInfo:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/repos" requestType:UAGithubRepositoryCreateRequest responseType:UAGithubRepositoryResponse withParameters:infoDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)repository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@", repositoryPath] requestType:UAGithubRepositoryRequest responseType:UAGithubRepositoryResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)updateRepository:(NSString *)repositoryPath withInfo:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@", repositoryPath] requestType:UAGithubRepositoryUpdateRequest responseType:UAGithubRepositoryResponse withParameters:infoDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)contributorsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/contributitors", repositoryPath] requestType:UAGithubRepositoryContributorsRequest responseType:UAGithubUsersResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)languageBreakdownForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/languages", repositoryPath] requestType:UAGithubRepositoryLanguageBreakdownRequest responseType:UAGithubRepositoryLanguageBreakdownResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)teamsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/teams", repositoryPath] requestType:UAGithubRepositoryTeamsRequest responseType:UAGithubRepositoryTeamsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)annotatedTagsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/tags", repositoryPath] requestType:UAGithubTagsRequest responseType:UAGithubTagsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)branchesForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/branches", repositoryPath] requestType:UAGithubBranchesRequest responseType:UAGithubBranchesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Collaborators
+
+- (void)collaboratorsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/collaborators", repositoryPath] requestType:UAGithubCollaboratorsRequest responseType:UAGithubCollaboratorsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)user:(NSString *)user isCollaboratorForRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/collaborators/%@", repositoryPath, user] requestType:UAGithubCollaboratorsRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)addCollaborator:(NSString *)collaborator toRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/collaborators/%@", repositoryPath, collaborator] requestType:UAGithubCollaboratorAddRequest responseType:UAGithubCollaboratorsResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)removeCollaborator:(NSString *)collaborator fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/collaborators/%@", repositoryPath, collaborator] requestType:UAGithubCollaboratorRemoveRequest responseType:UAGithubCollaboratorsResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Commits
+
+- (void)commitsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/commits", repositoryPath] requestType:UAGithubCommitsRequest responseType:UAGithubCommitsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)commit:(NSString *)commitSha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/commits/%@", repositoryPath, commitSha] requestType:UAGithubCommitRequest responseType:UAGithubCommitResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Commit Comments
+
+- (void)commitCommentsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/comments", repositoryPath] requestType:UAGithubCommitCommentsRequest responseType:UAGithubCommitCommentsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)commitCommentsForCommit:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/commits/%@/comments", repositoryPath, sha] requestType:UAGithubCommitCommentRequest responseType:UAGithubCommitCommentsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addCommitComment:(NSDictionary *)commentDictionary forCommit:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/commits/%@/comments", repositoryPath, sha] requestType:UAGithubCommitCommentAddRequest responseType:UAGithubCommitCommentResponse withParameters:commentDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)commitComment:(NSInteger)commentId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/comments/%ld", repositoryPath, commentId] requestType:UAGithubCommitCommentRequest responseType:UAGithubCommitCommentResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editCommitComment:(NSInteger)commentId inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)infoDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/comments/%ld", repositoryPath, commentId] requestType:UAGithubCommitCommentEditRequest responseType:UAGithubCommitCommentResponse withParameters:infoDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteCommitComment:(NSInteger)commentId inRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/comments/%ld", repositoryPath, commentId] requestType:UAGithubCommitCommentDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Downloads
+
+- (void)downloadsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/downloads", repositoryPath] requestType:UAGithubDownloadsRequest responseType:UAGithubDownloadsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)download:(NSInteger)downloadId inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/downloads/%ld", repositoryPath, downloadId] requestType:UAGithubDownloadRequest responseType:UAGithubDownloadResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addDownloadToRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)downloadDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/downloads", repositoryPath] requestType:UAGithubDownloadAddRequest responseType:UAGithubDownloadResponse withParameters:downloadDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteDownload:(NSInteger)downloadId fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/downloads/%ld", repositoryPath, downloadId] requestType:UAGithubDownloadDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Forks
+
+- (void)forksForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/forks", repositoryPath] requestType:UAGithubRepositoryForksRequest responseType:UAGithubRepositoriesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)forkRepository:(NSString *)repositoryPath inOrganization:(NSString *)org success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ if (org)
+ {
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/forks", repositoryPath] requestType:UAGithubRepositoryForkRequest responseType:UAGithubRepositoryResponse withParameters:[NSDictionary dictionaryWithObject:org forKey:@"org"] error:nil];} success:successBlock failure:failureBlock];
+ }
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/forks", repositoryPath] requestType:UAGithubRepositoryForkRequest responseType:UAGithubRepositoryResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)forkRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self forkRepository:repositoryPath inOrganization:nil success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Keys
+
+- (void)deployKeysForRepository:(NSString *)repositoryName success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/keys", repositoryName] requestType:UAGithubDeployKeysRequest responseType:UAGithubDeployKeysResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deployKey:(NSInteger)keyId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/keys/%ld", repositoryPath, keyId] requestType:UAGithubDeployKeyRequest responseType:UAGithubDeployKeyResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addDeployKey:(NSString *)keyData withTitle:(NSString *)keyTitle ToRepository:(NSString *)repositoryName success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:keyData, @"key", keyTitle, @"title", nil];
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/keys", repositoryName] requestType:UAGithubDeployKeyAddRequest responseType:UAGithubDeployKeysResponse withParameters:params error:nil];} success:successBlock failure:failureBlock];
+
+}
+
+
+- (void)editDeployKey:(NSInteger)keyId inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)keyDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/keys/%ld", repositoryPath, keyId] requestType:UAGithubDeployKeyEditRequest responseType:UAGithubDeployKeyResponse withParameters:keyDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteDeployKey:(NSInteger)keyId fromRepository:(NSString *)repositoryName success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/keys/%ld", repositoryName, keyId] requestType:UAGithubDeployKeyDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+
+}
+
+
+#pragma mark Watching
+
+- (void)watchersForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/watchers", repositoryPath] requestType:UAGithubUsersRequest responseType:UAGithubUsersResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)watchedRepositoriesForUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/watched", user] requestType:UAGithubRepositoriesRequest responseType:UAGithubRepositoriesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)watchedRepositoriessuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/watched" requestType:UAGithubRepositoriesRequest responseType:UAGithubRepositoriesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+
+- (void)repositoryIsWatched:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/watched/%@", repositoryPath] requestType:UAGithubRepositoryWatchingRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)watchRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/watched/%@", repositoryPath] requestType:UAGithubRepositoryWatchRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)unwatchRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/watched/%@", repositoryPath] requestType:UAGithubRepositoryUnwatchRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Hooks
+
+- (void)hooksForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/hooks", repositoryPath] requestType:UAGithubRepositoryHooksRequest responseType:UAGithubRepositoryHooksResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)hook:(NSInteger)hookId forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/hooks/%ld", repositoryPath, hookId] requestType:UAGithubRepositoryHookRequest responseType:UAGithubRepositoryHookResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addHook:(NSDictionary *)hookDictionary forRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/hooks", repositoryPath] requestType:UAGithubRepositoryHookAddRequest responseType:UAGithubRepositoryHookResponse withParameters:hookDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editHook:(NSInteger)hookId forRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)hookDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/hooks/%ld", repositoryPath, hookId] requestType:UAGithubRepositoryHookEditRequest responseType:UAGithubRepositoryHookResponse withParameters:hookDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)testHook:(NSInteger)hookId forRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/hooks/%ld", repositoryPath, hookId] requestType:UAGithubRepositoryHookTestRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteHook:(NSInteger)hookId fromRepository:(NSString *)repositoryPath success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/hooks/%ld", repositoryPath, hookId] requestType:UAGithubRepositoryHookDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark
+#pragma mark Users
+#pragma mark
+
+- (void)user:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@", user] requestType:UAGithubUserRequest responseType:UAGithubUserResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)userWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user" requestType:UAGithubUserRequest responseType:UAGithubUserResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)editUser:(NSDictionary *)userDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user" requestType:UAGithubUserEditRequest responseType:UAGithubUserResponse withParameters:userDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Emails
+
+- (void)emailAddressessuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/emails" requestType:UAGithubEmailsRequest responseType:UAGithubEmailsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addEmailAddresses:(NSArray *)emails success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/emails" requestType:UAGithubEmailAddRequest responseType:UAGithubEmailsResponse withParameters:emails error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deleteEmailAddresses:(NSArray *)emails success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/emails" requestType:UAGithubEmailDeleteRequest responseType:UAGithubNoContentResponse withParameters:emails error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Followers
+// List a user's followers
+- (void)followers:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/followers", user] requestType:UAGithubUserRequest responseType:UAGithubFollowersResponse error:nil];} success:successBlock failure:failureBlock];
+
+}
+
+// List the authenticated user's followers
+- (void)followersWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/followers" requestType:UAGithubUsersRequest responseType:UAGithubFollowersResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+// List who a user is following
+- (void)following:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/following", user] requestType:UAGithubUserRequest responseType:UAGithubFollowingResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+// List who the authenticated user is following
+- (void)followingWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/following" requestType:UAGithubUsersRequest responseType:UAGithubUsersResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+// Check if the authenticated user follows another user
+- (void)follows:(NSString *)user success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/following/%@", user] requestType:UAGithubFollowingRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+// Follow a user
+- (void)follow:(NSString *)user success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/following/%@", user] requestType:UAGithubFollowRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+
+}
+
+// Unfollow a user
+- (void)unfollow:(NSString *)user success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/following/%@", user] requestType:UAGithubUnfollowRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Keys
+
+- (void)publicKeysWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/keys" requestType:UAGithubPublicKeysRequest responseType:UAGithubPublicKeysResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)publicKey:(NSInteger)keyId success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/keys/%ld", keyId] requestType:UAGithubPublicKeyRequest responseType:UAGithubPublicKeyResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)addPublicKey:(NSDictionary *)keyDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"user/keys" requestType:UAGithubPublicKeyAddRequest responseType:UAGithubPublicKeyResponse withParameters:keyDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)updatePublicKey:(NSInteger)keyId withInfo:(NSDictionary *)keyDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/keys/%ld", keyId] requestType:UAGithubPublicKeyEditRequest responseType:UAGithubPublicKeyResponse withParameters:keyDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)deletePublicKey:(NSInteger)keyId success:(UAGithubEngineBooleanSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"user/keys/%ld", keyId] requestType:UAGithubPublicKeyDeleteRequest responseType:UAGithubNoContentResponse error:nil];} booleanSuccess:successBlock failure:failureBlock];
+}
+
+
+- (void)createTagObject:(NSDictionary *)tagDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/tags", repositoryPath] requestType:UAGithubTagObjectCreateRequest responseType:UAGithubAnnotatedTagResponse withParameters:tagDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark
+#pragma mark Events
+#pragma mark
+
+- (void)eventsWithSuccess:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:@"events" requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)eventsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/events", repositoryPath] requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)eventsForNetwork:(NSString *)networkPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"networks/%@/events", networkPath] requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)eventsReceivedByUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/received_events", user] requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)eventsPerformedByUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/events", user] requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)publicEventsPerformedByUser:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/events/public", user] requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)eventsForOrganization:(NSString *)organization user:(NSString *)user success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"users/%@/events/orgs/%@", user, organization] requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)publicEventsForOrganization:(NSString *)organization success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"orgs/%@/events", organization] requestType:UAGithubEventsRequest responseType:UAGithubEventsResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark -
+#pragma mark Git Database API
+#pragma mark -
+
+#pragma mark Trees
+
+- (void)tree:(NSString *)sha inRepository:(NSString *)repositoryPath recursive:(BOOL)recursive success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/trees/%@%@", repositoryPath, sha, recursive ? @"?recursive=1" : @""] requestType:UAGithubTreeRequest responseType:UAGithubTreeResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createTree:(NSDictionary *)treeDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/trees", repositoryPath] requestType:UAGithubTreeCreateRequest responseType:UAGithubTreeResponse withParameters:treeDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Blobs
+
+- (void)blobForSHA:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/blobs/%@", repositoryPath, sha] requestType:UAGithubBlobRequest responseType:UAGithubBlobResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createBlob:(NSDictionary *)blobDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/blobs", repositoryPath] requestType:UAGithubBlobCreateRequest responseType:UAGithubSHAResponse withParameters:blobDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark References
+
+- (void)reference:(NSString *)reference inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/refs/%@", repositoryPath, reference] requestType:UAGithubReferenceRequest responseType:UAGithubReferenceResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)referencesInRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/refs", repositoryPath] requestType:UAGithubReferencesRequest responseType:UAGithubReferencesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)tagsForRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/refs/tags", repositoryPath] requestType:UAGithubReferencesRequest responseType:UAGithubReferencesResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createReference:(NSDictionary *)refDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/refs", repositoryPath] requestType:UAGithubReferenceCreateRequest responseType:UAGithubReferenceResponse withParameters:refDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)updateReference:(NSString *)reference inRepository:(NSString *)repositoryPath withDictionary:(NSDictionary *)referenceDictionary success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/refs/%@", repositoryPath, reference] requestType:UAGithubReferenceUpdateRequest responseType:UAGithubReferenceResponse withParameters:referenceDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Tags
+
+- (void)tag:(NSString *)sha inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/tags/%@", repositoryPath, sha] requestType:UAGithubTagObjectRequest responseType:UAGithubAnnotatedTagResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+#pragma mark Raw Commits
+
+- (void)rawCommit:(NSString *)commit inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/commits/%@", repositoryPath, commit] requestType:UAGithubRawCommitRequest responseType:UAGithubRawCommitResponse error:nil];} success:successBlock failure:failureBlock];
+}
+
+
+- (void)createRawCommit:(NSDictionary *)commitDictionary inRepository:(NSString *)repositoryPath success:(UAGithubEngineSuccessBlock)successBlock failure:(UAGithubEngineFailureBlock)failureBlock
+{
+ [self invoke:^(id self){[self sendRequest:[NSString stringWithFormat:@"repos/%@/git/commits", repositoryPath] requestType:UAGithubRawCommitCreateRequest responseType:UAGithubRawCommitResponse withParameters:commitDictionary error:nil];} success:successBlock failure:failureBlock];
+}
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.h b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.h
new file mode 100644
index 0000000..038d900
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.h
@@ -0,0 +1,18 @@
+//
+// UAGithubEngineConstants.h
+// IssuesHub
+//
+// Created by Owain Hunt on 11/11/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import
+
+
+extern NSString * const UAGithubAPILimitReached;
+
+#define UAGithubReachabilityStatusDidChangeNotification @"UAGithubReachabilityStatusDidChangeNotification"
+
+#define UAGithubIssueClosedState @"closed"
+#define UAGithubIssueOpenState @"open"
+
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.m b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.m
new file mode 100644
index 0000000..6fe9fed
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineConstants.m
@@ -0,0 +1,14 @@
+//
+// UAGithubEngineConstants.m
+// IssuesHub
+//
+// Created by Owain Hunt on 11/11/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import "UAGithubEngineConstants.h"
+
+
+NSString * const UAGithubAPILimitReached = @"UAGithubAPILimitReached";
+
+
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineRequestTypes.h b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineRequestTypes.h
new file mode 100644
index 0000000..9def2ae
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubEngineRequestTypes.h
@@ -0,0 +1,232 @@
+//
+// UAGithubEngineRequestTypes.h
+// UAGithubEngine
+//
+// Created by Owain Hunt on 05/04/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+
+
+typedef enum UAGithubRequestType
+{
+ UAGithubUsersRequest = 0, // Get more than one non-specific user
+ UAGithubUserRequest, // Get exactly one specific user
+ UAGithubUserEditRequest, // Edit the authenticated user
+ UAGithubEmailsRequest, // Get one or more email addresses
+ UAGithubEmailAddRequest, // Add one or more email addresses
+ UAGithubEmailDeleteRequest, // Delete one or more email addresses
+ UAGithubRepositoriesRequest, // Get more than one non-specific repository
+ UAGithubRepositoryRequest, // Get exactly one specific repository
+ UAGithubRepositoryUpdateRequest, // Update repository metadata
+ UAGithubRepositoryWatchingRequest, // Auth'd user watching a specific repository?
+ UAGithubRepositoryWatchRequest, // Watch a repository
+ UAGithubRepositoryUnwatchRequest, // Unwatch a repository
+ UAGithubRepositoryForksRequest, // Get one or more forks
+ UAGithubRepositoryForkRequest, // Fork a repository
+ UAGithubRepositoryCreateRequest, // Create a repository
+ UAGithubRepositoryPrivatiseRequest, // Make a repository private
+ UAGithubRepositoryPubliciseRequest, // Make a repository public
+ UAGithubRepositoryDeleteRequest, // Delete a repository
+ UAGithubRepositoryDeleteConfirmationRequest, // Confirm deletion of a repository
+ UAGithubDeployKeysRequest, // Get repository-specific deploy keys
+ UAGithubDeployKeyRequest, // Get exactly one specific deploy key
+ UAGithubDeployKeyAddRequest, // Add a repository-specific deploy key
+ UAGithubDeployKeyEditRequest, // Edit a deploy key
+ UAGithubDeployKeyDeleteRequest, // Delete a repository-specific deploy key
+ UAGithubRepositoryLanguageBreakdownRequest, // Get the language breakdown for a repository
+ UAGithubRepositoryContributorsRequest, // Get one or more contributors
+ UAGithubRepositoryTeamsRequest, // Get one or more teams
+ UAGithubTagsRequest, // Tags for a repository
+ UAGithubBranchesRequest, // Branches for a repository
+ UAGithubCollaboratorsRequest, // Collaborators for a repository
+ UAGithubCollaboratorAddRequest, // Add a collaborator
+ UAGithubCollaboratorRemoveRequest, // Remove a collaborator
+ UAGithubDownloadsRequest, // Get one or more downloads
+ UAGithubDownloadRequest, // Get exactly one specific download
+ UAGithubDownloadAddRequest, // Add a download
+ UAGithubDownloadDeleteRequest, // Delete a download
+ UAGithubRepositoryHooksRequest, // Get one or more repository hooks
+ UAGithubRepositoryHookRequest, // Get one specific repository hook
+ UAGithubRepositoryHookAddRequest, // Add a repository hook
+ UAGithubRepositoryHookEditRequest, // Edit a repository hook
+ UAGithubRepositoryHookTestRequest, // Test a repository hook
+ UAGithubRepositoryHookDeleteRequest, // Delete a repository hook
+ UAGithubCommitsRequest, // Get more than one non-specific commit
+ UAGithubCommitRequest, // Get exactly one specific commit
+ UAGithubCommitCommentsRequest, // Get one or more commit comments
+ UAGithubCommitCommentRequest, // Get exactly one commit comment
+ UAGithubCommitCommentAddRequest, // Add a commit comment
+ UAGithubCommitCommentEditRequest, // Edit a commit comment
+ UAGithubCommitCommentDeleteRequest, // Delete a commit comment
+ UAGithubIssuesOpenRequest, // Get open issues
+ UAGithubIssuesClosedRequest, // Get closed issues
+ UAGithubIssuesRequest, // Get all issues
+ UAGithubIssueRequest, // Get exactly one specific issue
+ UAGithubIssueAddRequest, // Add an issue
+ UAGithubIssueEditRequest, // Edit an issue
+ UAGithubIssueCloseRequest, // Close an issue
+ UAGithubIssueReopenRequest, // Reopen a closed issue
+ UAGithubIssueDeleteRequest, // Delete an issue
+ UAGithubRepositoryLabelsRequest, // Get repository-wide issue labels
+ UAGithubRepositoryLabelAddRequest, // Add a repository-wide issue label
+ UAGithubRepositoryLabelEditRequest, // Edit a repository-wide issue label
+ UAGithubRepositoryLabelRemoveRequest, // Remove a repository-wide issue label
+ UAGithubIssueLabelsRequest, // Get one or more issue labels
+ UAGithubIssueLabelRequest, // Get exactly one specific issue label
+ UAGithubIssueLabelAddRequest, // Add a label to a specific issue
+ UAGithubIssueLabelRemoveRequest, // Remove a label from a specific issue
+ UAGithubIssueLabelReplaceRequest, // Replace all labels on a specific issue
+ UAGithubIssueCommentsRequest, // Get more than one non-specific issue comment
+ UAGithubIssueCommentRequest, // Get exactly one specific issue comment
+ UAGithubIssueCommentAddRequest, // Add a comment to an issue
+ UAGithubIssueCommentEditRequest, // Edit an issue comment
+ UAGithubIssueCommentDeleteRequest, // Delete an issue comment
+ UAGithubFollowingRequest, // Following
+ UAGithubFollowersRequest, // Followers
+ UAGithubFollowRequest, // Follow a User
+ UAGithubUnfollowRequest, // Unfollow a user
+ UAGithubMilestonesRequest, // Get one or more milestones
+ UAGithubMilestoneRequest, // Get exactly one specific milestone
+ UAGithubMilestoneCreateRequest, // Create a new milestone
+ UAGithubMilestoneUpdateRequest, // Edit an existing milestone
+ UAGithubMilestoneDeleteRequest, // Delete a milestone
+ UAGithubPublicKeysRequest, // Get one or more public keys
+ UAGithubPublicKeyRequest, // Get exactly one public key
+ UAGithubPublicKeyAddRequest, // Add a public key
+ UAGithubPublicKeyEditRequest, // Edit a public key
+ UAGithubPublicKeyDeleteRequest, // Delete a public key
+ UAGithubTreeRequest, // Get the listing of a tree by SHA
+ UAGithubTreeCreateRequest, // Create a new tree
+ UAGithubBlobsRequest, // Get the names and SHAs of all blobs for a specific tree SHA
+ UAGithubBlobRequest, // Get data about a single blob by tree SHA and path
+ UAGithubBlobCreateRequest, // Create a new blob
+ UAGithubRawBlobRequest, // Get the raw data for a blob
+ UAGithubReferencesRequest, // Get one or more references
+ UAGithubReferenceRequest, // Get exactly one reference
+ UAGithubReferenceCreateRequest, // Create a new reference
+ UAGithubReferenceUpdateRequest, // Edit an existing reference
+ UAGithubTagObjectRequest, // Get exactly one annotated tag object
+ UAGithubTagObjectCreateRequest, // Create a new annotated tag object
+ UAGithubRawCommitRequest, // Get exactly one raw commit
+ UAGithubRawCommitCreateRequest, // Create a new raw commit
+ UAGithubGistsRequest, // Get one or more gists
+ UAGithubGistRequest, // Get exactly one gist
+ UAGithubGistCreateRequest, // Create a new gist
+ UAGithubGistUpdateRequest, // Edit a gist
+ UAGithubGistStarRequest, // Star a gist
+ UAGithubGistUnstarRequest, // Unstar a gist
+ UAGithubGistStarStatusRequest, // Get star status of a gist
+ UAGithubGistForkRequest, // Fork a gist
+ UAGithubGistDeleteRequest, // Delete a gist
+ UAGithubGistCommentsRequest, // Get one or more gist comments
+ UAGithubGistCommentRequest, // Get exactly one gist comment
+ UAGithubGistCommentCreateRequest, // Create a new gist comment
+ UAGithubGistCommentUpdateRequest, // Edit a gist comment
+ UAGithubGistCommentDeleteRequest, // Delete a gist comment
+ UAGithubIssueEventsRequest, // Get one or more issue events
+ UAGithubIssueEventRequest, // Get exactly one issue event
+ UAGithubPullRequestsRequest, // Get one or more pull requests
+ UAGithubPullRequestRequest, // Get exactly one pull request
+ UAGithubPullRequestCreateRequest, // Create a pull request
+ UAGithubPullRequestUpdateRequest, // Edit a pull request
+ UAGithubPullRequestCommitsRequest, // Get commits in a pull request
+ UAGithubPullRequestFilesRequest, // Get files in a pull request
+ UAGithubPullRequestMergeStatusRequest, // Get the merge status of a pull request
+ UAGithubPullRequestMergeRequest, // Merge a pull request
+ UAGithubPullRequestCommentsRequest, // Get one or more pull request comments
+ UAGithubPullRequestCommentRequest, // Get exactly one pull request comments
+ UAGithubPullRequestCommentCreateRequest, // Create a pull request comment
+ UAGithubPullRequestCommentUpdateRequest, // Update a pull request comment
+ UAGithubPullRequestCommentDeleteRequest, // Delete a pull request comment
+ UAGithubEventsRequest, // Get one or more events of unspecified type
+ UAGithubOrganizationsRequest, // Get one or more organizations
+ UAGithubOrganizationRequest, // Get exactly one organization
+ UAGithubOrganizationUpdateRequest, // Update an existing organization
+ UAGithubOrganizationMembersRequest, // Get one or more organization members
+ UAGithubOrganizationMembershipStatusRequest, // Get whether user is member of a specified organization
+ UAGithubOrganizationMemberRemoveRequest, // Remove a user from am organization
+ UAGithubOrganizationMembershipPublicizeRequest, // Publicize user's membership of organization
+ UAGithubOrganizationMembershipConcealRequest, // Concel user's membership of organization
+ UAGithubTeamsRequest, // Get one or more organization teams
+ UAGithubTeamRequest, // Get exactly one organization team
+ UAGithubTeamCreateRequest, // Create a new team
+ UAGithubTeamUpdateRequest, // Update an existing team
+ UAGithubTeamDeleteRequest, // Delete an existing team
+ UAGithubTeamMembersRequest, // Get one or more team members
+ UAGithubTeamMembershipStatusRequest,
+ UAGithubTeamMemberAddRequest,
+ UAGithubTeamMemberRemoveRequest, // Remove a user from a team
+ UAGithubTeamRepositoryManagershipStatusRequest, // Get whether a team manages a specific repository
+ UAGithubTeamRepositoryManagershipAddRequest, // Add a specific repository to a team
+ UAGithubTeamRepositoryManagershipRemoveRequest, // Remove a specific repository from a team
+} UAGithubRequestType;
+
+
+typedef enum UAGithubResponseType
+{
+ UAGithubNoContentResponse = 0, // No content expected
+ UAGithubUsersResponse, // One or more users
+ UAGithubUserResponse, // Exactly one user
+ UAGithubEmailsResponse, // One or more email addresses
+ UAGithubRepositoriesResponse, // One or more repositories
+ UAGithubRepositoryResponse, // Exactly one repository
+ UAGithubRepositoryTeamsResponse, // One or more teams
+ UAGithubDeployKeysResponse, // One or more deploy keys
+ UAGithubDeployKeyResponse, // Exactly one deploy key
+ UAGithubDownloadsResponse, // One or more downloads
+ UAGithubDownloadResponse, // Exactly one download
+ UAGithubRepositoryLanguageBreakdownResponse, // Breakdown in language-bytes pairs
+ UAGithubBranchesResponse, // One or more branches
+ UAGithubCollaboratorsResponse, // One or more users
+ UAGithubRepositoryHooksResponse, // One or more repository hooks
+ UAGithubRepositoryHookResponse, // Exactly one repository hook
+ UAGithubCommitsResponse, // One or more commits
+ UAGithubCommitResponse, // Exactly one commit
+ UAGithubCommitCommentsResponse, // One or more commit comments
+ UAGithubCommitCommentResponse, // Exactly one commit comment
+ UAGithubIssuesResponse, // One or more issues
+ UAGithubIssueResponse, // Exactly one issue
+ UAGithubIssueCommentsResponse, // One or more issue comments
+ UAGithubIssueCommentResponse, // Exactly one issue comment
+ UAGithubIssueLabelsResponse, // One or more issue labels
+ UAGithubIssueLabelResponse, // Exactly one issue label
+ UAGithubRepositoryLabelsResponse, // One or more repository-wide issue labels
+ UAGithubRepositoryLabelResponse, // Exactly one repository-wide issue label
+ UAGithubBlobsResponse, // Name and SHA for all files in given tree SHA
+ UAGithubBlobResponse, // Metadata and file data for given tree SHA and path
+ UAGithubFollowingResponse, // Following
+ UAGithubFollowersResponse, // Followers
+ UAGithubFollowedResponse, // User was followed
+ UAGithubUnfollowedResponse, // User was unfollowed
+ UAGithubMilestonesResponse, // One or more milestones
+ UAGithubMilestoneResponse, // Exactly one milestone
+ UAGithubPublicKeysResponse, // One or more public keys
+ UAGithubPublicKeyResponse, // Exactly one public key
+ UAGithubSHAResponse, // SHA
+ UAGithubTreeResponse, // Metadata for all files in given commit
+ UAGithubReferencesResponse, // One or more references
+ UAGithubReferenceResponse, // Exactly one reference
+ UAGithubAnnotatedTagsResponse, // One or more annotated tag objects
+ UAGithubAnnotatedTagResponse, // Exactly one annotated tag object
+ UAGithubRawCommitResponse, // Exactly one raw commit
+ UAGithubGistsResponse, // One or more gists
+ UAGithubGistResponse, // Exactly one gist
+ UAGithubGistCommentsResponse, // One or more gist comments
+ UAGithubGistCommentResponse, // Exactly one gist comment
+ UAGithubIssueEventsResponse, // One or more issue events
+ UAGithubIssueEventResponse, // Exactly one issue event
+ UAGithubPullRequestsResponse, // One or more pull requests
+ UAGithubPullRequestResponse, // Exactly one pull request
+ UAGithubPullRequestMergeSuccessStatusResponse, // Success or failure of merge attempt
+ UAGithubPullRequestCommitsResponse, // One or more pull request commits
+ UAGithubPullRequestFilesResponse, // One or more pull request files
+ UAGithubPullRequestCommentsResponse, // One or more pull request comments
+ UAGithubPullRequestCommentResponse, // Exactly one pull request comment
+ UAGithubTagsResponse, // Tags in name-SHA pairs
+ UAGithubEventsResponse, // One or more events of unspecified type
+ UAGithubOrganizationsResponse, // One or more organizations
+ UAGithubOrganizationResponse, // Exactly one organization
+ UAGithubTeamsResponse, // One or more organization teams
+ UAGithubTeamResponse, // Exactly one team
+} UAGithubResponseType;
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubJSONParser.h b/Pods/UAGithubEngine/UAGithubEngine/UAGithubJSONParser.h
new file mode 100644
index 0000000..a0efa27
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubJSONParser.h
@@ -0,0 +1,20 @@
+//
+// UAGithubJSONParser.h
+// UAGithubEngine
+//
+// Created by Owain Hunt on 27/07/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import
+
+#import "UAGithubEngineRequestTypes.h"
+
+@interface UAGithubJSONParser : NSObject
+{
+
+}
+
++ (id)parseJSON:(NSData *)theJSON error:(NSError **)error;
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubJSONParser.m b/Pods/UAGithubEngine/UAGithubEngine/UAGithubJSONParser.m
new file mode 100644
index 0000000..70e93ac
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubJSONParser.m
@@ -0,0 +1,53 @@
+//
+// UAGithubJSONParser.m
+// UAGithubEngine
+//
+// Created by Owain Hunt on 27/07/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import "UAGithubJSONParser.h"
+#import "NSArray+Utilities.h"
+#import "NSString+UAGithubEngineUtilities.h"
+
+@implementation UAGithubJSONParser
+
++ (id)parseJSON:(NSData *)theJSON error:(NSError **)error;
+{
+ NSArray *dateElements = [NSArray arrayWithObjects:@"created_at", @"updated_at", @"closed_at", @"due_on", @"pushed_at", @"committed_at", @"merged_at", @"date", @"expirationdate", nil];
+ NSMutableArray *jsonArray;
+ id jsonObj = [NSJSONSerialization JSONObjectWithData:theJSON options:NSJSONReadingMutableLeaves|NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:error];
+
+ jsonArray = ([jsonObj isKindOfClass:[NSDictionary class]]) ? [NSMutableArray arrayWithObject:jsonObj] : [jsonObj mutableCopy];
+
+ if (!error)
+ {
+ if ([[[jsonArray firstObject] allKeys] containsObject:@"error"])
+ {
+ NSDictionary *dictionary = [jsonArray firstObject];
+ *error = [NSError errorWithDomain:@"UAGithubEngineGithubError" code:0 userInfo:[NSDictionary dictionaryWithObject:[dictionary objectForKey:@"error"] forKey:@"errorMessage"]];
+ NSLog(@"Error: %@", *error);
+ }
+
+ for (NSMutableDictionary *theDictionary in jsonArray)
+ {
+ NSArray *keys = [theDictionary allKeys];
+ for (NSString *keyString in dateElements)
+ {
+ if ([keys containsObject:keyString]) {
+ NSDate *date = [[theDictionary objectForKey:keyString] dateFromGithubDateString];
+ if (date != nil)
+ {
+ [theDictionary setObject:date forKey:keyString];
+ }
+ }
+ }
+ }
+
+ }
+
+ return jsonArray;
+}
+
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubURLConnection.h b/Pods/UAGithubEngine/UAGithubEngine/UAGithubURLConnection.h
new file mode 100644
index 0000000..9eebdac
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubURLConnection.h
@@ -0,0 +1,29 @@
+//
+// UAGithubURLConnection.h
+// UAGithubEngine
+//
+// Created by Owain Hunt on 26/04/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import
+#import "UAGithubEngineRequestTypes.h"
+
+@interface UAGithubURLConnection : NSURLConnection
+{
+ NSMutableData *data;
+ UAGithubRequestType requestType;
+ UAGithubResponseType responseType;
+ NSString *identifier;
+}
+
+
+@property (nonatomic, strong) NSMutableData *data;
+@property (nonatomic, assign) UAGithubRequestType requestType;
+@property (nonatomic, assign) UAGithubResponseType responseType;
+@property (nonatomic, strong) NSString *identifier;
+
++ (id)asyncRequest:(NSURLRequest *)request success:(id(^)(NSData *, NSURLResponse *))successBlock failure:(id(^)(NSError *))failureBlock_;
++ (id)asyncRequest:(NSURLRequest *)request success:(id(^)(NSData *, NSURLResponse *))successBlock error:(NSError *__strong *)error;
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAGithubURLConnection.m b/Pods/UAGithubEngine/UAGithubEngine/UAGithubURLConnection.m
new file mode 100644
index 0000000..d7cbcd4
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAGithubURLConnection.m
@@ -0,0 +1,64 @@
+//
+// UAGithubURLConnection.m
+// UAGithubEngine
+//
+// Created by Owain Hunt on 26/04/2010.
+// Copyright 2010 Owain R Hunt. All rights reserved.
+//
+
+#import "UAGithubURLConnection.h"
+#import "NSString+UUID.h"
+
+
+@implementation UAGithubURLConnection
+
+@synthesize data, requestType, responseType, identifier;
+
++ (id)asyncRequest:(NSURLRequest *)request success:(id(^)(NSData *, NSURLResponse *))successBlock failure:(id(^)(NSError *))failureBlock_
+{
+ // This has to be dispatch_sync rather than _async, otherwise our successBlock executes before the request is done and we're all bass-ackwards.
+ //dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+
+ @autoreleasepool
+ {
+ NSLog(@"New %@ connection: %@", request.HTTPMethod, request);
+
+ NSURLResponse *response = nil;
+ NSError *error = nil;
+ NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
+
+ if (error) {
+ return failureBlock_(error);
+ } else {
+ return successBlock(data,response);
+ }
+ }
+
+ //});
+}
+
++ (id)asyncRequest:(NSURLRequest *)request success:(id(^)(NSData *, NSURLResponse *))successBlock error:(NSError *__strong *)error
+{
+ // This has to be dispatch_sync rather than _async, otherwise our successBlock executes before the request is done and we're all bass-ackwards.
+ //dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+
+ @autoreleasepool
+ {
+ NSLog(@"New %@ connection: %@", request.HTTPMethod, request);
+
+ NSURLResponse *response = nil;
+ NSError *connectionError = nil;
+ NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&connectionError];
+
+ if (connectionError) {
+ *error = connectionError;
+ return nil;
+ } else {
+ return successBlock(data,response);
+ }
+ }
+
+ //});
+}
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAReachability.h b/Pods/UAGithubEngine/UAGithubEngine/UAReachability.h
new file mode 100644
index 0000000..5b7c965
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAReachability.h
@@ -0,0 +1,27 @@
+//
+// UAReachability.h
+// ReachTest
+//
+// Created by Owain Hunt on 10/01/2011.
+// Copyright 2011 Owain R Hunt. All rights reserved.
+//
+
+#import
+#import
+
+typedef enum {
+ NotReachable = 0,
+ Reachable,
+} NetworkStatus;
+
+
+@interface UAReachability : NSObject {
+ SCNetworkReachabilityRef reachabilityRef;
+}
+
+
+- (NetworkStatus)networkStatusForFlags:(SCNetworkReachabilityFlags)flags;
+- (NetworkStatus)currentReachabilityStatus;
+
+
+@end
diff --git a/Pods/UAGithubEngine/UAGithubEngine/UAReachability.m b/Pods/UAGithubEngine/UAGithubEngine/UAReachability.m
new file mode 100644
index 0000000..b6af2e1
--- /dev/null
+++ b/Pods/UAGithubEngine/UAGithubEngine/UAReachability.m
@@ -0,0 +1,59 @@
+//
+// UAReachability.m
+// ReachTest
+//
+// Created by Owain Hunt on 10/01/2011.
+// Copyright 2011 Owain R Hunt. All rights reserved.
+//
+
+#import "UAReachability.h"
+#import "UAGithubEngineConstants.h"
+#import
+
+@implementation UAReachability
+
+// http://www.cocoabuilder.com/archive/cocoa/166350-detecting-internet-code-part-1.html#166364
+
+static void reachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info)
+{
+ [[NSNotificationCenter defaultCenter] postNotificationName:UAGithubReachabilityStatusDidChangeNotification object:(__bridge NSDictionary *)info];
+}
+
+
+- (void)dealloc
+{
+ if (reachabilityRef != NULL)
+ {
+ CFRelease(reachabilityRef);
+ }
+}
+
+
+- (id)init
+{
+ if ((self = [super init]))
+ {
+ reachabilityRef = SCNetworkReachabilityCreateWithName(NULL, [@"www.github.com" UTF8String]);
+ SCNetworkReachabilityContext context = {0, (__bridge void *)(self), CFRetain, CFRelease, NULL};
+ SCNetworkReachabilitySetCallback(reachabilityRef, reachabilityCallback, &context);
+ SCNetworkReachabilityScheduleWithRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
+ }
+
+ return self;
+}
+
+
+- (NetworkStatus)currentReachabilityStatus
+{
+ SCNetworkReachabilityFlags flags;
+ return (SCNetworkReachabilityGetFlags(reachabilityRef, &flags) && (flags & kSCNetworkReachabilityFlagsReachable) && !(flags & kSCNetworkReachabilityFlagsConnectionRequired));
+}
+
+
+- (NetworkStatus)networkStatusForFlags:(SCNetworkReachabilityFlags)flags
+{
+ return (flags & kSCNetworkReachabilityFlagsReachable) && !(flags & kSCNetworkReachabilityFlagsConnectionRequired);
+}
+
+
+@end