public string GetGiteaTargetPath(GiteeUrlType urlType) { switch (urlType) { case GiteeUrlType.CurrentBranch: return(repository.Head.FriendlyName.Replace("origin/", "")); case GiteeUrlType.CurrentRevision: return(repository.Commits.First().Id.ToString(8)); case GiteeUrlType.CurrentRevisionFull: return(repository.Commits.First().Id.Sha); case GiteeUrlType.Master: default: return("master"); } }
public string BuildGiteaUrl(GiteeUrlType urlType, Tuple <int, int> selectionLineRange) { string fileUrl = ""; string urlRoot = GetRepoUrlRoot(); // foo/bar.cs var rootDir = repository.Info.WorkingDirectory; var fileIndexPath = targetFullPath.Substring(rootDir.Length).Replace("\\", "/"); var repositoryTarget = GetGiteaTargetPath(urlType); // line selection var fragment = (selectionLineRange != null) ? (selectionLineRange.Item1 == selectionLineRange.Item2) ? string.Format("#L{0}", selectionLineRange.Item1) : string.Format("#L{0}-L{1}", selectionLineRange.Item1, selectionLineRange.Item2) : ""; var urlshowkind = "blob"; if (urlType == GiteeUrlType.Blame) { urlshowkind = "blame"; } if (urlType == GiteeUrlType.Commits) { urlshowkind = "commits"; } if (urlType == GiteeUrlType.WebIDE) { Uri uri = new Uri(urlRoot); fileUrl = $"{uri.Scheme}://{uri.Host}/-/ide/project{uri.AbsolutePath}/edit/{repositoryTarget}/-/{fileIndexPath}{fragment}"; } else { fileUrl = string.Format("{0}/{4}/{1}/{2}{3}", urlRoot.Trim('/'), WebUtility.UrlEncode(repositoryTarget.Trim('/')), fileIndexPath.Trim('/'), fragment, urlshowkind); } return(fileUrl); }
public string GetGiteaTargetDescription(GiteeUrlType urlType) { switch (urlType) { case GiteeUrlType.CurrentBranch: return("浏览当前分支 " + repository.Head.FriendlyName.Replace("origin/", "")); case GiteeUrlType.CurrentRevision: return($"浏览修订 {repository.Commits.First().Id.ToString(8)}"); case GiteeUrlType.CurrentRevisionFull: return($"浏览修订 {repository.Commits.First().Id.ToString(8)} 完整 ID"); case GiteeUrlType.Blame: return("在线追溯"); case GiteeUrlType.Commits: return("浏览提交历史"); case GiteeUrlType.Master: default: return("浏览主分支"); } }