Package: openstack-sig-tool
OpenStack SIG 开发工具oos(openEuler OpenStack SIG)是OpenStack SIG提供的命令行工具。该工具为OpenStack SIG开发提供了若干功能。包括自动生成、更新RPM Spec自动分析OpenStack软件包依赖自动提交Spec PR到openEuler社区获取OpenStack SIG CI失败的PR列表为软件仓创建分支oos在不断开发中，用户可以使用pypi上已发布的稳定版pip install openstack-sig-tool自动生成、更新、构建 RPM Spec分别支持单个生成 RPM Spec 和批量生成 RPM Spec，可选是否 push 并提交 pr 到 OpenEuler 社区。生成软件包的RPM Specoosspeccreate--namestevedore--version1.28.0更新软件包的RPM Specoos spec update --name stevedore --version 2.0.0构建RPM软件包oos spec build stevedore自动分析OpenStack软件包依赖以OpenStack train为例，调用脚本，生成缓存文件，默认存放在train_cached_file目录cd tools/oos/scripts
python3 generate_dependence.py train
本命令默认会生成Train版本SIG支持的所有OpenStack服务，用户也可以根据自己需求，指定openstack项目，例如
python3 generate_dependence.py --projects nova,cinder train调用oos命令，生成依赖分析结果oos dependence generate train_cached_file其他支持的参数有：-c, --compare
    结果是否与openeuler社区仓库进行比对，生成建议
-cb, --compare-branch
    指定openEuler比对的仓库分支，默认是master
-cf, --compare-from
    指定openEuler比对的仓库基础分支，用来给出sync分支建议，默认是master
-t, --token
    如果使用了-c，需要同时指定gitee token，否则gitee可能会拒接访问。
    或者配置环境变量GITEE_PAT也行。
-o, --output
    指定命令行生成的文件名，默认为result.csv该命令运行完后，根目录下会生成1个结果文件，默认为result.csv。获取OpenStack SIG PR列表该工具能够扫描OpenStack SIG包含项目的PR，梳理成列表。调用oos命令， 将PR信息梳理成列表输出oos repo pr-fetch -r REPO -t gitee-pat该命令所支持的参数如下：-t, --gitee-pat
    [可选] 个人Gitee账户personal access token，可以使用GITEE_PAT环境变量指定
-r, --repo
    [可选] 组织仓库的名称，默认为组织下的所有仓库，格式为openeuler/xxx,src-openeuler/xxx
-o, --output
    [可选] 输出文件名，默认为prs.yaml该命令运行完后，目录下会生成1个结果文件，默认为prs.yaml。创建软件仓可以使用oos repo create命令创建openeuler或者src-openeuler软件仓在openeuler或者src-openeuler创建软件仓，需要提供要创建仓库的软件仓列表.csv文件或者指定单个软件仓，以及Gitee的账号等信息：oosrepocreate--repoautopage:python-autopage-tGITEE_PAT或者指定.csv文件一次创建多个软件仓库，.csv包括pypi_name和repo_name两列：oosrepocreate--repos-file~/repos.cvs-tGITEE_PAT该命令所支持的参数如下：-t, --gitee-pat
    [必选] 个人Gitee账户personal access token，可以使用GITEE_PAT环境变量指定
-e, --gitee-email
    [可选] 个人Gitee账户email地址，可使用GITEE_EMAIL指定, 若在Gitee账户公开，可通过Token自动获取
-o, --gitee-org
    [可选] repo所属的gitee组织名称，默认为src-openeuler
-r, --repo
    [可选] 软件仓名，和--repos-file参数二选一，格式为pypi_name:repo_name
-rf, --repos-file
    [可选] openEuler社区软件仓库名的.csv文件，目前包含`pypi_name`和`repo_name`两列，和--repo参数二选一
--community-path
    [可选] openeuler/community项目本地仓路径
-w, --work-branch
    [可选] 本地工作分支，默认为openstack-create-repo
-dp, --do-push
    [可选] 指定是否执行push到gitee仓库上并提交PR，如果不指定则只会提交到本地的仓库中为软件仓创建分支可以使用oos repo branch-create命令为openeuler软件仓创建分支为软件仓创建分支，需要提供要创建分支的软件仓列表.csv文件或者指定单个软件仓名称，对应新建分支信息以及Gitee的账号等信息，
以为openstack-nova仓创建openEuler-21.09分支为例：oosrepobranch-create--repoopenstack-nova-bopenEuler-21.09protectedmaster-tGITEE_PAT为软件仓批量创建多分支，需要提供要创建分支的软件仓列表.csv文件或者指定单个软件仓名称，对应新建分支信息以及Gitee的账号等信息，
以为repos.csv中软件仓创建openEuler-21.09分支和openEuler-22.03-LTS多分支为例，并提交pr为例：oosrepobranch-create--repos-filerepos.csv-bopenEuler-21.09protectedmaster-bopenEuler-22.03-LTSprotectedopenEuler-22.03-LTS-Next-tGITEE_PAT--do-push该命令所支持的参数如下：-t, --gitee-pat
    [必选] 个人Gitee账户personal access token，可以使用GITEE_PAT环境变量指定
-e, --gitee-email
    [可选] 个人Gitee账户email地址，可使用GITEE_EMAIL指定, 若在Gitee账户公开，可通过Token自动获取
-o, --gitee-org
    [可选] repo所属的gitee组织名称，默认为src-openeuler
-r, --repo
    [可选] 软件仓名，和--repos-file参数二选一
-rf, --repos-file
    [可选] openEuler社区软件仓库名的.csv文件，目前只需要包含`repo_name`一列，和--repo参数二选一
-b, --branches
    [必选] 需要为软件包创建的分支信息，每个分支信息包含：要创建的分支名称，分支类型（一般为protected）和父分支名称，
    可以携带多个-b来批量创建多个分支
--community-path
    [可选] openeuler/community项目本地仓路径
-w, --work-branch
    [可选] 本地工作分支，默认为openstack-create-branch
-dp, --do-push
    [可选] 指定是否执行push到gitee仓库上并提交PR，如果不指定则只会提交到本地的仓库中为软件仓删除分支可以使用oos repo branch-delete命令为openeuler软件仓删除分支为软件仓删除分支，需要提供要删除分支的软件仓列表.csv文件或者指定单个软件仓名称，对应需要删除的分支信息以及Gitee的账号等信息，
以为openstack-nova仓删除openEuler-21.09分支为例：oosrepobranch-delete--repoopenstack-nova-bopenEuler-21.09-tGITEE_PAT为软件仓批量删除多个分支，需要提供要删除分支的软件仓列表.csv文件或者指定单个软件仓名称，对应需要删除的分支信息以及Gitee的账号等信息，
以为repos.csv中软件仓删除openEuler-21.09分支和openEuler-22.03-LTS多分支为例，并提交pr为例：oosrepobranch-delete--repos-filerepos.csv-bopenEuler-21.09-bopenEuler-22.03-LTS-tGITEE_PAT--do-push该命令所支持的参数如下：-t, --gitee-pat
    [必选] 个人Gitee账户personal access token，可以使用GITEE_PAT环境变量指定
-e, --gitee-email
    [可选] 个人Gitee账户email地址，可使用GITEE_EMAIL指定, 若在Gitee账户公开，可通过Token自动获取
-o, --gitee-org
    [可选] repo所属的gitee组织名称，默认为src-openeuler
-r, --repo
    [可选] 软件仓名，和--repos-file参数二选一
-rf, --repos-file
    [可选] openEuler社区软件仓库名的.csv文件，目前只需要包含`repo_name`一列，和--repo参数二选一
-b, --branch
    [必选] 需要为软件仓删除的分支名称，可以携带多个-b来批量删除多个分支
--community-path
    [可选] openeuler/community项目本地仓路径
-w, --work-branch
    [可选] 本地工作分支，默认为openstack-delete-branch
-dp, --do-push
    [可选] 指定是否执行push到gitee仓库上并提交PR，如果不指定则只会提交到本地的仓库中环境和依赖上述oos spec build命令需要依赖于rpmbuild工具，因此需要安装以下相关软件包：yuminstallrpm-buildrpmdevtools同时，需要预先准备好rpmbuild命令所需的相关工作目录，执行如下命令：rpmdev-setuptree在执行oos spec build命令时可以指定--build-root参数为rpmbuild工作目录的根目录，默认为当前用户目录下rpmbuild/目录。另外，为了便于使用该工具，可以使用Docker快速构建一个打包环境，具体详见docker/目录下的README.