コード例 #1
0
        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(),
            });
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }