payload: {"action":"created","comment":{"url":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments/282954140","pull_request_review_id":236198720,"id":282954140,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI4Mjk1NDE0MA==","diff_hunk":"@@ -0,0 +1,649 @@\n+[role=\"xpack\"]\n+[[oidc-guide]]\n+\n+== Configuring Single Sign On to the {stack} using OpenID Connect\n+\n+The Elastic Stack supports Single Sign On using OpenID Connect via {kib} using\n+{es} as the backend service that holds most of the functionality. {kib} and {es}\n+together represent an OpenID Connect Relying Party (RP) that supports the Authorization\n+Code Flow and the Implicit Flow as these are defined in the OpenID Connect specification.\n+\n+This guide assumes that you have an OpenID Connect Provider that you use and where the\n+Elastic Stack Relying Party will be registered.\n+\n+NOTE: The OpenID Connect realm support in {kib} is designed with the expectation that it\n+will be the primary authentication method for the users of that {kib} instance. The\n+<<oidc-kibana>> section describes what this entails and how you can set it up to support\n+other realms if necessary.\n+\n+[[oidc-guide-op]]\n+=== The OpenID Connect Provider\n+\n+The OpenID Connect Provider (OP) is the entity in OpenID Connect that is responsible for\n+authenticating the user and for granting the necessary tokens with the authentication and\n+user information to be consumed by the Relying Parties.\n+\n+In order for the Elastic Stack to be able use your OpenID Connect Provider for authentication,\n+a trust relationship needs to be established between the OP and the RP. In the OpenID Connect\n+Provider, this means registering the RP as a client. OpenID Connect defines a dynamic client\n+registration protocol but this is usually geared towards real-time client registration and\n+not the trust establishment process for cross security domain single sign on. All OPs will\n+also allow for the manual registration of an RP as a client, via a user interface or (less often)\n+via the consumption of a metadata document.\n+\n+The process for registering the Elastic Stack RP will be different from OP to OP and following\n+the provider's relevant documentation is prudent. The most usual piece of information for the\n+RP that you need to provide for registration are the following:\n+\n+- `Relying Party Name`: An arbitrary identifier for the relying party. Neither the specification\n+nor the Elastic Stack implementation impose any constraints on this value.\n+- `Redirect URI`: This is the URI where the OP will redirect the user's browser after authentication. The\n+appropriate value for this will depend on your setup and whether or not {kib} sits behind a proxy or\n+load balancer, but it will typically be +$\\{kibana-url}/api/security/v1/oidc+ where _$\\{kibana-url}_\n+is the base URL for your {kib} instance. You might also see this called `Callback URI`.\n+\n+At the end of the registration process, the OP will assign aClient Identifier and a Client Secret for the RP ({stack}) to use.\n+Note these two values as they will be used in the {es} configuration.\n+\n+[[oidc-guide-authentication]]\n+=== Configure {es} for OpenID Connect authentication\n+\n+The following is a summary of the configuration steps required in order to enable authentication\n+using OpenID Connect in {es}\n+\n+. <<oidc-enable-http,Enable SSL/TLS for HTTP>>\n+. <<oidc-enable-token,Enable the Token Service>>\n+. <<oidc-create-realm,Create one or more OpenID Connect realms>>\n+. <<oidc-role-mapping,Configure role mappings>>\n+\n+[[oidc-enable-http]]\n+==== Enable TLS for HTTP\n+\n+If your {es} cluster is operating in production mode, then you must\n+configure the HTTP interface to use SSL/TLS before you can enable OpenID Connect\n+authentication.\n+\n+For more information, see\n+{ref}/configuring-tls.html#tls-http[Encrypting HTTP Client Communications].\n+\n+[[oidc-enable-token]]\n+==== Enable the token service\n+\n+The {es} OpenID Connect implementation makes use of the {es} Token Service.  This service\n+is automatically enabled if you configure TLS on the HTTP interface, and can be\n+explicitly configured by including the following in your `elasticsearch.yml` file:\n+\n+[source, yaml]\n+------------------------------------------------------------\n+xpack.security.authc.token.enabled: true\n+------------------------------------------------------------\n+\n+[[oidc-create-realm]]\n+==== Create an OpenID Connect realm\n+\n+OpenID Connect based authentication is enabled by configuring the appropriate realm within\n+the authentication chain for {es}\n+\n+This realm has a few mandatory settings, and a number of optional settings.\n+The available settings are described in detail in the\n+{ref}/security-settings.html#ref-oidc-settings[Security settings in {es}], this\n+guide will explore the most common settings.\n+\n+Create an OpenID Connect (the realm type is `oidc`) realm in your `elasticsearch.yml` file\n+similar to what is shown below:\n+\n+NOTE: The values used below are meant to be an example and are not intended to apply to\n+every use case. The details below the configuration snippet provide insights and suggestions\n+to help you pick the proper values, depending on your OP configuration.\n+\n+[source, yaml]\n+-------------------------------------------------------------------------------------\n+xpack.security.authc.realms.oidc.oidc1:\n+  order: 2\n+  rp.client_id: \"the_client_id\"\n+  rp.response_type: code\n+  rp.redirect_uri: \"https://kibana.example.org:5601/api/security/v1/oidc\"\n+  op.authorization_endpoint: \"https://op.example.org/oauth2/v1/authorize\"\n+  op.token_endpoint: \"https://op.example.org/oauth2/v1/token\"\n+  op.userinfo_endpoint: \"https://op.example.org/oauth2/v1/userinfo\"\n+  op.endsession_endpoint: \"https://op.example.org/oauth2/v1/logout\"\n+  op.issuer: \"https://op.example.org\"\n+  op.jwkset_path: oidc/jwkset.json\n+  claims.principal: sub\n+  claims.groups: \"http://example.info/claims/groups\"\n+-------------------------------------------------------------------------------------\n+\n+The configuration values used in the example above are:\n+\n+xpack.security.authc.realms.oidc.oidc1::\n+    This defines a new `oidc` authentication realm named \"oidc1\".\n+    See <<realms>> for more explanation of realms.\n+\n+order::\n+    You should define a unique order on each realm in your authentication chain.\n+    It is recommended that the OpenID Connect realm be at the bottom of your authentication\n+    chain (that is, that it has the _highest_ order).\n+\n+rp.client_id::\n+    This, usually opaque, arbitrary string, is the Client Identifier that was assigned to the Elastic Stack RP by the OP upon\n+    registration.\n+\n+rp.response_type::\n+    This is an identifier that controls which OpenID Connect authentication flow this RP supports and also\n+    which flow this RP requests the OP should follow. Supported values are\n+    - `code`, which means that the RP wants to use the Authorization Code flow. If your OP supports the\n+       Authorization Code flow, you should select this in favor of the Implicit Flow.\n+    - `id_token token` which means that the RP wants to use the Implicit flow and we also request an oAuth2\n+       access token from the OP, that we can potentially use for follow up requests ( UserInfo ). This\n+       should be selected if the OP offers a UserInfo endpoint in its configuration, or if you know that\n+       the claims you will need to use for role mapping are not available in the ID Token.\n+    - `id_token` which means that the RP wants to use the Implicit flow, but is not interested in getting\n+       an oAuth2 token too. Select this if you are certain that all necessary claims will be contained in\n+       the ID Token or if the OP doesn't offer a User Info endpoint.\n+\n+rp.redirect_uri::\n+    The redirect URI where the OP will redirect the browser after authentication. This needs to be\n+    _exactly_ the same as the one <<oidc-guide-op, configured with the OP upon registration>> and will\n+    typically be +$\\{kibana-url}/api/security/v1/oidc+ where _$\\{kibana-url}_ is the base URL for your {kib} instance\n+\n+op.authorization_endpoint::\n+    The URL for the Authorization Endpoint in the OP. This is where the user's browser\n+    will be redirected to start the authentication process. The value for this setting should be provided by your\n+    OpenID Connect Provider.\n+\n+op.token_endpoint::\n+    The URL for the Token Endpoint in the OpenID Connect Provider. This is the endpoint where\n+    {es} will send a request to exchange the code for an ID Token, in the case where the Authorization Code\n+    flow is used. The value for this setting should be provided by your OpenID Connect Provider.\n+\n+op.userinfo_endpoint::\n+    (Optional) The URL for the UserInfo Endpoint in the OpenID Connect Provider. This is the endpoint of the OP that\n+    can be queried to get further user information, if required. The value for this setting should be provided by your\n+     OpenID Connect Provider.\n+\n+op.endsession_endpoint::\n+    (Optional) The URL to the End Session Endpoint in the OpenID Connect Provider. This is the endpoint where the user's\n+    browser will be redirected after local logout, if the realm is configured for RP initiated Single Logout and\n+    the OP supports it. The value for this setting should be provided by your OpenID Connect Provider.\n+\n+op.jwkset_path::\n+    The path to a file containing a JSON Web Key Set with the key material that the OpenID Connect\n+    Provider uses for signing tokens and claims responses. The path is resolved relative to the {es}\n+    config directory.\n+    {es} will automatically monitor this file for changes and will reload the configuration whenever\n+    it is updated. The value for this setting should be provided by your OpenID Connect Provider.\n+\n+claims.principal:: See <<oidc-claims-mapping>>.\n+claims.groups:: See <<oidc-claims-mapping>>.\n+\n+A final piece of configuration of the OpenID Connect realm is to set the `Client Secret` that was assigned\n+to the RP during registration in the OP. This is a secure setting and as such is not defined in the realm\n+configuration in `elasticsearch.yml` but added to the {ref}/secure-settings.html[elasticsearch keystore].\n+For instance\n+\n+\n+[source,sh]\n+----\n+bin/elasticsearch-keystore add xpack.security.authc.realms.oidc.oidc1.rp.client_secret\n+----\n+\n+\n+NOTE: According to the OpenID Connect specification, the OP should also make their configuration\n+available at a well known URL, which is the concatenation of their `Issuer` value with the\n+`.well-known/openid-configuration` string. For example: `https://op.org.com/.well-known/openid-configuration`\n+That document should contain all the necessary information to configure the OpenID Connect realm in {es}.\n+\n+\n+[[oidc-claims-mapping]]\n+==== Claims mapping\n+\n+===== Claims and scopes\n+\n+When authenticating to {kib} using OpenID Connect, the OP will provide information about the user\n+in the form of OpenID Connect Claims, that can be included either in the ID Token, or be retrieved from the\n+UserInfo endpoint of the OP. The claim is defined as a piece of information asserted by the OP\n+for the authenticated user. Simply put, a claim is a name/value pair that contains information about\n+the user. Related to claims, we also have the notion of OpenID Connect Scopes. Scopes are identifiers\n+that are used to request access to specific lists of claims. The standard defines a set of scope\n+identifiers that can be requested. The only mandatory one is `openid`, while commonly used ones are\n+`profile` ( requesting access to the `name`,`family_name`,`given_name`,`middle_name`,`nickname`,\n+`preferred_username`,`profile`,`picture`,`website`,`gender`,`birthdate`,`zoneinfo`,`locale`,`updated_at` claims),\n+and `email` (requesting access to the `email` and `email_verified` claims). The process is that\n+the RP requests specific scopes during the authentication request, and if the OP Privacy Policy\n+allows it and the authenticating user consents to it, the related claims are returned to the\n+RP, either in the ID Token, or as a UserInfo response.\n+\n+The list of the supported claims will vary depending on the OP you are using, but one should expect\n+the https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims[Standard Claims] to be\n+largely supported.\n+\n+[[oidc-claim-to-property]]\n+===== Mapping claims to user properties\n+\n+The goal of claims mapping is to configure {es} in such a way as to be able to map the values of\n+specified returned claims to one of the <<oidc-user-properties, user properties>> that are supported\n+by {es}. These user properties are then utilized to identify the user in the {kib} UI or the audit\n+logs, and can also be used to create <<oidc-role-mapping, role mapping>> rules.\n+\n+The recommended steps for configuring OpenID Claims mapping are as follows:\n+\n+. Consult your OP configuration to see what claims it might support. Note that\n+  the list provided in the OPs metadata, or in the configuration page of the OP","path":"x-pack/docs/en/security/authentication/oidc-guide.asciidoc","position":231,"original_position":231,"commit_id":"f92a01d77ef4aef369391a30aadba3f5c20bf0a5","original_commit_id":"f92a01d77ef4aef369391a30aadba3f5c20bf0a5","user":{"login":"lcawl","id":26471269,"node_id":"MDQ6VXNlcjI2NDcxMjY5","avatar_url":"https://avatars0.githubusercontent.com/u/26471269?v=4","gravatar_id":"","url":"https://api.github.com/users/lcawl","html_url":"https://github.com/lcawl","followers_url":"https://api.github.com/users/lcawl/followers","following_url":"https://api.github.com/users/lcawl/following{/other_user}","gists_url":"https://api.github.com/users/lcawl/gists{/gist_id}","starred_url":"https://api.github.com/users/lcawl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lcawl/subscriptions","organizations_url":"https://api.github.com/users/lcawl/orgs","repos_url":"https://api.github.com/users/lcawl/repos","events_url":"https://api.github.com/users/lcawl/events{/privacy}","received_events_url":"https://api.github.com/users/lcawl/received_events","type":"User","site_admin":false},"body":"```suggestion\r\n  the list provided in the OP's metadata or in the configuration page of the OP\r\n```","created_at":"2019-05-10T16:29:38Z","updated_at":"2019-05-10T16:29:38Z","html_url":"https://github.com/elastic/elasticsearch/pull/41423#discussion_r282954140","pull_request_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments/282954140"},"html":{"href":"https://github.com/elastic/elasticsearch/pull/41423#discussion_r282954140"},"pull_request":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423"}}},"pull_request":{"url":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423","id":272512193,"node_id":"MDExOlB1bGxSZXF1ZXN0MjcyNTEyMTkz","html_url":"https://github.com/elastic/elasticsearch/pull/41423","diff_url":"https://github.com/elastic/elasticsearch/pull/41423.diff","patch_url":"https://github.com/elastic/elasticsearch/pull/41423.patch","issue_url":"https://api.github.com/repos/elastic/elasticsearch/issues/41423","number":41423,"state":"open","locked":false,"title":"OpenID Connect realm guide","user":{"login":"jkakavas","id":10281256,"node_id":"MDQ6VXNlcjEwMjgxMjU2","avatar_url":"https://avatars2.githubusercontent.com/u/10281256?v=4","gravatar_id":"","url":"https://api.github.com/users/jkakavas","html_url":"https://github.com/jkakavas","followers_url":"https://api.github.com/users/jkakavas/followers","following_url":"https://api.github.com/users/jkakavas/following{/other_user}","gists_url":"https://api.github.com/users/jkakavas/gists{/gist_id}","starred_url":"https://api.github.com/users/jkakavas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkakavas/subscriptions","organizations_url":"https://api.github.com/users/jkakavas/orgs","repos_url":"https://api.github.com/users/jkakavas/repos","events_url":"https://api.github.com/users/jkakavas/events{/privacy}","received_events_url":"https://api.github.com/users/jkakavas/received_events","type":"User","site_admin":false},"body":"This commit adds a configuration guide for the newly introduced\r\nOpenID Connect realm. The guide is similar to the style of the\r\nSAML Guide and shares certain parts where applicable (role mapping)\r\nIt also contains a short section on how the realm can be used for\r\nauthenticating users without Kibana.","created_at":"2019-04-22T21:33:44Z","updated_at":"2019-05-10T16:29:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a4df94ed9ffd5dd9d045dd814eea77372d8e9146","assignee":null,"assignees":[],"requested_reviewers":[{"login":"tvernum","id":2244393,"node_id":"MDQ6VXNlcjIyNDQzOTM=","avatar_url":"https://avatars0.githubusercontent.com/u/2244393?v=4","gravatar_id":"","url":"https://api.github.com/users/tvernum","html_url":"https://github.com/tvernum","followers_url":"https://api.github.com/users/tvernum/followers","following_url":"https://api.github.com/users/tvernum/following{/other_user}","gists_url":"https://api.github.com/users/tvernum/gists{/gist_id}","starred_url":"https://api.github.com/users/tvernum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tvernum/subscriptions","organizations_url":"https://api.github.com/users/tvernum/orgs","repos_url":"https://api.github.com/users/tvernum/repos","events_url":"https://api.github.com/users/tvernum/events{/privacy}","received_events_url":"https://api.github.com/users/tvernum/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":912837951,"node_id":"MDU6TGFiZWw5MTI4Mzc5NTE=","url":"https://api.github.com/repos/elastic/elasticsearch/labels/:Security/Authentication","name":":Security/Authentication","color":"0e8a16","default":false},{"id":23715,"node_id":"MDU6TGFiZWwyMzcxNQ==","url":"https://api.github.com/repos/elastic/elasticsearch/labels/%3Edocs","name":">docs","color":"db755e","default":false},{"id":1222918656,"node_id":"MDU6TGFiZWwxMjIyOTE4NjU2","url":"https://api.github.com/repos/elastic/elasticsearch/labels/v7.2.0","name":"v7.2.0","color":"DDDDDD","default":false},{"id":1194435738,"node_id":"MDU6TGFiZWwxMTk0NDM1NzM4","url":"https://api.github.com/repos/elastic/elasticsearch/labels/v8.0.0","name":"v8.0.0","color":"dddddd","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423/commits","review_comments_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423/comments","review_comment_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments{/number}","comments_url":"https://api.github.com/repos/elastic/elasticsearch/issues/41423/comments","statuses_url":"https://api.github.com/repos/elastic/elasticsearch/statuses/f92a01d77ef4aef369391a30aadba3f5c20bf0a5","head":{"label":"jkakavas:oidc-guide-doc","ref":"oidc-guide-doc","sha":"f92a01d77ef4aef369391a30aadba3f5c20bf0a5","user":{"login":"jkakavas","id":10281256,"node_id":"MDQ6VXNlcjEwMjgxMjU2","avatar_url":"https://avatars2.githubusercontent.com/u/10281256?v=4","gravatar_id":"","url":"https://api.github.com/users/jkakavas","html_url":"https://github.com/jkakavas","followers_url":"https://api.github.com/users/jkakavas/followers","following_url":"https://api.github.com/users/jkakavas/following{/other_user}","gists_url":"https://api.github.com/users/jkakavas/gists{/gist_id}","starred_url":"https://api.github.com/users/jkakavas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkakavas/subscriptions","organizations_url":"https://api.github.com/users/jkakavas/orgs","repos_url":"https://api.github.com/users/jkakavas/repos","events_url":"https://api.github.com/users/jkakavas/events{/privacy}","received_events_url":"https://api.github.com/users/jkakavas/received_events","type":"User","site_admin":false},"repo":{"id":120006775,"node_id":"MDEwOlJlcG9zaXRvcnkxMjAwMDY3NzU=","name":"elasticsearch","full_name":"jkakavas/elasticsearch","private":false,"owner":{"login":"jkakavas","id":10281256,"node_id":"MDQ6VXNlcjEwMjgxMjU2","avatar_url":"https://avatars2.githubusercontent.com/u/10281256?v=4","gravatar_id":"","url":"https://api.github.com/users/jkakavas","html_url":"https://github.com/jkakavas","followers_url":"https://api.github.com/users/jkakavas/followers","following_url":"https://api.github.com/users/jkakavas/following{/other_user}","gists_url":"https://api.github.com/users/jkakavas/gists{/gist_id}","starred_url":"https://api.github.com/users/jkakavas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkakavas/subscriptions","organizations_url":"https://api.github.com/users/jkakavas/orgs","repos_url":"https://api.github.com/users/jkakavas/repos","events_url":"https://api.github.com/users/jkakavas/events{/privacy}","received_events_url":"https://api.github.com/users/jkakavas/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jkakavas/elasticsearch","description":"Open Source, Distributed, RESTful Search Engine","fork":true,"url":"https://api.github.com/repos/jkakavas/elasticsearch","forks_url":"https://api.github.com/repos/jkakavas/elasticsearch/forks","keys_url":"https://api.github.com/repos/jkakavas/elasticsearch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jkakavas/elasticsearch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jkakavas/elasticsearch/teams","hooks_url":"https://api.github.com/repos/jkakavas/elasticsearch/hooks","issue_events_url":"https://api.github.com/repos/jkakavas/elasticsearch/issues/events{/number}","events_url":"https://api.github.com/repos/jkakavas/elasticsearch/events","assignees_url":"https://api.github.com/repos/jkakavas/elasticsearch/assignees{/user}","branches_url":"https://api.github.com/repos/jkakavas/elasticsearch/branches{/branch}","tags_url":"https://api.github.com/repos/jkakavas/elasticsearch/tags","blobs_url":"https://api.github.com/repos/jkakavas/elasticsearch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jkakavas/elasticsearch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jkakavas/elasticsearch/git/refs{/sha}","trees_url":"https://api.github.com/repos/jkakavas/elasticsearch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jkakavas/elasticsearch/statuses/{sha}","languages_url":"https://api.github.com/repos/jkakavas/elasticsearch/languages","stargazers_url":"https://api.github.com/repos/jkakavas/elasticsearch/stargazers","contributors_url":"https://api.github.com/repos/jkakavas/elasticsearch/contributors","subscribers_url":"https://api.github.com/repos/jkakavas/elasticsearch/subscribers","subscription_url":"https://api.github.com/repos/jkakavas/elasticsearch/subscription","commits_url":"https://api.github.com/repos/jkakavas/elasticsearch/commits{/sha}","git_commits_url":"https://api.github.com/repos/jkakavas/elasticsearch/git/commits{/sha}","comments_url":"https://api.github.com/repos/jkakavas/elasticsearch/comments{/number}","issue_comment_url":"https://api.github.com/repos/jkakavas/elasticsearch/issues/comments{/number}","contents_url":"https://api.github.com/repos/jkakavas/elasticsearch/contents/{+path}","compare_url":"https://api.github.com/repos/jkakavas/elasticsearch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jkakavas/elasticsearch/merges","archive_url":"https://api.github.com/repos/jkakavas/elasticsearch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jkakavas/elasticsearch/downloads","issues_url":"https://api.github.com/repos/jkakavas/elasticsearch/issues{/number}","pulls_url":"https://api.github.com/repos/jkakavas/elasticsearch/pulls{/number}","milestones_url":"https://api.github.com/repos/jkakavas/elasticsearch/milestones{/number}","notifications_url":"https://api.github.com/repos/jkakavas/elasticsearch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jkakavas/elasticsearch/labels{/name}","releases_url":"https://api.github.com/repos/jkakavas/elasticsearch/releases{/id}","deployments_url":"https://api.github.com/repos/jkakavas/elasticsearch/deployments","created_at":"2018-02-02T16:49:55Z","updated_at":"2018-07-16T13:30:28Z","pushed_at":"2019-05-10T10:51:53Z","git_url":"git://github.com/jkakavas/elasticsearch.git","ssh_url":"git@github.com:jkakavas/elasticsearch.git","clone_url":"https://github.com/jkakavas/elasticsearch.git","svn_url":"https://github.com/jkakavas/elasticsearch","homepage":"https://www.elastic.co/products/elasticsearch","size":562890,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"elastic:master","ref":"master","sha":"1e762a137ead9709861245720e4bc055a61e7bc3","user":{"login":"elastic","id":6764390,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3NjQzOTA=","avatar_url":"https://avatars0.githubusercontent.com/u/6764390?v=4","gravatar_id":"","url":"https://api.github.com/users/elastic","html_url":"https://github.com/elastic","followers_url":"https://api.github.com/users/elastic/followers","following_url":"https://api.github.com/users/elastic/following{/other_user}","gists_url":"https://api.github.com/users/elastic/gists{/gist_id}","starred_url":"https://api.github.com/users/elastic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elastic/subscriptions","organizations_url":"https://api.github.com/users/elastic/orgs","repos_url":"https://api.github.com/users/elastic/repos","events_url":"https://api.github.com/users/elastic/events{/privacy}","received_events_url":"https://api.github.com/users/elastic/received_events","type":"Organization","site_admin":false},"repo":{"id":507775,"node_id":"MDEwOlJlcG9zaXRvcnk1MDc3NzU=","name":"elasticsearch","full_name":"elastic/elasticsearch","private":false,"owner":{"login":"elastic","id":6764390,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3NjQzOTA=","avatar_url":"https://avatars0.githubusercontent.com/u/6764390?v=4","gravatar_id":"","url":"https://api.github.com/users/elastic","html_url":"https://github.com/elastic","followers_url":"https://api.github.com/users/elastic/followers","following_url":"https://api.github.com/users/elastic/following{/other_user}","gists_url":"https://api.github.com/users/elastic/gists{/gist_id}","starred_url":"https://api.github.com/users/elastic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elastic/subscriptions","organizations_url":"https://api.github.com/users/elastic/orgs","repos_url":"https://api.github.com/users/elastic/repos","events_url":"https://api.github.com/users/elastic/events{/privacy}","received_events_url":"https://api.github.com/users/elastic/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/elastic/elasticsearch","description":"Open Source, Distributed, RESTful Search Engine","fork":false,"url":"https://api.github.com/repos/elastic/elasticsearch","forks_url":"https://api.github.com/repos/elastic/elasticsearch/forks","keys_url":"https://api.github.com/repos/elastic/elasticsearch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/elastic/elasticsearch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/elastic/elasticsearch/teams","hooks_url":"https://api.github.com/repos/elastic/elasticsearch/hooks","issue_events_url":"https://api.github.com/repos/elastic/elasticsearch/issues/events{/number}","events_url":"https://api.github.com/repos/elastic/elasticsearch/events","assignees_url":"https://api.github.com/repos/elastic/elasticsearch/assignees{/user}","branches_url":"https://api.github.com/repos/elastic/elasticsearch/branches{/branch}","tags_url":"https://api.github.com/repos/elastic/elasticsearch/tags","blobs_url":"https://api.github.com/repos/elastic/elasticsearch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/elastic/elasticsearch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/elastic/elasticsearch/git/refs{/sha}","trees_url":"https://api.github.com/repos/elastic/elasticsearch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/elastic/elasticsearch/statuses/{sha}","languages_url":"https://api.github.com/repos/elastic/elasticsearch/languages","stargazers_url":"https://api.github.com/repos/elastic/elasticsearch/stargazers","contributors_url":"https://api.github.com/repos/elastic/elasticsearch/contributors","subscribers_url":"https://api.github.com/repos/elastic/elasticsearch/subscribers","subscription_url":"https://api.github.com/repos/elastic/elasticsearch/subscription","commits_url":"https://api.github.com/repos/elastic/elasticsearch/commits{/sha}","git_commits_url":"https://api.github.com/repos/elastic/elasticsearch/git/commits{/sha}","comments_url":"https://api.github.com/repos/elastic/elasticsearch/comments{/number}","issue_comment_url":"https://api.github.com/repos/elastic/elasticsearch/issues/comments{/number}","contents_url":"https://api.github.com/repos/elastic/elasticsearch/contents/{+path}","compare_url":"https://api.github.com/repos/elastic/elasticsearch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/elastic/elasticsearch/merges","archive_url":"https://api.github.com/repos/elastic/elasticsearch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/elastic/elasticsearch/downloads","issues_url":"https://api.github.com/repos/elastic/elasticsearch/issues{/number}","pulls_url":"https://api.github.com/repos/elastic/elasticsearch/pulls{/number}","milestones_url":"https://api.github.com/repos/elastic/elasticsearch/milestones{/number}","notifications_url":"https://api.github.com/repos/elastic/elasticsearch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/elastic/elasticsearch/labels{/name}","releases_url":"https://api.github.com/repos/elastic/elasticsearch/releases{/id}","deployments_url":"https://api.github.com/repos/elastic/elasticsearch/deployments","created_at":"2010-02-08T13:20:56Z","updated_at":"2019-05-10T16:08:11Z","pushed_at":"2019-05-10T16:25:19Z","git_url":"git://github.com/elastic/elasticsearch.git","ssh_url":"git@github.com:elastic/elasticsearch.git","clone_url":"https://github.com/elastic/elasticsearch.git","svn_url":"https://github.com/elastic/elasticsearch","homepage":"https://www.elastic.co/products/elasticsearch","size":622235,"stargazers_count":40908,"watchers_count":40908,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13635,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1992,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":13635,"open_issues":1992,"watchers":40908,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423"},"html":{"href":"https://github.com/elastic/elasticsearch/pull/41423"},"issue":{"href":"https://api.github.com/repos/elastic/elasticsearch/issues/41423"},"comments":{"href":"https://api.github.com/repos/elastic/elasticsearch/issues/41423/comments"},"review_comments":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423/comments"},"review_comment":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/41423/commits"},"statuses":{"href":"https://api.github.com/repos/elastic/elasticsearch/statuses/f92a01d77ef4aef369391a30aadba3f5c20bf0a5"}},"author_association":"CONTRIBUTOR"}}
other: {"actor":{"display_login":"lcawl"}}