{"action":"created","comment":{"url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/comments/64152505","id":64152505,"diff_hunk":"@@ -0,0 +1,80 @@\n+<?php\n+\n+namespace Lexik\\Bundle\\JWTAuthenticationBundle\\Encoder;\n+\n+use InvalidArgumentException;\n+use Lexik\\Bundle\\JWTAuthenticationBundle\\Services\\JWSProviderInterface;\n+use Lexik\\Bundle\\JWTAuthenticationBundle\\Exception\\JWTDecodeFailure\\ExpiredJWTDecodeFailureException;\n+use Lexik\\Bundle\\JWTAuthenticationBundle\\Exception\\JWTEncodeFailure\\JWTEncodeFailureException;\n+use Lexik\\Bundle\\JWTAuthenticationBundle\\Exception\\JWTDecodeFailure\\JWTDecodeFailureException;\n+use Lexik\\Bundle\\JWTAuthenticationBundle\\Exception\\JWTDecodeFailure\\UnverifiedJWTDecodeFailureException;\n+use Lexik\\Bundle\\JWTAuthenticationBundle\\Exception\\JWTEncodeFailure\\UnsignedJWTEncodeFailureException;\n+\n+/**\n+ * Default Json Web Token encoder/decoder.\n+ *\n+ * @since 2.0\n+ *\n+ * @author Robin Chalas <robin.chalas@gmail.com>\n+ */\n+class DefaultEncoder extends JWTEncoder\n+{\n+    /**\n+     * @var JWSProviderInterface\n+     */\n+    protected $jwsProvider;\n+\n+    /**\n+     * @param JWSProviderInterface $jwsProvider\n+     */\n+    public function __construct(JWSProviderInterface $jwsProvider)\n+    {\n+        $this->jwsProvider = $jwsProvider;\n+    }\n+\n+    /**\n+     * {@inheritdoc}\n+     *\n+     * @throws UnsignedJWTEncodeFailureException\n+     */\n+    public function encode(array $data)\n+    {\n+        try {\n+            $this->jwsProvider->createSignedToken($data);\n+        } catch (InvalidArgumentException $e) {\n+            throw new JWTEncodeFailureException('An error occurred while trying to encode the JWT token.', $e);\n+        }\n+\n+        if (JWSProviderInterface::SIGNED !== $this->jwsProvider->getStatus()) {\n+            throw new UnsignedJWTEncodeFailureException();\n+        }\n+\n+        return $this->jwsProvider->getToken();\n+    }\n+\n+    /**\n+     * {@inheritdoc}\n+     *\n+     * @throws JWTDecodeFailureException           If the signature cannot be loaded\n+     * @throws UnverifiedJWTDecodeFailureException If the signature cannot be verified\n+     * @throws ExpiredJWTDecodeFailureException    If the token is expired","path":"Encoder/DefaultEncoder.php","position":60,"original_position":60,"commit_id":"e4eaf7d4c09a69f6bc6f144a0621ed501c61928f","original_commit_id":"e4eaf7d4c09a69f6bc6f144a0621ed501c61928f","user":{"login":"weaverryan","id":121003,"avatar_url":"https://avatars.githubusercontent.com/u/121003?v=3","gravatar_id":"","url":"https://api.github.com/users/weaverryan","html_url":"https://github.com/weaverryan","followers_url":"https://api.github.com/users/weaverryan/followers","following_url":"https://api.github.com/users/weaverryan/following{/other_user}","gists_url":"https://api.github.com/users/weaverryan/gists{/gist_id}","starred_url":"https://api.github.com/users/weaverryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weaverryan/subscriptions","organizations_url":"https://api.github.com/users/weaverryan/orgs","repos_url":"https://api.github.com/users/weaverryan/repos","events_url":"https://api.github.com/users/weaverryan/events{/privacy}","received_events_url":"https://api.github.com/users/weaverryan/received_events","type":"User","site_admin":false},"body":"All of the details about the exceptions should be moved to the interface. This is one of the \"BC\" breaks we need to add to an UPGRADE file. Specifically, both `encode()` and `decode()` previously did *not* throw exceptions on failures, but now they do. We \"changed\" how the interface behaves :) (it's a good change!). But if you're upgrading, you'll need to know about this. For example, in my KnpU tutorial, we are checking to see if the result of decode is `false` - now we'll need to catch the exceptions.","created_at":"2016-05-22T16:34:26Z","updated_at":"2016-05-22T16:34:26Z","html_url":"https://github.com/lexik/LexikJWTAuthenticationBundle/pull/162#discussion_r64152505","pull_request_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162","_links":{"self":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/comments/64152505"},"html":{"href":"https://github.com/lexik/LexikJWTAuthenticationBundle/pull/162#discussion_r64152505"},"pull_request":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162"}}},"pull_request":{"url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162","id":66495878,"html_url":"https://github.com/lexik/LexikJWTAuthenticationBundle/pull/162","diff_url":"https://github.com/lexik/LexikJWTAuthenticationBundle/pull/162.diff","patch_url":"https://github.com/lexik/LexikJWTAuthenticationBundle/pull/162.patch","issue_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/issues/162","number":162,"state":"open","locked":false,"title":"[Encoder] Handle OpenSSL/phpseclib engines and algorithms","user":{"login":"chalasr","id":7502063,"avatar_url":"https://avatars.githubusercontent.com/u/7502063?v=3","gravatar_id":"","url":"https://api.github.com/users/chalasr","html_url":"https://github.com/chalasr","followers_url":"https://api.github.com/users/chalasr/followers","following_url":"https://api.github.com/users/chalasr/following{/other_user}","gists_url":"https://api.github.com/users/chalasr/gists{/gist_id}","starred_url":"https://api.github.com/users/chalasr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chalasr/subscriptions","organizations_url":"https://api.github.com/users/chalasr/orgs","repos_url":"https://api.github.com/users/chalasr/repos","events_url":"https://api.github.com/users/chalasr/events{/privacy}","received_events_url":"https://api.github.com/users/chalasr/received_events","type":"User","site_admin":false},"body":"| Q             | A    |\r\n|---------------|------|\r\n| Bug fix?      | no  |\r\n| New feature?  | yes |\r\n| BC breaks?    | yes  |\r\n| Deprecations | yes |\r\n| Fixed tickets | n/a |\r\n| Tests pass?   | yes  |\r\n\r\nAfter discussed in #132, I open this PR representing one of the first new features of the `v2.0`.\r\n\r\n@slashfan I need your opinion about:\r\n- Structure and naming,\r\nI used `\\Encoder\\NamshiJOSE` to avoid possible conflicts between two bridges named `JOSE`, maybe you have a better name?\r\nSame for the class names, maybe prefixing encoders by `JWT` would make more sense?\r\n\r\n- Tests,\r\nIf you have any idea or suggestion about how write tests for the new encoders and BTW improve the existing (encoding), the current tests should not pass with the large feature added, I'll try to improve them (for the ones concerning encoders).\r\n\r\n- Documentation,\r\nI think that all can be done in the [configuration reference](https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Resources/doc/1-configuration-reference.md). Do you see any other part that need to be updated?\r\nDo we need to give a way to generate keys for phpseclib in addition of the openssl keys generation process? (I have a local work in progress containing a `GenerateKeysCommand` and the`OpenSSLKeyGenerator`+`SecLibKeyGenerator` services, I'd have your opinion about providing this feature)\r\nI think to add something about the key loaders, but not sure about if it shouldn't stay internal.\r\n\r\nWaiting for your suggestions.\r\nAlso I'll be glad to have the opinion of any developer interested by this changes.\r\n\r\nSteps:\r\n\r\n- [x] Ability to choose the encoder's encryption algorithm used by the encoder\r\n- [x] Ability to choose the encoder's encryption engine between phpseclib and openssl (default)\r\n- [x] Create a JWSProvider that manages Namshi\\JOSE\\JWS instances\r\n- [x] Create a new DefaultEncoder that takes the JWSProvider service as argument\r\n- [x] Create two base JWT[Decode/Encode]FailureException classes and their children\r\n- [x] Throw the good exception depending on the fail's reason during `DefaultEncoder::[encode/decode]()`\r\n- [x] Handle exceptions properly from the JWTProvider\r\n- [x] Update the existing tests / add new ones (unit & functional)\r\n- [x] Update the documentation\r\n- [x] Rebase after merged #164  & update changelog\r\n\r\nThe v2 is coming!","created_at":"2016-04-14T14:41:00Z","updated_at":"2016-05-22T16:34:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ca91e368db67b6a5e5ee2d8f040bdc9652b66229","assignee":null,"milestone":{"url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/milestones/1","html_url":"https://github.com/lexik/LexikJWTAuthenticationBundle/milestones/2.0","labels_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/milestones/1/labels","id":1766118,"number":1,"title":"2.0","description":null,"creator":{"login":"chalasr","id":7502063,"avatar_url":"https://avatars.githubusercontent.com/u/7502063?v=3","gravatar_id":"","url":"https://api.github.com/users/chalasr","html_url":"https://github.com/chalasr","followers_url":"https://api.github.com/users/chalasr/followers","following_url":"https://api.github.com/users/chalasr/following{/other_user}","gists_url":"https://api.github.com/users/chalasr/gists{/gist_id}","starred_url":"https://api.github.com/users/chalasr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chalasr/subscriptions","organizations_url":"https://api.github.com/users/chalasr/orgs","repos_url":"https://api.github.com/users/chalasr/repos","events_url":"https://api.github.com/users/chalasr/events{/privacy}","received_events_url":"https://api.github.com/users/chalasr/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":6,"state":"open","created_at":"2016-05-14T12:57:30Z","updated_at":"2016-05-19T19:17:25Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162/commits","review_comments_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162/comments","review_comment_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/issues/162/comments","statuses_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/statuses/e4eaf7d4c09a69f6bc6f144a0621ed501c61928f","head":{"label":"chalasr:feature_seclib_openssl_algos","ref":"feature_seclib_openssl_algos","sha":"e4eaf7d4c09a69f6bc6f144a0621ed501c61928f","user":{"login":"chalasr","id":7502063,"avatar_url":"https://avatars.githubusercontent.com/u/7502063?v=3","gravatar_id":"","url":"https://api.github.com/users/chalasr","html_url":"https://github.com/chalasr","followers_url":"https://api.github.com/users/chalasr/followers","following_url":"https://api.github.com/users/chalasr/following{/other_user}","gists_url":"https://api.github.com/users/chalasr/gists{/gist_id}","starred_url":"https://api.github.com/users/chalasr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chalasr/subscriptions","organizations_url":"https://api.github.com/users/chalasr/orgs","repos_url":"https://api.github.com/users/chalasr/repos","events_url":"https://api.github.com/users/chalasr/events{/privacy}","received_events_url":"https://api.github.com/users/chalasr/received_events","type":"User","site_admin":false},"repo":{"id":55186963,"name":"LexikJWTAuthenticationBundle","full_name":"chalasr/LexikJWTAuthenticationBundle","owner":{"login":"chalasr","id":7502063,"avatar_url":"https://avatars.githubusercontent.com/u/7502063?v=3","gravatar_id":"","url":"https://api.github.com/users/chalasr","html_url":"https://github.com/chalasr","followers_url":"https://api.github.com/users/chalasr/followers","following_url":"https://api.github.com/users/chalasr/following{/other_user}","gists_url":"https://api.github.com/users/chalasr/gists{/gist_id}","starred_url":"https://api.github.com/users/chalasr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chalasr/subscriptions","organizations_url":"https://api.github.com/users/chalasr/orgs","repos_url":"https://api.github.com/users/chalasr/repos","events_url":"https://api.github.com/users/chalasr/events{/privacy}","received_events_url":"https://api.github.com/users/chalasr/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chalasr/LexikJWTAuthenticationBundle","description":"This bundle provides JWT authentication for your Symfony2 REST API","fork":true,"url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle","forks_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/forks","keys_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/teams","hooks_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/hooks","issue_events_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/issues/events{/number}","events_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/events","assignees_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/assignees{/user}","branches_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/branches{/branch}","tags_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/tags","blobs_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/languages","stargazers_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/stargazers","contributors_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/contributors","subscribers_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/subscribers","subscription_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/subscription","commits_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/issues/comments{/number}","contents_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/contents/{+path}","compare_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/merges","archive_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/downloads","issues_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/issues{/number}","pulls_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/labels{/name}","releases_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/releases{/id}","deployments_url":"https://api.github.com/repos/chalasr/LexikJWTAuthenticationBundle/deployments","created_at":"2016-03-31T22:25:30Z","updated_at":"2016-03-31T22:25:31Z","pushed_at":"2016-05-22T10:55:56Z","git_url":"git://github.com/chalasr/LexikJWTAuthenticationBundle.git","ssh_url":"git@github.com:chalasr/LexikJWTAuthenticationBundle.git","clone_url":"https://github.com/chalasr/LexikJWTAuthenticationBundle.git","svn_url":"https://github.com/chalasr/LexikJWTAuthenticationBundle","homepage":"","size":437,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"lexik:2.0","ref":"2.0","sha":"f6f77221ad86768d001c8046f600478079580c6c","user":{"login":"lexik","id":568486,"avatar_url":"https://avatars.githubusercontent.com/u/568486?v=3","gravatar_id":"","url":"https://api.github.com/users/lexik","html_url":"https://github.com/lexik","followers_url":"https://api.github.com/users/lexik/followers","following_url":"https://api.github.com/users/lexik/following{/other_user}","gists_url":"https://api.github.com/users/lexik/gists{/gist_id}","starred_url":"https://api.github.com/users/lexik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexik/subscriptions","organizations_url":"https://api.github.com/users/lexik/orgs","repos_url":"https://api.github.com/users/lexik/repos","events_url":"https://api.github.com/users/lexik/events{/privacy}","received_events_url":"https://api.github.com/users/lexik/received_events","type":"Organization","site_admin":false},"repo":{"id":18628501,"name":"LexikJWTAuthenticationBundle","full_name":"lexik/LexikJWTAuthenticationBundle","owner":{"login":"lexik","id":568486,"avatar_url":"https://avatars.githubusercontent.com/u/568486?v=3","gravatar_id":"","url":"https://api.github.com/users/lexik","html_url":"https://github.com/lexik","followers_url":"https://api.github.com/users/lexik/followers","following_url":"https://api.github.com/users/lexik/following{/other_user}","gists_url":"https://api.github.com/users/lexik/gists{/gist_id}","starred_url":"https://api.github.com/users/lexik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexik/subscriptions","organizations_url":"https://api.github.com/users/lexik/orgs","repos_url":"https://api.github.com/users/lexik/repos","events_url":"https://api.github.com/users/lexik/events{/privacy}","received_events_url":"https://api.github.com/users/lexik/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lexik/LexikJWTAuthenticationBundle","description":"This bundle provides JWT authentication for your Symfony2 REST API","fork":false,"url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle","forks_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/forks","keys_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/teams","hooks_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/hooks","issue_events_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/issues/events{/number}","events_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/events","assignees_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/assignees{/user}","branches_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/branches{/branch}","tags_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/tags","blobs_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/languages","stargazers_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/stargazers","contributors_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/contributors","subscribers_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/subscribers","subscription_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/subscription","commits_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/issues/comments{/number}","contents_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/contents/{+path}","compare_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/merges","archive_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/downloads","issues_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/issues{/number}","pulls_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/labels{/name}","releases_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/releases{/id}","deployments_url":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/deployments","created_at":"2014-04-10T07:57:27Z","updated_at":"2016-05-18T17:34:03Z","pushed_at":"2016-05-22T11:10:01Z","git_url":"git://github.com/lexik/LexikJWTAuthenticationBundle.git","ssh_url":"git@github.com:lexik/LexikJWTAuthenticationBundle.git","clone_url":"https://github.com/lexik/LexikJWTAuthenticationBundle.git","svn_url":"https://github.com/lexik/LexikJWTAuthenticationBundle","homepage":"","size":461,"stargazers_count":428,"watchers_count":428,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":87,"mirror_url":null,"open_issues_count":3,"forks":87,"open_issues":3,"watchers":428,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162"},"html":{"href":"https://github.com/lexik/LexikJWTAuthenticationBundle/pull/162"},"issue":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/issues/162"},"comments":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/issues/162/comments"},"review_comments":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162/comments"},"review_comment":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/pulls/162/commits"},"statuses":{"href":"https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/statuses/e4eaf7d4c09a69f6bc6f144a0621ed501c61928f"}}}}
{"actor":{"display_login":"weaverryan"}}