使用 Gitlab CI 创建 Git 日志



当用户将代码提交到 git 存储库时,我们需要自动生成提交历史记录文件。

它可以使用Jenkins,Gitlab Webhooks和Jenkins Git Changelog插件来完成。此外,可以使用下面的 git 命令创建它。

$ git log --pretty=format:'At %ci, %cN committed %h : %s' --decorate --graph >log.log

但是,无论如何,我们可以使用Gitlab CI/CD操作生成提交历史记录文件。该文件可以保存在 git 存储库或本地存储中。

示例提交历史记录文件

* At 2018-11-16 18:02:21, kRiZ committed 1714a95 : Commit 4
* At 2018-11-15 16:06:06, kRiZ committed bab5c0c : Commit 3
* At 2018-11-14 18:05:09, kRiZ committed b3c9d86 : Commit 2
* At 2018-11-14 06:47:34, kRiZ committed 8e6ee30 : Add README.md

我相信在GitLab中有多种方法可以做到这一点。这是其中之一:

  1. 在存储库的根目录中创建一个.gitlab-ci.yaml文件。您可以在本地或使用 GitLab 的 Web UI 执行此操作。
  2. 将此代码段粘贴到.gitlab-ci.yaml文件中:

    changelog:
      image: docker:git
      script:
        - git log --pretty=format:'At %ci, %cN committed %h - %s' --decorate --graph >log.log
      artifacts:
        paths: [log.log]
    
  3. 要么在本地提交和推送,要么在 GitLab 的 Web UI 上提交。将触发changelog作业。

  4. 作业成功完成后,log.log文件将作为changelog作业的项目提供

从本质上讲,使用此代码段,您将 GitLab 的 CI/CD 系统设置为:

    将 Docker
  • 执行程序与预装git的 Docker 映像一起使用
  • 定义将运行 git 命令的changelog作业
  • 定义一个log.log项目,该项目将作为作业的一部分生成并存储,以便以后可以下载它。

我还建议查看 GitLab CI/CD 快速入门。

Jenkins 插件使用的库还有一个命令行工具,可以在任何地方使用:

npx git-changelog-command-line -std -tec "
# Changelog
Changelog for {{ownerName}} {{repoName}}.
{{#tags}}
## {{name}}
 {{#issues}}
  {{#hasIssue}}
   {{#hasLink}}
### {{name}} [{{issue}}]({{link}}) {{title}} {{#hasIssueType}} *{{issueType}}* {{/hasIssueType}} {{#hasLabels}} {{#labels}} *{{.}}* {{/labels}} {{/hasLabels}}
   {{/hasLink}}
   {{^hasLink}}
### {{name}} {{issue}} {{title}} {{#hasIssueType}} *{{issueType}}* {{/hasIssueType}} {{#hasLabels}} {{#labels}} *{{.}}* {{/labels}} {{/hasLabels}}
   {{/hasLink}}
  {{/hasIssue}}
  {{^hasIssue}}
### {{name}}
  {{/hasIssue}}
  {{#commits}}
**{{{messageTitle}}}**
{{#messageBodyItems}}
 * {{.}} 
{{/messageBodyItems}}
[{{hash}}](https://github.com/{{ownerName}}/{{repoName}}/commit/{{hash}}) {{authorName}} *{{commitTime}}*
  {{/commits}}
 {{/issues}}
{{/tags}}
"

相关内容

  • 没有找到相关文章