{"action":"created","comment":{"url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/comments/204320877","pull_request_review_id":139376078,"id":204320877,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNDMyMDg3Nw==","diff_hunk":"@@ -0,0 +1,65 @@\n+# Manual Authentication and Authorization workaround\n+\n+* Status: **Implemented**\n+* Discussion: [GitHub PR](https://github.com/strimzi/strimzi-kafka-operator/pull/623)\n+\n+## Motivation\n+\n+The long term plan for Strimzi is to have custom resources to define Users for Authentication and Authorization rules.\n+The custom resources should be read by operator style application which would be responsible for the setup of the users or ACL rules.\n+Until such an operator (User Operator - UO) is available, it would be useful to have a way to setup Authentication and Authorization at least in a manual / semi-manual way.\n+This proposal covers such a workaround.\n+There is no long term commitment to support the mechanisms suggested in this proposal.\n+After the final implementation of the operator for Authorization and Authentication is implemented, it will not be possible to use this workaround any more.\n+\n+## Authentication\n+\n+The Cluster Operator (CO) maintains a _Clients CA_.\n+This Client CA is set as truststore for the TLS enabled Kafka interface which is designated for client connections (port 9093).\n+Currently, this _Clients CA_ does not enforce client authentication.\n+And enabling such configuration through `spec.kafka.config` is not possible because the required options are in the _forbidden options_ list.\n+This proposal suggests to modify the list of forbidden options to allow end-users to enable or disable the TLS client authentication.\n+This change will be only temporary and will be removed once the actual UO is in place with the needed configuration.\n+\n+User who want to use manual setup of authentication will be able to do so in the following steps:\n+\n+* Modify the Kafka cluster resource and add configuration options to enable TLS client authentication for the clients port (option `listener.name.clienttls.ssl.client.auth=required`)\n+* Use the Clients CA to manually issue user certificates.\n+  The CA public and private key can be downloaded from the Kubernetes / OpenShift secret and the user certificates can be signed separately.\n+  The CA private key should be kept secret.\n+* The authenticated users will be given the Principal name based on the subject of their certificate (e.g. `CN=writeuser,OU=Unknown,O=Unknown,L=Unknown,ST=Unknown,C=Unknown`)\n+\n+Alternatively, the end-user can bring own CA for user authentication.\n+The CO will accept the CA if the secret exists before the cluster is created.\n+\n+### Required changes to Cluster Operator\n+\n+To implement this we will need following changes in the Cluster Operator:\n+\n+* Make sure the Clients CA is used only for client authentication\n+* Change the forbidden options to allow end-users to enable or disable Authentication\n+\n+## Authorization\n+\n+To use Authorization, the Authentication needs to be enabled first.\n+Authorization can be enabled by setting the ACL Authorizer class in `authorizer.class.name`.\n+The workaround would support only the built in `kafka.security.auth.SimpleAclAuthorizer`\n+The default authorization plugin stores the ACL rules in Zookeeper.\n+Once the Authorization plugin is enabled, ACL rules can be managed with the `kafka-acls.sh` utility.\n+\n+User who want to use manual setup of authorization will be able to do so in the following steps:","path":"design/manual-authn-and-authz/README.md","position":50,"original_position":50,"commit_id":"1a1195556cd0e6e1d39ee90ff92f9ba4dd24cf8c","original_commit_id":"1a1195556cd0e6e1d39ee90ff92f9ba4dd24cf8c","user":{"login":"ppatierno","id":5842311,"node_id":"MDQ6VXNlcjU4NDIzMTE=","avatar_url":"https://avatars0.githubusercontent.com/u/5842311?v=4","gravatar_id":"","url":"https://api.github.com/users/ppatierno","html_url":"https://github.com/ppatierno","followers_url":"https://api.github.com/users/ppatierno/followers","following_url":"https://api.github.com/users/ppatierno/following{/other_user}","gists_url":"https://api.github.com/users/ppatierno/gists{/gist_id}","starred_url":"https://api.github.com/users/ppatierno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ppatierno/subscriptions","organizations_url":"https://api.github.com/users/ppatierno/orgs","repos_url":"https://api.github.com/users/ppatierno/repos","events_url":"https://api.github.com/users/ppatierno/events{/privacy}","received_events_url":"https://api.github.com/users/ppatierno/received_events","type":"User","site_admin":false},"body":"typo \"User who wants\"","created_at":"2018-07-23T08:35:01Z","updated_at":"2018-07-23T08:39:15Z","html_url":"https://github.com/strimzi/strimzi-kafka-operator/pull/623#discussion_r204320877","pull_request_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/comments/204320877"},"html":{"href":"https://github.com/strimzi/strimzi-kafka-operator/pull/623#discussion_r204320877"},"pull_request":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623"}}},"pull_request":{"url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623","id":202976939,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAyOTc2OTM5","html_url":"https://github.com/strimzi/strimzi-kafka-operator/pull/623","diff_url":"https://github.com/strimzi/strimzi-kafka-operator/pull/623.diff","patch_url":"https://github.com/strimzi/strimzi-kafka-operator/pull/623.patch","issue_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/623","number":623,"state":"open","locked":false,"title":"Manual authentication and authorization","user":{"login":"scholzj","id":5658439,"node_id":"MDQ6VXNlcjU2NTg0Mzk=","avatar_url":"https://avatars0.githubusercontent.com/u/5658439?v=4","gravatar_id":"","url":"https://api.github.com/users/scholzj","html_url":"https://github.com/scholzj","followers_url":"https://api.github.com/users/scholzj/followers","following_url":"https://api.github.com/users/scholzj/following{/other_user}","gists_url":"https://api.github.com/users/scholzj/gists{/gist_id}","starred_url":"https://api.github.com/users/scholzj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scholzj/subscriptions","organizations_url":"https://api.github.com/users/scholzj/orgs","repos_url":"https://api.github.com/users/scholzj/repos","events_url":"https://api.github.com/users/scholzj/events{/privacy}","received_events_url":"https://api.github.com/users/scholzj/received_events","type":"User","site_admin":false},"body":"### Type of change\r\n\r\n- ~~Bugfix~~\r\n- ~~Enhancement / new feature~~\r\n- ~~Refactoring~~\r\n- ~~Documentation~~\r\n- Hack\r\n\r\n### Description\r\n\r\nThis PR delivers the hack which will allow to enable authentication and authorization and handle them manually until we have our User operator available. It does so by:\r\n* Modifying the list of forbidden options to allow enabling TLS client auth on the client interface and enabling authorizer\r\n* Setting super.users list to allow TO and other brokers to talk with each other even when ACLs are enabled\r\n* Documentation how to do the things manually (not part of regular documentation since it is temporary only)\r\n\r\nThe `super.users` field will be needed even once we have our own user Operator. However, all brokers need to be listed in the `super.users` list in order for the cluster to work properly. With the previous certificates, each Kafka broker had certificate with subject `CN=my-cluster-kafka-0`, `CN=my-cluster-kafka-1` etc. That means that when a new node is added, we need to do rolling update of all brokers. That seems very ugly and undesired. Therefore I modified the subjects of the broker certificates to use only the name of the StatefulSet as the CN. That means that we do not need anymore to do rolling update for scale up. I trade-off is worth it.\r\n\r\n### Checklist\r\n\r\n- [x] Make sure all tests pass\r\n- [x] Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally\r\n","created_at":"2018-07-20T23:29:35Z","updated_at":"2018-07-23T08:39:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3e9e6f9a676428c43159a677984059ef8abe2aa7","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":{"url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/milestones/4","html_url":"https://github.com/strimzi/strimzi-kafka-operator/milestone/4","labels_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/milestones/4/labels","id":3333700,"node_id":"MDk6TWlsZXN0b25lMzMzMzcwMA==","number":4,"title":"0.5.0","description":"","creator":{"login":"scholzj","id":5658439,"node_id":"MDQ6VXNlcjU2NTg0Mzk=","avatar_url":"https://avatars0.githubusercontent.com/u/5658439?v=4","gravatar_id":"","url":"https://api.github.com/users/scholzj","html_url":"https://github.com/scholzj","followers_url":"https://api.github.com/users/scholzj/followers","following_url":"https://api.github.com/users/scholzj/following{/other_user}","gists_url":"https://api.github.com/users/scholzj/gists{/gist_id}","starred_url":"https://api.github.com/users/scholzj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scholzj/subscriptions","organizations_url":"https://api.github.com/users/scholzj/orgs","repos_url":"https://api.github.com/users/scholzj/repos","events_url":"https://api.github.com/users/scholzj/events{/privacy}","received_events_url":"https://api.github.com/users/scholzj/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":129,"state":"open","created_at":"2018-05-09T16:31:12Z","updated_at":"2018-07-23T08:29:49Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623/commits","review_comments_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623/comments","review_comment_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/comments{/number}","comments_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/623/comments","statuses_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/statuses/1a1195556cd0e6e1d39ee90ff92f9ba4dd24cf8c","head":{"label":"strimzi:manual-authn-and-authz","ref":"manual-authn-and-authz","sha":"1a1195556cd0e6e1d39ee90ff92f9ba4dd24cf8c","user":{"login":"strimzi","id":34767428,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NzY3NDI4","avatar_url":"https://avatars1.githubusercontent.com/u/34767428?v=4","gravatar_id":"","url":"https://api.github.com/users/strimzi","html_url":"https://github.com/strimzi","followers_url":"https://api.github.com/users/strimzi/followers","following_url":"https://api.github.com/users/strimzi/following{/other_user}","gists_url":"https://api.github.com/users/strimzi/gists{/gist_id}","starred_url":"https://api.github.com/users/strimzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strimzi/subscriptions","organizations_url":"https://api.github.com/users/strimzi/orgs","repos_url":"https://api.github.com/users/strimzi/repos","events_url":"https://api.github.com/users/strimzi/events{/privacy}","received_events_url":"https://api.github.com/users/strimzi/received_events","type":"Organization","site_admin":false},"repo":{"id":58194180,"node_id":"MDEwOlJlcG9zaXRvcnk1ODE5NDE4MA==","name":"strimzi-kafka-operator","full_name":"strimzi/strimzi-kafka-operator","owner":{"login":"strimzi","id":34767428,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NzY3NDI4","avatar_url":"https://avatars1.githubusercontent.com/u/34767428?v=4","gravatar_id":"","url":"https://api.github.com/users/strimzi","html_url":"https://github.com/strimzi","followers_url":"https://api.github.com/users/strimzi/followers","following_url":"https://api.github.com/users/strimzi/following{/other_user}","gists_url":"https://api.github.com/users/strimzi/gists{/gist_id}","starred_url":"https://api.github.com/users/strimzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strimzi/subscriptions","organizations_url":"https://api.github.com/users/strimzi/orgs","repos_url":"https://api.github.com/users/strimzi/repos","events_url":"https://api.github.com/users/strimzi/events{/privacy}","received_events_url":"https://api.github.com/users/strimzi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/strimzi/strimzi-kafka-operator","description":"Apache Kafka running on Kubernetes and OpenShift","fork":false,"url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator","forks_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/forks","keys_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/keys{/key_id}","collaborators_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/teams","hooks_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/hooks","issue_events_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/events{/number}","events_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/events","assignees_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/assignees{/user}","branches_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/branches{/branch}","tags_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/tags","blobs_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/refs{/sha}","trees_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/trees{/sha}","statuses_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/statuses/{sha}","languages_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/languages","stargazers_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/stargazers","contributors_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/contributors","subscribers_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/subscribers","subscription_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/subscription","commits_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/commits{/sha}","git_commits_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/commits{/sha}","comments_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/comments{/number}","issue_comment_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/comments{/number}","contents_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/contents/{+path}","compare_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/compare/{base}...{head}","merges_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/merges","archive_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/downloads","issues_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues{/number}","pulls_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls{/number}","milestones_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/milestones{/number}","notifications_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/labels{/name}","releases_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/releases{/id}","deployments_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/deployments","created_at":"2016-05-06T08:52:33Z","updated_at":"2018-07-23T08:29:53Z","pushed_at":"2018-07-23T08:29:53Z","git_url":"git://github.com/strimzi/strimzi-kafka-operator.git","ssh_url":"git@github.com:strimzi/strimzi-kafka-operator.git","clone_url":"https://github.com/strimzi/strimzi-kafka-operator.git","svn_url":"https://github.com/strimzi/strimzi-kafka-operator","homepage":"http://strimzi.io/","size":12195,"stargazers_count":327,"watchers_count":327,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":65,"mirror_url":null,"archived":false,"open_issues_count":91,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":65,"open_issues":91,"watchers":327,"default_branch":"master"}},"base":{"label":"strimzi:master","ref":"master","sha":"96d331eaa81a6389edb81b3303d13cb0c649c6eb","user":{"login":"strimzi","id":34767428,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NzY3NDI4","avatar_url":"https://avatars1.githubusercontent.com/u/34767428?v=4","gravatar_id":"","url":"https://api.github.com/users/strimzi","html_url":"https://github.com/strimzi","followers_url":"https://api.github.com/users/strimzi/followers","following_url":"https://api.github.com/users/strimzi/following{/other_user}","gists_url":"https://api.github.com/users/strimzi/gists{/gist_id}","starred_url":"https://api.github.com/users/strimzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strimzi/subscriptions","organizations_url":"https://api.github.com/users/strimzi/orgs","repos_url":"https://api.github.com/users/strimzi/repos","events_url":"https://api.github.com/users/strimzi/events{/privacy}","received_events_url":"https://api.github.com/users/strimzi/received_events","type":"Organization","site_admin":false},"repo":{"id":58194180,"node_id":"MDEwOlJlcG9zaXRvcnk1ODE5NDE4MA==","name":"strimzi-kafka-operator","full_name":"strimzi/strimzi-kafka-operator","owner":{"login":"strimzi","id":34767428,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0NzY3NDI4","avatar_url":"https://avatars1.githubusercontent.com/u/34767428?v=4","gravatar_id":"","url":"https://api.github.com/users/strimzi","html_url":"https://github.com/strimzi","followers_url":"https://api.github.com/users/strimzi/followers","following_url":"https://api.github.com/users/strimzi/following{/other_user}","gists_url":"https://api.github.com/users/strimzi/gists{/gist_id}","starred_url":"https://api.github.com/users/strimzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strimzi/subscriptions","organizations_url":"https://api.github.com/users/strimzi/orgs","repos_url":"https://api.github.com/users/strimzi/repos","events_url":"https://api.github.com/users/strimzi/events{/privacy}","received_events_url":"https://api.github.com/users/strimzi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/strimzi/strimzi-kafka-operator","description":"Apache Kafka running on Kubernetes and OpenShift","fork":false,"url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator","forks_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/forks","keys_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/keys{/key_id}","collaborators_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/teams","hooks_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/hooks","issue_events_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/events{/number}","events_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/events","assignees_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/assignees{/user}","branches_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/branches{/branch}","tags_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/tags","blobs_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/refs{/sha}","trees_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/trees{/sha}","statuses_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/statuses/{sha}","languages_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/languages","stargazers_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/stargazers","contributors_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/contributors","subscribers_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/subscribers","subscription_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/subscription","commits_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/commits{/sha}","git_commits_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/git/commits{/sha}","comments_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/comments{/number}","issue_comment_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/comments{/number}","contents_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/contents/{+path}","compare_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/compare/{base}...{head}","merges_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/merges","archive_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/downloads","issues_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues{/number}","pulls_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls{/number}","milestones_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/milestones{/number}","notifications_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/labels{/name}","releases_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/releases{/id}","deployments_url":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/deployments","created_at":"2016-05-06T08:52:33Z","updated_at":"2018-07-23T08:29:53Z","pushed_at":"2018-07-23T08:29:53Z","git_url":"git://github.com/strimzi/strimzi-kafka-operator.git","ssh_url":"git@github.com:strimzi/strimzi-kafka-operator.git","clone_url":"https://github.com/strimzi/strimzi-kafka-operator.git","svn_url":"https://github.com/strimzi/strimzi-kafka-operator","homepage":"http://strimzi.io/","size":12195,"stargazers_count":327,"watchers_count":327,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":65,"mirror_url":null,"archived":false,"open_issues_count":91,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":65,"open_issues":91,"watchers":327,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623"},"html":{"href":"https://github.com/strimzi/strimzi-kafka-operator/pull/623"},"issue":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/623"},"comments":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/issues/623/comments"},"review_comments":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623/comments"},"review_comment":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/pulls/623/commits"},"statuses":{"href":"https://api.github.com/repos/strimzi/strimzi-kafka-operator/statuses/1a1195556cd0e6e1d39ee90ff92f9ba4dd24cf8c"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"ppatierno"}}