Create changelogs based on your GitHub milestones

Overview

changelog_generator.php

This project provides a simple way to create a markdown ordered list of issues and pull requests closed with a given milestone on GitHub.

The script ensures that any special characters that might break the generated links are scrubbed and substituted with the corresponding HTML entities; as such, the script should be generally usable unattended.

This is a fork of phly/changelog-generator for use with more recent versions of PHP and various quality-of-life improvements.

Installation

Use Composer to install dependencies:

$ composer require akrabat/changelog-generator

This will install the script in vendor/bin/changelog_generator.php.

You can also install globally using:

composer global require akrabat/changelog-generator

and ensure that ~/.composer/vendor/bin is on your PATH. The script is then available using changelog_generator.php directly.

Usage

There are two primary ways to use the generator:

  • Use CLI options to pass in configuration
  • Create a configuration file, and pass that to the script

The standard CLI options are:

  • -t or --token, to pass your GitHub API token
  • -u or --user, to pass your GitHub username or organization
  • -r or --repo, to pass your GitHub repository name
  • -m or --milestone, to pass the identifier of the GitHub milestone for which to generate the changelog

As an example:

vendor/bin/changelog_generator.php -t MYgithubAPItoken -u weierophinney -r changelog_generator -m 1 > changelog.md

Alternately, create a configuration file. You can use config/config.php.dist as a template; it simply needs to return an array with the keys "token", "user", "repo", and "milestone". You then pass this to the script:

vendor/bin/changelog_generator.php -c path/to/config.php

You can also mix-and-match options -- for instance, you might place your token in a configuration file, and then pass the other options via CLI.

Additional options

Additional CLI options control the output:

  • -g or --group-labels, to display the result grouped by labels
  • -o or --plain-text-output, to display the milestone titles as plain text, rather than HTML encoded
Issues
  • Add option to group issues/prs by labels

    Add option to group issues/prs by labels

    Which is really helpful for projects like doctrine/orm that have tons of changes on minor and major releases.

    (Raised by lcobucci)

    opened by akrabat 1
  • Add a blank line before the bullets

    Add a blank line before the bullets

    markdown.pl doesn't convert a list to <ul> unless there is a blank line before the list.

    opened by akrabat 0
  • Remove ZF dependencies

    Remove ZF dependencies

    The ZF components are now Laminas, where console is archived and http is in security fixes only mode.

    Therefore, we extract GetOpt to its own class and write trivially simple HttpClient and Response classes that are only intended to work with this script. This removes dependencies on third-party packages going foward.

    opened by akrabat 0
  • Fix finding milestone by title

    Fix finding milestone by title

    When trying to find a milestone by title, we need to fetch all milestones, not just open ones.

    opened by akrabat 0
  • fix list milestones

    fix list milestones

    • List milestones if no milestone ID or title is provided
    • Include closed milestones in list
    • Format milestone list better
    opened by akrabat 0
  • Display milestone titles as plain text

    Display milestone titles as plain text

    Sometimes it's useful to not encode with HTML entities, so add -o to output in plain text.

    opened by akrabat 0
  • Tidy up errors and messages

    Tidy up errors and messages

    • Tidy up list milestones message
    • Tidy up error messages
    opened by akrabat 0
  • Update for release

    Update for release

    Update README.md, LICENSE.md and composer.json ready for release to Packagist

    opened by akrabat 0
Releases(3.0.0)
Owner
Rob Allen
Consultant, developer & trainer for @19FT
Rob Allen
Run your WP site on github pages, php innovation award winner https://www.phpclasses.org/package/12091-PHP-Make-a-WordPress-site-run-on-GitHub-pages.html

Gitpress Run wordpress directly on github pages Gitpress won the innovation award for may 2021 Read more about this https://naveen17797.github.io/gitp

naveen 9 Oct 9, 2021
Greyhole uses Samba to create a storage pool of all your available hard drives, and allows you to create redundant copies of the files you store.

Greyhole Greyhole is an application that uses Samba to create a storage pool of all your available hard drives (whatever their size, however they're c

Guillaume Boudreau 225 Nov 18, 2021
Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project - https://github.com/diyruz/flower).

Plant-Watering-Sensor-Zigbee Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project

Andrew Lamchenko 17 Nov 17, 2021
Visitor Badge for your Web or Github repository

visitor-badge Visitor Badge untuk Website atau Github repository, Dibuat dengan ❤ dan PHP native oleh Saya Demo Langsung Anda bisa me-refresh halaman

Feri Irawan 33 Oct 29, 2021
Compare your Github followers vs following users

followers-vs-following Compare your Github followers vs following users https://docs.github.com/en/rest/reference/users The code only queries 3k follo

Felix Biego 2 Sep 30, 2021
Discover your ranking on GitHub

Git stars About This project was inspired by Git Awards! Since it apparently isn't supported anymore we thought we'd take the concept back and add our

Pierre Grimaud 18 Nov 9, 2021
The simplest way to create a dynamic sitemap for your self-coded website which you have made by using PHP/HTML/CSS/Js etc... Scripts.

Sitemap_index.xml The simplest way to create a dynamic sitemap for your self-coded website which you have made by using PHP/HTML/CSS/Js etc... Scripts

Tanish Raj 1 Oct 16, 2021
[READ-ONLY] CakePHP Utility classes such as Inflector, Text, Hash, Security and Xml. This repo is a split of the main code that can be found in https://github.com/cakephp/cakephp

CakePHP Utility Classes This library provides a range of utility classes that are used throughout the CakePHP framework What's in the toolbox? Hash A

CakePHP 111 Oct 2, 2021
Issue tracking application extending GitHub's issues and pull requests for the Joomla! project.

Requirements The issue tracker application requires a server running: PHP 7.2 or 7.3 PHP's ext/curl and ext/intl should also be installed MySQL 5.5.3

Joomla! 65 Aug 30, 2021
Laradeploy offers you to automate deployment using a GitHub webhook.

Introduction Laradeploy offers you to automate deployment using a GitHub webhook. Simple and fast just make a git push to GitHub deploy the new modifi

Gentrit Abazi 10 Jun 26, 2021
Source control integration plugin framework for MantisBT, including support for Github, Gitlab, Bitbucket, Gitweb, Cgit, Subversion, Mercurial and more

Source control integration plugin framework for MantisBT, including support for Github, Gitlab, Bitbucket, Gitweb, Cgit, Subversion, Mercurial and more

MantisBT Community Plugins 170 Nov 18, 2021
GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

Shivam Mathur 1.9k Nov 22, 2021
a robot with github

GitBot github 机器人:这是一个基于Github API的机器人,建立一些项目的规范(如 issue 格式、 pull request 格式、配置一些指定 label 根据的 owner 、统一 git commit log 格式等),基于 github webhooks 和 githu

Dreamn 2 Oct 12, 2021
The goal of this course is to give you a brief introduction to GitHub.

?? The Basics of GitHub ?? Course overview and learning outcomes The goal of this course is to give you a brief introduction to GitHub. We’ll also pro

DAW 1 Nov 10, 2021
A set of classes to create and manipulate HTML objects abstractions

HTMLObject HTMLObject is a set of classes to create and manipulate HTML objects abstractions. Static calls to the classes echo Element::p('text')->cla

Emma Fabre 129 Nov 6, 2021
Easily create and read Corona Warn App Check-In URLs

bauer-kirch/cwa-event-registration-url This PHP library allows generating Check-In URLs for the Corona Warn App which can then be used to generate a Q

Bauer + Kirch GmbH 8 Sep 1, 2021
A useful PocketMine-MP plugin that allows you to create crates in-game!

ComplexCrates A useful PocketMine-MP plugin that allows you to create crates in-game! Commands Main command: /crate Sub commands: create

Oğuzhan 8 Aug 26, 2021
PHP library to create and validate html forms

FormManager Note: this is the documentation of FormManager 6.x For v5.x version Click here Installation: This package requires PHP>=7.1 and is availab

Oscar Otero 139 Sep 29, 2021
This plugin allows you to create many-to-many relationships between pages in Kirby and synchronizes them on both sides.

Kirby 3 Many To Many Field This plugin allows you to create many-to-many relationships between pages in Kirby.

Jonas Holfeld 37 Oct 27, 2021