# 使用说明

# 代码库选择

点击左侧“代码库”主菜单即可显示代码托管平台主界面,主界面以“全部”、“我是管理员”、“我的收藏”三个标签页分别显示了代码库列表的分组。而且系统会自动记住你上次的选择,方便下次使用。第一次进入主界面时不会出现代码库下的功能菜单,当选择一个代码库进入后,会显示代码库操作的二级菜单。

An image

# 创建代码库

本代码托管平台主界面右上角“创建代码库”按钮可进行代码库的创建,创建可以新建或者导入。

创建代码库

# 文件

选择代码库进入,默认展示在文件页面。

页面最上方是面包屑,然后是当前仓库master分支的一级目录结构、对应最新提交(即commit)、排序、创建文件按钮、上传按钮、下载按钮、放大&缩小按钮。点击切换master为其他分支,即可查看其他分支代码的一级目录结构及对应最新提交。

右上角展示的是克隆Git仓库地址按钮和收藏代码库按钮。Git仓库地址分为HTTPS( https://{平台访问地址}/git/企业域名/目录名称/仓库名称 )和SSH(ssh://{平台访问地址}/git/企业域名/目录名称/仓库名称 )两种方式,点击地址上方的链接可切换到对应方式的仓库地址。详情参考Git仓库管理。

An image

An image

对代码文件可以进行在线编辑,markdown文件还支持预览模式,右上角缩略图支持快捷拖动。 An image

# 查看代码质量问题

如果在流水线中配置了Sonarqube代码扫描插件,则该插件运行结束后,会将代码扫描结果推送到代码库对应分支的文件浏览页面,点击即可查看扫描详细报告。

An image

# 历史

通过“历史”菜单,可以查看不同分支中的pushes、commits等信息。

打开pushes,会按照时间倒叙展示提交代码的记录,打开某一条提交记录时可以看到提交代码的具体文件,点击tag会直接打开文件并显示文件内容并记录push的来源如左上角的评审编号代表是评审,若您提交时在commit信息中填写了卡片编号。 还可以通过选择推送人或者开始日期结束日期等信息筛选push记录 历史

commits页面显示commit等一些信息,并可以通过作者、开始时间、结束时间或提交信息筛选提交记录,点击commitID可以查看文件等具体内容 commit详情

# 对比

点击 代码库——>对比,进入对比页面。可以进行分支或者Tag之间的diff。

  • 版本差异:对比的是两个分支之间提交记录。点击commit ID 进入历史详情。
  • 直接合并:是快速合入,合入时可以选择合入策略和是否删除源分支。基准分支为保护分支时,不能直接合入。
  • 创建分支合并请求:基准分支为保护分支的时,必须发起合并请求。需要经过批准且无人反对的情况下才可合入。 对比

# 分支

点击 代码库——>分支,进入分支页面。分支页面可以实现在线分支管理。 分支

# 版本

点击 代码库——>版本,进入版本页面。 代码版本可以通过三种方式创建,通过本界面创建、通过git客户端推送(可通过代码库设置禁用)、通过流水线发版插件创建。 版本

# 评审

点击 代码库——>评审,进入评审列表。

评审的分类: DCR(Direct code review))和MR(分支合并请求), 两者的区别请参考产品术语 评审

# 评审详情界面

本界面提供了代码评审主功能界面,评审人可以点击界面进行行间评论、在同一界面进行代码总评。 评审

# 在代码库设置中的代码扫描菜单下的内置扫描中进行代码扫描的设置。

  • 规则集的设置
  • 设置需要扫描的规则的问题级别按照您设置的问题级别以下的规则将被忽略
  • 设置不需要扫描的文件路径
  • 选择计算资源,由于代码扫描资源消耗比较大,不建议使用公共集群。
  • 代码评审是否进行代码扫描,若开启后可以设置扫描结果是否影响代码合入,以及扫描的超时时间和按照严重级别排序显示扫描结果的个数。超过设置的数后在结果中不再显示。

An image

# 代码扫描

若在设置中代码扫描配置中开启代码评审自动进行扫描后,评审被创建后自动使用内置的代码扫描工具进行增量代码的扫描并显示扫描结果,可以根据扫描规则的问题级别、类型、错误信息、文件以及操作状态对扫描结果进行筛选。

An image

# 扫描

若在设置中的代码扫描配置中配置了内置扫描或外接扫描配置后可以在扫描这个二级菜单下对分支、tag、commit进行代码扫描,并选择扫描的工具为外界的还是使用内置的扫描工具。 扫描结果的总览以及具体的问题如下图

An image

# 组件

用于分析代码库内的所依赖的三方组件的漏洞、开源组件许可证风险以及代码库的依赖组件清单。全面掌握当前代码库组件的清单以及可能存在的风险

# 支持基于分支或者Tag发起组件分析

An image

# 支持企业级代码事件触发或者定时触发

An image

# 支持手动触发

An image

# 组件分析由四部分内容组成

1、组件信息总览
An image
2、组件漏洞
An image
3、组件许可证分析
An image
4、SBOM清单
An image

# 统计

点击 代码库——>统计,进入统计界面,可以按照不同的时间维度查看代码库统计数据 数据统计

# 设置

点击 代码库——>设置,进入设置页面。默认在基本设置页面。

更改代码库的设置只有管理员可以更改。

# 基本设置

  1. 代码库简介:对该代码库的描述。
  2. 设置默认分支:默认分支默认为master。

基本设置

# 角色设置

代码库成员分为三种角色:管理员、维护者、开发者。公开代码库还有访客角色。每种角色的权限参考产品内嵌的角色说明。 除内置以上几种角色外支持管理员自定义角色。 在成员中可以添加普通用户,亦可添加用户组。 提交设置

# 分支规范

# 保护分支

对代码库保护分支设置,保护分支的批量设置、人工评审规范、分支合入策略 保护分支 保护分支设置

# 普通分支

对代码库普通分支进行设置,人工评审规范、分支合入策略 普通分支

# 分支特殊设置

# 分支提交写入权限特殊设置

支持对分支的提交权限进行特殊设置,支持只能是指定人员可以在分支上提交代码。在此处设置的分支上,非指定代码库成员(含用户组),不允许提交代码。重叠权限取交集。有代码库管理权限的用户也受此处规则约束。 分支提交写入特殊设置 新建规则 分支提交写入特殊设置 没有提交权限时,提交报错 分支提交写入特殊设置

# 分支自动同步设置

对分支自动合并的规则设置,如在此配置了自动同步规则,设置的指定人更新了源分支会自动同步到非只读目标分支;目标分支支持精确和前缀设置规则设置。 分支自动同步设置

自动合并分支策略可在此进行配置; 分支自动同步设置

也可以在此设置自动合并的message,支持环境变量,$TRIGGER_USER表示自动同步触发人;$SRC_BRANCH表示源分支名称,即触发自动同步的分支名称;$DEST_BRANCH表示目标分支名称,即被同步的分支名称。 分支自动同步设置

也可以在此设置是否选豁免保护分支,勾选豁免保护分支后,即便目标分支为保护分支,无需评审也会自动同步保护分支成功; 分支自动同步设置

# 提交规范

对于企业研发场景,往往需要对团队的提交进行规范性约束,此功能就是为此目标服务。 提交规范包括如下设置项:(企业设置与代码库设置同时设置事需两处都满足后才符合提交规范) 提交规范

# 评审规范

# 总评常用语

此设置是代码库对评审总评建议常用语设置,支持根据不同的总评建议设置评审常用语,支持新建、编辑、删除;默认会继承企业设置的评审常用语,并且企业设置评审常用语只能在企业设置中修改。 评审规范

# 评审特殊设置

支持设置评审的指定发起人、指定合入人、指定评审人,注意:设置的指定发起人,需要具备代码库发起评审权限,指定合入人和指定评审人需具备合入或发表总评建议的权限。 评审规范

# 代码扫描

在代码扫描菜单的设置中可以实现和代码扫描开关,扫描规则设置及是否提交开关。

代码扫描

# 发版模板

每次创建一个新的代码库tag(版本标签)时,可以用此模板进行格式规范。支持Markdown格式。

发板模版

# 镜像仓库

此功能可以实现代码提交时自动向一个第三方代码库地址自动同步能力,可以解决和其他遗留系统对接的问题,或者自动实现多副本。 镜像仓库

# 冲突检测

在团队协同多分支开发场景下,代码合并时的冲突是一件令人十分沮丧的事情,本代码托管平台专利技术提供代码提交时自动进行分支冲突检测的功能。不管是向非保护分支直接提交代码,抑或是通过DCR向保护分支提交代码,都会自动自动触发冲突检测预警。

冲突检测

# 部署公钥

允许以只读的形式去访问,也可以通过个人设置去添加个人公钥

部署公钥

# 代码搜索

在主界面右上角可以进行代码搜索,支持库内搜索和全集群搜索。 鉴于企业代码量巨大,代码搜索的范围仅包括代码库的默认分支, 不在代码库默认分支上的代码不会被搜到。 提交设置

# 多级目录

通过本平台的代码库多级目录的功能,可以非常方便对代码库进行分组/分类管理
本平台支持创建多层级的代码库目录结构,目前saas版本支持最多5级、私有化部署版本支持最多10级目录
代码库列表页,点击【层级目录】,可以查看完整的代码库目录层级结构。 多级目录 创建目录,支持直接在根节点创建目录,或者在指定目录下创建子目录 多级目录 目录权限管理,支持设置只有目录成员可以在目录下创建代码库和创建子目录 多级目录 目录成员管理,目录的角色和代码库的默认角色一致。支持代码库继承对应角色的目录成员。也支持子目录继承父目录的对应角色成员 多级目录