{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/comments/209241524","pull_request_review_id":145218790,"id":209241524,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwOTI0MTUyNA==","diff_hunk":"@@ -0,0 +1,464 @@\n+/*\n+Copyright 2018 The Kubernetes Authors.\n+\n+Licensed under the Apache License, Version 2.0 (the \"License\");\n+you may not use this file except in compliance with the License.\n+You may obtain a copy of the License at\n+\n+    http://www.apache.org/licenses/LICENSE-2.0\n+\n+Unless required by applicable law or agreed to in writing, software\n+distributed under the License is distributed on an \"AS IS\" BASIS,\n+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+See the License for the specific language governing permissions and\n+limitations under the License.\n+*/\n+\n+package servicednsendpoint\n+\n+import (\n+\t\"fmt\"\n+\t\"net\"\n+\t\"reflect\"\n+\t\"sort\"\n+\t\"strings\"\n+\t\"time\"\n+\n+\t\"github.com/golang/glog\"\n+\n+\tcorev1 \"k8s.io/api/core/v1\"\n+\t\"k8s.io/apimachinery/pkg/api/errors\"\n+\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n+\tpkgruntime \"k8s.io/apimachinery/pkg/runtime\"\n+\t\"k8s.io/apimachinery/pkg/util/runtime\"\n+\t\"k8s.io/apimachinery/pkg/util/sets\"\n+\t\"k8s.io/apimachinery/pkg/util/wait\"\n+\t\"k8s.io/apimachinery/pkg/watch\"\n+\trestclient \"k8s.io/client-go/rest\"\n+\t\"k8s.io/client-go/tools/cache\"\n+\t\"k8s.io/client-go/util/workqueue\"\n+\n+\tfeddnsv1a1 \"github.com/kubernetes-sigs/federation-v2/pkg/apis/multiclusterdns/v1alpha1\"\n+\tfedclientset \"github.com/kubernetes-sigs/federation-v2/pkg/client/clientset/versioned\"\n+)\n+\n+const (\n+\t// minDNSTTL is the minimum safe DNS TTL value to use (in seconds).  We use this as the TTL for all DNS records.\n+\tminDNSTTL = 180\n+\n+\tminRetryDelay = 5 * time.Second\n+\tmaxRetryDelay = 300 * time.Second\n+\tmaxRetries    = 5\n+\n+\tuserAgent = \"ServiceDNSEndpoint\"\n+)\n+\n+type ServiceDNSEndpointController struct {\n+\t// Client to federation api server\n+\tclient fedclientset.Interface\n+\t// Informer Store for ServiceDNS objects\n+\tserviceDNSObjectStore cache.Store\n+\t// Informer controller for ServiceDNS objects\n+\tserviceDNSObjectController cache.Controller\n+\n+\tqueue         workqueue.RateLimitingInterface\n+\tminRetryDelay time.Duration\n+\tmaxRetryDelay time.Duration\n+}\n+\n+func StartController(config *restclient.Config, stopChan <-chan struct{}, minimizeLatency bool) error {\n+\trestclient.AddUserAgent(config, userAgent)\n+\tfedClient := fedclientset.NewForConfigOrDie(config)\n+\n+\tcontroller, err := newServiceDNSEndpointController(fedClient, minimizeLatency)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tgo controller.Run(stopChan, 2)\n+\treturn nil\n+}\n+\n+func newServiceDNSEndpointController(client fedclientset.Interface, minimizeLatency bool) (*ServiceDNSEndpointController, error) {\n+\td := &ServiceDNSEndpointController{\n+\t\tclient: client,\n+\t}\n+\n+\t// Start informer in federated API servers on DNS objects\n+\t// TODO: Change this to shared informer\n+\td.serviceDNSObjectStore, d.serviceDNSObjectController = cache.NewInformer(\n+\t\t&cache.ListWatch{\n+\t\t\tListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) {\n+\t\t\t\treturn client.MulticlusterdnsV1alpha1().MultiClusterServiceDNSRecords(metav1.NamespaceAll).List(options)\n+\t\t\t},\n+\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n+\t\t\t\treturn client.MulticlusterdnsV1alpha1().MultiClusterServiceDNSRecords(metav1.NamespaceAll).Watch(options)\n+\t\t\t},\n+\t\t},\n+\t\t&feddnsv1a1.MultiClusterServiceDNSRecord{},\n+\t\t0,","path":"pkg/controller/servicednsendpoint/servicednsendpoint_controller.go","position":null,"original_position":98,"commit_id":"afb8c71cd5208b8a47650d5d7f4f6cbd7e2fcec4","original_commit_id":"019fe88de3c8cd2d4a8d11a7da0a2a6bc8a41970","user":{"login":"shashidharatd","id":8734900,"node_id":"MDQ6VXNlcjg3MzQ5MDA=","avatar_url":"https://avatars3.githubusercontent.com/u/8734900?v=4","gravatar_id":"","url":"https://api.github.com/users/shashidharatd","html_url":"https://github.com/shashidharatd","followers_url":"https://api.github.com/users/shashidharatd/followers","following_url":"https://api.github.com/users/shashidharatd/following{/other_user}","gists_url":"https://api.github.com/users/shashidharatd/gists{/gist_id}","starred_url":"https://api.github.com/users/shashidharatd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shashidharatd/subscriptions","organizations_url":"https://api.github.com/users/shashidharatd/orgs","repos_url":"https://api.github.com/users/shashidharatd/repos","events_url":"https://api.github.com/users/shashidharatd/events{/privacy}","received_events_url":"https://api.github.com/users/shashidharatd/received_events","type":"User","site_admin":false},"body":"Done","created_at":"2018-08-10T12:25:36Z","updated_at":"2018-08-10T12:25:36Z","html_url":"https://github.com/kubernetes-sigs/federation-v2/pull/186#discussion_r209241524","pull_request_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/comments/209241524"},"html":{"href":"https://github.com/kubernetes-sigs/federation-v2/pull/186#discussion_r209241524"},"pull_request":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186"}},"in_reply_to_id":206916849},"pull_request":{"url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186","id":203624074,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzNjI0MDc0","html_url":"https://github.com/kubernetes-sigs/federation-v2/pull/186","diff_url":"https://github.com/kubernetes-sigs/federation-v2/pull/186.diff","patch_url":"https://github.com/kubernetes-sigs/federation-v2/pull/186.patch","issue_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/186","number":186,"state":"open","locked":false,"title":"Serve DNS endpoints from CRD","user":{"login":"shashidharatd","id":8734900,"node_id":"MDQ6VXNlcjg3MzQ5MDA=","avatar_url":"https://avatars3.githubusercontent.com/u/8734900?v=4","gravatar_id":"","url":"https://api.github.com/users/shashidharatd","html_url":"https://github.com/shashidharatd","followers_url":"https://api.github.com/users/shashidharatd/followers","following_url":"https://api.github.com/users/shashidharatd/following{/other_user}","gists_url":"https://api.github.com/users/shashidharatd/gists{/gist_id}","starred_url":"https://api.github.com/users/shashidharatd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shashidharatd/subscriptions","organizations_url":"https://api.github.com/users/shashidharatd/orgs","repos_url":"https://api.github.com/users/shashidharatd/repos","events_url":"https://api.github.com/users/shashidharatd/events{/privacy}","received_events_url":"https://api.github.com/users/shashidharatd/received_events","type":"User","site_admin":false},"body":"This pr adds a new CRD `DNSEndpoint` in `multiclusterdns.federation.k8s.io` group which contains list of `DNS endpoints` in status. These DNS endpoints have the same structure as defined in `external-dns`. https://github.com/kubernetes-incubator/external-dns/blob/master/endpoint/endpoint.go#L111\r\n\r\nA new controller `servicednsendpoint` is also added which monitors `MultiClusterServiceDNSRecord` objects and creates/updates/deletes the corresponding `DNSEndpoint` objects and is responsible for implementing the `cross-cluster service discovery` feature by putting out the DNS records for the federated service.\r\n\r\nFurther to this external-dns needs to have a generic source which can list the `DNSEndpoint` CRD objects and extract DNS Endpoints. (Note: there is no source level dependency bw federation-v2 and external-dns repos). I have already implemented this `generic source` and will raise a pr to external-dns.\r\n\r\nNote: We will not be using the DNS provider library from federation v1 and instead delegate writing DNS names to specific providers using `external-dns`.\r\n\r\n/cc @pmorie @marun @kubernetes-sigs/federation-wg \r\n\r\np.s: I am adding tests for the code and have raised this pr to get comments on overall direction.","created_at":"2018-07-24T19:01:54Z","updated_at":"2018-08-10T12:25:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"154471760d8b62252f85d008d677cb6954736ce3","assignee":null,"assignees":[],"requested_reviewers":[{"login":"pmorie","id":366488,"node_id":"MDQ6VXNlcjM2NjQ4OA==","avatar_url":"https://avatars2.githubusercontent.com/u/366488?v=4","gravatar_id":"","url":"https://api.github.com/users/pmorie","html_url":"https://github.com/pmorie","followers_url":"https://api.github.com/users/pmorie/followers","following_url":"https://api.github.com/users/pmorie/following{/other_user}","gists_url":"https://api.github.com/users/pmorie/gists{/gist_id}","starred_url":"https://api.github.com/users/pmorie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pmorie/subscriptions","organizations_url":"https://api.github.com/users/pmorie/orgs","repos_url":"https://api.github.com/users/pmorie/repos","events_url":"https://api.github.com/users/pmorie/events{/privacy}","received_events_url":"https://api.github.com/users/pmorie/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":909764227,"node_id":"MDU6TGFiZWw5MDk3NjQyMjc=","url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/labels/approved","name":"approved","color":"0ffa16","default":false},{"id":888036019,"node_id":"MDU6TGFiZWw4ODgwMzYwMTk=","url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":888036092,"node_id":"MDU6TGFiZWw4ODgwMzYwOTI=","url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/labels/size/XXL","name":"size/XXL","color":"ee0000","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186/commits","review_comments_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186/comments","review_comment_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/186/comments","statuses_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/statuses/afb8c71cd5208b8a47650d5d7f4f6cbd7e2fcec4","head":{"label":"shashidharatd:dns-endpoints","ref":"dns-endpoints","sha":"afb8c71cd5208b8a47650d5d7f4f6cbd7e2fcec4","user":{"login":"shashidharatd","id":8734900,"node_id":"MDQ6VXNlcjg3MzQ5MDA=","avatar_url":"https://avatars3.githubusercontent.com/u/8734900?v=4","gravatar_id":"","url":"https://api.github.com/users/shashidharatd","html_url":"https://github.com/shashidharatd","followers_url":"https://api.github.com/users/shashidharatd/followers","following_url":"https://api.github.com/users/shashidharatd/following{/other_user}","gists_url":"https://api.github.com/users/shashidharatd/gists{/gist_id}","starred_url":"https://api.github.com/users/shashidharatd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shashidharatd/subscriptions","organizations_url":"https://api.github.com/users/shashidharatd/orgs","repos_url":"https://api.github.com/users/shashidharatd/repos","events_url":"https://api.github.com/users/shashidharatd/events{/privacy}","received_events_url":"https://api.github.com/users/shashidharatd/received_events","type":"User","site_admin":false},"repo":{"id":124896381,"node_id":"MDEwOlJlcG9zaXRvcnkxMjQ4OTYzODE=","name":"federation-v2","full_name":"shashidharatd/federation-v2","owner":{"login":"shashidharatd","id":8734900,"node_id":"MDQ6VXNlcjg3MzQ5MDA=","avatar_url":"https://avatars3.githubusercontent.com/u/8734900?v=4","gravatar_id":"","url":"https://api.github.com/users/shashidharatd","html_url":"https://github.com/shashidharatd","followers_url":"https://api.github.com/users/shashidharatd/followers","following_url":"https://api.github.com/users/shashidharatd/following{/other_user}","gists_url":"https://api.github.com/users/shashidharatd/gists{/gist_id}","starred_url":"https://api.github.com/users/shashidharatd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shashidharatd/subscriptions","organizations_url":"https://api.github.com/users/shashidharatd/orgs","repos_url":"https://api.github.com/users/shashidharatd/repos","events_url":"https://api.github.com/users/shashidharatd/events{/privacy}","received_events_url":"https://api.github.com/users/shashidharatd/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/shashidharatd/federation-v2","description":"Kubernetes Federation v2 Prototype","fork":true,"url":"https://api.github.com/repos/shashidharatd/federation-v2","forks_url":"https://api.github.com/repos/shashidharatd/federation-v2/forks","keys_url":"https://api.github.com/repos/shashidharatd/federation-v2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shashidharatd/federation-v2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shashidharatd/federation-v2/teams","hooks_url":"https://api.github.com/repos/shashidharatd/federation-v2/hooks","issue_events_url":"https://api.github.com/repos/shashidharatd/federation-v2/issues/events{/number}","events_url":"https://api.github.com/repos/shashidharatd/federation-v2/events","assignees_url":"https://api.github.com/repos/shashidharatd/federation-v2/assignees{/user}","branches_url":"https://api.github.com/repos/shashidharatd/federation-v2/branches{/branch}","tags_url":"https://api.github.com/repos/shashidharatd/federation-v2/tags","blobs_url":"https://api.github.com/repos/shashidharatd/federation-v2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shashidharatd/federation-v2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shashidharatd/federation-v2/git/refs{/sha}","trees_url":"https://api.github.com/repos/shashidharatd/federation-v2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shashidharatd/federation-v2/statuses/{sha}","languages_url":"https://api.github.com/repos/shashidharatd/federation-v2/languages","stargazers_url":"https://api.github.com/repos/shashidharatd/federation-v2/stargazers","contributors_url":"https://api.github.com/repos/shashidharatd/federation-v2/contributors","subscribers_url":"https://api.github.com/repos/shashidharatd/federation-v2/subscribers","subscription_url":"https://api.github.com/repos/shashidharatd/federation-v2/subscription","commits_url":"https://api.github.com/repos/shashidharatd/federation-v2/commits{/sha}","git_commits_url":"https://api.github.com/repos/shashidharatd/federation-v2/git/commits{/sha}","comments_url":"https://api.github.com/repos/shashidharatd/federation-v2/comments{/number}","issue_comment_url":"https://api.github.com/repos/shashidharatd/federation-v2/issues/comments{/number}","contents_url":"https://api.github.com/repos/shashidharatd/federation-v2/contents/{+path}","compare_url":"https://api.github.com/repos/shashidharatd/federation-v2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shashidharatd/federation-v2/merges","archive_url":"https://api.github.com/repos/shashidharatd/federation-v2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shashidharatd/federation-v2/downloads","issues_url":"https://api.github.com/repos/shashidharatd/federation-v2/issues{/number}","pulls_url":"https://api.github.com/repos/shashidharatd/federation-v2/pulls{/number}","milestones_url":"https://api.github.com/repos/shashidharatd/federation-v2/milestones{/number}","notifications_url":"https://api.github.com/repos/shashidharatd/federation-v2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shashidharatd/federation-v2/labels{/name}","releases_url":"https://api.github.com/repos/shashidharatd/federation-v2/releases{/id}","deployments_url":"https://api.github.com/repos/shashidharatd/federation-v2/deployments","created_at":"2018-03-12T13:50:37Z","updated_at":"2018-07-10T12:45:08Z","pushed_at":"2018-08-10T12:17:52Z","git_url":"git://github.com/shashidharatd/federation-v2.git","ssh_url":"git@github.com:shashidharatd/federation-v2.git","clone_url":"https://github.com/shashidharatd/federation-v2.git","svn_url":"https://github.com/shashidharatd/federation-v2","homepage":"","size":62891,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"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":0,"default_branch":"master"}},"base":{"label":"kubernetes-sigs:master","ref":"master","sha":"08e12aa8c108fb32eb2e04d97fd85990afbc48f0","user":{"login":"kubernetes-sigs","id":36015203,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MDE1MjAz","avatar_url":"https://avatars1.githubusercontent.com/u/36015203?v=4","gravatar_id":"","url":"https://api.github.com/users/kubernetes-sigs","html_url":"https://github.com/kubernetes-sigs","followers_url":"https://api.github.com/users/kubernetes-sigs/followers","following_url":"https://api.github.com/users/kubernetes-sigs/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-sigs/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-sigs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-sigs/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-sigs/orgs","repos_url":"https://api.github.com/users/kubernetes-sigs/repos","events_url":"https://api.github.com/users/kubernetes-sigs/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-sigs/received_events","type":"Organization","site_admin":false},"repo":{"id":116825580,"node_id":"MDEwOlJlcG9zaXRvcnkxMTY4MjU1ODA=","name":"federation-v2","full_name":"kubernetes-sigs/federation-v2","owner":{"login":"kubernetes-sigs","id":36015203,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MDE1MjAz","avatar_url":"https://avatars1.githubusercontent.com/u/36015203?v=4","gravatar_id":"","url":"https://api.github.com/users/kubernetes-sigs","html_url":"https://github.com/kubernetes-sigs","followers_url":"https://api.github.com/users/kubernetes-sigs/followers","following_url":"https://api.github.com/users/kubernetes-sigs/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-sigs/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-sigs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-sigs/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-sigs/orgs","repos_url":"https://api.github.com/users/kubernetes-sigs/repos","events_url":"https://api.github.com/users/kubernetes-sigs/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-sigs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kubernetes-sigs/federation-v2","description":"Kubernetes Federation v2 Prototype","fork":false,"url":"https://api.github.com/repos/kubernetes-sigs/federation-v2","forks_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/forks","keys_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/teams","hooks_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/hooks","issue_events_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/events","assignees_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/tags","blobs_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/languages","stargazers_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/stargazers","contributors_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/contributors","subscribers_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/subscribers","subscription_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/subscription","commits_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/merges","archive_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/downloads","issues_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes-sigs/federation-v2/deployments","created_at":"2018-01-09T14:21:03Z","updated_at":"2018-08-10T01:30:16Z","pushed_at":"2018-08-10T12:17:54Z","git_url":"git://github.com/kubernetes-sigs/federation-v2.git","ssh_url":"git@github.com:kubernetes-sigs/federation-v2.git","clone_url":"https://github.com/kubernetes-sigs/federation-v2.git","svn_url":"https://github.com/kubernetes-sigs/federation-v2","homepage":"","size":62920,"stargazers_count":55,"watchers_count":55,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"archived":false,"open_issues_count":46,"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":20,"open_issues":46,"watchers":55,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186"},"html":{"href":"https://github.com/kubernetes-sigs/federation-v2/pull/186"},"issue":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/186"},"comments":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/issues/186/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/pulls/186/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes-sigs/federation-v2/statuses/afb8c71cd5208b8a47650d5d7f4f6cbd7e2fcec4"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"shashidharatd"}}