diff --git a/LibHooks/config/commit-msg.xml b/LibHooks/config/commit-msg.xml
index 7f3550c..04e1e3c 100644
--- a/LibHooks/config/commit-msg.xml
+++ b/LibHooks/config/commit-msg.xml
@@ -17,10 +17,24 @@
                     <class>\PreCommit\Issue\JiraAdapter</class>
                 </adapter>
             </issue>
+            <message>
+                <parser>
+                    <class>\PreCommit\Filter\ShortCommitMsg\Parser\Jira</class>
+                </parser>
+            </message>
         </jira>
 
         <github>
-            <not_implemented />
+            <issue>
+                <adapter>
+                    <class>\PreCommit\Issue\GitHubAdapter</class>
+                </adapter>
+            </issue>
+            <message>
+                <parser>
+                    <class>\PreCommit\Filter\ShortCommitMsg\Parser\GitHub</class>
+                </parser>
+            </message>
         </github>
 
         <redmine>
@@ -109,6 +123,14 @@
                             </default>
                         </allowed>
                     </jira>
+                    <github>
+                        <allowed>
+                            <!--Commit message type: default-->
+                            <default>
+                                <open>1</open>
+                            </default>
+                        </allowed>
+                    </github>
                 </status>
             </issue>
         </IssueStatus>
@@ -172,6 +194,15 @@
                                     <Bug>bug</Bug>
                                 </default>
                             </jira>
+                            <github>
+                                <default>
+                                    <!--JIRA issue-type map to general issue-type-->
+                                    <!-- Tasks -->
+                                    <enhancement>task</enhancement>
+                                    <!-- Bugs -->
+                                    <bug>bug</bug>
+                                </default>
+                            </github>
                         </tracker>
                     </type>
                 </issue>
diff --git a/LibHooks/lib/PreCommit/Filter/ShortCommitMsg.php b/LibHooks/lib/PreCommit/Filter/ShortCommitMsg.php
index 15a552e..0626029 100644
--- a/LibHooks/lib/PreCommit/Filter/ShortCommitMsg.php
+++ b/LibHooks/lib/PreCommit/Filter/ShortCommitMsg.php
@@ -60,11 +60,14 @@ protected function _getFormatterConfig()
     /**
      * Get parser
      *
-     * @return \PreCommit\Filter\ShortCommitMsg\Parser
+     * @return \PreCommit\Filter\ShortCommitMsg\Jira\Parser
      */
     protected function _getParser()
     {
-        return new ShortCommitMsg\Parser();
+        $class = $this->_getConfig()->getNode(
+            'tracker/' . $this->_getTrackerType() . '/message/parser/class'
+        );
+        return new $class;
     }
 
     /**
@@ -98,4 +101,14 @@ protected function _getConfig()
     {
         return Config::getInstance();
     }
+
+    /**
+     * Get tracker type
+     *
+     * @return string
+     */
+    protected function _getTrackerType()
+    {
+        return (string)$this->_getConfig()->getNode('tracker/type');
+    }
 }
diff --git a/LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser/GitHub.php b/LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser/GitHub.php
new file mode 100644
index 0000000..40eb14a
--- /dev/null
+++ b/LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser/GitHub.php
@@ -0,0 +1,29 @@
+<?php
+namespace PreCommit\Filter\ShortCommitMsg\Parser;
+
+use PreCommit\Interpreter\InterpreterInterface;
+use PreCommit\Filter\ShortCommitMsg;
+
+/**
+ * Class filter to parse short message
+ *
+ * @package PreCommit\Filter\ShortCommitMsg\GitHub
+ */
+class GitHub
+    extends ShortCommitMsg\Parser\Jira
+    implements InterpreterInterface
+{
+    /**
+     * Convert issue number to issue key
+     *
+     * Add project key to issue number when it did not set.
+     *
+     * @param string $issueNo
+     * @return string
+     * @throws \PreCommit\Exception
+     */
+    protected function _normalizeIssueKey($issueNo)
+    {
+        return "#" . ltrim($issueNo, '#');
+    }
+}
diff --git a/LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser.php b/LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser/Jira.php
similarity index 93%
rename from LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser.php
rename to LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser/Jira.php
index 5d76625..f98b99c 100644
--- a/LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser.php
+++ b/LibHooks/lib/PreCommit/Filter/ShortCommitMsg/Parser/Jira.php
@@ -1,19 +1,18 @@
 <?php
-namespace PreCommit\Filter\ShortCommitMsg;
+namespace PreCommit\Filter\ShortCommitMsg\Parser;
 
 use PreCommit\Config;
 use PreCommit\Exception;
 use PreCommit\Interpreter\InterpreterInterface;
 use PreCommit\Issue;
-use PreCommit\Jira\Api;
 use PreCommit\Message;
 
 /**
  * Class filter to parse short message
  *
- * @package PreCommit\Validator
+ * @package PreCommit\Filter\ShortCommitMsg\Jira
  */
-class Parser implements InterpreterInterface
+class Jira implements InterpreterInterface
 {
     /**
      * Issue adapter
@@ -156,11 +155,10 @@ protected function _getVerbs()
      *
      * @return string
      * @throws \PreCommit\Exception
-     * @todo Refactor this 'cos it belongs to JIRA only
      */
     protected function _getActiveIssueKey()
     {
-        return $this->_getConfig()->getNode('tracker/jira/active_task');
+        return $this->_getConfig()->getNode('tracker/' . $this->_getTrackerType() . '/active_task');
     }
 
     /**
@@ -171,14 +169,13 @@ protected function _getActiveIssueKey()
      * @param string $issueNo
      * @return string
      * @throws \PreCommit\Exception
-     * @todo Refactor this 'cos it belongs to JIRA only
      */
     protected function _normalizeIssueKey($issueNo)
     {
         if ((string)(int)$issueNo === $issueNo) {
-            $project = $this->_getConfig()->getNode('tracker/jira/project');
+            $project = $this->_getConfig()->getNode('tracker/' . $this->_getTrackerType() . '/project');
             if (!$project) {
-                throw new Exception('JIRA project key is not set. Please add it to issue-key or add by XPath "jira/project" in project configuration file "commithook.xml" within current project.');
+                throw new Exception('JIRA project key is not set. Please add it to issue-key or add by XPath "tracker/jira/project" in project configuration file "commithook.xml" within current project.');
             }
             $issueNo = "$project-$issueNo";
         }
@@ -358,4 +355,14 @@ protected function _getIssueKeyCompleteRegular()
     {
         return '[A-Z0-9]+[-][0-9]+';
     }
+
+    /**
+     * Get tracker type
+     *
+     * @return string
+     */
+    protected function _getTrackerType()
+    {
+        return (string)$this->_getConfig()->getNode('tracker/type');
+    }
 }
diff --git a/LibHooks/lib/PreCommit/Issue/Exception.php b/LibHooks/lib/PreCommit/Issue/Exception.php
new file mode 100644
index 0000000..2793dda
--- /dev/null
+++ b/LibHooks/lib/PreCommit/Issue/Exception.php
@@ -0,0 +1,12 @@
+<?php
+namespace PreCommit\Issue;
+
+/**
+ * Issue adapters exception class
+ *
+ * @package PreCommit\Issue
+ */
+class Exception extends \PreCommit\Exception
+{
+
+}
diff --git a/LibHooks/lib/PreCommit/Issue/GitHubAdapter.php b/LibHooks/lib/PreCommit/Issue/GitHubAdapter.php
new file mode 100644
index 0000000..e801189
--- /dev/null
+++ b/LibHooks/lib/PreCommit/Issue/GitHubAdapter.php
@@ -0,0 +1,306 @@
+<?php
+namespace PreCommit\Issue;
+
+use Github\Client as Api;
+use Zend\Cache\Storage\Adapter\Filesystem as CacheAdapter;
+
+/**
+ * Class GitHubAdapter
+ *
+ * @package PreCommit\Issue
+ */
+class GitHubAdapter extends AdapterAbstract implements AdapterInterface
+{
+    /**
+     * Cache schema version
+     */
+    const CACHE_SCHEMA_VERSION = 0;
+
+    /**
+     * Exception code when issue not found
+     */
+    const EXCEPTION_CODE_ISSUE_NOT_FOUND = 404;
+
+    /**
+     * Issue data
+     *
+     * @var array
+     */
+    protected $_issue;
+
+    /**
+     * Issue key
+     *
+     * @var string
+     */
+    protected $_issueKey;
+
+    /**
+     * Allowed labels which can be used to determine issue type
+     *
+     * @var array
+     */
+    protected $_labelTypes = array(
+        'bug', 'enhancement'
+    );
+
+    /**
+     * Default issue type (label)
+     *
+     * @var array
+     */
+    protected $_defaultLabelType = 'enhancement';
+
+    /**
+     * GitHub API client
+     *
+     * @var Api
+     */
+    protected $_api;
+
+    /**
+     * Set issue key
+     *
+     * @param string $issueKey
+     */
+    public function __construct($issueKey)
+    {
+        parent::__construct($issueKey);
+        $this->_issueKey = (string)$issueKey;
+    }
+
+    /**
+     * Get issue
+     *
+     * @return array
+     * @throws \PreCommit\Issue\Exception
+     */
+    protected function _getIssue()
+    {
+        if (null === $this->_issue) {
+            $this->_issue = $this->_getCachedResult(
+                $this->_getCacheKey()
+            );
+            if (!$this->_issue) {
+                $this->_issue = $this->_loadIssueData();
+                if (!$this->_issue) {
+                    throw new Exception(
+                        "Issue not {$this->_issueKey} found.",
+                        self::EXCEPTION_CODE_ISSUE_NOT_FOUND
+                    );
+                }
+                $this->_cacheResult(
+                    $this->_getCacheKey(), $this->_issue
+                );
+            }
+        }
+        return $this->_issue;
+    }
+
+    /**
+     * Get issue number
+     *
+     * @return int
+     */
+    protected function _getIssueNumber()
+    {
+        return (int)ltrim($this->_issueKey, '#');
+    }
+
+    //region Caching methods
+    /**
+     * Get cache key
+     *
+     * @return string
+     */
+    protected function _getCacheKey()
+    {
+        return $this->_getVendorName() . '-' . $this->_getRepositoryName()
+               . '-' . $this->_getIssueNumber();
+    }
+
+    /**
+     * Write summary to cache file
+     *
+     * @param string $key
+     * @param array  $result
+     * @return $this
+     */
+    protected function _cacheResult($key, $result)
+    {
+        if ($result) {
+            $this->_getCache()->setItem($key, serialize($result));
+        } else {
+            $this->_getCache()->removeItem($key);
+        }
+        return $this;
+    }
+
+    /**
+     * Get cache summary string
+     *
+     * @param string $key
+     * @return string|bool
+     */
+    protected function _getCachedResult($key)
+    {
+        $data = $this->_getCache()->getItem($key);
+        return $data ? unserialize($data) : null;
+    }
+
+    /**
+     * Get cache directory
+     *
+     * @return string
+     */
+    protected function _getCacheDir()
+    {
+        return $this->_getConfig()->getCacheDir(COMMIT_HOOKS_ROOT);
+    }
+
+    /**
+     * Get cache adapter
+     *
+     * @return \Zend\Cache\Storage\Adapter\Filesystem
+     */
+    protected function _getCache()
+    {
+        return new CacheAdapter(
+            array(
+                'cache_dir' => $this->_getCacheDir(),
+                'ttl'       => 7200,
+                'namespace' => 'issue-github-' . self::CACHE_SCHEMA_VERSION
+            )
+        );
+    }
+    //endregion
+
+    //region Interface methods
+    /**
+     * Get issue summary
+     *
+     * @return string
+     */
+    public function getSummary()
+    {
+        $issue = $this->_getIssue();
+        return $issue['title'];
+    }
+
+    /**
+     * Get issue key
+     *
+     * @return string
+     */
+    public function getKey()
+    {
+        $issue = $this->_getIssue();
+        return $issue['number'];
+    }
+
+    /**
+     * Get issue type
+     *
+     * @return string
+     */
+    public function getOriginalType()
+    {
+        $issue = $this->_getIssue();
+        if (!empty($issue['labels'])) {
+            foreach ($issue['labels'] as $label) {
+                if (in_array($label['name'], $this->_labelTypes)) {
+                    return $label['name'];
+                }
+            }
+        }
+        return $this->_defaultLabelType;
+    }
+
+    /**
+     * Get status name
+     *
+     * @return string
+     */
+    public function getStatus()
+    {
+        $issue = $this->_getIssue();
+        return $this->_normalizeName($issue['state']);
+    }
+
+    /**
+     * Cache issue
+     *
+     * @return $this
+     */
+    public function ignoreIssue()
+    {
+        $this->_cacheResult($this->_getCacheKey(), array());
+        return $this;
+    }
+    //endregion
+
+    //region API methods
+    /**
+     * Load issue by API
+     *
+     * @return array
+     * @throws Exception
+     */
+    protected function _loadIssueData()
+    {
+        if (!$this->_canRequest()) {
+            throw new Exception('Connection params not fully set.');
+        }
+        return $this->_getApi()->issue()->show(
+            $this->_getVendorName(),
+            $this->_getRepositoryName(),
+            $this->_getIssueNumber()
+        );
+    }
+
+    /**
+     * Get GitHub API
+     *
+     * @return Api
+     */
+    protected function _getApi()
+    {
+        if ($this->_api === null) {
+            $this->_api = new Api();
+            $this->_api->authenticate('andkirby', 'gigaleon33');
+        }
+        return $this->_api;
+    }
+
+    /**
+     * Check if can make a request
+     *
+     * @return bool
+     */
+    protected function _canRequest()
+    {
+        return $this->_getVendorName()
+               && $this->_getRepositoryName();
+    }
+    //endregion
+
+    /**
+     * Get vendor name
+     *
+     * @return string
+     */
+    protected function _getVendorName()
+    {
+        return $this->_getConfig()->getNode('tracker/github/name');
+    }
+
+    /**
+     * Get repository name
+     *
+     * @return string
+     */
+    protected function _getRepositoryName()
+    {
+        return $this->_getConfig()->getNode('tracker/github/repository');
+    }
+}
diff --git a/commithook.xml b/commithook.xml
index 956a1fe..7c6ac66 100644
--- a/commithook.xml
+++ b/commithook.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0"?>
+<!-- This is a local configuration file. It is not used in external projects.-->
 <config>
     <!--Validators setup-->
     <validators>
@@ -12,4 +13,12 @@
             </filter>
         </FileFilter>
     </validators>
+
+    <tracker>
+        <type>github</type>
+        <github>
+            <name>andkirby</name>
+            <repository>commithook</repository>
+        </github>
+    </tracker>
 </config>
diff --git a/composer.json b/composer.json
index 760ed24..8edd161 100644
--- a/composer.json
+++ b/composer.json
@@ -14,7 +14,8 @@
     "php": ">=5.3.2",
     "symfony/console": "~2.5@stable",
     "chobie/jira-api-restclient": "2.0.x-dev",
-    "zendframework/zend-cache": "~2.5@stable"
+    "zendframework/zend-cache": "~2.5@stable",
+    "knplabs/github-api": "~1.4"
   },
   "require-dev": {
     "phpunit/phpunit": "~4.0@stable"
diff --git a/composer.lock b/composer.lock
index 4743e56..a1a0fe6 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "b75ff0d9c0e3ee10c2b819f5b1bd1c5e",
-    "content-hash": "0b4e45c349aa45a39fa7fd0e28f8f011",
+    "hash": "8d3bd92604c97f1f1b457a422f4a0d22",
+    "content-hash": "cf39bf9089ff15a2ad62895da8bb361c",
     "packages": [
         {
             "name": "chobie/jira-api-restclient",
@@ -57,28 +57,184 @@
             ],
             "time": "2014-07-27 11:55:20"
         },
+        {
+            "name": "guzzle/guzzle",
+            "version": "v3.9.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/guzzle/guzzle3.git",
+                "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
+                "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
+                "shasum": ""
+            },
+            "require": {
+                "ext-curl": "*",
+                "php": ">=5.3.3",
+                "symfony/event-dispatcher": "~2.1"
+            },
+            "replace": {
+                "guzzle/batch": "self.version",
+                "guzzle/cache": "self.version",
+                "guzzle/common": "self.version",
+                "guzzle/http": "self.version",
+                "guzzle/inflection": "self.version",
+                "guzzle/iterator": "self.version",
+                "guzzle/log": "self.version",
+                "guzzle/parser": "self.version",
+                "guzzle/plugin": "self.version",
+                "guzzle/plugin-async": "self.version",
+                "guzzle/plugin-backoff": "self.version",
+                "guzzle/plugin-cache": "self.version",
+                "guzzle/plugin-cookie": "self.version",
+                "guzzle/plugin-curlauth": "self.version",
+                "guzzle/plugin-error-response": "self.version",
+                "guzzle/plugin-history": "self.version",
+                "guzzle/plugin-log": "self.version",
+                "guzzle/plugin-md5": "self.version",
+                "guzzle/plugin-mock": "self.version",
+                "guzzle/plugin-oauth": "self.version",
+                "guzzle/service": "self.version",
+                "guzzle/stream": "self.version"
+            },
+            "require-dev": {
+                "doctrine/cache": "~1.3",
+                "monolog/monolog": "~1.0",
+                "phpunit/phpunit": "3.7.*",
+                "psr/log": "~1.0",
+                "symfony/class-loader": "~2.1",
+                "zendframework/zend-cache": "2.*,<2.3",
+                "zendframework/zend-log": "2.*,<2.3"
+            },
+            "suggest": {
+                "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.9-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Guzzle": "src/",
+                    "Guzzle\\Tests": "tests/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                },
+                {
+                    "name": "Guzzle Community",
+                    "homepage": "https://github.com/guzzle/guzzle/contributors"
+                }
+            ],
+            "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle",
+            "homepage": "http://guzzlephp.org/",
+            "keywords": [
+                "client",
+                "curl",
+                "framework",
+                "http",
+                "http client",
+                "rest",
+                "web service"
+            ],
+            "time": "2015-03-18 18:23:50"
+        },
+        {
+            "name": "knplabs/github-api",
+            "version": "1.5.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/KnpLabs/php-github-api.git",
+                "reference": "832b7be695ed2733741cd5c79166b4a88fb50786"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/KnpLabs/php-github-api/zipball/832b7be695ed2733741cd5c79166b4a88fb50786",
+                "reference": "832b7be695ed2733741cd5c79166b4a88fb50786",
+                "shasum": ""
+            },
+            "require": {
+                "ext-curl": "*",
+                "guzzle/guzzle": "~3.7",
+                "php": ">=5.3.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0"
+            },
+            "suggest": {
+                "knplabs/gaufrette": "Needed for optional Gaufrette cache"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.4.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Github\\": "lib/Github/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Thibault Duplessis",
+                    "email": "thibault.duplessis@gmail.com",
+                    "homepage": "http://ornicar.github.com"
+                },
+                {
+                    "name": "KnpLabs Team",
+                    "homepage": "http://knplabs.com"
+                }
+            ],
+            "description": "GitHub API v3 client",
+            "homepage": "https://github.com/KnpLabs/php-github-api",
+            "keywords": [
+                "api",
+                "gh",
+                "gist",
+                "github"
+            ],
+            "time": "2015-10-11 02:38:28"
+        },
         {
             "name": "symfony/console",
-            "version": "v2.7.5",
+            "version": "v2.8.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git",
-                "reference": "06cb17c013a82f94a3d840682b49425cd00a2161"
+                "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/06cb17c013a82f94a3d840682b49425cd00a2161",
-                "reference": "06cb17c013a82f94a3d840682b49425cd00a2161",
+                "url": "https://api.github.com/repos/symfony/console/zipball/d232bfc100dfd32b18ccbcab4bcc8f28697b7e41",
+                "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.9"
+                "php": ">=5.3.9",
+                "symfony/polyfill-mbstring": "~1.0"
             },
             "require-dev": {
                 "psr/log": "~1.0",
-                "symfony/event-dispatcher": "~2.1",
-                "symfony/phpunit-bridge": "~2.7",
-                "symfony/process": "~2.1"
+                "symfony/event-dispatcher": "~2.1|~3.0.0",
+                "symfony/process": "~2.1|~3.0.0"
             },
             "suggest": {
                 "psr/log": "For using the console logger",
@@ -88,13 +244,16 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.7-dev"
+                    "dev-master": "2.8-dev"
                 }
             },
             "autoload": {
                 "psr-4": {
                     "Symfony\\Component\\Console\\": ""
-                }
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
@@ -112,7 +271,123 @@
             ],
             "description": "Symfony Console Component",
             "homepage": "https://symfony.com",
-            "time": "2015-09-25 08:32:23"
+            "time": "2015-11-30 12:35:10"
+        },
+        {
+            "name": "symfony/event-dispatcher",
+            "version": "v2.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/event-dispatcher.git",
+                "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5eb815363c0388e83247e7e9853e5dbc14999cc",
+                "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.9"
+            },
+            "require-dev": {
+                "psr/log": "~1.0",
+                "symfony/config": "~2.0,>=2.0.5|~3.0.0",
+                "symfony/dependency-injection": "~2.6|~3.0.0",
+                "symfony/expression-language": "~2.6|~3.0.0",
+                "symfony/stopwatch": "~2.3|~3.0.0"
+            },
+            "suggest": {
+                "symfony/dependency-injection": "",
+                "symfony/http-kernel": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\EventDispatcher\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony EventDispatcher Component",
+            "homepage": "https://symfony.com",
+            "time": "2015-10-30 20:15:42"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "0b6a8940385311a24e060ec1fe35680e17c74497"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0b6a8940385311a24e060ec1fe35680e17c74497",
+                "reference": "0b6a8940385311a24e060ec1fe35680e17c74497",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "time": "2015-11-04 20:28:58"
         },
         {
             "name": "zendframework/zend-cache",
@@ -890,16 +1165,16 @@
         },
         {
             "name": "phpunit/phpunit",
-            "version": "4.8.12",
+            "version": "4.8.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "00194eb95989190a73198390ceca081ad3441a7f"
+                "reference": "b2caaf8947aba5e002d42126723e9d69795f32b4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/00194eb95989190a73198390ceca081ad3441a7f",
-                "reference": "00194eb95989190a73198390ceca081ad3441a7f",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b2caaf8947aba5e002d42126723e9d69795f32b4",
+                "reference": "b2caaf8947aba5e002d42126723e9d69795f32b4",
                 "shasum": ""
             },
             "require": {
@@ -958,7 +1233,7 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2015-10-12 03:36:47"
+            "time": "2015-11-30 08:18:59"
         },
         {
             "name": "phpunit/phpunit-mock-objects",
@@ -1389,34 +1664,34 @@
         },
         {
             "name": "symfony/yaml",
-            "version": "v2.7.5",
+            "version": "v2.8.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/yaml.git",
-                "reference": "31cb2ad0155c95b88ee55fe12bc7ff92232c1770"
+                "reference": "f79824187de95064a2f5038904c4d7f0227fedb5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/yaml/zipball/31cb2ad0155c95b88ee55fe12bc7ff92232c1770",
-                "reference": "31cb2ad0155c95b88ee55fe12bc7ff92232c1770",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/f79824187de95064a2f5038904c4d7f0227fedb5",
+                "reference": "f79824187de95064a2f5038904c4d7f0227fedb5",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.9"
             },
-            "require-dev": {
-                "symfony/phpunit-bridge": "~2.7"
-            },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.7-dev"
+                    "dev-master": "2.8-dev"
                 }
             },
             "autoload": {
                 "psr-4": {
                     "Symfony\\Component\\Yaml\\": ""
-                }
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
@@ -1434,44 +1709,7 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "https://symfony.com",
-            "time": "2015-09-14 14:14:09"
-        },
-        {
-            "name": "zf1/zend-exception",
-            "version": "1.12.11",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/zf1/zend-exception.git",
-                "reference": "ca30959d3e2f522f481a3d1459386acf1aa4ca74"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/zf1/zend-exception/zipball/ca30959d3e2f522f481a3d1459386acf1aa4ca74",
-                "reference": "ca30959d3e2f522f481a3d1459386acf1aa4ca74",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.2.11"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-0": {
-                    "Zend_Exception": "library/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "description": "Zend Framework 1 Exception package",
-            "homepage": "http://framework.zend.com/",
-            "keywords": [
-                "ZF1",
-                "exception",
-                "framework",
-                "zend"
-            ],
-            "time": "2015-04-30 11:10:20"
+            "time": "2015-11-30 12:35:10"
         }
     ],
     "aliases": [],