From 9c579677004b325055161c886e7797aec0cd1e85 Mon Sep 17 00:00:00 2001 From: otternq Date: Sat, 16 Nov 2013 17:40:16 -0800 Subject: [PATCH 1/3] adding a processor for basic git information Adds the current Git Branch, and Git Commit key to the extra field --- src/Monolog/Processor/GitProcessor.php | 59 ++++++++++++++++++++ tests/Monolog/Processor/GitProcessorTest.php | 31 ++++++++++ 2 files changed, 90 insertions(+) create mode 100644 src/Monolog/Processor/GitProcessor.php create mode 100644 tests/Monolog/Processor/GitProcessorTest.php diff --git a/src/Monolog/Processor/GitProcessor.php b/src/Monolog/Processor/GitProcessor.php new file mode 100644 index 00000000..220a5669 --- /dev/null +++ b/src/Monolog/Processor/GitProcessor.php @@ -0,0 +1,59 @@ + + * + * 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'] = array_merge( + $record['extra'], + array( + 'git' => array( + 'branch' => $branch, + '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 $s; + } +} diff --git a/tests/Monolog/Processor/GitProcessorTest.php b/tests/Monolog/Processor/GitProcessorTest.php new file mode 100644 index 00000000..5f7a3e24 --- /dev/null +++ b/tests/Monolog/Processor/GitProcessorTest.php @@ -0,0 +1,31 @@ + + * + * 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'])); + + } +} From e1feb74001ccb49f585529719d9f77101f7ea21d Mon Sep 17 00:00:00 2001 From: otternq Date: Sat, 16 Nov 2013 17:52:07 -0800 Subject: [PATCH 2/3] removing whitespace from getCommit() value --- src/Monolog/Processor/GitProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Monolog/Processor/GitProcessor.php b/src/Monolog/Processor/GitProcessor.php index 220a5669..f2eafd1c 100644 --- a/src/Monolog/Processor/GitProcessor.php +++ b/src/Monolog/Processor/GitProcessor.php @@ -54,6 +54,6 @@ class GitProcessor static protected function getCommit() { $s = `git rev-parse HEAD`; - return $s; + return trim($s); } } From 1c3b7a6cdd3cffec935767f47e410c4c0c472e91 Mon Sep 17 00:00:00 2001 From: otternq Date: Wed, 20 Nov 2013 00:41:49 -0800 Subject: [PATCH 3/3] updated data assignment based on @Seldaek suggestion --- src/Monolog/Processor/GitProcessor.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/Monolog/Processor/GitProcessor.php b/src/Monolog/Processor/GitProcessor.php index f2eafd1c..0bb45fca 100644 --- a/src/Monolog/Processor/GitProcessor.php +++ b/src/Monolog/Processor/GitProcessor.php @@ -28,15 +28,8 @@ class GitProcessor $branch = self::getBranch(); $commit = self::getCommit(); - $record['extra'] = array_merge( - $record['extra'], - array( - 'git' => array( - 'branch' => $branch, - 'commit' => $commit - ), - ) - ); + $record['extra']['git']['branch'] = $branch; + $record['extra']['git']['commit'] = $commit; return $record; }