private PullRequest GetPullRequest(int pullRequestId) { var pullRequests = _bitBucketClient.RepositoriesEndPoint() .PullReqestsResource(_programArgs.BitBucketAccount, _programArgs.BitBucketRepository); return(pullRequests.PullRequestResource(pullRequestId).GetPullRequest() as PullRequest); }
public List <Repository> GetAllRepos(string usernameOrTeamName) { RepositoriesEndPoint repoEndPoint = m_sharpBucket2.RepositoriesEndPoint(); List <Repository> allRepos = null; if (!string.IsNullOrEmpty(usernameOrTeamName)) { allRepos = repoEndPoint.ListRepositories(usernameOrTeamName); } return(allRepos); }
public void Client_WithNoAuth_ShouldReadPublicRepos() { var client = new SharpBucketV2(); var ep = client.RepositoriesEndPoint(); var repos = ep.ListPublicRepositories(5); repos.Count.ShouldBe(5); }
public void NoAuthentication_NotExplicitlyCalled_ShouldReadPublicRepos() { var sharpBucket = new SharpBucketV2(); var ep = sharpBucket.RepositoriesEndPoint(); var repos = ep.ListPublicRepositories(5); repos.Count.ShouldBe(5); }
public void Client_WithNoAuth_ShouldRetrieveTortoise() { var client = new SharpBucketV2(); var ep = client.RepositoriesEndPoint(); var repo = ep.RepositoryResource("tortoisehg", "thg").GetRepository(); repo.ShouldNotBeNull(); repo.full_name.ShouldBe("tortoisehg/thg"); }
public void OAuth2ClientCredentials_AllowToListPrivateRepositories() { var privateRepo = SampleRepositories.PrivateTestRepository.GetRepository(); var sharpBucket = new SharpBucketV2(); sharpBucket.OAuth2ClientCredentials(TestHelpers.OAuthConsumerKey, TestHelpers.OAuthConsumerSecretKey); var accountRepos = sharpBucket.RepositoriesEndPoint().ListRepositories(TestHelpers.AccountName); accountRepos.ShouldNotBe(null); accountRepos.Any(p => p.is_private == true && p.name == privateRepo.name).ShouldBe(true); }
public void BasicAuthentication_BasicAuthentication_AllowToListPrivateRepositories() { var privateRepo = SampleRepositories.PrivateTestRepository.GetRepository(); var sharpBucket = new SharpBucketV2(); sharpBucket.BasicAuthentication(TestHelpers.UserName, TestHelpers.Password); var accountRepos = sharpBucket.RepositoriesEndPoint().ListRepositories(TestHelpers.AccountName); accountRepos.ShouldNotBe(null); accountRepos.Any(p => p.is_private == true && p.name == privateRepo.name).ShouldBe(true); }
private void PullRequest(ref Repositorios_VM repositorio, ref List <PullProjeto> ListPull, string tipo, Projeto objprojeto) { Repositorio codRepositorio; Repositorio objeto_repositorio; objeto_repositorio = objprojeto.Repositorio.Where(x => x.Tipo.Nome == tipo).SingleOrDefault(); var sharpBucket = new SharpBucketV2(); sharpBucket.OAuth2ClientCredentials(ConfigurationManager.AppSettings["consumerKey"], ConfigurationManager.AppSettings["consumerSecretKey"]); codRepositorio = objprojeto.Repositorio.Where(x => x.Tipo.Nome == tipo).SingleOrDefault(); if (tipo == "APP") { repositorio.VersaoAPP = (sharpBucket.RepositoriesEndPoint().TagResource(codUserAPI, codRepositorio.Codigo).ListTags().OrderByDescending(x => x.date).Select(x => x.name).FirstOrDefault() ?? repositorio.VersaoAPP); } else { repositorio.VersaoAPI = (sharpBucket.RepositoriesEndPoint().TagResource(codUserAPI, codRepositorio.Codigo).ListTags().OrderByDescending(x => x.date).Select(x => x.name).FirstOrDefault() ?? repositorio.VersaoAPI); } ListParameters parameters = new ListParameters { Filter = $"destination.branch.name = \"master\"", Sort = "-updated_on", Max = 1 }; var pullRequest = sharpBucket.RepositoriesEndPoint().PullRequestsResource(codUserAPI, objeto_repositorio.Codigo).ListPullRequests(parameters).FirstOrDefault(); if (pullRequest != null && !string.IsNullOrEmpty(pullRequest.title)) { ListPull.Add(new PullProjeto(pullRequest.title, pullRequest.created_on)); } }
private void IndexProject( SrcFileInfo searchFile, ConcurrentDictionary <PackageReference, HashSet <RepoInfo> > graph, IScanProgress scanProgress) { var fileName = Path.GetFileName(searchFile.path); if (!fileName.EndsWith(".csproj")) { return; } var repoSlug = ExtractSlugFromUrl(searchFile.links.self.href); if (_skipRepos.Contains(repoSlug)) { Console.WriteLine($"Skipped {repoSlug}"); return; } var repoResource = _client.RepositoriesEndPoint().RepositoryResource(_bbAccount, repoSlug); if (!_reposCache.TryGetValue(repoSlug, out var repo)) { var repoInfo = repoResource.GetRepository(); var fileLink = $"{repoInfo.links.html.href}/src/master/{searchFile.path}"; repo = RepoInfo.Parse(repoInfo.slug, fileLink); _reposCache.Add(repoSlug, repo); scanProgress.UpdateRepoProgress(); } var projectContent = repoResource.SrcResource().GetFileContent(searchFile.path); var nugetRefs = ProjectFileParser.Parse(projectContent); foreach (var nugetRef in nugetRefs) { if (!graph.TryGetValue(nugetRef, out var repoInfos)) { repoInfos = new HashSet <RepoInfo>(); } repoInfos.Add(repo); graph[nugetRef] = repoInfos; } scanProgress.UpdateProjectProgress(); Console.WriteLine($"Processed {fileName} from {repo.Name}"); }
private void IndexProject(SrcFileInfo searchFile, ConcurrentDictionary <PackageReference, HashSet <RepoInfo> > graph) { var fileName = Path.GetFileName(searchFile.path); if (!fileName.EndsWith(".csproj")) { return; } var repoSlug = ExtractSlugFromUrl(searchFile.links.self.href); var repoResource = _client.RepositoriesEndPoint().RepositoryResource(_bbAccount, repoSlug); if (!_reposCache.TryGetValue(repoSlug, out var repo)) { var repoInfo = repoResource.GetRepository(); repo = RepoInfo.Parse(repoInfo.slug, repoInfo.links.html.href); _reposCache.Add(repoSlug, repo); ++_foundReposCount; } var projectContent = repoResource.SrcResource().GetFileContent(searchFile.path); var nugetRefs = ProjectFileParser.Parse(projectContent); foreach (var nugetRef in nugetRefs) { if (!graph.TryGetValue(nugetRef, out var repoInfos)) { repoInfos = new HashSet <RepoInfo>(); } repoInfos.Add(repo); graph[nugetRef] = repoInfos; } ++_scannedProjectFilesCount; Console.WriteLine($"Processed {fileName} from {repo.Name}"); }
public void NoAuthentication_ExplicitlyCalledAfterAnEffectiveAuthentication_ShouldReadPublicReposButNotPrivateOnes() { var privateRepo = SampleRepositories.PrivateTestRepository.GetRepository(); var publicRepo = SampleRepositories.EmptyTestRepository.GetRepository(); var sharpBucket = new SharpBucketV2(); var repositoriesEndPoint = sharpBucket.RepositoriesEndPoint(); sharpBucket.OAuth2ClientCredentials(TestHelpers.OAuthConsumerKey, TestHelpers.OAuthConsumerSecretKey); var accountRepos = repositoriesEndPoint.ListRepositories(TestHelpers.AccountName); accountRepos.ShouldNotBe(null); accountRepos.Any(p => p.name == privateRepo.name).ShouldBe(true); accountRepos.Any(p => p.is_private == true).ShouldBe(true); accountRepos.Any(p => p.is_private == false && p.name == publicRepo.name).ShouldBe(true); sharpBucket.NoAuthentication(); accountRepos = repositoriesEndPoint.ListRepositories(TestHelpers.AccountName); accountRepos.ShouldNotBe(null); accountRepos.Any(p => p.name == privateRepo.name).ShouldBe(false); accountRepos.Any(p => p.is_private == true).ShouldBe(false); accountRepos.Any(p => p.is_private == false && p.name == publicRepo.name).ShouldBe(true); }
public RepositoriesEndPoint Authenticate(string clientId, string secret) { _sharpBucketV2.OAuth2ClientCredentials(clientId, secret); return(_sharpBucketV2.RepositoriesEndPoint()); }
public override Task <bool> ReportPackageSourceAudit() { if (!AuditOptions.ContainsKey("BitBucketReportAccount") || !AuditOptions.ContainsKey("BitBucketReportName") || !AuditOptions.ContainsKey("BitBucketKey")) { throw new ArgumentException("The BitBucketReportAccount, BitBucketReportName, and BitBucketReportKey audit options must be present."); } string key = (string)AuditOptions["BitBucketKey"]; string[] k = key.Split('|'); if (k.Count() != 2) { throw new ArgumentException("The BitBucketReportKey audit option must have the format consumer_key|secret."); } string consumer = k[0], secret = k[1]; string account = (string)AuditOptions["BitBucketReportAccount"]; string repository = (string)AuditOptions["BitBucketReportName"]; if (AuditOptions.ContainsKey("BitBucketReportTitle")) { IssueTitle = (string)AuditOptions["BitBucketReportTitle"]; } else { IssueTitle = string.Format("[DevAudit] {0} audit on {1} {2}", Source.PackageManagerLabel, DateTime.UtcNow.ToShortDateString(), DateTime.UtcNow.ToShortTimeString()); } SharpBucketV2 sharp_bucket = new SharpBucketV2(); sharp_bucket.OAuth2LeggedAuthentication(consumer, secret); RepositoriesEndPoint repository_endpoint = sharp_bucket.RepositoriesEndPoint(account, repository); IssuesResource r; try { r = repository_endpoint.IssuesResource(); } catch (Exception e) { AuditEnvironment.Error(e, "Could not get issues resource for repository {0}/{1}.", account, repository); return(Task.FromResult(false)); } BuildPackageSourceAuditReport(); Issue issue = new Issue() { title = IssueTitle, content = IssueText.ToString(), status = "new", priority = "major", kind = "bug" }; try { Issue i = r.PostIssue(issue); if (i == null) { AuditEnvironment.Error("Could not post issue to repository {0}/{1}.", account, repository); return(Task.FromResult(false)); } else { AuditEnvironment.Success("Created issue {0} at {1}.", i.title, i.resource_uri); } } catch (Exception e) { AuditEnvironment.Error(e, "Could not post issue to repository {0}/{1}.", account, repository); return(Task.FromResult(false)); } return(Task.FromResult(true)); }
public void Init() { sharpBucket = TestHelpers.GetV2ClientAuthenticatedWithOAuth(); repositoriesEndPoint = sharpBucket.RepositoriesEndPoint(); repositoryResource = repositoriesEndPoint.RepositoryResource(ACCOUNT_NAME, REPOSITORY_NAME); }
public void Init() { sharpBucket = TestHelpers.GetV2ClientAuthenticatedWithOAuth(); repositoriesEndPoint = sharpBucket.RepositoriesEndPoint(); }
/// <summary> /// Gets the list of the team's repositories. /// Private repositories only appear on this list if the caller is authenticated and is authorized to view the repository. /// </summary> /// <param name="parameters">Parameters for the query.</param> public List <Repository> ListRepositories(ListParameters parameters = null) { // The /teams/{username}/repositories request redirect to the repositories/{username}/ request // So to improve performances we directly do the the call to the repositories endpoint return(_sharpBucketV2.RepositoriesEndPoint().ListRepositories(_teamName, parameters ?? new ListParameters())); }
private static void TestRestRepositoriesEndPoint(SharpBucketV2 sharpBucket) { var repositoriesEndPoint = sharpBucket.RepositoriesEndPoint(); var repositories = repositoriesEndPoint.ListRepositories(accountName); var publicRepositories = repositoriesEndPoint.ListPublicRepositories(); var repositoryResource = repositoriesEndPoint.RepositoryResource(accountName, repository); //var repoInfo = new RepositoryInfo(); //var newRepository = repositoriesEndPoint.PutRepository(repo, accountName, repository); //var deletedRepository = repositoriesEndPoint.DeleteRepository(newRepository, accountName, repository); var watchers = repositoryResource.ListWatchers(); var forks = repositoryResource.ListForks(); var branchRestictions = repositoryResource.ListBranchRestrictions(); var newRestrictions = repositoryResource.PostBranchRestriction(new BranchRestriction()); int restrictionId = 1; var restriction = repositoryResource.GetBranchRestriction(restrictionId); var newRestiction = repositoryResource.PutBranchRestriction(new BranchRestriction()); var deletedRestiction = repositoryResource.DeleteBranchRestriction(restrictionId); var diff = repositoryResource.GetDiff(null); var patch = repositoryResource.GetPatch(null); var commits = repositoryResource.ListCommits(); string commitId = "sdfsdf"; var commit = repositoryResource.GetCommit(commitId); var commitComments = repositoryResource.ListCommitComments(commitId); int commentId = 10; var commitComment = repositoryResource.GetCommitComment(commitId, commentId); var commitApproval = repositoryResource.ApproveCommit(commitId); var deleteApproval = repositoryResource.DeleteCommitApproval(commitId); var r = repositoriesEndPoint.RepositoryResource(accountName, repository); var dr = r.DeleteRepository(); var w = r.ListWatchers(); var f = r.ListForks(); var br = r.ListBranchRestrictions(); var gr = r.GetBranchRestriction(restrictionId); var nr = r.PostBranchRestriction(new BranchRestriction()); var dbr = r.DeleteBranchRestriction(restrictionId); var diff2 = r.GetDiff(new object()); var patch2 = r.GetPatch(new object()); var commits2 = r.ListCommits(); var commit2 = r.GetCommit(commitId); var commitComments2 = r.ListCommitComments(commitId); var commitComment2 = r.GetCommitComment(commitId, commentId); var commitApproval2 = r.ApproveCommit(commitId); var deleteApproval2 = r.DeleteCommitApproval(commitId); var pullRequestsResource = r.PullRequestsResource(); var pullRequests = pullRequestsResource.ListPullRequests(); var source = new Source { branch = new Branch { name = "develop" }, repository = new Repository { full_name = repository } }; var destination = new Source { branch = new Branch { name = "master" }, commit = new Commit { hash = "56c3aca" } }; var newRequest = new PullRequest { title = "testing new one", description = "My new description", source = source, destination = destination }; //var newPullRequest = repositoriesEndPoint.PostPullRequest(accountName, repository, newRequest); //var updatedPullRequest = repositoriesEndPoint.PutPullRequest(accountName, repository, new PullRequest()); //var pullRequestId = 1; //var pullRequest = repositoriesEndPoint.GetPullRequest(accountName, repository, pullRequestId); //pullRequest.title = "HEHEHEH"; //var updatedPullRequest = repositoriesEndPoint.PutPullRequest(accountName, repository, pullRequest); //var commitsInPullRequest = repositoriesEndPoint.ListPullRequestCommits(accountName, repository, pullRequestId); //var postPullRequestApproval = repositoriesEndPoint.ApprovePullRequest(accountName, repository, pullRequestId); //var deletePullRequest = repositoriesEndPoint.RemovePullRequestApproval(accountName, repository, pullRequestId); //var getDiffForPullRequest = repositoriesEndPoint.GetDiffForPullRequest(accountName, repository, pullRequestId); //var pullRequestLog = repositoriesEndPoint.GetPullRequestLog(accountName, repository); //var pullRequestActivity = repositoriesEndPoint.GetPullRequestActivity(accountName, repository, pullRequestId); //var acceptPullRequest = repositoriesEndPoint.AcceptAndMergePullRequest(accountName, repository, pullRequestId); //var declinePullRequest = repositoriesEndPoint.DeclinePullRequest(accountName, repository, pullRequestId); //var pullRequestComments = repositoriesEndPoint.ListPullRequestComments(accountName, repository, pullRequestId); //var commentId = 10; //var pullRequestComment = repositoriesEndPoint.GetPullRequestComment(accountName, repository, pullRequestId, commentId); //var pullRequestsEP = repositoriesEndPoint.PullReqestsResource(accountName, repository); //var PRs = pullRequestsEP.ListPullRequests(); //var newPR = pullRequestsEP.PostPullRequest(new PullRequest()); //var updatedPR = pullRequestsEP.PutPullRequest(new PullRequest()); //var PRId = 10; //var PR = pullRequestsEP.GetPullRequest(PRId); //var commitsInPR = pullRequestsEP.ListPullRequestCommits(PRId); //var postPRApproval = pullRequestsEP.ApprovePullRequest(PRId); //var deletePR = pullRequestsEP.RemovePullRequestApproval(PRId); //var getDiffForPR = pullRequestsEP.GetDiffForPullRequest(PRId); //var PRLog = pullRequestsEP.GetPullRequestLog(); //var PRActivity = pullRequestsEP.GetPullRequestActivity(PRId); //var acceptPR = pullRequestsEP.AcceptAndMergePullRequest(PRId); //var declinePR = pullRequestsEP.DeclinePullRequest(PRId); //var PRComments = pullRequestsEP.ListPullRequestComments(PRId); //var cId = 10; //var PRComment = pullRequestsEP.GetPullRequestComment(PRId, cId); //var PRId2 = 10; //var pullRequestEP = pullRequestsEP.PullRequestEndPoint(PRId); //var PR2 = pullRequestEP.GetPullRequest(); //var commitsInPR2 = pullRequestEP.ListPullRequestCommits(); //var postPR2Approval = pullRequestEP.ApprovePullRequest(); //var deletePR2 = pullRequestEP.RemovePullRequestApproval(); //var getDiffForPR2 = pullRequestEP.GetDiffForPullRequest(); //var PR2Activity = pullRequestEP.GetPullRequestActivity(); //var acceptPR2 = pullRequestEP.AcceptAndMergePullRequest(); //var declinePR2 = pullRequestEP.DeclinePullRequest(); //var PR2Comments = pullRequestEP.ListPullRequestComments(); //var cId2 = 10; //var PR2Comment = pullRequestEP.GetPullRequestComment(cId2); }