maxbrokman/git-change-log

从git提交生成变更日志,按发布标签分隔

v0.1.1 2014-09-22 12:29 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:42:30 UTC


README

Build Status Coverage Status

基于Git的变更日志

此包从git提交生成类似变更日志的报告。每个标签都会列出其日期和包含在其中的任何带有特定字符串(默认为!public或@public)的提交

要求

  • PHP必须能够运行exec().
  • 必须安装Git!你可能还需要一些标签...

代码示例

$changeLog = new MaxBrokman\GitChangeLog\ChangeLog( new MaxBrokman\GitChangeLog\Git );
$log = $changeLog->getChangeLog( $page = 1 );

将返回类似

[
    {
        "tag": "v1",
        "date": 1409965746, // utc time
        "changesSinceLastTag":
            [
                {
                    "commit": "9e9125b", // Short commit hash
                    "author": "Max Brokman <max.brokman@gmail.com>",
                    "message": "Commit Message @public"
                },
            ...
            ]
    },
    ...
]

安装

使用composer,需要

 "maxbrokman/git-change-log": "0.1.*"

使用场景

我在一家大公司的一个内部项目上工作。我们的一些利益相关者想要了解应用程序发生的情况。我们每天发布几次,这个包允许我们在应用程序内部提供一个更新列表,而不需要手动维护变更日志。我们使用 !public 在提交消息中标记它们为公共(在我们的情况下是内部)消费。

API参考

要更改用于查找公共提交消息的模式,您可以在传递给ChangeLog的MaxBrokman\GitChangeLog\Git实例上调用setPublicMarker( "grep pattern" )

要更改每页的结果数,您可以在MaxBrokman\GitChangeLog\ChangeLog上调用setPerPage( 100 )

测试

测试使用 PHPUnit 运行。从根目录运行phpunit

GitTest.php需要一个带有标签v0.0.1的git仓库

许可

MIT许可(MIT)

版权所有 © 2014 Max Brokman

特此授予任何人免费获得本软件及其相关文档副本(“软件”)的副本的权利,无论是否出于商业目的,均可不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是基于合同、侵权或其他方式,无论该索赔、损害或其他责任是否源于、因之而产生或与之相关,软件或软件的使用或其他交易。