All Projects → ergebnis → github-changelog

ergebnis / github-changelog

Licence: MIT license
Provides a command line tool that generates a changelog based on titles of pull requests merged between specified references.

Programming Languages

PHP
23972 projects - #3 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to github-changelog

attribution
Generate changelogs from commit tags and shortlogs
Stars: ✭ 20 (-58.33%)
Mutual labels:  changelog
versioce
Version bumping and changelog generation for your mix project
Stars: ✭ 19 (-60.42%)
Mutual labels:  changelog
keepachangelog
Convert keep a changelog markdown file into python dict
Stars: ✭ 31 (-35.42%)
Mutual labels:  changelog
next-release
Next Release is a release note management platform that automates your release notes in 3 clicks.
Stars: ✭ 18 (-62.5%)
Mutual labels:  changelog
wisdom
🎁 Tool for publishing releases to github and npm
Stars: ✭ 16 (-66.67%)
Mutual labels:  changelog
ChangeLog
Keep up with frequently updated projects.
Stars: ✭ 13 (-72.92%)
Mutual labels:  changelog
release-changelog-builder-action
A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.
Stars: ✭ 515 (+972.92%)
Mutual labels:  changelog
news-fragments
An easy way to create your changelog file
Stars: ✭ 31 (-35.42%)
Mutual labels:  changelog
get-changelog
A CLI tool to easily find changelogs
Stars: ✭ 21 (-56.25%)
Mutual labels:  changelog
cocogitto
The Conventional Commits toolbox
Stars: ✭ 242 (+404.17%)
Mutual labels:  changelog
kacl
Keep a Changelog tooling for automating changelog releases
Stars: ✭ 12 (-75%)
Mutual labels:  changelog
changelog-enforcer
A simple GitHub action that enforces that a maintained changelog is kept up to date.
Stars: ✭ 32 (-33.33%)
Mutual labels:  changelog
fe-standard-config-seed
前端通用代码规范自动化接入
Stars: ✭ 18 (-62.5%)
Mutual labels:  changelog
git
🔀 semantic-release plugin to commit release assets to the project's git repository
Stars: ✭ 235 (+389.58%)
Mutual labels:  changelog
changelog-linker
[READ-ONLY] Make CHANGELOG.md Useful with Links
Stars: ✭ 81 (+68.75%)
Mutual labels:  changelog
git-changelog
Categorized change logs from git messages
Stars: ✭ 20 (-58.33%)
Mutual labels:  changelog
github-post-release
Forms release changelog and posts a note to each referenced issues after semantic release publishes a new module version
Stars: ✭ 18 (-62.5%)
Mutual labels:  changelog
mazda-firmware-changelogs
Mazda Firmware Changelog
Stars: ✭ 37 (-22.92%)
Mutual labels:  changelog
releasify
A tool to release in a simpler way your module
Stars: ✭ 54 (+12.5%)
Mutual labels:  changelog
studio-changes
📦 Generate a changelog as part of the npm version command
Stars: ✭ 49 (+2.08%)
Mutual labels:  changelog

github-changelog

Integrate Prune Release Renew

Code Coverage Type Coverage

Latest Stable Version Total Downloads

Provides a script that generates a changelog based on titles of pull requests merged between specified references.

Is this the right tool for me?

Probably not. There are a range of other tools that probably do a better job.

Take a look at

Nonetheless, for me and my projects, it's the second best thing after manually keeping a changelog as suggested at http://keepachangelog.com.

When will it work for me?

My process Will this tool work for me?
I need elaborate changelogs No
I push directly into the default branch No
Rebase and merge No
Squash and merge No
Merge pull request Yes

Why is this tool so limited?

All this tool does is this:

  • it collects commits between references
  • it matches commit messages against what is used by GitHub as a merge commit message
  • it fetches the pull request title from the corresponding pull request
  • it then uses all of the pull request titles to compile a list

CLI Tool

Global installation

Install globally:

$ composer global require ergebnis/github-changelog

Create your changelogs from within a Git repository:

$ git clone [email protected]:ergebnis/github-changelog.git
$ cd github-changelog
$ github-changelog generate 0.1.1 0.1.2

Create your changelogs from anywhere, specifying the repository using the --repository option:

$ github-changelog generate --repository ergebnis/github-changelog 0.1.1 0.1.2

Enjoy the changelog:

- Fix: Catch exceptions in command (#37), by @localheinz
- Fix: Request 250 instead of 30 commits (#38), by @localheinz

Local installation

Install locally:

$ composer require --dev ergebnis/github-changelog

Create your changelog from within in your project:

$ vendor/bin/github-changelog generate ergebnis/github-changelog ae63248 main

Enjoy the changelog:

- Enhancement: Create ChangeLog command (#31), by @localheinz
- Fix: Assert exit code is set to 0 (#32), by @localheinz
- Enhancement: Add console application (#33), by @localheinz
- Fix: Readme (#34), by @localheinz
- Fix: Autoloading for console script (#35), by @localheinz
- Fix: Version foo with rebasing and whatnot (#36), by @localheinz
- Fix: Catch exceptions in command (#37), by @localheinz
- Fix: Request 250 instead of 30 commits (#38), by @localheinz

Userland Code

Install locally:

$ composer require ergebnis/github-changelog

Retrieve pull requests between references in your application:

<?php

require 'vendor/autoload.php';

use Github\Client;
use Github\HttpClient\CachedHttpClient;
use Ergebnis\GitHub\Changelog\Repository;
use Ergebnis\GitHub\Changelog\Resource;

$client = new Client(new CachedHttpClient());
$client->authenticate(
    'your-token-here',
    Client::AUTH_HTTP_TOKEN
);

$pullRequestRepository = new Repository\PullRequestRepository(
    $client->pullRequests(),
    new Repository\CommitRepository($client->repositories()->commits())
);

/* @var Resource\RangeInterface $range */
$range = $repository->items(
    Resource\Repository::fromString('ergebnis/github-changelog'),
    '0.1.1',
    '0.1.2'
);

$pullRequests = $range->pullRequests();

array_walk($pullRequests, function (Resource\PullRequestInterface $pullRequest) {
    echo sprintf(
        '- %s (#%d), submitted by @%s' . PHP_EOL,
        $pullRequest->title(),
        $pullRequest->number(),
        $pullRequest->author()->login(),
    );
});

Enjoy the changelog:

- Fix: Catch exceptions in command (#37), submitted by @localheinz
- Fix: Request 250 instead of 30 commits (#38), submitted by @localheinz

Hints

💡 You can use anything for a reference, e.g., a tag, a branch, a commit!

Changelog

Please have a look at CHANGELOG.md.

Contributing

Please have a look at CONTRIBUTING.md.

Code of Conduct

Please have a look at CODE_OF_CONDUCT.md.

License

This package is licensed using the MIT License.

Please have a look at LICENSE.md.

Curious what I am building?

📬 Subscribe to my list, and I will occasionally send you an email to let you know what I am working on.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].