An open API service indexing awesome lists of open source software.

https://github.com/thevickypedia/gitverse

Generate a well formatted RST/MarkDown file from git releases or commit messages
https://github.com/thevickypedia/gitverse

commit-message-formatter gitverse release-notes-generateor

Last synced: 3 months ago
JSON representation

Generate a well formatted RST/MarkDown file from git releases or commit messages

Awesome Lists containing this project

README

          

[![Pypi-version](https://img.shields.io/pypi/v/gitverse)](https://pypi.org/project/gitverse)
![Python](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11-blue)

[![pages-build-deployment](https://github.com/thevickypedia/gitverse/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/thevickypedia/gitverse/actions/workflows/pages/pages-build-deployment)
[![pypi-publish](https://github.com/thevickypedia/gitverse/actions/workflows/python-publish.yml/badge.svg)](https://github.com/thevickypedia/gitverse/actions/workflows/python-publish.yml)

[![Pypi-format](https://img.shields.io/pypi/format/gitverse)](https://pypi.org/project/gitverse/#files)
[![Pypi-status](https://img.shields.io/pypi/status/gitverse)](https://pypi.org/project/gitverse)

![Maintained](https://img.shields.io/maintenance/yes/2023)
[![GitHub Repo created](https://img.shields.io/date/1630367571)](https://api.github.com/repos/thevickypedia/gitverse)
[![GitHub commit activity](https://img.shields.io/github/commit-activity/y/thevickypedia/gitverse)](https://api.github.com/repos/thevickypedia/gitverse)
[![GitHub last commit](https://img.shields.io/github/last-commit/thevickypedia/gitverse)](https://api.github.com/repos/thevickypedia/gitverse)

# GitVerse
Get GitHub's release notes or commit history and format it into `reStructuredText`/`Markdown` documents.

### Installation
```shell
pip install gitverse
```

### Usage
#### Release Notes (Tags)
Generate release notes from releases tagged in GitHub
```shell
gitverse-release
```

> Tries to get release notes, using GitHub API

> If failed, uses the commit message as notes for the associated release

> This feature optionally takes `GIT_TOKEN` as an environment variable if it is generated for a personal repo

Known issue related to the order of release notes

- There is a known issue with GitHub where the `git tag` command returns incorrect timestamp _(when tags are created in different timezones)_
- If the release notes are not generated in the expected order, please run the following command to verify
```shell
git for-each-ref --sort='-creatordate' --format '%(refname:short) %(creatordate:iso8601)' refs/tags
```
- If the output is in expected order, please raise an [issue](https://github.com/thevickypedia/gitverse/issues/new)

---

#### Commit History
Generate commit history from git log
```shell
gitverse-commit
```

---

#### Options
- `debug` - Enable debug mode for logging.
- `reverse` - Generate commit history/release notes in reverse order.

#### Flags
- `-b` Gather commit notes specific to a branch. Uses `Default branch` if not passed. (Only for `gitverse-commit`)
- `-f` Write the commit notes to a custom filename.
- `-t` Title or index line for the file generated.

#### Sample
[release_notes.rst][release_notes]

[changelog.rst][changelog]

### Linting
`PreCommit` will ensure linting, and the doc creation are run on every commit.

**Requirement**
```shell
pip install sphinx==5.1.1 pre-commit==2.20.0 recommonmark==0.7.1
```

**Usage**
```shell
pre-commit run --all-files
```

## Pypi Package
[![pypi-module](https://img.shields.io/badge/Software%20Repository-pypi-1f425f.svg)](https://packaging.python.org/tutorials/packaging-projects/)

[https://pypi.org/project/gitverse/][pypi]

### Runbook
[![made-with-sphinx-doc](https://img.shields.io/badge/Code%20Docs-Sphinx-1f425f.svg)](https://www.sphinx-doc.org/en/master/man/sphinx-autogen.html)

[https://thevickypedia.github.io/gitverse/][runbook]

## License & copyright

© Vignesh Rao, GitVerse

Licensed under the [MIT License][license]

[release_notes]: https://github.com/thevickypedia/gitverse/blob/main/release_notes.rst
[changelog]: https://github.com/thevickypedia/gitverse/blob/main/changelog.rst
[runbook]: https://thevickypedia.github.io/gitverse/
[license]: https://github.com/thevickypedia/gitverse/blob/master/LICENSE
[pypi]: https://pypi.org/project/gitverse/