public async Task <IteratorBasedPage <PullRequest> > GetPullRequestsPage(string repositoryName, string ownerName, int page, int limit = 50, IPullRequestQueryBuilder builder = null) { var url = EnterpriseApiUrls.PullRequests(ownerName, repositoryName); var request = new BitbucketRestRequest(url, Method.GET); if (builder != null) { foreach (var param in builder.GetQueryParameters()) { request.AddQueryParameter(param.Key, param.Value); } } request.AddQueryParameter("limit", limit.ToString()).AddQueryParameter("start", ((page - 1) * limit).ToString()); var res = (await RestClient.ExecuteTaskAsync <EnterpriseIteratorBasedPage <EnterprisePullRequest> >(request)).Data; return(new IteratorBasedPage <PullRequest>() { Values = res.Values.MapTo <List <PullRequest> >(), Size = res.Size, Next = res.NextPageStart.ToString(), }); }
private async Task <string> GetAllLines(string url) //todo temporary for test { var result = new EnterpriseBrowsePage() { Lines = new List <EnterpriseBrowseText>() }; IRestResponse <EnterpriseBrowsePage> response; ulong pageNumber = 0; do { var request = new BitbucketRestRequest(url, Method.GET); request.AddQueryParameter("start", pageNumber.ToString()); response = await RestClient.ExecuteTaskAsync <EnterpriseBrowsePage>(request); if (response.Data?.Lines == null) { break; } result.Lines.AddRange(response.Data.Lines); pageNumber += response.Data.Size.Value; } while (response.Data?.IsLastPage == false); return(string.Join(Environment.NewLine, result.Lines.Select(x => x.Text))); }
public async Task <IteratorBasedPage <PullRequest> > GetPullRequestsPage(string repositoryName, string ownerName, int page, int limit = 50, IPullRequestQueryBuilder builder = null) { var url = ApiUrls.PullRequests(ownerName, repositoryName); var request = new BitbucketRestRequest(url, Method.GET); if (builder != null) { foreach (var param in builder.GetQueryParameters()) { request.AddQueryParameter(param.Key, param.Value); } } request.AddQueryParameter("pagelen", limit.ToString()).AddQueryParameter("page", page.ToString()); var response = await RestClient.ExecuteTaskAsync <IteratorBasedPage <PullRequest> >(request); return(response.Data); }
public async Task <IEnumerable <UserShort> > GetRepositoryUsers(string repositoryName, string ownerName, string filter) { var url = ApiUrls.Mentions(ownerName, repositoryName); var query = new QueryString() { { "term", filter } }; var request = new BitbucketRestRequest(url, Method.GET); foreach (var par in query) { request.AddQueryParameter(par.Key, par.Value); } var response = await _webClient.ExecuteTaskAsync <List <UserShort> >(request); return(response.Data); }
public async Task <IEnumerable <FileDiff> > GetCommitsDiff(string repoName, string owner, string fromCommit, string toCommit) { var url = EnterpriseApiUrls.CommitsDiff(owner, repoName); var queryString = new QueryString() { { "from", fromCommit }, { "to", toCommit }, }; var request = new BitbucketRestRequest(url, Method.GET); foreach (var param in queryString) { request.AddQueryParameter(param.Key, param.Value); } var response = await RestClient.ExecuteTaskAsync <EnterpriseDiffResponse>(request); var fileDiffs = ParseFileDiffs(response); return(fileDiffs); }