logo
0
0
Login
docs: 修正 README.md 中脚本执行命令为 cnb_config.sh

CNB 工具脚本使用指南

介绍

本仓库包含一些用于简化CNB平台操作的脚本。直接看脚本,不懂再看文档说明(通常是权限问题,权限全勾上一般就没问题,除非有问题)

目录

cnb_config

功能描述: 配置Git全局用户名和邮箱,用于提交代码时的身份标识。使用的是环境变量的邮箱,非提交者的邮箱。

使用示例

# 执行脚本 bash cnb_config.sh # 跨仓库执行 curl https://cnb.cool/jacknic/cnb/-/git/raw/main/cnb_config.sh | bash

cnb_login.sh

功能描述: 基于内置CNB环境变量,配置Git凭证存储,用于自动认证Git操作,避免重复输入用户名和密码。

所需变量

  • CNB_TOKEN_USER_NAME:CNB平台用户名
  • CNB_TOKEN:CNB平台访问令牌
  • CNB_WEB_HOST:CNB平台Web主机地址

使用示例

# 执行脚本 bash cnb_login.sh # 跨仓库执行 curl https://cnb.cool/jacknic/cnb/-/git/raw/main/cnb_login.sh | bash

注意事项

  • 执行后会在~/.git-credentials文件中存储凭证信息
  • 确保访问令牌具有足够的权限
  • 凭证会以明文形式存储,请确保系统安全

import_coding

功能描述: 使用Docker容器从Coding平台导入代码到CNB平台。

所需参数(通过环境变量传递给Docker容器):

  • PLUGIN_SOURCE_PLATFORM:源代码平台,此处为"coding"
  • PLUGIN_SOURCE_URL:源平台URL
  • PLUGIN_SOURCE_TOKEN:源平台访问令牌
  • PLUGIN_CNB_ROOT_ORGANIZATION:CNB目标组织路径
  • PLUGIN_CNB_TOKEN:CNB平台访问令牌

使用示例

# 执行脚本 bash import_coding.sh

注意事项

  • 需要安装Docker并确保当前用户有权限运行Docker命令
  • 脚本会在当前目录下执行,并将当前目录挂载到Docker容器中
  • 请确保替换脚本中的令牌为您自己的有效令牌(仓库的创建

maven_push

功能描述: 手动上传Maven包到CNB Maven仓库。

所需环境变量

  • CNB_TOKEN_USER_NAME:CNB平台用户名
  • CNB_TOKEN:CNB平台访问令牌

脚本中需要修改的参数

  • groupId:Maven包的组ID
  • artifactId:Maven包的构件ID
  • version:Maven包的版本号
  • packaging:包类型(jar、war等)
  • url:Maven仓库URL(包含认证信息)
  • file:要上传的文件路径

使用示例

# 替换你的 CNB_TOKEN 变量,需要制品上传权限 # 修改脚本中的参数(如groupId、artifactId、version等) # 你自己的仓库路径 # 确保要上传的jar文件存在且路径正确 # 执行脚本 bash maven_push.sh

注意事项

  • 执行前确保已安装Maven
  • 确保要上传的文件存在且路径正确
  • 根据实际需要修改脚本中的Maven坐标信息
  • 确保有权限向目标仓库发布包

delete_repos

功能描述: 批量删除指定组织下的所有仓库。

需要修改的参数

  • ORG_NAME:要删除仓库的组织名称
  • API_TOKEN:CNB平台API访问令牌
  • API_URL:CNB平台API URL
  • max_attempts:最大尝试执行次数(默认为50,即删除50*50个)根据仓库个数调整

使用示例

# 修改脚本中的参数 # - 将ORG_NAME设置为目标组织 # - 将API_TOKEN设置为有效的访问令牌 # 执行脚本 bash delete_repos.sh

注意事项

  • 此操作不可逆,请谨慎使用
  • 确保API令牌具有删除仓库的权限
  • 脚本会循环执行删除操作,以处理分页结果
  • 默认每页获取50个仓库

delete_orgs

功能描述: 递归删除指定组织及其所有子组织。

需要修改的参数

  • ORG_NAME:要删除的顶级组织路径
  • API_TOKEN:CNB平台API访问令牌(需要管理及删除权限)
  • API_URL:CNB平台API URL
  • max_attempts:最大尝试执行次数(默认为1)

使用示例

# 修改脚本中的参数 # - 将ORG_NAME设置为目标组织路径 # - 将API_TOKEN设置为有效的访问令牌 # 执行脚本 bash delete_orgs.sh

注意事项

  • 此操作会递归删除所有子组织,不可逆,请特别谨慎
  • 确保API令牌具有删除组织的权限
  • 脚本使用递归函数,先删除子组织,再删除父组织
  • 默认只执行一次(max_attempts=1),可根据需要调整

常见问题

1. 如何获取CNB平台的访问令牌?

访问CNB平台的个人设置页面,在"访问令牌"创建新的令牌。确保为令牌分配适当的权限,根据您要执行的操作(如读取代码、写入代码、删除资源等需自行创建)。默认启动 CNB 开发环境就会有预置的环境变量,如 CNB_TOKENCNB_TOKEN_USER_NAME通常只有代码读取的权限。如涉及代码仓库倒入,仓库创建,仓库删除等操作,需要自行创建。需要删除资源时,需在项目根组织下开启 组织管控 > 允许通过 Open API 删除组织下资源 的权限。

2. 脚本执行失败,如何排查?

  • 检查环境变量是否正确设置
  • 确认令牌权限是否足够
  • 查看脚本执行输出的错误信息
  • 对于Docker相关脚本,确保Docker服务正在运行

3. 如何修改脚本中的硬编码参数?

使用文本编辑器打开脚本文件,找到需要修改的参数(如组织名称、令牌、URL等),将其替换为您自己的值。保存文件后再执行脚本。

4. 是否可以在CI/CD环境中使用这些脚本?

是的,这些脚本可以集成到CI/CD流程中。在CI/CD环境中,您可以:

  • 将环境变量配置为CI/CD系统的秘密变量
  • 在流水线配置中调用这些脚本
  • 根据CI/CD系统的特性,可能需要调整脚本的执行权限或路径

5. 如何确保资源清理脚本的安全使用?

  • 在使用前,先在测试环境验证脚本行为
  • 考虑添加确认步骤,要求用户确认删除操作
  • 限制API令牌的范围,只授予必要的权限
  • 保持令牌的安全,不要将其硬编码在脚本中或提交到版本控制系统