Esempio n. 1
0
        private static async void ExportRepos()
        {
            var repositories = await GetRepositories();

            var tfsRepos = repositories.Where(x => x.Project.Name.Equals(TfsProjectName));

            var stashClient = new StashClient(StashUrl, StashUserName, StashPassword);
            var projects    = stashClient.Projects.Get().Result;

            var caeProj = projects.Values.FirstOrDefault(x => x.Name.Equals(StashProjectKey));

            if (caeProj != null)
            {
                var stashRepos = await stashClient.Repositories.Get(StashProjectKey);

                foreach (var repository in tfsRepos)
                {
                    if (stashRepos.Values.Any(x => x.Name.Equals(repository.Name, StringComparison.OrdinalIgnoreCase)))
                    {
                        continue;
                    }
                    var newRepo = new Atlassian.Stash.Entities.Repository
                    {
                        Name    = repository.Name,
                        Project = caeProj,
                        Public  = false
                    };
                    await stashClient.Repositories.Create(StashProjectKey, newRepo);

                    CloneRepo(repository, $"{StashUrl}/scm/{StashProjectKey.ToLowerInvariant()}/{repository.Name.ToLowerInvariant()}.git");
                }
            }
        }
Esempio n. 2
0
        internal static Models.Repository ConvertToRepository(this Atlassian.Stash.Entities.Repository stashRepo)
        {
            var cloneUrl = "";
            var linkUrl  = "";

            foreach (var clone in stashRepo.Links.Clone)
            {
                if (clone.Name.ToLower().Equals("http"))
                {
                    cloneUrl = clone.Href.AbsoluteUri;
                }
            }
            foreach (var self in stashRepo.Links.Self)
            {
                if (self.Href.AbsoluteUri.ToLower().Contains("http"))
                {
                    linkUrl = self.Href.AbsoluteUri;
                }
            }

            var retVal = new Models.Repository
            {
                Name          = stashRepo.Name,
                CloneUrl      = cloneUrl,
                Forkable      = stashRepo.Forkable,
                Id            = stashRepo.Id,
                Project       = stashRepo.Project.ConvertToProject(),
                Public        = stashRepo.Public,
                ScmId         = stashRepo.ScmId,
                Slug          = stashRepo.Slug,
                State         = stashRepo.State,
                StatusMessage = stashRepo.StatusMessage,
                Url           = linkUrl
            };


            return(retVal);
        }