diff --git a/ObjectiveGit/GTRepository.h b/ObjectiveGit/GTRepository.h index aa7debebf..270457f16 100644 --- a/ObjectiveGit/GTRepository.h +++ b/ObjectiveGit/GTRepository.h @@ -333,6 +333,13 @@ typedef NS_ENUM(NSInteger, GTRepositoryStateType) { /// returns an array of NSStrings holding the names of the remotes, or nil if an error occurred - (NSArray * _Nullable)remoteNamesWithError:(NSError **)error; +/// Delete the given remote by name +/// +/// error - If not NULL, set to any error that occurs. +/// +/// returns YES if the deletion succeeded, otherwise NO. +- (BOOL)deleteRemoteNamed:(NSString *)remoteName error:(NSError **)error; + /// Get all tags in the repository. /// /// error - If not NULL, set to any error that occurs. diff --git a/ObjectiveGit/GTRepository.m b/ObjectiveGit/GTRepository.m index 5f9f2fb7b..239805d2b 100644 --- a/ObjectiveGit/GTRepository.m +++ b/ObjectiveGit/GTRepository.m @@ -467,6 +467,16 @@ - (NSArray *)remoteNamesWithError:(NSError **)error { return remoteNames; } +- (BOOL)deleteRemoteNamed:(NSString *)remoteName error:(NSError **)error { + int gitError = git_remote_delete(self.git_repository, [remoteName cStringUsingEncoding:NSUTF8StringEncoding]); + if (gitError < GIT_OK) { + if (error != NULL) *error = [NSError git_errorFor:gitError description:@"Failed to delete remote."]; + return NO; + } + + return YES; +} + struct GTRepositoryTagEnumerationInfo { __unsafe_unretained GTRepository *myself; __unsafe_unretained GTRepositoryTagEnumerationBlock block;