
การสร้าง Changelog อัตโนมัติเต็มรูปแบบ - อัญมณีนี้สร้างไฟล์ changelog ตาม แท็ก ปัญหา และ คำขอดึง ที่ผสาน (และแยกออกเป็นรายการแยกต่างหากตามป้ายกำกับ) จาก GitHub
เนื่องจากคุณไม่จำเป็นต้องเติมเต็ม CHANGELOG.md ด้วยตนเองตอนนี้เพียงแค่เรียกใช้สคริปต์ผ่อนคลายและหยิบถ้วย☕ก่อนที่คุณจะเปิดตัวครั้งต่อไป! -
เพื่อให้ง่ายขึ้นสำหรับผู้ใช้และผู้สนับสนุนที่จะเห็นการเปลี่ยนแปลงที่น่าสังเกตอย่างแม่นยำระหว่างแต่ละรุ่น (หรือเวอร์ชัน) ของโครงการ
เพราะเครื่องมือซอฟต์แวร์สำหรับ ผู้คน "Changelogs ช่วยให้ผู้ใช้และผู้มีส่วนร่วมเห็นได้ง่ายขึ้นอย่างแม่นยำว่ามีการเปลี่ยนแปลงที่โดดเด่นระหว่างแต่ละรุ่น (หรือเวอร์ชัน) ของโครงการ"
➡ https://keepachangelog.com
GitHub Changelog Generator เป็นโปรแกรมทับทิมกระจายเป็นทับทิม หน้าแรกภาษาทับทิมมีหน้าการติดตั้ง
ติดตั้งอัญมณีชอบ:
$ gem install github_changelog_generator
ขึ้นอยู่กับระบบของคุณคุณ อาจ ต้องเรียกใช้เชลล์เป็นผู้ดูแลระบบ (Windows) หรือใช้ sudo gem install github_changelog_generator (Linux)
github_changelog_generator -u github_project_namespace -p github_project
(ในกรณีที่เนมสเปซโครงการ น่าจะ เป็นชื่อผู้ใช้ของคุณหากเป็นโครงการที่คุณเป็นเจ้าของ แต่ก็อาจเป็นเนมสเปซของโครงการ)
การใช้นักเทียบท่าเป็นทางเลือกในการติดตั้งทับทิมและอัญมณี
ตัวอย่างการเรียก:
$ docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator
สำหรับ Repos Enterprise GitHub ให้ระบุตัวเลือก ทั้งสอง --github-site และ --github-api :
$ github_changelog_generator --github-site="https://github.yoursite.com"
--github-api="https://github.yoursite.com/api/v3/"
สิ่งนี้สร้าง CHANGELOG.md ด้วยการจัดรูปแบบ markdown สวย
ดูที่ 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
แก้ไขข้อบกพร่อง:
- ข้อผิดพลาดเมื่อพยายามสร้างบันทึกสำหรับ repo โดยไม่มีแท็ก #32
คำขอดึงแบบรวม:
คลาส PrettyPrint รวมใช้ตัวพิมพ์เล็ก 'PP' #43 (Schwing)
สนับสนุน Enterprise GitHub ผ่านตัวเลือกบรรทัดคำสั่ง #42 (Glenlovett)
พิมพ์วิธีใช้สำหรับตัวเลือกบรรทัดคำสั่งทั้งหมดเพื่อเรียนรู้รายละเอียดเพิ่มเติม:
$ github_changelog_generator --help
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ params อ่านหน้า wiki: ตัวอย่างการสร้างการเปลี่ยนแปลงขั้นสูง
ในรูทโครงการของคุณคุณสามารถใส่ไฟล์พารามิเตอร์ชื่อ .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 แต่คุณอาจไม่ต้องการปัญหาเปิดและ PRS ของโครงการสำหรับคุณสมบัติที่ผ่านมาทั้งหมดที่ระบุไว้ในการเปลี่ยนแปลงประวัติศาสตร์ของคุณเช่นกัน
นั่นคือที่ --base <your-manual-changelog.md> มีประโยชน์! ตัวเลือกนี้ช่วยให้ผนวกการเปลี่ยนแปลงแบบแมนนวลเก่าของคุณไปยังจุดสิ้นสุดของรายการที่สร้างขึ้น
หากคุณมีไฟล์ HISTORY.md ในโครงการของคุณมันจะถูกเลือกโดยอัตโนมัติเป็น changelog ประวัติศาสตร์แบบคงที่และต่อท้าย
คุณรัก rake ? เราก็ทำเช่นกัน! ดังนั้นเราทำให้มันง่ายขึ้นสำหรับคุณ: เราได้จัดเตรียมห้องสมุดงาน rake สำหรับรุ่น Changelog ของคุณ
กำหนดค่างานใน 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 ตัวเลือกบรรทัดคำสั่งทั้งหมดสามารถส่งผ่านไปยังงาน rake เป็นพารามิเตอร์ config และเนื่องจากคุณกำลังตั้งชื่องาน rake ด้วยตัวคุณเองคุณสามารถสร้างได้มากเท่าที่คุณต้องการ
คุณสามารถค้นหาชื่อพารามิเตอร์ได้จากซอร์สโค้ดตัวแยกวิเคราะห์ (#SetUp_Parser) ตัวอย่างเช่นในการแปลฉลาก Bugs เป็นภาษาโปรตุเกสแทนที่จะตั้งค่า config.bugs_label คุณต้องตั้งค่า config.bug_prefix และอื่น ๆ
สร้างไฟล์ Changelog ที่เป็นที่ยอมรับโดยมีส่วนเริ่มต้นที่เป็นไปตามแนวทางการเปลี่ยนแปลงพื้นฐานหรือไม่?
ทางเลือกสร้างการเปลี่ยนแปลง ที่ยังไม่เผยแพร่ (ปัญหาปิดที่ยังไม่ได้เผยแพร่)?
GitHub Enterprise Support ผ่านตัวเลือกบรรทัดคำสั่ง! -
การปรับแต่ง รูปแบบที่ยืดหยุ่น:
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.0github-changelog-generatorv1.0.0 (2014-11-07)
การเปลี่ยนแปลงเต็มรูปแบบ
สวัสดีโลก! -
การปรับปรุงที่ดำเนินการ:
- เพิ่มคุณสมบัติบางอย่าง
นี่คือรายการ wikiPage ของทางเลือกที่ฉันพบ แต่ไม่มีใครพอใจกับข้อกำหนดของฉัน
หากคุณรู้จักโครงการอื่น ๆ อย่าลังเลที่จะแก้ไขหน้า Wiki นี้!
นี่คือรายการ WikiPage ของโครงการ
หากคุณใช้โครงการนี้ในแอพสดโปรดแจ้งให้เราทราบ! ไม่มีอะไรทำให้ฉันมีความสุขไปกว่าการได้เห็นคนอื่นใช้งานของฉันและไปกับมัน
หากคุณใช้ github_changelog_generator เพื่อสร้าง changelog ของโครงการของคุณหรือรู้โครงการอื่น ๆ ที่ใช้โปรดเพิ่มลงในรายการนี้
github_changelog_generator สามารถใช้ร่วมกับ GITHUB CLI เพื่อสร้างบันทึกการเปิดตัว ใช้-ตัวเลือก --since-tag และ --output ของ github_changelog_generator เพื่อสร้างการเปลี่ยนแปลงสำหรับการเปิดตัวปัจจุบันและจัดเก็บผลลัพธ์ในไฟล์ ในตัวอย่างด้านล่างเวอร์ชัน 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 ในรุ่นถัดไป;)
ฉันไม่ได้พยายามเปรียบเทียบคุณภาพของบันทึกที่เขียนด้วยลายมือและการสร้างอัตโนมัติ ที่กล่าวว่า ....
การเปลี่ยนแปลงที่สร้างโดยอัตโนมัติช่วยได้จริงแม้ว่าคุณจะกรอกบันทึกการเปิดตัวด้วยตนเอง!
สิ่งนี้เป็นไปได้โดยใช้รายการ add-sections หรือ configure-sections ใน .github_changelog_generator ตัวอย่างเช่นในการเพิ่มรายการใหม่ที่เรียกว่า "การบำรุงรักษา" ที่จะจับ PRS ที่ติดแท็กด้วยฉลาก maintenance ของคุณคุณสามารถเพิ่ม .github_changelog_generator the line:
add-sections= {"maintenance":{"prefix":"**Project maintenance**","labels":["maintenance"]}}
สามารถใช้วิธีการที่คล้ายกันผ่าน configure-sections เพื่อตั้งค่าคุณสมบัติส่วนทั้งหมด (รวมถึงการเพิ่มวิธีการใหม่!)
เมื่อทับทิมของคุณแก่แล้วและคุณไม่ต้องการอัพเกรดและคุณต้องการควบคุมห้องสมุดที่คุณใช้คุณสามารถใช้ Bundler ได้
ใน Gemfile อาจจะอยู่ในกลุ่มที่ไม่ได้ใช้งาน :development เพิ่มอัญมณีนี้:
group :development do
gem 'github_changelog_generator' , require : false
endจากนั้นคุณสามารถเก็บการพึ่งพากลับมาเช่นแร็คซึ่งปัจจุบันเข้ากันได้กับทับทิม> = 2.2.2 เท่านั้น ดังนั้นใช้เวอร์ชันเก่าสำหรับแอปของคุณโดยเพิ่มบรรทัดเช่นนี้ไปยัง Gemfile:
gem 'rack', '~> 1.6'
ด้วยวิธีนี้คุณสามารถใช้ GITHUB_CHANGELOG_GENERATOR ต่อไปแม้ว่าคุณจะไม่สามารถติดตั้ง Ruby เวอร์ชันล่าสุดได้
Windows: v1.14.0 แนะนำข้อผิดพลาดที่พยายามสร้าง /tmp/github_changelog-logger.log ... ซึ่งไม่ใช่เส้นทางที่ถูกต้องบน Windows และล้มเหลว
วิธีแก้ปัญหา: สร้าง C:tmp
คุณต้องการมีส่วนร่วมในโครงการนี้หรือไม่? Inturning.md มีรายละเอียดทั้งหมดเกี่ยวกับวิธีการทำเช่นนั้น
เข้าร่วมแชทที่ Gitter: GitHub-Changelog-Generator
GitHub Changelog Generator เปิดตัวภายใต้ใบอนุญาต MIT