要访问 gitlabs
Package Registry
,需要使用 access_token
,就像添加到 maven
settings.xml
的私有令牌一样。否则注册表将无法访问。
https://docs.gitlab.com/ee/user/packages/package_registry/
<settings>
<servers>
<server>
<id>gitlab-maven</id>
<configuration>
<httpHeaders>
<property>
<name>Private-Token</name>
<value>PERSONAL_ACCESS_TOKEN</value>
</property>
</httpHeaders>
</configuration>
</server>
</servers>
</settings>
问题:如何在没有身份验证的情况下公开注册表内的库?或者更好的说法是:公司中有权访问 gitlab 的每个用户都应该能够简单地获取库,而无需在其 Maven 配置中添加任何令牌。
这可能吗?
新答案
自 GitLab 15.7 起,您可以按照文档中的允许任何人从包注册表中提取部分操作:
允许任何人从包注册表中提取数据,无论项目可见性如何:
- 在左侧边栏上,选择“搜索”或转到并查找您的私人或内部项目。
- 选择设置 > 常规。
- 扩展可见性、项目功能、权限。
- 打开“允许任何人从程序包注册表中提取”开关。 选择保存更改。
互联网上的任何人都可以访问该项目的包注册表。
旧答案
有一个公开提案:
为 GitLab 包和注册表添加特定于功能的控件,以便管理员在如何共享项目资源方面拥有更大的灵活性和控制权。
但这还没有实现。
然后根据文档中定义的项目可见性派生出包注册表可见性权限。
如果您想在无需身份验证的情况下访问包注册表,目前唯一的解决方案似乎是启用了包注册表的公共项目。