Git ChangeLog
A simple service to parse the git log of an application to a readable changelog., (*1)
Requirements
Mandatory Requirements
-
PHP >= 5.6.4
-
Carbon >= 1.18: Used to format the date of the git commits
Optional Requirements
- An existing >= Laravel 5.3 project to use the global view variable
$gitVersion
Installation
-
To get started, install the Git ChangeLog service via the Composer package manager:, (*2)
composer require epicarrow/git-changelog
-
Optional: If you are using Laravel and you want to use the global view variable $gitVersion add the following entry to your providers array in config/app.php:, (*3)
'providers' => [
...
...
EpicArrow\GitChangeLog\Providers\GitChangeLogServiceProvider::class
]
Documentation
Services
The following services are currently available:, (*4)
EpicArrow\GitChangeLog\GitChangeLog::get([int $count = null])
Fetches the latest unique git commits. If two contiguous commits have the same commit message only one commit will be
retrieved., (*5)
Parameters:
- $count (_int_): The number of results to retrieve., (*6)
Return Values:, (*7)
The retrieved commits as an array of EpicArrow\GitChangeLog\Models\Commits., (*8)
EpicArrow\GitChangeLog\GitChangeLog::version()
Gets the latest version of the git repository., (*9)
Return Values:, (*10)
The retrieved latest version of the git repository as a string or null if no version exists., (*11)
Global Variables
If you are using Laravel and you've registered the GitChangeLogServiceProvider within your config/app.php providers array
you can access the following variables from every blade view:
- $gitVersion: Corresponds to the service EpicArrow\GitChangeLog\GitChangeLog::version() and gets you the latest version of the git repository., (*12)
The commit model EpicArrow\GitChangeLog\Models\Commit
When retrieving the latest git commit through this service you will get an array of EpicArrow\GitChangeLog\Models\Commits. This model has the following properties:
- $id(string): The commit hash/id
- $date(Carbon\Carbon): The date of the commit
- $message(string): The commit message
- $version(string|null): The version (tag) the commit belongs to
- $author(string): The author of the commit
- $email(string): The author's email address of the commit
- $merge(string|null): The merge info of the commit, (*13)