seretos / gitlab-client

用于构建 GitLab 仓库的客户端

v0.1.5 2017-02-16 15:15 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:21:39 UTC


README

Build Status Coverage Status

此包提供了两个控制台命令,用于自动化使用 GitLab 创建发布/标签

安装

全局安装 phar

wget https://github.com/Seretos/gitlab-client/releases/download/v0.1.2/gitlab-client.phar
chmod +x gitlab-client.phar
sudo mv gitlab-client.phar /usr/local/bin/gitlab-client

或在您的 composer 项目中添加 require

composer require seretos/gitlab-client

用法

如果全局安装

gitlab-client list

或在 composer 安装上

php vendor\bin\gitlab-client list

build:child 命令

示例

gitlab-client build:child --server-url http://your.gitlab.api/api/v3/ --auth-token yourUserToken --repository yourRepositoryName --branch yourBranch

此命令根据给定的分支名称创建新的分支/标签。

例如,如果您用 master 分支执行此命令,该命令会显示哪些分支存在。如果存在分支 0,则命令会从 master 生成新的分支 1。如果存在 1,则命令创建名为 2 的分支,依此类推。如果您使用分支 1,2 或其他单个数字分支执行此命令,则命令会生成类似于 1.0,0.2 的新分支。如果您从分支 1.0 执行命令,则命令创建名为 v1.0.0 或 v1.0.1 的标签...

protect:branch 命令

示例

gitlab-client protect:branch --server-url http://your.gitlab.api/api/v3/ --auth-token yourUserToken --repository yourRepositoryName --branch yourBranch

此命令将给定的分支设置为受保护。

coverage:check 命令

示例

phpunit --bootstrap vendor/autoload.php --configuration phpunit.xml.dist --coverage-clover build/logs/clover.xml
gitlab-client coverage:check --clover-file path/to/your/clover.xml --percentage 100

此命令检查代码覆盖率是否大于给定的百分比。

copy:members 命令

gitlab-client copy:members --server-url http://your.gitlab.api/api/v3/ --auth-token yourUserToken --source-group yourSourceGroup --destination-group yourDestinationGroup

此命令将源组中找到的所有用户添加到目标组中,但这些用户不存在于目标组中

replace:readme 命令

此命令在您的仓库-分支的 readme.md 中搜索以下正则表达式 /?branch=([\d\w.-]*)/,并将其更改为 ?branch=yourBranch

gitlab-client replace:readme --server-url http://your.gitlab.api/api/v3/ --auth-token yourUserToken --repository yourRepositoryName --branch yourBranch

在 gitlab-ci.yml 中的示例用法

test:
    script:
        - phpunit --bootstrap vendor/autoload.php --configuration phpunit.xml.dist --coverage-clover build/logs/clover.xml
        - gitlab-client coverage:check --clover-file path/to/your/clover.xml --percentage 100
        - gitlab-client replace:readme --server-url http://$CI_SERVER_NAME/api/v3/ --auth-token yourToken --repository $CI_PROJECT_NAME --branch $CI_BUILD_REF_NAME
release:
    script:
        - gitlab-client protect:branch --server-url http://$CI_SERVER_NAME/api/v3/ --auth-token yourToken --repository $CI_PROJECT_NAME --branch $CI_BUILD_REF_NAME
        - gitlab-client build:child --server-url http://$CI_SERVER_NAME/api/v3/ --auth-token yourToken --repository $CI_PROJECT_NAME --branch $CI_BUILD_REF_NAME
    only:
        - /^(master|\d+(.\d+)?)$/