gitlab自动在议题中展示提交信息

问题产生:

git在提交的过程中,使用#1 会自动关联到相关的议题。但是并不会自动展示提交的描述信息,只会展示如下图所示的样子:

%title插图%num

需要实现的效果,如下图:

%title插图%num

实现步骤:

1. 配置GitLab API Token

首先,你需要创建一个 GitLab Personal Access Token,以便 CI/CD 能够通过 API 与 GitLab 进行交互。

  1. 登录到你的 GitLab 账户。
  2. 点击右上角的头像,选择 Settings(设置)
  3. 在左侧导航栏中,点击 Access Tokens
  4. 创建一个新的 token,勾选 api 访问权限,并记录生成的 token。
%title插图%num

2. 在GitLab CI 配置文件中编写脚本

接下来,你需要在项目根目录下创建或编辑 .gitlab-ci.yml 文件。在这个文件中,你可以编写一个 CI 作业(job),在每次提交后,通过 GitLab API 自动向关联的议题添加评论。

stages:
  - notify

add_commit_info_to_issue:
  stage: notify
  script:
    - |
      ISSUE_ID=$(git log -1 --pretty=format:%s | grep -o '#[0-9]*' | cut -c2-)
      if [ -n "$ISSUE_ID" ]; then
        COMMIT_MESSAGE=$(git log -1 --pretty=format:%B)
        COMMIT_URL="${CI_PROJECT_URL}/-/commit/${CI_COMMIT_SHA}"
        curl --request POST --header "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" \
          --data "body=提交信息: [${CI_COMMIT_SHORT_SHA}](${COMMIT_URL}) ${COMMIT_MESSAGE}" \
          "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/issues/${ISSUE_ID}/notes"
      fi
  only:
    - master

解释:

  • 获取议题编号:通过 git log -1 --pretty=format:%s 获取最新提交的 commit message,并通过 grep -o '#[0-9]*' 提取其中的议题编号(形如 #1 的格式)。
  • 提交信息和提交 URL:通过 git log -1 --pretty=format:%B 获取最新提交的完整描述信息,并生成提交的 URL。
  • 调用 GitLab API 添加评论:使用 curl 命令通过 GitLab API 向议题添加评论。API 调用的路径格式为 /projects/{project_id}/issues/{issue_id}/notes
  • 触发条件:配置为仅在提交到 master 分支时触发。

3. 设置CI/CD环境变量

将你的 GitLab API token (第一步生成的token)存储为 GitLab 项目的环境变量,以便在 CI/CD 中使用。

  • 打开项目的 Settings
  • 在左侧导航栏中,点击 CI/CD,然后展开 Variables
  • 添加一个名为 GITLAB_API_TOKEN 的变量,值为之前生成的 Personal Access Token。
%title插图%num

4. 提交并测试

.gitlab-ci.yml 文件提交到你的 GitLab 仓库,GitLab CI/CD 会在提交后自动运行,并将提交的详细信息作为评论添加到相关的议题中。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇