Создать Git Log с помощью Gitlab CI - PullRequest
       110

Создать Git Log с помощью Gitlab CI

0 голосов
/ 26 декабря 2018

Нам нужно генерировать файл истории коммитов автоматически, когда пользователь фиксирует код в 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

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Библиотека , используемая плагином 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}}
"
0 голосов
/ 26 декабря 2018

Я уверен, что есть несколько способов сделать это в GitLab.Вот один из них:

  1. Создайте файл .gitlab-ci.yaml в корне вашего хранилища.Вы можете сделать это локально или используя веб-интерфейс GitLab.
  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.Будет запущено задание changelog.

  4. После успешного завершения задания ваш файл log.log будет доступен в качестве артефакта задания changelog
* 1022.* По сути, с помощью этого фрагмента вы настраиваете систему CI / CD GitLab на:
  • Используйте Исполнитель Docker с образом Docker с предустановленным git с
  • Определите changelog задание , которое будет запускать вашу команду git
  • Определите log.log артефакт , который будет сгенерирован как часть задания и сохранен, поэтомучто вы можете загрузить его позже.

Я также рекомендовал бы проверить GitLab CI / CD quickstart

...