{"action":"opened","number":2836,"pull_request":{"url":"https://api.github.com/repos/apache/pulsar/pulls/2836","id":225499420,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI1NDk5NDIw","html_url":"https://github.com/apache/pulsar/pull/2836","diff_url":"https://github.com/apache/pulsar/pull/2836.diff","patch_url":"https://github.com/apache/pulsar/pull/2836.patch","issue_url":"https://api.github.com/repos/apache/pulsar/issues/2836","number":2836,"state":"open","locked":false,"title":"Fix: schema init for topic-name with special char","user":{"login":"rdhabalia","id":2898254,"node_id":"MDQ6VXNlcjI4OTgyNTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2898254?v=4","gravatar_id":"","url":"https://api.github.com/users/rdhabalia","html_url":"https://github.com/rdhabalia","followers_url":"https://api.github.com/users/rdhabalia/followers","following_url":"https://api.github.com/users/rdhabalia/following{/other_user}","gists_url":"https://api.github.com/users/rdhabalia/gists{/gist_id}","starred_url":"https://api.github.com/users/rdhabalia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rdhabalia/subscriptions","organizations_url":"https://api.github.com/users/rdhabalia/orgs","repos_url":"https://api.github.com/users/rdhabalia/repos","events_url":"https://api.github.com/users/rdhabalia/events{/privacy}","received_events_url":"https://api.github.com/users/rdhabalia/received_events","type":"User","site_admin":false},"body":"### Motivation\r\n\r\nRight now, Pulsar-schema creates z-node for topic without encoding topic-name which can cause issue for topics which has special char which creates invalid znode-path.\r\n```\r\n21:15:34.909 [pulsar-io-21-1] WARN  org.apache.pulsar.zookeeper.ZooKeeperCache - Failed to access zkSession for /schemas/cms-single-parallel/SNS-6d1849fe-f3de-4c4d-b570-394071738d8c/`~!@#$%^&*()-_+=[]://{}|\\;:'\"<>,./?-30e04524-fcff-4fee-babf-74c9aab06dfc Invalid path string \"/schemas/cms-single-parallel/SNS-6d1849fe-f3de-4c4d-b570-394071738d8c/`~!@#$%^&*()-_+=[]://{}|\\;:'\"<>,./?-30e04524-fcff-4fee-babf-74c9aab06dfc\" caused by empty node name specified @90\r\njava.lang.IllegalArgumentException: Invalid path string \"/schemas/cms-single-parallel/SNS-6d1849fe-f3de-4c4d-b570-394071738d8c/`~!@#$%^&*()-_+=[]://{}|\\;:'\"<>,./?-30e04524-fcff-4fee-babf-74c9aab06dfc\" caused by empty node name specified @90\r\n        at org.apache.zookeeper.common.PathUtils.validatePath(PathUtils.java:99) ~[zookeeper-3.4.6.jar:3.4.6-1569965]\r\n        at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1196) ~[zookeeper-3.4.6.jar:3.4.6-1569965]\r\n        at org.apache.bookkeeper.zookeeper.ZooKeeperClient.access$2901(ZooKeeperClient.java:70) ~[bookkeeper-server-4.7.2-Auth0.jar:4.7.2-Auth0]\r\n        at org.apache.bookkeeper.zookeeper.ZooKeeperClient$19.zkRun(ZooKeeperClient.java:1004) ~[bookkeeper-server-4.7.2-Auth0.jar:4.7.2-Auth0]\r\n        at org.apache.bookkeeper.zookeeper.ZooKeeperClient$ZkRetryRunnable.run(ZooKeeperClient.java:389) ~[bookkeeper-server-4.7.2-Auth0.jar:4.7.2-Auth0]\r\n        at org.apache.bookkeeper.zookeeper.ZooKeeperClient.getData(ZooKeeperClient.java:1016) ~[bookkeeper-server-4.7.2-Auth0.jar:4.7.2-Auth0]\r\n        at org.apache.pulsar.zookeeper.ZooKeeperCache.lambda$6(ZooKeeperCache.java:322) ~[pulsar-zookeeper-utils-2.2.0.jar:2.2.0]\r\n        at com.github.benmanes.caffeine.cache.LocalAsyncLoadingCache.lambda$get$2(LocalAsyncLoadingCache.java:126) ~[caffeine-2.3.3.jar:?]\r\n        at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$16(BoundedLocalCache.java:1973) ~[caffeine-2.3.3.jar:?]\r\n        at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853) ~[?:1.8.0_131]\r\n        at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:1971) ~[caffeine-2.3.3.jar:?]\r\n        at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:1954) ~[caffeine-2.3.3.jar:?]\r\n        at com.github.benmanes.caffeine.cache.LocalAsyncLoadingCache.get(LocalAsyncLoadingCache.java:125) ~[caffeine-2.3.3.jar:?]\r\n        at com.github.benmanes.caffeine.cache.LocalAsyncLoadingCache.get(LocalAsyncLoadingCache.java:117) ~[caffeine-2.3.3.jar:?]\r\n        at org.apache.pulsar.zookeeper.ZooKeeperCache.getDataAsync(ZooKeeperCache.java:316) ~[pulsar-zookeeper-utils-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.zookeeper.ZooKeeperCache.getEntryAsync(ZooKeeperCache.java:242) ~[pulsar-zookeeper-utils-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorage.getSchemaLocator(BookkeeperSchemaStorage.java:347) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorage.lambda$0(BookkeeperSchemaStorage.java:129) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[?:1.8.0_131]\r\n        at org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorage.getSchema(BookkeeperSchemaStorage.java:126) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorage.get(BookkeeperSchemaStorage.java:111) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.broker.service.schema.SchemaRegistryServiceImpl.getSchema(SchemaRegistryServiceImpl.java:72) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.broker.service.schema.SchemaRegistryServiceImpl.getSchema(SchemaRegistryServiceImpl.java:66) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.broker.service.persistent.PersistentTopic.hasSchema(PersistentTopic.java:1815) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.broker.service.ServerCnx.lambda$25(ServerCnx.java:836) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) ~[?:1.8.0_131]\r\n        at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:669) ~[?:1.8.0_131]\r\n        at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:1997) ~[?:1.8.0_131]\r\n        at org.apache.pulsar.broker.service.ServerCnx.lambda$20(ServerCnx.java:801) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602) ~[?:1.8.0_131]\r\n        at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:614) ~[?:1.8.0_131]\r\n        at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1983) ~[?:1.8.0_131]\r\n        at org.apache.pulsar.broker.service.ServerCnx.lambda$8(ServerCnx.java:764) ~[pulsar-broker-2.2.0.jar:2.2.0]\r\n        at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602) [?:1.8.0_131]\r\n        at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:614) [?:1.8.0_131]\r\n        at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1983) [?:1.8.0_131]\r\n        at org.apache.pulsar.broker.service.ServerCnx.handleProducer(ServerCnx.java:754) [pulsar-broker-2.2.0.jar:2.2.0]\r\n        at org.apache.pulsar.common.api.PulsarDecoder.channelRead(PulsarDecoder.java:175) [pulsar-common-2.2.0.jar:2.2.0]\r\n        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [netty-codec-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [netty-codec-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:806) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-all-4.1.22.Final.jar:4.1.22.Final]\r\n        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]\r\n```\r\n\r\n\r\n### Modifications\r\n\r\nEncode topic-name before using it for schema.\r\n\r\n### Result\r\n\r\ntopic loading will not fail for topic with special char in the name.\r\n","created_at":"2018-10-24T18:08:31Z","updated_at":"2018-10-24T18:08:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":{"login":"rdhabalia","id":2898254,"node_id":"MDQ6VXNlcjI4OTgyNTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2898254?v=4","gravatar_id":"","url":"https://api.github.com/users/rdhabalia","html_url":"https://github.com/rdhabalia","followers_url":"https://api.github.com/users/rdhabalia/followers","following_url":"https://api.github.com/users/rdhabalia/following{/other_user}","gists_url":"https://api.github.com/users/rdhabalia/gists{/gist_id}","starred_url":"https://api.github.com/users/rdhabalia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rdhabalia/subscriptions","organizations_url":"https://api.github.com/users/rdhabalia/orgs","repos_url":"https://api.github.com/users/rdhabalia/repos","events_url":"https://api.github.com/users/rdhabalia/events{/privacy}","received_events_url":"https://api.github.com/users/rdhabalia/received_events","type":"User","site_admin":false},"assignees":[{"login":"rdhabalia","id":2898254,"node_id":"MDQ6VXNlcjI4OTgyNTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2898254?v=4","gravatar_id":"","url":"https://api.github.com/users/rdhabalia","html_url":"https://github.com/rdhabalia","followers_url":"https://api.github.com/users/rdhabalia/followers","following_url":"https://api.github.com/users/rdhabalia/following{/other_user}","gists_url":"https://api.github.com/users/rdhabalia/gists{/gist_id}","starred_url":"https://api.github.com/users/rdhabalia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rdhabalia/subscriptions","organizations_url":"https://api.github.com/users/rdhabalia/orgs","repos_url":"https://api.github.com/users/rdhabalia/repos","events_url":"https://api.github.com/users/rdhabalia/events{/privacy}","received_events_url":"https://api.github.com/users/rdhabalia/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":978303574,"node_id":"MDU6TGFiZWw5NzgzMDM1NzQ=","url":"https://api.github.com/repos/apache/pulsar/labels/component/broker","name":"component/broker","color":"1d76db","default":false}],"milestone":{"url":"https://api.github.com/repos/apache/pulsar/milestones/18","html_url":"https://github.com/apache/pulsar/milestone/18","labels_url":"https://api.github.com/repos/apache/pulsar/milestones/18/labels","id":3603038,"node_id":"MDk6TWlsZXN0b25lMzYwMzAzOA==","number":18,"title":"2.3.0","description":"","creator":{"login":"merlimat","id":62500,"node_id":"MDQ6VXNlcjYyNTAw","avatar_url":"https://avatars2.githubusercontent.com/u/62500?v=4","gravatar_id":"","url":"https://api.github.com/users/merlimat","html_url":"https://github.com/merlimat","followers_url":"https://api.github.com/users/merlimat/followers","following_url":"https://api.github.com/users/merlimat/following{/other_user}","gists_url":"https://api.github.com/users/merlimat/gists{/gist_id}","starred_url":"https://api.github.com/users/merlimat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/merlimat/subscriptions","organizations_url":"https://api.github.com/users/merlimat/orgs","repos_url":"https://api.github.com/users/merlimat/repos","events_url":"https://api.github.com/users/merlimat/events{/privacy}","received_events_url":"https://api.github.com/users/merlimat/received_events","type":"User","site_admin":false},"open_issues":34,"closed_issues":71,"state":"open","created_at":"2018-08-28T07:03:59Z","updated_at":"2018-10-24T18:08:31Z","due_on":"2018-10-31T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/apache/pulsar/pulls/2836/commits","review_comments_url":"https://api.github.com/repos/apache/pulsar/pulls/2836/comments","review_comment_url":"https://api.github.com/repos/apache/pulsar/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/pulsar/issues/2836/comments","statuses_url":"https://api.github.com/repos/apache/pulsar/statuses/bb4afc91f68fbee43a32d2e1ec90271a63212c44","head":{"label":"rdhabalia:schema_topic","ref":"schema_topic","sha":"bb4afc91f68fbee43a32d2e1ec90271a63212c44","user":{"login":"rdhabalia","id":2898254,"node_id":"MDQ6VXNlcjI4OTgyNTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2898254?v=4","gravatar_id":"","url":"https://api.github.com/users/rdhabalia","html_url":"https://github.com/rdhabalia","followers_url":"https://api.github.com/users/rdhabalia/followers","following_url":"https://api.github.com/users/rdhabalia/following{/other_user}","gists_url":"https://api.github.com/users/rdhabalia/gists{/gist_id}","starred_url":"https://api.github.com/users/rdhabalia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rdhabalia/subscriptions","organizations_url":"https://api.github.com/users/rdhabalia/orgs","repos_url":"https://api.github.com/users/rdhabalia/repos","events_url":"https://api.github.com/users/rdhabalia/events{/privacy}","received_events_url":"https://api.github.com/users/rdhabalia/received_events","type":"User","site_admin":false},"repo":{"id":67649596,"node_id":"MDEwOlJlcG9zaXRvcnk2NzY0OTU5Ng==","name":"pulsar","full_name":"rdhabalia/pulsar","private":false,"owner":{"login":"rdhabalia","id":2898254,"node_id":"MDQ6VXNlcjI4OTgyNTQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2898254?v=4","gravatar_id":"","url":"https://api.github.com/users/rdhabalia","html_url":"https://github.com/rdhabalia","followers_url":"https://api.github.com/users/rdhabalia/followers","following_url":"https://api.github.com/users/rdhabalia/following{/other_user}","gists_url":"https://api.github.com/users/rdhabalia/gists{/gist_id}","starred_url":"https://api.github.com/users/rdhabalia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rdhabalia/subscriptions","organizations_url":"https://api.github.com/users/rdhabalia/orgs","repos_url":"https://api.github.com/users/rdhabalia/repos","events_url":"https://api.github.com/users/rdhabalia/events{/privacy}","received_events_url":"https://api.github.com/users/rdhabalia/received_events","type":"User","site_admin":false},"html_url":"https://github.com/rdhabalia/pulsar","description":"Pulsar - distributed pub-sub messaging system","fork":true,"url":"https://api.github.com/repos/rdhabalia/pulsar","forks_url":"https://api.github.com/repos/rdhabalia/pulsar/forks","keys_url":"https://api.github.com/repos/rdhabalia/pulsar/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rdhabalia/pulsar/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rdhabalia/pulsar/teams","hooks_url":"https://api.github.com/repos/rdhabalia/pulsar/hooks","issue_events_url":"https://api.github.com/repos/rdhabalia/pulsar/issues/events{/number}","events_url":"https://api.github.com/repos/rdhabalia/pulsar/events","assignees_url":"https://api.github.com/repos/rdhabalia/pulsar/assignees{/user}","branches_url":"https://api.github.com/repos/rdhabalia/pulsar/branches{/branch}","tags_url":"https://api.github.com/repos/rdhabalia/pulsar/tags","blobs_url":"https://api.github.com/repos/rdhabalia/pulsar/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rdhabalia/pulsar/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rdhabalia/pulsar/git/refs{/sha}","trees_url":"https://api.github.com/repos/rdhabalia/pulsar/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rdhabalia/pulsar/statuses/{sha}","languages_url":"https://api.github.com/repos/rdhabalia/pulsar/languages","stargazers_url":"https://api.github.com/repos/rdhabalia/pulsar/stargazers","contributors_url":"https://api.github.com/repos/rdhabalia/pulsar/contributors","subscribers_url":"https://api.github.com/repos/rdhabalia/pulsar/subscribers","subscription_url":"https://api.github.com/repos/rdhabalia/pulsar/subscription","commits_url":"https://api.github.com/repos/rdhabalia/pulsar/commits{/sha}","git_commits_url":"https://api.github.com/repos/rdhabalia/pulsar/git/commits{/sha}","comments_url":"https://api.github.com/repos/rdhabalia/pulsar/comments{/number}","issue_comment_url":"https://api.github.com/repos/rdhabalia/pulsar/issues/comments{/number}","contents_url":"https://api.github.com/repos/rdhabalia/pulsar/contents/{+path}","compare_url":"https://api.github.com/repos/rdhabalia/pulsar/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rdhabalia/pulsar/merges","archive_url":"https://api.github.com/repos/rdhabalia/pulsar/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rdhabalia/pulsar/downloads","issues_url":"https://api.github.com/repos/rdhabalia/pulsar/issues{/number}","pulls_url":"https://api.github.com/repos/rdhabalia/pulsar/pulls{/number}","milestones_url":"https://api.github.com/repos/rdhabalia/pulsar/milestones{/number}","notifications_url":"https://api.github.com/repos/rdhabalia/pulsar/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rdhabalia/pulsar/labels{/name}","releases_url":"https://api.github.com/repos/rdhabalia/pulsar/releases{/id}","deployments_url":"https://api.github.com/repos/rdhabalia/pulsar/deployments","created_at":"2016-09-07T22:57:02Z","updated_at":"2017-11-01T23:49:48Z","pushed_at":"2018-10-24T18:04:30Z","git_url":"git://github.com/rdhabalia/pulsar.git","ssh_url":"git@github.com:rdhabalia/pulsar.git","clone_url":"https://github.com/rdhabalia/pulsar.git","svn_url":"https://github.com/rdhabalia/pulsar","homepage":"","size":41132,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"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":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"apache:master","ref":"master","sha":"203c8ee2b576704803135ddb18c2699322917c36","user":{"login":"apache","id":47359,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MzU5","avatar_url":"https://avatars0.githubusercontent.com/u/47359?v=4","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":62117812,"node_id":"MDEwOlJlcG9zaXRvcnk2MjExNzgxMg==","name":"pulsar","full_name":"apache/pulsar","private":false,"owner":{"login":"apache","id":47359,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MzU5","avatar_url":"https://avatars0.githubusercontent.com/u/47359?v=4","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/apache/pulsar","description":"Apache Pulsar - distributed pub-sub messaging system","fork":false,"url":"https://api.github.com/repos/apache/pulsar","forks_url":"https://api.github.com/repos/apache/pulsar/forks","keys_url":"https://api.github.com/repos/apache/pulsar/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/pulsar/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/pulsar/teams","hooks_url":"https://api.github.com/repos/apache/pulsar/hooks","issue_events_url":"https://api.github.com/repos/apache/pulsar/issues/events{/number}","events_url":"https://api.github.com/repos/apache/pulsar/events","assignees_url":"https://api.github.com/repos/apache/pulsar/assignees{/user}","branches_url":"https://api.github.com/repos/apache/pulsar/branches{/branch}","tags_url":"https://api.github.com/repos/apache/pulsar/tags","blobs_url":"https://api.github.com/repos/apache/pulsar/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/pulsar/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/pulsar/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/pulsar/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/pulsar/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/pulsar/languages","stargazers_url":"https://api.github.com/repos/apache/pulsar/stargazers","contributors_url":"https://api.github.com/repos/apache/pulsar/contributors","subscribers_url":"https://api.github.com/repos/apache/pulsar/subscribers","subscription_url":"https://api.github.com/repos/apache/pulsar/subscription","commits_url":"https://api.github.com/repos/apache/pulsar/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/pulsar/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/pulsar/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/pulsar/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/pulsar/contents/{+path}","compare_url":"https://api.github.com/repos/apache/pulsar/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/pulsar/merges","archive_url":"https://api.github.com/repos/apache/pulsar/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/pulsar/downloads","issues_url":"https://api.github.com/repos/apache/pulsar/issues{/number}","pulls_url":"https://api.github.com/repos/apache/pulsar/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/pulsar/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/pulsar/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/pulsar/labels{/name}","releases_url":"https://api.github.com/repos/apache/pulsar/releases{/id}","deployments_url":"https://api.github.com/repos/apache/pulsar/deployments","created_at":"2016-06-28T07:00:03Z","updated_at":"2018-10-24T16:14:58Z","pushed_at":"2018-10-24T17:13:05Z","git_url":"git://github.com/apache/pulsar.git","ssh_url":"git@github.com:apache/pulsar.git","clone_url":"https://github.com/apache/pulsar.git","svn_url":"https://github.com/apache/pulsar","homepage":"https://pulsar.apache.org","size":63878,"stargazers_count":2424,"watchers_count":2424,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":494,"mirror_url":null,"archived":false,"open_issues_count":201,"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":494,"open_issues":201,"watchers":2424,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/pulsar/pulls/2836"},"html":{"href":"https://github.com/apache/pulsar/pull/2836"},"issue":{"href":"https://api.github.com/repos/apache/pulsar/issues/2836"},"comments":{"href":"https://api.github.com/repos/apache/pulsar/issues/2836/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/pulsar/pulls/2836/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/pulsar/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/pulsar/pulls/2836/commits"},"statuses":{"href":"https://api.github.com/repos/apache/pulsar/statuses/bb4afc91f68fbee43a32d2e1ec90271a63212c44"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":21,"deletions":1,"changed_files":2}}
{"actor":{"display_login":"rdhabalia"}}