public WebSocketUpdater(WebSocketClientRepository webSocketClientRepository, PullRequestRepository pullRequestRepository, CompletedPullRequestRepository completedPullRequestRepository, IEventBus eventBus) { this.webSocketClientRepository = webSocketClientRepository; this.pullRequestRepository = pullRequestRepository; this.completedPullRequestRepository = completedPullRequestRepository; this.eventBus = eventBus; this.logger = Log.Logger; }
public PullRequestRepositoryTests() { var gitHubClientMock = new Mock <IGitHubClient>(); _pullRequestsClientMock = new Mock <IPullRequestsClient>(); gitHubClientMock.SetupGet(x => x.PullRequest).Returns(_pullRequestsClientMock.Object); _sut = new PullRequestRepository(gitHubClientMock.Object); }
public PullRequestUpdater(PullRequestRepository pullRequestRepository, RequestData requestData, RepositoryRepository repositoryRepository, UpdateStatusRepository updateStatusRepository, BuildRepository buildRepository, ILogger <PullRequestUpdater> logger) : base(logger) { this.requestData = requestData; this.repositoryRepository = repositoryRepository; this.updateStatusRepository = updateStatusRepository; this.buildRepository = buildRepository; this.pullRequestRepository = pullRequestRepository; }
protected override void Update() { DateTime startTime = DateTime.Now; base.Update(); IList <TFSAdvanced.Models.DTO.PullRequest> stalePullRequests = PullRequestRepository.GetStale(startTime); if (stalePullRequests.Any()) { Parallel.ForEach(stalePullRequests, new ParallelOptions { MaxDegreeOfParallelism = AppSettings.MAX_DEGREE_OF_PARALLELISM }, pullRequest => { PullRequest updatedPullRequest = GetAsync.Fetch <PullRequest>(RequestData, pullRequest.ApiUrl).Result; if (updatedPullRequest.status != "active") { PullRequestRepository.Remove(new[] { pullRequest }); } }); } }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "pull-requests")] HttpRequest req, CloudStorageAccount storageAccount, ILogger log) { var session = await req.GetAuthSession(storageAccount); if (session == null) { log.LogInformation("Unable to find session"); return(new UnauthorizedResult()); } var organisations = session.Organisations.Select(x => x.Name).ToList(); var pullRequestRepository = new PullRequestRepository(new AzureStorage(storageAccount)); var pullRequests = await pullRequestRepository.GetForOrganisations(organisations); return(new JsonResult(pullRequests, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() })); }
public static int CreateAutoMergePullRequest(this ICakeContext ctx, AutoMergeSettings settings, Action <AutoMergeCredentials> credentialConfigurator = null) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } var credentials = new AutoMergeCredentials(ctx.Log); if (credentialConfigurator == null) { credentials.AuthenticationNtlm(); } else { credentialConfigurator(credentials); } var repository = new PullRequestRepository(ctx.Log, settings, credentials); var pullRequestId = repository.CreatePullRequest(); if (settings.AutoApprove) { repository.VotePullRequest(pullRequestId, AutoMergeVote.Approved); } if (settings.AutoComplete) { repository.CompletePullRequest(pullRequestId, settings.OverridePolicies); } foreach (var reviewer in settings.Reviewers) { repository.AddReviewer(pullRequestId, reviewer); } return(pullRequestId); }
public PullRequestUpdatesSocket(WebSocketClientRepository webSocketClientRepository, PullRequestRepository pullRequestRepository) { this.webSocketClientRepository = webSocketClientRepository; this.pullRequestRepository = pullRequestRepository; }
public PullRequestUpdater(PullRequestRepository pullRequestRepository, RequestData requestData, RepositoryRepository repositoryRepository, UpdateStatusRepository updateStatusRepository, BuildRepository buildRepository, ILogger <PullRequestUpdaterBase> logger) : base(pullRequestRepository, requestData, repositoryRepository, updateStatusRepository, buildRepository, logger) { }
public OverviewViewModel(IssueRepository issues, PullRequestRepository pullRequest) { Issues = issues; PullRequests = pullRequest; Contexts = new ObservableCollection<ContextViewModel>(); }
protected override void Update() { var pullRequestCount = 0; Parallel.ForEach(repositoryRepository.GetAll(), new ParallelOptions { MaxDegreeOfParallelism = AppSettings.MAX_DEGREE_OF_PARALLELISM }, repository => { var repositoryPullRequests = new ConcurrentBag <PullRequest>(); if (string.IsNullOrEmpty(repository.PullRequestUrl)) { return; } IList <TFSAdvanced.Updater.Models.PullRequests.PullRequest> pullRequests = GetPullRequests(repository); if (pullRequests == null) { return; } Parallel.ForEach(pullRequests, new ParallelOptions { MaxDegreeOfParallelism = AppSettings.MAX_DEGREE_OF_PARALLELISM }, pullRequest => { try { CommitLink commitId = null; if (pullRequest.lastMergeCommit != null) { commitId = pullRequest.lastMergeCommit; } else if (pullRequest.lastMergeSourceCommit != null) { commitId = pullRequest.lastMergeSourceCommit; } if (commitId == null) { Logger.LogWarning($"Unable to get last merge commit for the pullrequest ({pullRequest.pullRequestId}) {pullRequest.description}"); return; } if (string.IsNullOrEmpty(commitId.commitId)) { Logger.LogWarning($"Unable to get the last commitID for the pull request ({pullRequest.pullRequestId}) {pullRequest.description}"); return; } Build build = buildRepository.GetBuildBySourceVersion(repository, commitId.commitId); PullRequest pullRequestDto = BuildPullRequest(pullRequest, build); pullRequestDto.Repository = repository; pullRequestDto.Url = BuildPullRequestUrl(pullRequest, RequestData.BaseAddress); pullRequestDto.RequiredReviewers = repository.MinimumApproverCount; foreach (TFSAdvanced.Updater.Models.PullRequests.Reviewer reviewer in pullRequest.reviewers) { // Container reviewers do not count if (reviewer.isContainer) { continue; } if (reviewer.vote == (int)Vote.Approved) { pullRequestDto.AcceptedReviewers++; } } pullRequestDto.LastUpdated = DateTime.Now; repositoryPullRequests.Add(pullRequestDto); Interlocked.Increment(ref pullRequestCount); } catch (Exception e) { Logger.LogError(e, "Error parsing pull request"); } }); if (repositoryPullRequests.Any()) { PullRequestRepository.Update(repositoryPullRequests.ToList()); } }); updateStatusRepository.UpdateStatus(new UpdateStatus { LastUpdate = DateTime.Now, UpdatedRecords = pullRequestCount, UpdaterName = GetType().Name }); }
public PullRequestsController(PullRequestRepository pullRequestRepository) { this.pullRequestRepository = pullRequestRepository; }