コード例 #1
0
ファイル: Repository.cs プロジェクト: Meyhem/MemzVault
        public async Task SetRepositoryManifest(string repo, RepositoryManifest manifest)
        {
            var rawJson = JsonSerializer.Serialize(manifest, new() { WriteIndented = false });
            var encoded = Encoding.UTF8.GetBytes(rawJson);

            await driver.WriteRepositoryManifest(repo, encoded);
        }
コード例 #2
0
        protected async Task EnsureRepositoryPermissionsAsync(
            Kdoctl.CliServices.AzDoServices.Dtos.Project project,
            RepositoryManifest repo, Microsoft.TeamFoundation.SourceControl.WebApi.GitRepository repository)
        {
            if (repository != null && repo.Permissions != null && repo.Permissions.Any())
            {
                var secService   = GetSecurityNamespaceService();
                var gitNamespace = await secService.GetNamespaceAsync(SecurityNamespaceConstants.Git_Repositories);

                var gitSecurityNamespaceId = gitNamespace.NamespaceId;
                var aclDictioanry          = new Dictionary <string, VstsAcesDictionaryEntry>();
                await CreateAclsAsync(typeof(GitRepositories), repo.Permissions, aclDictioanry);

                if (aclDictioanry.Count > 0)
                {
                    var repositorySecurityToken = $"repoV2/{project.Id}/{repository.Id}";
                    var aclService = GetAclListService();
                    await aclService.SetAclsAsync(gitSecurityNamespaceId, repositorySecurityToken, aclDictioanry, false);
                }
            }
        }