Azure的DevOps学习笔记三

标签: Azure 分类: 软件 创建时间:2019-11-14 05:47:32 更新时间:2024-11-15 10:49:42

继续讲DevOps的操作。

1.添加仓库的ssh-key

(1) 点击自己的头像,选择安全性

(2) 选择ssh

(3) 填入./ssh文件夹下的id_rsa.pub里面的内容。

2.用户添加以及权限管理

在安装Azure Devops的windows上以管理员身份登录系统

(1) 新建devops组里面的用户
右键开始菜单->计算机管理->本地用户和组->用户,右键新建用户,添加多个用户

(2) 新建devops用户组
右键开始菜单->计算机管理->本地用户和组->组

右键新建组,然后通过添加->高级->立即查找->将第一步新建的用户添加入这个devops组中。

(3) 设置devops用户组中的用户禁止远程或本地登录系统
打开开始->运行(或者是win+R)->输入gpedit.msc,打开本地组策略编辑器。

然后依次打开 “计算机配置”——“Windows设置”——“安全设置”——“本地策略”——“用户权限分配”;

找到右侧的拒绝本地登录,打开添加对话框,将上一步的devops用户组,添加进去。

同理,将拒绝远程登陆中添加devops用户组,在允许本地登录和允许远程登录的用户和组中,去掉devops组中的用户和组

(4) 打开Azure devops管理控制台

(5) 添加用户
打开右侧的添加用户,选择搜索,然后选择高级->立即查找,将需要的用户选中,添加到Azure Devops账号体系中。

(鉴于SQL Sever的密码策略,可能拒绝本地登录后,会在添加Azure用户时报错)
此时可以将拒绝本地登录打开,仅仅拒绝远程登录。

经过我多次尝试,其实上面的错误,很有可能是因为用户名太短导致的,所以新建用户的时候,最后用四个以上的英文单词作为用户名

(6) 将用户添加到Azure Devops管理员用户组
这样就可以登录Azure Devops管理项目权限了。

(7) 浏览器登录Azure Devops
以管理员身份打开Devops,选择管理设置。

(8) 设置项目安全性
打开管理设置,选择安全性,可以看到有很多内容,可以选择某一个权限。

也可以添加用户

注意
1.在Azure devops管理控制台添加用户时,如果未选择将用户添加到管理员账户,用户是无法登录的。
(1) 要么在添加用户时直接给与管理员权限。

(2) 要么用管理员登录Devops,选择项目设置->安全性->项目集合管理员->成员->添加成员

将用户添加到项目集合管理员中

两种方式的区别,就是第一种,就是类似于添加了一个超级管理员,第二种就是只是赋予了用户登录创建项目的权限,没有权限删除和查看其他人的项目。

(9) 设置具体项目的管理权限
上面通过项目管理设置的权限,是对所有项目都生效的权限。这里讲的是针对某一个项目进行权限的设置。
以管理员身份登录(以其他用户身份登录,只能管理自己创建的项目,而不能同时管理全部的项目),点击默认项目集合,选择某一个项目。

点击项目设置->安全性

可以看到,有针对不同的组用户,读取者、参与者、发布管理员等不同的权限组,针对每一个权限组,都可以右侧的权限面板处进行权限的修改,成员面板处进行成员的添加。

除了自己安装Azure Devops,其实微软还提供了在线的Devops,无限制的仓库存储,使用方式基本和本地一样。地址是:https://dev.azure.com/, 打开之后,可以以微软账户进行登录,还可以修改组织名,类似于github修改名字,除了没有github提供的主页服务,其他都还好。

关于用户权限管理的说明
其实我尝试了上面的操作,理论上,为某一个项目设置了读取权限,那么本来就应该只能读取和写入了,但是实际上还是没有什么卵用的。即便我通过点击项目,然后选择邀请

最后添加了用户

这个用户登录后,依然无法查看项目内容。

(2019年11月25日更新)

针对git仓库的权限,我有了新的发现。当在 Azure DevOps Server 管理控制台,将用户设置为添加到管理员组后。管理员组用户可以管理全部仓库,拥有全部的权限。

对某一个项目,虽然不能完全让某一个管理员不可见,但是可以设置针对这个管理员的删除和修改权限。在某一个具体的项目设置里面,打开存储库,在安全性里面添加某一个用户,然后设置其权限。

那么这个管理员,就对这个项目的git仅仅只能查看,而不能参与了,但是其他的比如管道等功能还是可以使用的。

如果没有在管理控制台中将某一个用户添加到管理员组,那么这个用户甚至都无法查看这个仓库,其他的诸如管道等内容也无法查看。

在描述下我的我问题,我有两个用户,一个用户在添加时,选中了第三个选项,命名为A。一个用户在添加的时候,没有选择第三个选项,命名为B,比如这里的phxl。

我这里已经把用户添加到了项目集合管理员了。

但是实际上,用户B还是没有权限查看任何一个项目的git仓库。

这个问题,微软官方好像给了一点建议。

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。