public async Task <Comment> AddPullRequestComment(string repositoryName, string ownerName, long id, string content, long?lineFrom = null, long?lineTo = null, string fileName = null, long?parentId = null) { var url = ApiUrls.PullRequestCommentsV1(ownerName, repositoryName, id); var request = new BitbucketRestRequest(url, Method.POST); var body = new CommentV1() { Content = content, LineFrom = parentId != null ? null : lineFrom, LineTo = parentId != null ? null : lineTo, FileName = fileName, ParentId = parentId }; if (body.LineFrom != null)//we can't set both { body.LineTo = null; } request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(body), ParameterType.RequestBody); var response = await _versionOneClient.ExecuteTaskAsync <CommentV1>(request); return(response.Data.MapTo <Comment>()); }
public async Task <IEnumerable <Comment> > GetPullRequestComments(string repositoryName, string ownerName, long id) { var url = ApiUrls.PullRequestCommentsV1(ownerName, repositoryName, id); var request = new BitbucketRestRequest(url, Method.GET); return((await _versionOneClient.ExecuteTaskAsync <List <CommentV1> >(request)).Data.MapTo <List <Comment> >()); }
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(), }); }
public async Task <Comment> AddPullRequestComment(string repositoryName, string ownerName, long id, string content, long?lineFrom = null, long?lineTo = null, string fileName = null, long?parentId = null) { var url = EnterpriseApiUrls.PullRequestComments(ownerName, repositoryName, id); var request = new BitbucketRestRequest(url, Method.POST); var body = new EnterpriseComment() { Text = content, Parent = parentId.HasValue ? new EnterpriseParent() { Id = parentId.Value } : null, Anchor = fileName != null ? new EnterpriseAnchor() { Line = lineFrom ?? lineTo, FileType = lineFrom != null && lineTo != null ? (FileDiffType?)null : lineFrom != null ? FileDiffType.From : FileDiffType.To, Path = fileName, SourcePath = fileName, LineType = lineFrom != null && lineTo != null ? "CONTEXT" : lineFrom != null ? "REMOVED" : "ADDED", } : null }; request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(body), ParameterType.RequestBody); var response = await RestClient.ExecuteTaskAsync <EnterpriseComment>(request); return(response.Data.MapTo <Comment>()); }
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 <IEnumerable <Repository> > GetUserRepositoriesV1() { var repositories = new List <Repository>(); var url = ApiUrls.RepositoriesV1(); var request = new BitbucketRestRequest(url, Method.GET); var response = await _versionOneClient.ExecuteTaskAsync <List <RepositoryV1> >(request); if (response.Data != null) { foreach (var repositoryV1 in response.Data) { var repo = repositoryV1.MapTo <Repository>(); repo.Links = new Links { Clone = new List <Link>() { new Link() { Href = $"{Connection.MainUrl.Scheme}://{Connection.Credentials.Login}@{Connection.MainUrl.Host}/{repositoryV1.Owner}/{repositoryV1.Slug}.git" } } }; repositories.Add(repo); } } return(repositories); }
public async Task <Comment> AddPullRequestComment(string repositoryName, string ownerName, long id, string content, long?lineFrom = null, long?lineTo = null, string fileName = null, long?parentId = null) { var url = ApiUrls.PullRequestComments(ownerName, repositoryName, id); var request = new BitbucketRestRequest(url, Method.POST); var body = new Comment() { Content = new Content() { Raw = content }, Inline = fileName != null ? new Inline() { From = parentId != null ? null : lineFrom, To = parentId != null ? null : lineTo, Path = fileName } : null, Parent = parentId.HasValue ? new Parent() { Id = parentId.Value } : null }; request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(body), ParameterType.RequestBody); var response = await RestClient.ExecuteTaskAsync <Comment>(request); return(response.Data); }
public async Task <PullRequest> GetPullRequest(string repositoryName, string owner, long id) { var url = EnterpriseApiUrls.PullRequest(owner, repositoryName, id); var request = new BitbucketRestRequest(url, Method.GET); var pullRequest = await RestClient.ExecuteTaskAsync <EnterprisePullRequest>(request); return(pullRequest.Data.MapTo <PullRequest>()); }
public async Task MergePullRequest(string repositoryName, string ownerName, MergeRequest mergeRequest) { var url = ApiUrls.PullRequestMerge(ownerName, repositoryName, mergeRequest.Id); var request = new BitbucketRestRequest(url, Method.POST); request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(mergeRequest), ParameterType.RequestBody); await RestClient.ExecuteTaskAsync(request); }
public async Task <Commit> GetCommitById(string repoName, string owner, string id) { var url = ApiUrls.Commit(owner, repoName, id); var request = new BitbucketRestRequest(url, Method.GET); var response = await RestClient.ExecuteTaskAsync <Commit>(request); return(response.Data); }
public async Task <string> GetFileContent(string repoName, string owner, string hash, string path) { var url = ApiUrls.DownloadFile(owner, repoName, hash, path); var request = new BitbucketRestRequest(url, Method.GET); var response = await _versionOneClient.ExecuteTaskAsync(request); return(response.Content); }
public async Task <PullRequest> GetPullRequest(string repositoryName, string owner, long id) { var url = ApiUrls.PullRequest(owner, repositoryName, id); var request = new BitbucketRestRequest(url, Method.GET); var response = await RestClient.ExecuteTaskAsync <PullRequest>(request); return(response.Data); }
public async Task <User> GetUser() { var url = ApiUrls.User(); var request = new BitbucketRestRequest(url, Method.GET); var response = await RestClient.ExecuteTaskAsync <User>(request); return(response.Data); }
private async Task <DefaultBranch> DefaultBranch(string repoName, string owner) { var url = ApiUrls.DefaultBranch(owner, repoName); var request = new BitbucketRestRequest(url, Method.GET); var response = await _versionOneClient.ExecuteTaskAsync <DefaultBranch>(request); return(response.Data); }
public async Task <IEnumerable <FileDiff> > GetPullRequestDiff(string repositoryName, string owner, long id) { var url = ApiUrls.PullRequestDiff(owner, repositoryName, id); var request = new BitbucketRestRequest(url, Method.GET); var response = await RestClient.ExecuteTaskAsync(request); return(DiffFileParser.Parse(response.Content)); }
public async Task <Participant> ApprovePullRequest(string repositoryName, string ownerName, long id) { var url = ApiUrls.PullRequestApprove(ownerName, repositoryName, id); var request = new BitbucketRestRequest(url, Method.POST); var response = await RestClient.ExecuteTaskAsync <Participant>(request); return(response.Data); }
private async Task <DefaultBranch> DefaultBranch(string repoName, string owner) { var url = ApiUrls.DefaultBranch(owner, repoName); var request = new BitbucketRestRequest(url, Method.GET); throw new NotSupportedException("Deprecated"); // var response = await _versionOneClient.ExecuteTaskAsync<DefaultBranch>(request); // return response.Data; }
public async Task <User> GetUser(string login) { var url = EnterpriseApiUrls.Users(login); var request = new BitbucketRestRequest(url, Method.GET); var response = await RestClient.ExecuteTaskAsync <EnterpriseUser>(request); return(response.Data.MapTo <User>()); }
public async Task <Repository> CreateRepository(Repository repository) { var url = ApiUrls.Repository(Connection.Credentials.Login, repository.Name); var request = new BitbucketRestRequest(url, Method.POST); request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(repository), ParameterType.RequestBody); var response = await RestClient.ExecuteTaskAsync <Repository>(request); return(response.Data); }
public async Task <IEnumerable <FileDiff> > GetPullRequestDiff(string repositoryName, string owner, long id) { var url = EnterpriseApiUrls.PullRequestDiff(owner, repositoryName, id); var request = new BitbucketRestRequest(url, Method.GET); var response = await RestClient.ExecuteTaskAsync <EnterpriseDiffResponse>(request); var fileDiffs = ParseFileDiffs(response); return(fileDiffs); }
public async Task CreatePullRequest(PullRequest pullRequest, string repositoryName, string owner) { pullRequest.Author = new User() { Username = Connection.Credentials.Login }; var url = EnterpriseApiUrls.PullRequests(owner, repositoryName); var request = new BitbucketRestRequest(url, Method.POST); request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(pullRequest.MapTo <EnterprisePullRequest>()), ParameterType.RequestBody); await RestClient.ExecuteTaskAsync(request); }
public async Task UpdatePullRequest(PullRequest pullRequest, string repoName, string owner) { pullRequest.Author = new User() { Username = Connection.Credentials.Login }; var url = ApiUrls.PullRequest(owner, repoName, pullRequest.Id); var request = new BitbucketRestRequest(url, Method.PUT); request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(pullRequest), ParameterType.RequestBody); var response = await RestClient.ExecuteTaskAsync <PullRequest>(request); }
public async Task <IEnumerable <FileDiff> > GetCommitsDiff(string repoName, string owner, string fromCommit, string toCommit) { if (fromCommit == toCommit) //otherwise it produces diff against its parent { return(Enumerable.Empty <FileDiff>()); } var url = ApiUrls.CommitsDiff(owner, repoName, fromCommit, toCommit); var request = new BitbucketRestRequest(url, Method.GET); var response = await RestClient.ExecuteTaskAsync(request); return(DiffFileParser.Parse(response.Content)); }
public async Task <Repository> CreateRepository(Repository repository) { var url = EnterpriseApiUrls.CreateRepositories(Connection.Credentials.Login); var request = new BitbucketRestRequest(url, Method.POST); var enterpriseRepo = new EnterpriseRepository() { Name = repository.Name, IsPublic = !repository.IsPrivate }; request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(enterpriseRepo), ParameterType.RequestBody); var response = await RestClient.ExecuteTaskAsync <EnterpriseRepository>(request); return(response.Data.MapTo <Repository>()); }
public async Task UpdatePullRequest(PullRequest pullRequest, string repoName, string owner) { pullRequest.Author = new User() { Username = Connection.Credentials.Login }; pullRequest.Destination = null;//throws exception if the same dest is set. Unless we allow to change it, leave it null var url = EnterpriseApiUrls.PullRequest(owner, repoName, pullRequest.Id); var request = new BitbucketRestRequest(url, Method.PUT); request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(pullRequest.MapTo <EnterprisePullRequest>()), ParameterType.RequestBody); await RestClient.ExecuteTaskAsync(request); }
public async Task <Comment> EditPullRequestComment(string repositoryName, string ownerName, long pullRequestId, long id, string content, long commentVersion) { var url = ApiUrls.PullRequestCommentV1(ownerName, repositoryName, pullRequestId, id); var request = new BitbucketRestRequest(url, Method.PUT); var body = new CommentV1() { Content = content }; request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(body), ParameterType.RequestBody); var response = await _versionOneClient.ExecuteTaskAsync <CommentV1>(request); return(response.Data.MapTo <Comment>()); }
public async Task CreatePullRequest(PullRequest pullRequest, string repositoryName, string owner) { pullRequest.Author = new User() { UserName = Connection.Credentials.Login, }; pullRequest.Reviewers = pullRequest.Reviewers.Select(x => new User() { Uuid = x.Uuid }).ToList(); var url = ApiUrls.PullRequests(owner, repositoryName); var request = new BitbucketRestRequest(url, Method.POST); request.AddParameter("application/json; charset=utf-8", request.JsonSerializer.Serialize(pullRequest), ParameterType.RequestBody); var response = await RestClient.ExecuteTaskAsync <PullRequest>(request); }
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 <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 <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); }