public ObservableRepositoriesClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, "client");

            _client = client.Repository;
            _connection = client.Connection;
            Status = new ObservableCommitStatusClient(client);
            Hooks = new ObservableRepositoryHooksClient(client);
            Forks = new ObservableRepositoryForksClient(client);
#pragma warning disable CS0618 // Type or member is obsolete
            RepoCollaborators = new ObservableRepoCollaboratorsClient(client);
#pragma warning restore CS0618 // Type or member is obsolete
            Collaborator = new ObservableRepoCollaboratorsClient(client);
            Deployment = new ObservableDeploymentsClient(client);
            Statistics = new ObservableStatisticsClient(client);
            PullRequest = new ObservablePullRequestsClient(client);
#pragma warning disable CS0618 // Type or member is obsolete
            RepositoryComments = new ObservableRepositoryCommentsClient(client);
#pragma warning restore CS0618 // Type or member is obsolete
            Comment = new ObservableRepositoryCommentsClient(client);
#pragma warning disable CS0618 // Type or member is obsolete
            Commits = new ObservableRepositoryCommitsClient(client);
#pragma warning restore CS0618 // Type or member is obsolete
            Commit = new ObservableRepositoryCommitsClient(client);
            Release = new ObservableReleasesClient(client);
            DeployKeys = new ObservableRepositoryDeployKeysClient(client);
            Content = new ObservableRepositoryContentsClient(client);
            Merging = new ObservableMergingClient(client);
            Page = new ObservableRepositoryPagesClient(client);
        }
 public static IObservable <RepositoryTag> LastTag(this IRepositoriesClient repositoriesClient, Repository repository, Func <RepositoryTag, bool> gitagFilter = null)
 {
     gitagFilter ??= (tag => true);
     return(repositoriesClient.GetAllTags(repository.Id).ToObservable()
            .Select(tags => tags.Where(gitagFilter))
            .Select(list => list.First()).FirstAsync());
 }
        public TheEditBranchesMethod()
        {
            var github = Helper.GetAuthenticatedClient();

            _context = github.CreateRepositoryContext("source-repo").Result;
            _fixture = github.Repository;
        }
Example #4
0
        private async Task UpdateChangelogFileInRepository(IRepositoriesClient repositoriesClient, Repository repository, string document)
        {
            var branch = string.IsNullOrWhiteSpace(Branch)
                ? repository.DefaultBranch
                : Branch;

            var existingChangelog =
                (await repositoriesClient.Content.GetAllContentsByRef(repository.Id, branch))
                .FirstOrDefault(any => any.Name == "CHANGELOG.md");

            if (existingChangelog is null)
            {
                await repositoriesClient.Content.CreateFile(
                    repository.Id,
                    "CHANGELOG.md",
                    new CreateFileRequest("Added CHANGELOG.md",
                                          document,
                                          branch));
            }
            else
            {
                await repositoriesClient.Content.UpdateFile(
                    repository.Id,
                    "CHANGELOG.md",
                    new UpdateFileRequest("Updated CHANGELOG.md",
                                          document,
                                          existingChangelog.Sha,
                                          branch));
            }
        }
        private static GitHubUserModelService CreateTarget(
            IGitHubAppInstallationsClient gitHubAppsInstallationsClient = null,
            IGitHubAppsClient gitHubAppsClient = null,
            IGitHubUserClientFactory gitHubUserClientFactory = null,
            IGitHubClient gitHubClient           = null,
            IRepositoriesClient repositoryClient = null)
        {
            gitHubAppsInstallationsClient =
                gitHubAppsInstallationsClient ?? Substitute.For <IGitHubAppInstallationsClient>();

            gitHubAppsClient = gitHubAppsClient ?? Substitute.For <IGitHubAppsClient>();
            gitHubAppsClient.Installation.Returns(gitHubAppsInstallationsClient);

            gitHubClient = gitHubClient ?? Substitute.For <IGitHubClient>();
            gitHubClient.GitHubApps.Returns(gitHubAppsClient);

            repositoryClient = repositoryClient ?? Substitute.For <IRepositoriesClient>();

            gitHubClient.Repository.Returns(repositoryClient);

            gitHubUserClientFactory = gitHubUserClientFactory ?? Substitute.For <IGitHubUserClientFactory>();
            gitHubUserClientFactory.CreateClient().Returns(gitHubClient);

            return(new GitHubUserModelService(gitHubUserClientFactory));
        }
        public ObservableRepositoriesClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, "client");

            _client     = client.Repository;
            _connection = client.Connection;
            Status      = new ObservableCommitStatusClient(client);
            Hooks       = new ObservableRepositoryHooksClient(client);
            Forks       = new ObservableRepositoryForksClient(client);
#pragma warning disable CS0618 // Type or member is obsolete
            RepoCollaborators = new ObservableRepoCollaboratorsClient(client);
#pragma warning restore CS0618 // Type or member is obsolete
            Collaborator = new ObservableRepoCollaboratorsClient(client);
            Deployment   = new ObservableDeploymentsClient(client);
            Statistics   = new ObservableStatisticsClient(client);
            PullRequest  = new ObservablePullRequestsClient(client);
#pragma warning disable CS0618 // Type or member is obsolete
            RepositoryComments = new ObservableRepositoryCommentsClient(client);
#pragma warning restore CS0618 // Type or member is obsolete
            Comment = new ObservableRepositoryCommentsClient(client);
#pragma warning disable CS0618 // Type or member is obsolete
            Commits = new ObservableRepositoryCommitsClient(client);
#pragma warning restore CS0618 // Type or member is obsolete
            Commit     = new ObservableRepositoryCommitsClient(client);
            Release    = new ObservableReleasesClient(client);
            DeployKeys = new ObservableRepositoryDeployKeysClient(client);
            Content    = new ObservableRepositoryContentsClient(client);
            Merging    = new ObservableMergingClient(client);
            Page       = new ObservableRepositoryPagesClient(client);
        }
Example #7
0
        public ObservableRepositoriesClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, nameof(client));

            _client      = client.Repository;
            _connection  = client.Connection;
            Status       = new ObservableCommitStatusClient(client);
            Hooks        = new ObservableRepositoryHooksClient(client);
            Forks        = new ObservableRepositoryForksClient(client);
            Collaborator = new ObservableRepoCollaboratorsClient(client);
            Deployment   = new ObservableDeploymentsClient(client);
            Statistics   = new ObservableStatisticsClient(client);
            PullRequest  = new ObservablePullRequestsClient(client);
            Branch       = new ObservableRepositoryBranchesClient(client);
            Comment      = new ObservableRepositoryCommentsClient(client);
            Commit       = new ObservableRepositoryCommitsClient(client);
            Release      = new ObservableReleasesClient(client);
            DeployKeys   = new ObservableRepositoryDeployKeysClient(client);
            Content      = new ObservableRepositoryContentsClient(client);
            Merging      = new ObservableMergingClient(client);
            Page         = new ObservableRepositoryPagesClient(client);
            Invitation   = new ObservableRepositoryInvitationsClient(client);
            Traffic      = new ObservableRepositoryTrafficClient(client);
            Project      = new ObservableProjectsClient(client);
        }
        /// <summary>Asynchronously returns a <see cref="IReadOnlyList{Release}"/> of all available <see cref="Release"/>(s) from GitHub.</summary>
        /// <returns><see cref="IReadOnlyList{Release}"/></returns>
        public static async Task <IReadOnlyList <Release> > GetReleasesAsync()
        {
            GitHubClient        Client = new GitHubClient(new ProductHeaderValue(@"osu-backgroundpurger", $"v{Version}"));
            IRepositoriesClient Repo   = Client.Repository;

            // ReSharper disable once AsyncConverter.AsyncAwaitMayBeElidedHighlighting
            return(await Repo.Release.GetAll("starflash-studios", @"osu-backgroundpurger").ConfigureAwait(false));
        }
        public ObservableRepositoriesClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, "client");

            _client      = client.Repository;
            _connection  = client.Connection;
            CommitStatus = new ObservableCommitStatusClient(client);
        }
 public ObservableRepositoriesClient(IGitHubClient client)
 {
     Ensure.ArgumentNotNull(client, "client");
     
     _client = client.Repository;
     _connection = client.Connection;
     CommitStatus = new ObservableCommitStatusClient(client);
 }
Example #11
0
 public CovidDataCollectorController(ICosmosRepository cosmosRepository, IGitHubClient gitHubClient, IDataCollector dataCollector, DbConnection dbConnection, IOptions <GitHubConfig> gitHubConfig)
 {
     this.cosmosRepository = cosmosRepository;
     this.gitHubRepo       = gitHubClient.Repository;
     this.dataCollector    = dataCollector;
     this.dbConnection     = (SqlConnection)dbConnection;
     this.gitHubConfig     = gitHubConfig;
     covid19Services       = cosmosRepository.CosmosServices["covid19-ita"].Value;
 }
Example #12
0
        private async Task <PullRequest> FetchPullRequestObj(IRepositoriesClient repo)
        {
            var pr =
                await
                repo.PullRequest.Get(PullRequestLocator.Owner, PullRequestLocator.Repository,
                                     PullRequestLocator.PullRequestNumber);

            return(pr);
        }
Example #13
0
        private async Task <CompareResult> FetchCompareResult(IRepositoriesClient repo, PullRequest pr)
        {
            var commitsClient = repo.Commit;
            var compareResult =
                await
                commitsClient.Compare(PullRequestLocator.Owner, PullRequestLocator.Repository, pr.Base.Sha,
                                      pr.Head.Sha);

            return(compareResult);
        }
Example #14
0
 public PostBlogComment(
     GitHubClient githubClient,
     CommentInfo info,
     ISerializer yamlSerializer)
 {
     _githubClient     = githubClient;
     _githubRepoClient = _githubClient.Repository;
     _info             = info;
     _yamlSerializer   = yamlSerializer;
 }
        public ObservableRepositoriesClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, "client");

            _client           = client.Repository;
            _connection       = client.Connection;
            CommitStatus      = new ObservableCommitStatusClient(client);
            RepoCollaborators = new ObservableRepoCollaboratorsClient(client);
            Deployment        = new ObservableDeploymentsClient(client);
            Statistics        = new ObservableStatisticsClient(client);
            PullRequest       = new ObservablePullRequestsClient(client);
        }
 public ObservableRepositoriesClient(IGitHubClient client)
 {
     Ensure.ArgumentNotNull(client, "client");
     
     _client = client.Repository;
     _connection = client.Connection;
     CommitStatus = new ObservableCommitStatusClient(client);
     RepoCollaborators = new ObservableRepoCollaboratorsClient(client);
     Deployment = new ObservableDeploymentsClient(client);
     Statistics = new ObservableStatisticsClient(client);
     PullRequest = new ObservablePullRequestsClient(client);
 }
Example #17
0
        public static async Task <bool> Exists(this IRepositoriesClient client, string owner, string name)
        {
            try
            {
                await client.Get(owner, name);

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        private static GitHubAppModelService CreateTarget(
            IGitHubAppClientFactory gitHubAppClientFactory = null,
            IGitHubClient gitHubClient = null,
            IChecksClient checkClient  = null,
            IRepositoryContentsClient repositoryContentsClient = null,
            IRepositoriesClient repositoriesClient             = null,
            ICheckRunsClient checkRunsClient = null,
            ITokenGenerator tokenGenerator   = null)
        {
            if (checkRunsClient == null)
            {
                checkRunsClient = Substitute.For <ICheckRunsClient>();
            }

            if (checkClient == null)
            {
                checkClient = Substitute.For <IChecksClient>();
                checkClient.Run.Returns(checkRunsClient);
            }

            if (repositoryContentsClient == null)
            {
                repositoryContentsClient = Substitute.For <IRepositoryContentsClient>();
            }

            if (repositoriesClient == null)
            {
                repositoriesClient = Substitute.For <IRepositoriesClient>();
                repositoriesClient.Content.Returns(repositoryContentsClient);
            }

            if (gitHubClient == null)
            {
                gitHubClient = Substitute.For <IGitHubClient>();
                gitHubClient.Check.Returns(checkClient);
                gitHubClient.Repository.Returns(repositoriesClient);
            }

            if (gitHubAppClientFactory == null)
            {
                gitHubAppClientFactory = Substitute.For <IGitHubAppClientFactory>();
                gitHubAppClientFactory.CreateAppClient(Arg.Any <ITokenGenerator>()).Returns(gitHubClient);
                gitHubAppClientFactory.CreateAppClientForLoginAsync(Arg.Any <ITokenGenerator>(), Arg.Any <string>())
                .Returns(gitHubClient);
            }


            tokenGenerator = tokenGenerator ?? Substitute.For <ITokenGenerator>();

            return(new GitHubAppModelService(gitHubAppClientFactory, tokenGenerator));
        }
        public void Setup()
        {
            var logger = Substitute.For <ILogger <GitHubReporter> >();

            _mockClient       = Substitute.For <IGitHubClient>();
            _mockIssuesClient = Substitute.For <IIssuesClient>();
            _mockClient.Issue.Returns(_mockIssuesClient);
            _mockUsersClient = Substitute.For <IUsersClient>();
            _mockClient.User.Returns(_mockUsersClient);
            _mockRepositoryClient = Substitute.For <IRepositoriesClient>();
            _mockClient.Repository.Returns(_mockRepositoryClient);

            var user = new User(null, null, null, 0, null, DateTime.UtcNow, DateTime.UtcNow, 0, null, 0, 0, false, null, 0, 0, null, "LOGIN", null, null, 0, null, 0, 0, 0, null, new RepositoryPermissions(), false, null, null);

            _mockUsersClient.Current().Returns(Task.FromResult(user));

            _mockRepositoryClient.Get(Arg.Any <string>(), Arg.Any <string>()).Returns((args) => Task.FromResult(CreateRepository((string)args[0], (string)args[1], true, false)));

            _reporter = new GitHubReporter(logger, _mockClient, _config);
        }
        public ObservableRepositoriesClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, "client");

            _client = client.Repository;
            _connection = client.Connection;
            Status = new ObservableCommitStatusClient(client);
            Hooks = new ObservableRepositoryHooksClient(client);
            Forks = new ObservableRepositoryForksClient(client);
            Collaborator = new ObservableRepoCollaboratorsClient(client);
            Deployment = new ObservableDeploymentsClient(client);
            Statistics = new ObservableStatisticsClient(client);
            PullRequest = new ObservablePullRequestsClient(client);
            Comment = new ObservableRepositoryCommentsClient(client);
            Commit = new ObservableRepositoryCommitsClient(client);
            Release = new ObservableReleasesClient(client);
            DeployKeys = new ObservableRepositoryDeployKeysClient(client);
            Content = new ObservableRepositoryContentsClient(client);
            Merging = new ObservableMergingClient(client);
            Page = new ObservableRepositoryPagesClient(client);
            Invitation = new ObservableRepositoryInvitationsClient(client);
        }
Example #21
0
 private void FetchCommitsInPrAsync(IRepositoriesClient repo)
 {
     _backgroundTaskRunner.RunInBackground(() => RetrieveCommits(repo.PullRequest,
                                                                 _PullRequestLocator, new CommitsCombiner(Commits)));
 }
 public TheEditBranchMethod()
 {
     var github = Helper.GetAuthenticatedClient();
     _context = github.CreateRepositoryContext("source-repo").Result;
     _fixture = github.Repository;
 }
Example #23
0
        public void SetUp()
        {
            _compareResults       = new MockCompareResult();
            _gitHubClient         = Substitute.For <IGitHubClient>();
            _repoClient           = Substitute.For <IRepositoriesClient>();
            _commitsClient        = Substitute.For <IRepositoryCommitsClient>();
            _prClient             = Substitute.For <IPullRequestsClient>();
            _contentsClient       = Substitute.For <IRepositoryContentsClient>();
            _fileContentPersist   = Substitute.For <IFileContentPersist>();
            _diffTool             = Substitute.For <IDiffToolLauncher>();
            _patchService         = Substitute.For <IPatchService>();
            _reviewClient         = Substitute.For <IIssueCommentsClient>();
            _commentsBuilder      = Substitute.For <ICommentsBuilder>();
            _commentsPersist      = Substitute.For <ICommentsPersist>();
            _repoHistoryPersist   = Substitute.For <IRepoHistoryPersist>();
            _backgroundTaskRunner = Substitute.For <IBackgroundTaskRunner>();
            var userManager = Substitute.For <IUserManager>();

            _gitHubClient.Repository.Returns(_repoClient);
            _repoClient.Commit.Returns(_commitsClient);
            _repoClient.PullRequest.Returns(_prClient);
            _repoClient.Content.Returns(_contentsClient);
            _gitHubClient.Issue.Comment.Returns(_reviewClient);

            _commitsClient.Compare(Arg.Any <string>(),
                                   Arg.Any <string>(),
                                   Arg.Any <string>(),
                                   Arg.Any <string>()
                                   ).Returns(Task.FromResult((CompareResult)_compareResults));

            _mainWindowVm = new MainWindowVm(_gitHubClient, _fileContentPersist,
                                             _diffTool, _patchService, _commentsBuilder,
                                             _commentsPersist, _repoHistoryPersist, _backgroundTaskRunner, userManager)
            {
                PullRequestLocator = _pullRequestLocator,
                IsUrlMode          = false
            };

            _pullRequest = new MockPullRequest {
                Number = _pullRequestLocator.PullRequestNumber
            };
            _prClient.Get(_mainWindowVm.PullRequestLocator.Owner, _mainWindowVm.PullRequestLocator.Repository,
                          _mainWindowVm.PullRequestLocator.PullRequestNumber).Returns(Task.FromResult((PullRequest)_pullRequest));

            _baseFileName = MainWindowVm.BuildBaseFileName(_pullRequest.Base.Sha, _compareResults.File1.Filename);
            _headFileName = MainWindowVm.BuildHeadFileName(_pullRequest.Head.Sha, _compareResults.File1.Filename);

            _commentsContainer = new CommentsContainer {
                GeneralComments = GeneralComments
            };
            _commentsContainer.FileComments.Add(new FileComment
            {
                FileName     = _compareResults.File1.Filename,
                Comments     = Comment1,
                ReviewStatus = ReviewStatus1
            });
            _commentsContainer.FileComments.Add(new FileComment
            {
                FileName     = _compareResults.File2.Filename,
                Comments     = Comment2,
                ReviewStatus = ReviewStatus2
            });
            _commentsPersist.Load(Arg.Is <PullRequestLocator>(x => x.Equals(_pullRequestLocator)))
            .Returns(Task.FromResult(_commentsContainer));

            _backgroundTaskRunner.WhenForAnyArgs(x => x.RunInBackground(null)).Do(args =>
            {
                var a = args[0] as Action;
                a.Invoke();
            });

            _commentsPersist.ClearReceivedCalls();
            _backgroundTaskRunner.ClearReceivedCalls();
        }
Example #24
0
 public static void Init()
 {
     Git = new GitHubClient(new ProductHeaderValue("NTRClient"));
     Rep = Git.Repository;
 }
Example #25
0
 public static void Init()
 {
     Git = new GitHubClient(new ProductHeaderValue("NTRClient"));
     Rep = Git.Repository;
 }
Example #26
0
 public static void init()
 {
     git = new GitHubClient(new ProductHeaderValue("ntrclient"));
     rep = git.Repository;
 }
 public static IObservable <Repository> GetForOrg(this IRepositoriesClient repositoriesClient, string organization, string repositoryName)
 {
     return(repositoriesClient.GetAllForOrg(organization).ToObservable()
            .Select(list => list.First(repository => repository.Name == repositoryName)));
 }
 public static IObservable <Release> LastRelease(this IRepositoriesClient repositoriesClient, Repository repository, string millestone)
 {
     return(repositoriesClient.LastTag(repository, tag => tag.Name != millestone).Select(tag => tag.Name)
            .SelectMany(tagName => repositoriesClient.Release.GetAll(repository.Id).ToObservable().Select(list => list.First(release => release.TagName == tagName))));
 }