4
4
using System . Reactive ;
5
5
using System . Reactive . Linq ;
6
6
using LibGit2Sharp ;
7
- using System . Collections . Generic ;
8
7
9
8
namespace GitHub . Services
10
9
{
@@ -13,11 +12,15 @@ namespace GitHub.Services
13
12
public class GitClient : IGitClient
14
13
{
15
14
readonly IGitHubCredentialProvider credentialProvider ;
15
+ readonly PushOptions pushOptions ;
16
+ readonly FetchOptions fetchOptions ;
16
17
17
18
[ ImportingConstructor ]
18
19
public GitClient ( IGitHubCredentialProvider credentialProvider )
19
20
{
20
21
this . credentialProvider = credentialProvider ;
22
+ pushOptions = new PushOptions { CredentialsProvider = credentialProvider . HandleCredentials } ;
23
+ fetchOptions = new FetchOptions { CredentialsProvider = credentialProvider . HandleCredentials } ;
21
24
}
22
25
23
26
public IObservable < Unit > Push ( IRepository repository , string branchName , string remoteName )
@@ -30,11 +33,7 @@ public IObservable<Unit> Push(IRepository repository, string branchName, string
30
33
if ( repository . Head ? . Commits != null && repository . Head . Commits . Any ( ) )
31
34
{
32
35
var remote = repository . Network . Remotes [ remoteName ] ;
33
- repository . Network . Push ( remote , "HEAD" , @"refs/heads/" + branchName ,
34
- new PushOptions ( )
35
- {
36
- CredentialsProvider = credentialProvider . HandleCredentials
37
- } ) ;
36
+ repository . Network . Push ( remote , "HEAD" , @"refs/heads/" + branchName , pushOptions ) ;
38
37
}
39
38
return Observable . Return ( Unit . Default ) ;
40
39
} ) ;
@@ -47,10 +46,7 @@ public IObservable<Unit> Fetch(IRepository repository, string remoteName)
47
46
return Observable . Defer ( ( ) =>
48
47
{
49
48
var remote = repository . Network . Remotes [ remoteName ] ;
50
- repository . Network . Fetch ( remote , new FetchOptions ( )
51
- {
52
- CredentialsProvider = credentialProvider . HandleCredentials
53
- } ) ;
49
+ repository . Network . Fetch ( remote , fetchOptions ) ;
54
50
return Observable . Return ( Unit . Default ) ;
55
51
} ) ;
56
52
}
0 commit comments