Package: loghub
LoghubProject detailsBuild statusDescriptionChangelog generator based on milestone or tags for github.Example outputSo how does this look in practice? It looks like this for 0.3 release of loghub:## Version 0.3 (2017-10-10)### Issues Closed#### Enhancements*[Issue 63](https://github.com/spyder-ide/loghub/issues/63) - Add PR link / commit link inside issue ([PR 69](https://github.com/spyder-ide/loghub/pull/69))

In this release 1 issue was closed.### Pull Requests Merged*[PR 69](https://github.com/spyder-ide/loghub/pull/69) - PR: Add extra links for related issues and prs ([63](https://github.com/spyder-ide/loghub/issues/63))

In this release 1 pull request was closed.You can look atloghub's CHANGELOG.md, orspyder's CHANGELOG.mdfor a more complete example output.InstallationUsing pippipinstallloghubUsing condacondainstallloghub-cconda-forgeorcondainstallloghub-cspyder-ideUsageloghub can be used to generate changelog based on milestones or on tags.In projects where milestones are used to track a release we can use for example:loghubspyder-ide/spyder--milestonev3.0In projects where milestones are used to track chunks of work but not releases,
we can use tags to get the changes after the latest release, for example:loghubspyder-ide/spyder--since-tagv3.0.0b7Or if loghub is used to generate old changelogs (or update changelogs),
we can also use tags to limit the range , for example:loghubspyder-ide/spyder--since-tagv3.0.0b7--until-tagv3.0.0For private repos, just add the username and password arguments, for example:loghubspyder-ide/spyder--since-tagv3.0.0b7--since-tagv3.0.0--username<username>--password<password>Or, just add the username and a password prompt will appear, for example:loghubspyder-ide/spyder--since-tagv3.0.0b7--since-tagv3.0.0--username<username>Or generate a Github access token and use that instead, for example:loghubspyder-ide/spyder--since-tagv3.0.0b7-until-tagv3.0.0--token<token>ImportantBecause of the Github API rate limitations it is advised to always use authentication
by either access token or user and password.ZenHub IntegrationIf your project is usingZenhubto manage the workflow, you can also
use Zenhub releases to create your changelog.loghubspyder-ide/spyder--zenhub-release"spyder v4.1.0"--zenhub-token<zenhub-token>ImportantFor Zenhub integration to work you need to always use a zenhub token. You can generate one by
going to yourdashboard. Same GitHub API rate limits apply here so it is advised to always
use authentication by either access token or user and password.loghubspyder-ide/spyder--zenhub-release"spyder v4.1.0"--zenhub-token<zenhub-token>--token<github-token>Advanced UsageFilter PR base branchPull requests to display can be filtered depending on the branch they were
merged against (base branch):loghubspyder-ide/spyder--branch3.xFilter issues/PRs by labelsTo filter issues to display, we can use a regular expression:loghubspyder-ide/spyder--issue-label-regex"Type.*"--milestonev3.1This will filter all the issues that start withTypeThe same can be done with PRsloghubspyder-ide/spyder--pr-label-regex"<some-regex>"--milestonev3.1Group issues by labelIssues displayed can be grouped by labels:loghubspyder-ide/spyder--issue-label-group"Type-Bug""Bugs Fixed"--issue-label-group"Type-Enhancement""New Features"--milestonev3.1This will result in issues being grouped in two sections with the headingsBugs FixedandNew Featuresrespectively.Output formatLoghub provides two formats:changelog, which is the default and includes links to issues and PRsrelease, which does not include linksloghubspyder-ide/spyder--milestonev3.1--formatreleaseCustom templatesLoghub uses Jinja2 templates to format the output. If the current template
does not meet your needs, you can copy the defaulttemplates <https://github.com/spyder-ide/loghub/tree/master/loghub/templates>_
and create a new one and provide the path to it as:loghubspyder-ide/spyder--milestonev3.1--template<PATH_TO_TEMPLATE>Detailed CLI argumentsusage: loghub [-h] [-u USERNAME] [-p PASSWORD] [-t TOKEN] [-zt ZENHUB_TOKEN]
            [-m MILESTONE] [-zr ZENHUB_RELEASE] [-st SINCE_TAG]
            [-ut UNTIL_TAG] [-b BRANCH]
            [-ilg ISSUE_LABEL_GROUPS [ISSUE_LABEL_GROUPS ...]]
            [-plg PR_LABEL_GROUPS [PR_LABEL_GROUPS ...]]
            [-lg LABEL_GROUPS [LABEL_GROUPS ...]] [-ilr ISSUE_LABEL_REGEX]
            [-plr PR_LABEL_REGEX] [-f OUTPUT_FORMAT] [--template TEMPLATE]
            [--batch {milestones,tags}] [--no-prs]
            repository

Script to print the list of issues and pull requests closed in a given
milestone, tag including additional filtering options.

positional arguments:
repository            Repository name to generate the Changelog for, in the
                        form user/repo or org/repo (e.g. spyder-ide/spyder)

optional arguments:
-h, --help            show this help message and exit
-u USERNAME, --username USERNAME
                        Github user name
-p PASSWORD, --password PASSWORD
                        Github user password
-t TOKEN, --token TOKEN
                        Github access token
-zt ZENHUB_TOKEN, --zenhub-token ZENHUB_TOKEN
                        Zenhub access token
-m MILESTONE, --milestone MILESTONE
                        Github milestone to get issues and pull requests for
-zr ZENHUB_RELEASE, --zenhub-release ZENHUB_RELEASE
                        Zenhub release to get issues and pull requests for
-st SINCE_TAG, --since-tag SINCE_TAG
                        Github issues and pull requests since tag
-ut UNTIL_TAG, --until-tag UNTIL_TAG
                        Github issues and pull requests until tag
-b BRANCH, --branch BRANCH
                        Github base branch for merged PRs
-ilg ISSUE_LABEL_GROUPS [ISSUE_LABEL_GROUPS ...], --issue-label-group ISSUE_LABEL_GROUPS [ISSUE_LABEL_GROUPS ...]
                        Groups the generated issues by the specified label.
                        This optiontakes 1 or 2 arguments, where the first one
                        is the label to match and the second one is the label
                        to print on the finaloutput
-plg PR_LABEL_GROUPS [PR_LABEL_GROUPS ...], --pr-label-group PR_LABEL_GROUPS [PR_LABEL_GROUPS ...]
                        Groups the generated PRs by the specified label. This
                        optiontakes 1 or 2 arguments, where the first one is
                        the label to match and the second one is the label to
                        print on the finaloutput
-lg LABEL_GROUPS [LABEL_GROUPS ...], --label-group LABEL_GROUPS [LABEL_GROUPS ...]
                        Groups the generated issues and PRs by the specified
                        label. This option takes 1 or 2 arguments, where the
                        first one is the label to match and the second one is
                        the label to print on the final output
-ilr ISSUE_LABEL_REGEX, --issue-label-regex ISSUE_LABEL_REGEX
                        Label issue filter using a regular expression filter
-plr PR_LABEL_REGEX, --pr-label-regex PR_LABEL_REGEX
                        Label pull request filter using a regular expression
                        filter
-f OUTPUT_FORMAT, --format OUTPUT_FORMAT
                        Format for print, either 'changelog' (for Changelog.md
                        file) or 'release' (for the Github Releases page).
                        Default is 'changelog'. The 'release' option doesn't
                        generate Markdown hyperlinks.
--template TEMPLATE   Use a custom Jinja2 template file
--batch {milestones,tags}
                        Run loghub for all milestones or all tags
--no-prs              Run loghub without any pull requests output
--no-related-prs      Do not display related prs on issues
--no-related-issues   Do not display related issues on prsLabel utility CLI argumentsloghub includes an additional utility to get or update labels.usage: loghub-labels [-h] [-u USERNAME] [-p PASSWORD] [-t TOKEN]
                        [-a [{get,update}]] [-f FILENAME]
                        repository

positional arguments:
    repository            Repository name to generate the Changelog for, in the
                        form user/repo or org/repo (e.g. spyder-ide/spyder)

optional arguments:
    -h, --help            
                        show this help message and exit

    -u USERNAME, --username USERNAME
                        Github user name

    -p PASSWORD, --password PASSWORD
                        Github user password

    -t TOKEN, --token TOKEN
                        Github access token

    -a [{get,update}], --action [{get,update}]
                        Action to take

    -f FILENAME, --filename FILENAME
                        File for storing labelsContributingEveryone is welcome to contribute!BackersSupport us with a monthly donation and help us continue our activities.SponsorsBecome a sponsor to get your logo on our README on Github.