
완전 자동 변경 사항 생성 -이 보석은 태그 , 문제 및 병합 된 풀 요청을 기반으로 ChangEleg 파일을 생성합니다 (그리고 레이블에 따라 별도의 목록으로 분할).
CHANGELOG.md 를 수동으로 채울 필요가 없으므로 다음 릴리스 전에 스크립트를 실행하고 휴식을 취하고 컵을 가져 가십시오! ?
사용자와 기여자가 프로젝트의 각 릴리스 (또는 버전)간에 주목할만한 변경 사항을 정확하게 확인할 수 있도록합니다.
소프트웨어 도구는 사람들을 위한 것이기 때문입니다. "ChangeLog는 사용자와 기여자가 프로젝트의 각 릴리스 (또는 버전)간에 주목할만한 변경 사항을 정확하게 확인할 수 있도록합니다."
https://keepachangelog.com
Github ChangeLog Generator는 Rubygem으로 배포 된 Ruby 프로그램입니다. 루비 언어 홈페이지에는 설치 페이지가 있습니다.
같은 보석을 설치하십시오.
$ gem install github_changelog_generator
시스템에 따라 쉘을 관리자 (Windows)로 실행하거나 sudo gem install github_changelog_generator (Linux)를 사용해야 할 수도 있습니다.
github_changelog_generator -u github_project_namespace -p github_project
(프로젝트 네임 스페이스가 귀하가 소유 한 프로젝트 인 경우 사용자 이름 일 가능성이 있지만 프로젝트의 네임 스페이스 일 수도 있습니다).
Docker를 사용하는 것은 Ruby와 Gem을 설치하는 대안입니다.
예제 호출 :
$ docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator
Github Enterprise Repos의 경우 --github-site 및 --github-api 옵션을 모두 지정하십시오.
$ github_changelog_generator --github-site="https://github.yoursite.com"
--github-api="https://github.yoursite.com/api/v3/"
이것은 Pretty Markdown 형식으로 CHANGELOG.md 생성합니다.
이 프로젝트는 changelog.md 를보십시오
ActionSheetpicker-3.0/changelog.md는 명령에 의해 생성되었습니다.
$ github_changelog_generator -u github-changelog-generator -p ActionSheetPicker-3.0
일반적으로 다음과 같습니다.
1.2.5 (2015-01-15)
전체 변경 로그
구현 된 향상 :
- 이정표를 사용하여 어떤 버전 버그가 고정되었는지를 지정하십시오 #22
수정 된 버그 :
- 태그없이 레포에 대한 로그를 생성하려고 할 때 오류 #32
병합 된 풀 요청 :
PrettyPrint 클래스는 소문자 'PP' #43 (Schwing)을 사용하여 포함됩니다.
명령 줄 옵션 #42 (Glenlovett)를 통해 기업 Github 지원
자세한 내용을 알아 보려면 모든 명령 줄 옵션에 대한 도움말을 인쇄하십시오.
$ github_changelog_generator --help
Params에 대한 자세한 내용은 Wiki Page : Advanced ChangeLog Generation 예제를 참조하십시오.
프로젝트 루트에서 .github_changelog_generator 라는 매개 변수 파일을 기본 매개 변수를 재정의 할 수 있습니다.
예:
unreleased=false
future-release=5.0.0
since-tag=1.0.0
GitHub은 시간당 50 개의 무단 요청 만 허용합니다.
따라서 토큰을 사용하여 인증 으로이 스크립트를 실행하는 것이 좋습니다.
방법은 다음과 같습니다.
--token <your-40-digit-token> 으로 스크립트를 실행하십시오. 또는CHANGELOG_GITHUB_TOKEN 환경 변수를 40 자리 토큰으로 설정하십시오. 프롬프트에서 다음 명령을 실행하거나 쉘 프로파일에 추가하여 환경 변수를 설정할 수 있습니다 (예 : .env , ~/.bash_profile , ~/.zshrc 등) :
export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
따라서 다음과 같은 메시지를 받으면 다음과 같은 메시지가 표시됩니다.
API rate limit exceeded for github_username.
See: https://developer.github.com/v3/#rate-limiting이 토큰을 만들 시간입니다! (또는 Github가 무단 요청 제한을 재설정하기 위해 한 시간을 기다리십시오.)
당신이 당신의 프로젝트에 얼마나 헌신했는지 알면, 당신은 아마도 github-changelog-generator ChangeLog를 유지하기를 기다리지 않았을 것입니다. 그러나 당신은 아마도 당신의 역사적 변화에 나열된 모든 과거 기능에 대한 프로젝트의 공개 문제와 PR을 원하지 않을 것입니다.
그곳에서 --base <your-manual-changelog.md> 유용합니다! 이 옵션을 사용하면 이전 설명서 변경 로그를 생성 된 항목의 끝에 추가 할 수 있습니다.
프로젝트에 HISTORY.md 파일이있는 경우 자동으로 정적 역사적 변화로 선택되어 추가됩니다.
당신은 rake 좋아합니까? 우리도 그렇게합니다! 그래서 우리는 당신을 더 쉽게 만들었습니다. 우리는 당신의 ChangeLog 생성을위한 rake 작업 라이브러리를 제공했습니다.
Rakefile 의 작업을 구성하십시오.
require 'github_changelog_generator/task'
GitHubChangelogGenerator :: RakeTask . new :changelog do | config |
config . user = 'username'
config . project = 'project-name'
config . since_tag = '0.1.14'
config . future_release = '0.2.0'
end 모든 명령 줄 옵션은 config 매개 변수로 rake 작업에 전달할 수 있습니다. 그리고 당신은 rake 작업을 직접 이름을 짓고 있기 때문에 원하는만큼 많이 만들 수 있습니다.
Parser 소스 코드 (#setup_parser)에서 Params 이름을 찾을 수 있습니다. 예를 들어, bugs 레이블을 config.bugs_label 설정하는 대신 포르투갈어로 변환하려면 config.bug_prefix 등을 설정해야합니다.
기본 변경 로그 가이드 라인을 따르는 기본 섹션과 함께 정식의 깔끔한 ChangeLog 파일을 생성합니까?
선택적으로 미공개 변경 사항을 생성합니다 (아직 릴리스되지 않은 폐쇄 된 문제)?
명령 줄 옵션을 통한 Github Enterprise 지원 ! ?
유연한 형식 사용자 정의 :
milestone 버전 태그와 동일한 이름을 제공합니까?question , duplicate , invalid wontfix ) ✂️라벨별로 문제를 구별합니다 . ?
bug 라벨이 붙은 문제)?enhancement 으로 표시된 문제)?레이블별로 수동으로 문제를 포함하거나 제외합니까?
더 많이 사용자 정의하십시오! 선호도에 맞게 변경 사항을 조정 하시겠습니까? ( 자세한 내용은 github_changelog_generator --help 참조)
각 버전에 대해 텍스트, 이미지, GIF 애니메이션 등으로 릴리스 요약을 추가하고 사용자에게 새로운 기능과 메모를 명확하게 표시 할 수 있습니다. 이것은 GitHub 메타 데이터를 사용하여 수행됩니다.
예 : v1.0.0에 대한 릴리스 요약 추가 :

Hello, World! :tada:
release-summary 설정하고 Github Milestone v1.0.0 에 추가하십시오.github-changelog-generator 실행하십시오v1.0.0 (2014-11-07)
전체 변경 로그
안녕하세요, 세상! ?
구현 된 향상 :
- 몇 가지 기능을 추가하십시오
다음은 내가 찾은 대안의 위키피지 목록입니다. 그러나 아무도 내 요구 사항을 충족하지 못했습니다.
다른 프로젝트를 알고 있다면이 위키 페이지를 편집하십시오!
다음은 위키피지 프로젝트 목록입니다.
라이브 앱 에서이 프로젝트를 사용했다면 알려주십시오! 다른 사람이 다른 사람이 내 일을하고 그것에 열중하는 것을 보는 것보다 더 행복한 것은 없습니다.
github_changelog_generator 사용하여 프로젝트의 변화를 생성하거나 사용하는 다른 프로젝트를 알고 있다면이 목록에 추가하십시오.
github_changelog_generator github cli와 함께 릴리스 음을 만들 수 있습니다. github_changelog_generator 의 --since-tag 및 --output 옵션을 사용하여 현재 릴리스에 대한 ChangElog를 작성하고 결과를 파일에 저장하십시오. 아래의 예에서, 버전 2.0.0 은 현재 릴리스이며 버전 1.0.0 이전 릴리스입니다.
mkdir -p build
github_changelog_generator
--since-tag 1.0.0
--output build/changelog.md
그런 다음 Github CLI의 릴리스 생성 기능을 사용하여 새로운 Github 릴리스를 만듭니다.
gh release create 2.0.0
--notes-file build/changelog.md
--title 2.0.0
불가능한 것은 없습니다!
문제를 열고 발전기를 더 잘 만들어 보자!
버그 보고서, 기능 요청, 패치 및 웰링은 항상 환영합니다. ❗
Github 릴리스는 매우 좋습니다. 그리고 그것을 유지하는 것은 매우 좋은 관행입니다. (많은 사람들이 아직 그것을 사용하지 않습니다!) ㊗️
BTW : 다음 릴리스에서 Github 릴리스를 지원하고 싶습니다.)
필기 및 자동 생성 로그의 품질을 비교하려고하지 않습니다. 그 말 ....
릴리스 노트를 수동으로 작성하더라도 자동으로 생성 된 ChangeLog는 실제로 도움이됩니다!
이것은 .github_changelog_generator 의 add-sections 또는 configure-sections 항목을 사용하여 가능합니다. 예를 들어, maintenance 레이블로 태그가 지정된 PRS를 잡을 "유지 보수"라는 단일 새 항목을 추가하려면 .github_changelog_generator 라인에 추가 할 수 있습니다.
add-sections= {"maintenance":{"prefix":"**Project maintenance**","labels":["maintenance"]}}
configure-sections 통해 유사한 접근 방식을 사용하여 모든 섹션 속성을 설정할 수 있습니다 (새 특성 추가 포함).
루비가 오래되었고 업그레이드를 원하지 않으면 사용하는 라이브러리를 제어하고 싶을 때 Bundler를 사용할 수 있습니다.
gemfile에서 아마도 비공개로 배치 된 :development 그룹 에서이 보석을 추가하십시오.
group :development do
gem 'github_changelog_generator' , require : false
end그런 다음 현재 Ruby> = 2.2.2와 호환되는 Rack과 같은 종속성을 유지할 수 있습니다. 따라서 gemfile에 이와 같은 줄을 추가하여 앱의 이전 버전을 사용하십시오.
gem 'rack', '~> 1.6'
이렇게하면 최신 버전의 Ruby를 설치할 수 없더라도 Github_changelog_generator를 계속 사용할 수 있습니다.
Windows : v1.14.0은 /tmp/github_changelog-logger.log를 만들려고 시도하는 버그를 도입했습니다. Windows에서 유효한 경로가 아니므로 실패합니다.
해결 방법 : C:tmp 만듭니다.
이 프로젝트에 기여하고 싶습니까? Contributing.md에는이를 수행하는 방법에 대한 모든 세부 사항이 있습니다.
Gitter : Github-Changelog-Generator에서 채팅에 참여하십시오
Github ChangeLog Generator는 MIT 라이센스에 따라 릴리스됩니다.