1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-17 18:36:32 +02:00

Merge remote-tracking branch 'otternq/dev-processor-git'

This commit is contained in:
Jordi Boggiano
2013-11-20 13:16:58 +01:00
2 changed files with 83 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Processor;
/**
* Injects Git branch and Git commit SHA in all records
*
* @author Nick Otter
*/
class GitProcessor
{
/**
* @param array $record
* @return array
*/
public function __invoke(array $record)
{
$branch = self::getBranch();
$commit = self::getCommit();
$record['extra']['git']['branch'] = $branch;
$record['extra']['git']['commit'] = $commit;
return $record;
}
static protected function getBranch() {
$branches = explode("\n", `git branch`);
foreach ($branches as $branch) {
if ($branch[0] == "*") {
return substr($branch, 2);
}
}
return $branches;
}
static protected function getCommit() {
$s = `git rev-parse HEAD`;
return trim($s);
}
}

View File

@@ -0,0 +1,31 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Processor;
use Monolog\TestCase;
class GitProcessorTest extends TestCase
{
/**
* @covers Monolog\Processor\GitProcessor::__invoke
*/
public function testProcessor()
{
$processor = new GitProcessor();
$record = $processor($this->getRecord());
$this->assertArrayHasKey('git', $record['extra']);
$this->assertTrue(!is_array($record['extra']['git']['branch']));
}
}