public static GhRepository ToModel(Octokit.Repository repo) { return(new GhRepository() { Name = repo.Name, Description = repo.Description, ForksCount = repo.ForksCount, OpenIssuesCount = repo.OpenIssuesCount, StargazersCount = repo.StargazersCount, OwnerLogin = repo.Owner.Login }); }
public RepositoryViewController( string owner, string repositoryName, Octokit.Repository repository = null) : this() { ViewModel = new RepositoryViewModel(); ViewModel.Init(new RepositoryViewModel.NavObject { Username = owner, Repository = repositoryName }); ViewModel.Repository = repository; }
public MutationTests() { _ticks = DateTime.Now.Ticks.ToString(); _repoName = $"TestProject_{_ticks}"; _gitHubClient = GetV3GitHubClient(); _repository = _gitHubClient.Repository.Create(new NewRepository(_repoName)).Result; var repositoryQuery = new Query().Repository(Helper.Username, _repoName) .Select(r => r.Id); _repositoryId = Connection.Run(repositoryQuery).Result; }
public GitHubRepository(Octokit.Repository repository) : base( repository.Name, repository.Archived, repository.Permissions != null ? new UserPermissions(repository.Permissions.Admin, repository.Permissions.Push, repository.Permissions.Pull) : null, GithubUriHelpers.Normalise(repository.CloneUrl), new User(repository.Owner.Login, repository.Owner.Name, repository.Owner.Email), repository.Fork, repository.Parent != null ? new GitHubRepository(repository.Parent) : null ) { }
/// <summary> /// Initializes a new instance of the <see cref="RemoteRepositoryModel"/> class. /// </summary> /// <param name="repository">The source octokit repository.</param> public RemoteRepositoryModel(Octokit.Repository repository) : base(repository.Name, repository.CloneUrl) { Id = repository.Id; IsFork = repository.Fork; SetIcon(repository.Private, IsFork); OwnerAccount = new Account(repository.Owner); DefaultBranch = new BranchModel(repository.DefaultBranch, this); Parent = repository.Parent != null ? new RemoteRepositoryModel(repository.Parent) : null; if (Parent != null) { Parent.DefaultBranch.DisplayName = Parent.DefaultBranch.Id; } }
public void Clone() { async void OnSelected(object sender, RepoEventArgs e) { GitHubRepo repo = await GitManager.Client.Repository.Get(e.Owner, e.Name); await CloneAsync(repo); } var repoWindow = new RepoWindow(); repoWindow.Selected += OnSelected; repoWindow.Show(); }
public async Task CloneAsync(GitHubRepo repo) { async void OnSelected(object sender, CloneEventArgs e) { await CloneAsync(repo, e.BranchName, e.Path); } var cloneWindow = new CloneWindow(); await cloneWindow.InitializeAsync(repo); cloneWindow.Selected += OnSelected; cloneWindow.Show(); }
public async Task CloneAsync(GitHubRepo repo, string branchName, string path) { RepositoryManager.RepositoryPath = path; await repo.CloneAsync(branchName, RepositoryManager.RepositoryPath); await SelectRepository(repo, branchName); if (!xRepositoryGrid.IsEnabled) { xRepositoryGrid.IsEnabled = true; } MessageBox.Show("Cloned the repository successfully.", MainTitle, MessageBoxButton.OK, MessageBoxImage.Information); }
internal RepositoryItemViewModel(Octokit.Repository repository, bool showOwner, Action<RepositoryItemViewModel> gotoCommand) { if (!string.IsNullOrEmpty(repository.Description) && repository.Description.IndexOf(':') >= 0) Description = Emojis.FindAndReplace(repository.Description); else Description = repository.Description; Repository = repository; Name = repository.Name; Owner = repository.Owner?.Login ?? string.Empty; Avatar = new GitHubAvatar(repository.Owner?.AvatarUrl); Stars = repository.StargazersCount.ToString(); Forks = repository.ForksCount.ToString(); ShowOwner = showOwner; GoToCommand = ReactiveCommand.Create().WithSubscription(x => gotoCommand(this)); }
internal RepositoryItemViewModel(Octokit.Repository repository, bool showOwner, Action <RepositoryItemViewModel> gotoCommand) { if (!string.IsNullOrEmpty(repository.Description) && repository.Description.IndexOf(':') >= 0) { Description = Emojis.FindAndReplace(repository.Description); } else { Description = repository.Description; } Repository = repository; Name = repository.Name; Owner = repository.Owner?.Login ?? string.Empty; Avatar = new GitHubAvatar(repository.Owner?.AvatarUrl); Stars = repository.StargazersCount.ToString(); Forks = repository.ForksCount.ToString(); ShowOwner = showOwner; GoToCommand = ReactiveCommand.Create().WithSubscription(x => gotoCommand(this)); }
async Task LoadRepo() { UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true; try { await _storage.SetWorkingRepo(RepoId); } catch (Exception e) { UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false; OpenRepoSelector(); return; } _repo = await _storage.GetRepo(RepoId); Title = _repo.Name; NavigationItem.BackBarButtonItem = new UIBarButtonItem(Title.Truncate(7), UIBarButtonItemStyle.Plain, null); var observableIssues = _storage.GetIssues(); observableIssues.Subscribe(UpdateIssues, onCompleted: DoneLoadingIssues); }
public RepositoryItemViewModel(Octokit.Repository repository, bool showOwner, bool showDescription, Action <RepositoryItemViewModel> gotoCommand) { if (showDescription) { if (!string.IsNullOrEmpty(repository.Description) && repository.Description.IndexOf(':') >= 0) { Description = Emojis.FindAndReplace(repository.Description); } else { Description = repository.Description; } } else { Description = null; } Repository = repository; ShowOwner = showOwner; GoToCommand = ReactiveCommand.Create(() => gotoCommand?.Invoke(this)); }
/// <inheritdoc /> public async Task <ILocalRepository> GetRepository(Octokit.Repository repository, Func <int, Task> onCloneProgress, Func <Task> onOperationBlocked, CancellationToken cancellationToken) { if (repository == null) { throw new ArgumentNullException(nameof(repository)); } var repoPath = ioManager.ConcatPath(repository.Owner.Login, repository.Name); TaskCompletionSource <object> usageTask = null; try { return(await TryLoadRepository(repoPath, onOperationBlocked, tcs => usageTask = tcs, cancellationToken).ConfigureAwait(false)); } catch (LibGit2SharpException e) { logger.LogWarning(e, "Failed to load repository {0}/{1}! Cloning...", repository.Owner.Login, repository.Name); } //so the repo failed to load and now we're holding our queue spot in usageTask //reclone it try { await ioManager.DeleteDirectory(repoPath, cancellationToken).ConfigureAwait(false); await ioManager.CreateDirectory(repoPath, cancellationToken).ConfigureAwait(false); await repositoryOperations.Clone(repository.CloneUrl, ioManager.ResolvePath(repoPath), onCloneProgress, cancellationToken).ConfigureAwait(false); return(await localRepositoryFactory.CreateLocalRepository(ioManager.ResolvePath(repoPath), usageTask, cancellationToken).ConfigureAwait(false)); } catch { //ok we can't do anything else, clear our queue spot usageTask.SetResult(null); throw; } }
public static MyIssues.Models.Repository Map(this Octokit.Repository repo) { var l = new Models.Repository { CreatedAt = repo.CreatedAt, Description = repo.Description, FullName = repo.FullName, HasIssues = repo.HasIssues, Homepage = repo.Homepage, Id = repo.Id, Language = repo.Language, Name = repo.Name, OpenIssuesCount = repo.OpenIssuesCount, Owner = repo.Owner.Login, IsPrivate = repo.Private, PushedAt = repo.PushedAt, StargazersCount = repo.StargazersCount, UpdatedAt = repo.UpdatedAt, Url = repo.Url }; return(l); }
public Repository(Octokit.Repository repository, bool valid) { Id = repository.Id; NodeId = repository.NodeId; OwnerId = repository.Owner.Id; Name = repository.Name ?? throw new ArgumentNullException(nameof(repository.Name)); Description = repository.Description ?? string.Empty; Language = repository.Language ?? string.Empty; LicenseKey = repository.License != null ? repository.License.Key : null; SubscribersCount = repository.SubscribersCount; StargazersCount = repository.StargazersCount; ForksCount = repository.ForksCount; Fork = repository.Fork; Archived = repository.Archived; HtmlUrl = repository.HtmlUrl ?? string.Empty; ApiUrl = repository.Url ?? string.Empty; CreatedAt = repository.CreatedAt.DateTime; UpdatedAt = repository.UpdatedAt.DateTime; ParentId = repository.Parent != null ? repository.Parent.Id : -1; SourceId = repository.Source != null ? repository.Source.Id : -1; FetchedAt = DateTime.Now; Valid = valid; }
private async Task LoadRepo(long repoId) { progress_horizontal.Visibility = ViewStates.Visible; _issuesListView.IsLoading = true; progress_horizontal.Indeterminate = true; try { await _storage.SetWorkingRepo(repoId); } catch (Exception e) { OpenRepoSelector(); return; } _repo = await _storage.GetRepo(repoId); Title = _repo.Name; var observableIssues = _storage.GetIssues(); observableIssues.Subscribe(UpdateIssues); var adapter = new IssuesAdapter(new List <Models.Issue>()); adapter.OnIssueSelected += (selected) => { Intent intent = new Intent(this, typeof(IssueMainActivity)); intent.PutExtra("id", selected.Id); intent.PutExtra("number", selected.Number); intent.PutExtra("title", selected.Title); StartActivity(intent); }; _issuesListView.IsLoading = false; _issuesListView.SetAdapter(adapter); progress_horizontal.Visibility = ViewStates.Gone; }
internal RepositoryItemViewModel(Octokit.Repository repository, bool showOwner, Action <RepositoryItemViewModel> gotoCommand) : this(repository.Name, repository.Owner.Login, repository.Owner.AvatarUrl, repository.Description, repository.StargazersCount, repository.ForksCount, showOwner, gotoCommand) { }
public static async Task CloneAsync(this GitHubRepo repo, string branchName, string path) { await Task.Run(() => GitManager.Clone(repo.CloneUrl, branchName, path)); }
public IHttpActionResult ConfirmWebsite(string websiteId) { ew.common.EwhLogger.Common.Debug("START CONFIRM WEBSITE: " + websiteId); if (ModelState.IsValid) { var ewhWebsite = _websiteManager.GetEwhWebsite(websiteId); if (ewhWebsite == null) { return(NotFound()); } var githubManager = new GitHubManager(); Octokit.Repository gitRepository = null; //create github repository if (string.IsNullOrEmpty(ewhWebsite.Git)) { if (githubManager.CreateRepository(ewhWebsite.RepositoryName, ewhWebsite.DisplayName).Result) { gitRepository = githubManager.RepositoryAdded; ewhWebsite.Git = githubManager.RepositoryAdded.CloneUrl; ewhWebsite.Save(); } else { EwhLogger.Common.Debug(string.Format("Create Repository Failed: {0} - {1}", ewhWebsite.RepositoryName, ewhWebsite.DisplayName)); return(NoOK("Can not create github repository")); } } else { gitRepository = githubManager.GetRepository(repoName: ewhWebsite.RepositoryName).Result; } if (string.IsNullOrEmpty(ewhWebsite.Source)) { ewhWebsite.InitGogSource(); } if (string.IsNullOrEmpty(ewhWebsite.Source)) { return(NoOK("Source_Empty")); } // add web-hook to demo & production server var ewhGogsSource = new EwhSource(); var ewhAccountAsOwner = _accountManager.GetEwhAccount(ewhWebsite.GetOwnerId()); if (ewhAccountAsOwner != null) { ewhGogsSource.CreateWebHook(new EwhSource.CreateWebHookDto(ewhAccountAsOwner.UserName, ewhWebsite.RepositoryName)); ewhGogsSource.CreateWebHook(new EwhSource.CreateWebHookDto(ewhAccountAsOwner.UserName, ewhWebsite.RepositoryName, ew.config.ProductionServer.WebHookUrl, ew.config.ProductionServer.SecretKey)); } // create sub domain var websiteDomain = string.Empty; var subDomainName = string.Format("{0}-{1}.{2}", ewhAccountAsOwner.UserName, ewhWebsite.Name, ew.config.CloudflareInfo.EwhDomain).ToLower(); var cloudflareManager = new CloudflareManager(); if (cloudflareManager.CreateDNSRecord(ew.config.CloudflareInfo.EwhCloudflareZoneId, new cloudflare_wrapper.Models.UpdateDNSRecordDto() { Type = "CNAME", Name = subDomainName, Content = "easywebhub.github.io" })) { websiteDomain = cloudflareManager.DNSRecordAdded.name; } else { } if (gitRepository != null) { var gitUrlIncludePass = githubManager.GetGitUrlIncludePassword(ewhWebsite.Git); var sourceRepoUrl = ewhWebsite.Source; var ewhGitHookListener = new EwhGitHookListener(); var demoGitHook = new git_hook_listener.Models.CreateGitHookListenerConfigDto() { GitHookListenerBaseUrl = ew.config.DemoServer.BaseUrl, repoUrl = sourceRepoUrl, branch = "gh-pages", cloneBranch = "gh-pages", path = string.Format("repositories/{0}", gitRepository.Name), args = new List <string>(), then = new List <git_hook_listener.Models.RepoCommand>() }; demoGitHook.then.Add(new git_hook_listener.Models.RepoCommand() { command = "git", args = new List <string>() { "remote", "add", "github", gitUrlIncludePass }, options = new git_hook_listener.Models.RepoCommandOption() { cwd = demoGitHook.path } }); demoGitHook.then.Add(new git_hook_listener.Models.RepoCommand() { command = "git", args = new List <string>() { "push", "--force", "github", "HEAD:gh-pages" }, options = new git_hook_listener.Models.RepoCommandOption() { cwd = demoGitHook.path } }); if (ewhGitHookListener.CreateGitHookListernerConfig(demoGitHook)) { ewhWebsite.AddStagging(new UpdateDeploymentEnvironmentToWebsite() { Url = websiteDomain, Git = sourceRepoUrl, HostingFee = HostingFees.Free.ToString(), Name = "EasyWeb Environment" }); } var productionGitHook = new git_hook_listener.Models.CreateGitHookListenerConfigDto() { GitHookListenerBaseUrl = ew.config.ProductionServer.BaseUrl, repoUrl = sourceRepoUrl, branch = "master", cloneBranch = "master", path = string.Format("repositories/{0}", gitRepository.Name) }; productionGitHook.then.Add(new git_hook_listener.Models.RepoCommand() { command = "git", args = new List <string>() { "remote", "add", "github", gitUrlIncludePass }, options = new git_hook_listener.Models.RepoCommandOption() { cwd = productionGitHook.path } }); productionGitHook.then.Add(new git_hook_listener.Models.RepoCommand() { command = "git", args = new List <string>() { "push", "--force", "github", "gh-pages" }, options = new git_hook_listener.Models.RepoCommandOption() { cwd = productionGitHook.path } }); if (ewhGitHookListener.CreateGitHookListernerConfig(productionGitHook)) { ewhWebsite.AddProduction(new UpdateDeploymentEnvironmentToWebsite() { Git = sourceRepoUrl, HostingFee = HostingFees.Basic.ToString(), Name = "Production Enviroment" }); } } return(Ok(new WebsiteDetailDto(ewhWebsite))); } return(BadRequest()); }
public async Task <string> GetRepositoryDescriptionAsync(string repoOwner, string repoName) { Octokit.Repository repo = await client.Repository.Get(repoOwner, repoName); return(repo.Description); }
public static void Clone(this GitHubRepo repo, string branchName, string path) { GitManager.Clone(repo.CloneUrl, branchName, path); }
public RepositoryViewController(Octokit.Repository repository) : this(repository.Owner.Login, repository.Name, repository) { }