This repository has been archived by the owner on Oct 4, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 509
/
RepositoriesSample.cs
60 lines (48 loc) · 2.02 KB
/
RepositoriesSample.cs
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
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
52
53
54
55
56
57
58
59
60
using Microsoft.TeamFoundation.SourceControl.WebApi;
using Microsoft.VisualStudio.Services.WebApi;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Microsoft.Azure.DevOps.ClientSamples.Git
{
[ClientSample(GitWebApiConstants.AreaName, "repositories")]
public class RepositoriesSample : ClientSample
{
[ClientSampleMethod]
public IEnumerable<GitRepository> ListRepositories()
{
VssConnection connection = this.Context.Connection;
GitHttpClient gitClient = connection.GetClient<GitHttpClient>();
Guid projectId = ClientSampleHelpers.FindAnyProject(this.Context).Id;
List<GitRepository> repos = gitClient.GetRepositoriesAsync(projectId).Result;
foreach(GitRepository repo in repos)
{
Console.WriteLine("{0} {1} {2}", repo.Id, repo.Name, repo.RemoteUrl);
}
return repos;
}
[ClientSampleMethod]
public IEnumerable<GitCommitRef> ListCommitsForRepository()
{
VssConnection connection = this.Context.Connection;
GitHttpClient gitClient = connection.GetClient<GitHttpClient>();
// Find a sample project to use for listing comments
Guid projectId = ClientSampleHelpers.FindAnyProject(this.Context).Id;
// Get first repo in the project
Guid repoId = gitClient.GetRepositoriesAsync(projectId).Result[0].Id;
// Get no more than 10 commits
GitQueryCommitsCriteria criteria = new GitQueryCommitsCriteria()
{
Top = 10
};
List<GitCommitRef> commits = gitClient.GetCommitsAsync(repoId, criteria).Result;
foreach(GitCommitRef commit in commits)
{
Console.WriteLine("{0} by {1} ({2})", commit.CommitId, commit.Committer.Email, commit.Comment);
}
return commits;
}
}
}