torzer/gitlab-flow

该包已被废弃且不再维护。未建议替代包。

Laravel 包,包含控制台命令,帮助开发者使用全面的流程与 Gitlab 交互

0.2.0 2017-07-03 19:29 UTC

This package is auto-updated.

Last update: 2021-05-08 07:31:01 UTC


README

此 Laravel 包旨在帮助开发者更容易地采用 Gitlab 的特性分支流程,并减少使用时的操作时间。

安装

使用 composer 安装它

composer require torzer/gitlab-flow

config/app.php 中注册 ServiceProvider

Torzer\GitlabFlow\GitlabFlowServiceProvider::class,

配置

.env 文件中,您必须设置以下变量

GITLAB_API_URL=your-gitlab-instance
GITLAB_API_TOKEN=your-gitlab-token
GITLAB_DEFAULT_PROJECT_ID=project-id-on-gitlab
GITLAB_DEFAULT_MR_TARGET_BRANCH=dev
  • GITLAB_API_URL 这是可选的,只有在其与默认值不同时才需要设置。是访问 Gitlab API 的基本 URL,默认是 'https://gitlab.com/api/v4/'。您可以将其更改为您自己的自托管实例;
  • GITLAB_API_TOKEN 是您访问 Gitlab API 的私有 API Token;
  • GITLAB_DEFAULT_PROJECT_ID 是 Gitlab 上的项目 ID,您可以在设置菜单中找到它;
  • GITLAB_DEFAULT_MR_TARGET_BRANCH 是打开合并请求的默认目标分支名称。如果未设置此变量,则默认使用 dev 名称。

创建合并请求

最常用的命令是从当前分支创建合并请求。如果您输入以下命令

php artisan gitlab:mr

将在 Gitlab 项目上创建一个合并请求,使用分支名称作为标题。如果您使用的是解决问题的特性分支名称,以分支解决的 issue 号码开头,则命令会在描述中注入 Closes #issue

默认命令将确认是否必须执行 git push 作为流程的第一步,然后要求您从项目中选择分配者和里程碑。

要更改行为,请使用以下选项之一

  • --source[=SOURCE] - 源分支的名称,默认为当前分支
  • --target[=TARGET] - 创建合并请求的目标分支名称,默认由项目 Gitlab 配置设置
  • -D, --description[=DESCRIPTION] - 合并请求的长文本描述
  • -T, --title[=TITLE] - 合并请求的短文本描述(标题)
  • --no-assignee - 设置此选项,则不设置分配者,否则将要求您选择分配者用户
  • --no-milestone - 设置此选项,则不设置里程碑,否则将要求您选择里程碑
  • --wip - 设置此选项,则创建 WIP 合并请求
  • --no-push : 在打开合并请求之前不将当前分支推送到远程仓库
  • --remove-source - 在合并请求后使用,将接受设置为删除源
  • --tag-after[=TAG-AFTER] - 在合并请求后使用,检出目标源,将其拉取并标记
  • --merge - 设置此选项,则创建合并请求并合并它

一些用法

没有默认源和目标的 MR

这将要求您提供分配者和里程碑,设置从 dev 分支到 stage 分支的 MR 的标题。

默认命令将确认是否必须执行 git push 作为流程的第一步。

php artisan gitlab:mr --source dev --target stage -T 'Staging milestone 3'

在打开之前不推送最后更改的 MR

在打开合并请求(MR)之前,不会将最后的提交推送到仓库。

php artisan gitlab:mr --no-push

MR 后跟合并接受

在打开MR之前,将最后的提交推送到仓库,打开MR,列出更改并将其合并到目标分支,打上标签,将本地分支切换到目标分支并从仓库拉取。

php artisan gitlab:mr --no-assignee --no-milestone --push --remove-source --merge --tag-after 0.0.3

查看下面的合并请求以了解上述命令的合并行为。

接受合并请求

此命令用于通过其ID创建并接受合并请求。如果您输入以下命令

php artisan gitlab:mr-merge 99

它将检查MR状态,列出您选择的项目的成员,列出您选择的里程碑,如果确认,则列出更改并执行MR !99(通过更改此数字来接受您想要的MR ID)的合并。

您可以使用以下一些选项来更改此行为

  • -m, --message[=MESSAGE] - 在MR接受中设置要插入的消息
  • --remove-source - 合并后删除源分支
  • --no-push : 不要在合并之前将当前分支推送到远程以插入到当前分支的MR
  • --update-local - 合并后检出目标源并拉取
  • --tag-after[=TAG-AFTER] - 合并后在本地检出目标源,拉取并标记
  • -y, --yes - 不要交互式列出提交和问题或请求确认

自动化流程

通过在Laravel应用的根目录中设置名为.gitlab-flow的文件,可以“自动化”调用流程。

此文件应使用ini格式,其中部分名称是流程名称,每个选项/参数在一行中。command选项是必需的。请参见以下示例

.gitlab-flow

[default]
command=mr
--no-assignee
--merge=1
--update-local=1
--remove-source=1

[stage-deploy]
command=mr
--source=dev
--target=stage
--title="Deploy, from DEV to STAGE"
--merge=1
--update-local=1
--tag-after=ask

注意,要启用选项,必须将其设置为数字1(一个)。

如果命令未传递任何流程名称,则调用default部分。

调用默认流程

php artisan gitlab:run

调用示例中的阶段部署部分

php artisan gitlab:run stage-deploy

查看.gitlab-flow文件中的流程

php artisan gitlab:run --show-config