承接 square1/gwitlog 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

square1/gwitlog

Composer 安装命令:

composer require square1/gwitlog

包简介

Make developers eager to read your commit log by styling it like a social media timeline

README 文档

README

Make developers eager to read your commit log by styling it like a social media timeline.

Based on this commitstrip comic, this tool allows you to take a commit log from a git repo and style it to look like a social media timeline.

Installation

The package can be installed by adding the "conroyp/gwitlog": "dev-master" package to your project's composer.json.

[
    "require": {
        "square1/gwitlog": "0.1.*"
    }
]

Usage

Generating the log file

The required format of the git log is generated by running the below command on your repository:

git log --pretty=format:'%H -%d %s (%ad) <%an:%ae>'

Outputting the timeline to screen

<?php
/**
 * A simple script to read a git log from a file and render the timeline to screen
 */
require 'vendor/autoload.php';

use \Square1\Gwitlog\Renderer as Renderer;

$gwitlog = new Renderer();
// Provide repo name
$gwitlog->setRepoName('Gwitlog');
// Provide remote repo base (Optional, but it allows us link commits back to the web GUI)
// Currently support bitbucket and github urls
$gwitlog->setRemoteHost('https://github.com/square1-io/gwitlog');

// Log file generated based on git log command:
// git log --pretty=format:'%H -%d %s (%ad) <%an:%ae>' > git.log
$gwitlog->setInputFile('git.log');

// Generate output and render to screen
$gwitlog->render();

Outputting the timeline to file

<?php
/**
 * A simple script to read a git log from a file and render the timeline to a file
 */
require 'vendor/autoload.php';

use \Square1\Gwitlog\Renderer as Renderer;

$gwitlog = new Renderer();
// Provide repo name
$gwitlog->setRepoName('Gwitlog');
// Provide remote repo base (Optional, but it allows us link commits back to the web GUI)
// Currently support bitbucket and github urls
$gwitlog->setRemoteHost('https://github.com/square1-io/gwitlog');

// Log file generated based on git log command:
// git log --pretty=format:'%H -%d %s (%ad) <%an:%ae>' > git.log
$gwitlog->setInputFile('git.log');

// Write to file timeline.html
$gwitlog->outputToFile('timeline.html');

Reading from stdin rather than a flat file

Gwitlog also supports reading from an input stream, allowing the git log command to be piped through the script without writing the intermediary git.log file.

<?php
/**
 * A simple script to read a git log from stdin and render the timeline to screen
 */
require 'vendor/autoload.php';

use \Square1\Gwitlog\Renderer as Renderer;

$gwitlog = new Renderer();
// Provide repo name
$gwitlog->setRepoName('Gwitlog');
// Provide remote repo base (Optional, but it allows us link commits back to the web GUI)
// Currently support bitbucket and github urls
$gwitlog->setRemoteHost('https://github.com/square1-io/gwitlog');

// Read from input stream
$input = fopen('php://stdin', 'r');
$gwitlog->setInputStream($input);

// Generate output and render to screen
$gwitlog->render();

Saving the above as gwitlog.php allows us to run:

git log --pretty=format:'%H -%d %s (%ad) <%an:%ae>' | gwitlog.php > timeline.html

That leaves a file (timeline.html) containing the formatted timeline. This allows things like a post-build hook in a local testing environment to generate a new timeline for the team to review after each successful merge.

Customising the output

It's possible to customise the output of the result. We use the Blade templating language, most commonly found in Laravel projects.

The Renderer can be given the location of a directory containing customised views. It will expect to find three views here - header.blade.php, gwit.blade.php and footer.blade.php. The call to pass on this directory can be made at any time before the outputToFile or render functions are called.

<?php
/**
 * A simple script to read a git log from stdin and render the timeline to screen, using
 * customised views
 */
require 'vendor/autoload.php';

use \Square1\Gwitlog\Renderer as Renderer;

$gwitlog = new Renderer();
// Provide repo name
$gwitlog->setRepoName('Gwitlog');
// Provide remote repo base (Optional, but it allows us link commits back to the web GUI)
// Currently support bitbucket and github urls
$gwitlog->setRemoteHost('https://github.com/square1-io/gwitlog');

// Use our custom templates
$gwitlog->setViewDirectory(__DIR__ . '/../views/gwitlog');

// Read from input stream
$input = fopen('php://stdin', 'r');
$gwitlog->setInputStream($input);

// Generate output and render to screen
$gwitlog->render();

By default, these views shall be cached to /tmp. If you have permission issues with your deployment or just wish for all of your project views to be cached in one place, call setCacheDirectory($path). This will update the cache directory used by the renderer.

Over-riding default size limits

A maximum of 20,000 commits will be handled by default. If you want to try processing more than this, calling setMaxEntries($limit) will increase the processing limit.

Tests

phpunit

Roadmap

  • Parsing regular log output, allowing multi-line commits to be visible over multiple lines
  • Handling the output of --graph to better attach branch names to all commits on that branch
  • Accept url of public project and download git log from there automatically

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 3
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-09-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固