{"action":"created","comment":{"url":"https://api.github.com/repos/openshift/online-hibernation/pulls/comments/151680174","pull_request_review_id":77417176,"id":151680174,"diff_hunk":"@@ -0,0 +1,467 @@\n+package idling\n+\n+import (\n+\t\"log\"\n+\t\"os\"\n+\t\"testing\"\n+\t\"time\"\n+\n+\t\"github.com/openshift/online-hibernation/pkg/cache\"\n+\n+\t\"github.com/openshift/origin/pkg/client/testclient\"\n+\t\"github.com/openshift/origin/pkg/cmd/util/clientcmd\"\n+\tdeployapi \"github.com/openshift/origin/pkg/deploy/api\"\n+\t\"github.com/stretchr/testify/assert\"\n+\n+\t\"github.com/spf13/pflag\"\n+\n+\tkapi \"k8s.io/kubernetes/pkg/api\"\n+\t\"k8s.io/kubernetes/pkg/api/resource\"\n+\t\"k8s.io/kubernetes/pkg/api/unversioned\"\n+\tktestclient \"k8s.io/kubernetes/pkg/client/unversioned/testclient\"\n+\t\"k8s.io/kubernetes/pkg/runtime\"\n+\t\"k8s.io/kubernetes/pkg/types\"\n+)\n+\n+func init() {\n+\tlog.SetOutput(os.Stdout)\n+}\n+\n+func TestSync(t *testing.T) {\n+\ttests := []struct {\n+\t\tname                   string\n+\t\tidleDryRun             bool\n+\t\texclude                map[string]bool\n+\t\tnetmap                 map[string]float64\n+\t\tdeploymentConfigs      []*deployapi.DeploymentConfig\n+\t\tpods                   []*kapi.Pod\n+\t\tservices               []*kapi.Service\n+\t\treplicationControllers []*kapi.ReplicationController\n+\t\tresources              []*cache.ResourceObject\n+\t\titems_in_queue         int\n+\t\tqueue_key              string\n+\t}{\n+\t\t{\n+\t\t\tname:       \"Item is added to queue\",\n+\t\t\tidleDryRun: false,\n+\t\t\tnetmap:     map[string]float64{\"somens2\": 1000, \"somens1\": 1000},\n+\t\t\texclude:    map[string]bool{\"somens1\": true},\n+\t\t\tpods: []*kapi.Pod{\n+\t\t\t\tpod(\"somepod1\", \"somens1\", map[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tpod(\"somepod2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\tservices: []*kapi.Service{\n+\t\t\t\tsvc(\"somesvc1\", \"somens1\", map[string]string{\"foo\": \"bar\"}),\n+\t\t\t\tsvc(\"somesvc2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\treplicationControllers: []*kapi.ReplicationController{\n+\t\t\t\trc(\"somerc1\", \"somens1\"),\n+\t\t\t\trc(\"somerc2\", \"somens2\"),\n+\t\t\t},\n+\t\t\tdeploymentConfigs: []*deployapi.DeploymentConfig{\n+\t\t\t\tdc(\"apoddc\", \"somens1\", map[string]string{\"app\": \"anapp\"}),\n+\t\t\t\tdc(\"anotherpoddc\", \"somens2\", map[string]string{\"app\": \"anotherapp\"}),\n+\t\t\t},\n+\t\t\tresources: []*cache.ResourceObject{\n+\t\t\t\tprojectResource(\"somens1\", false),\n+\t\t\t\tprojectResource(\"somens2\", false),\n+\t\t\t\trcResource(\"somerc1\", \"somerc1\", \"somens1\", \"1\", \"apoddc\", []*cache.RunningTime{\n+\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t}),\n+\t\t\t\trcResource(\"somerc2\", \"somerc2\", \"somens2\", \"1\", \"anotherpoddc\", []*cache.RunningTime{\n+\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t}),\n+\t\t\t\tpodResource(\"somepod1\", \"somepod1\", \"somens1\", \"1\",\n+\t\t\t\t\tresource.MustParse(\"500M\"),\n+\t\t\t\t\t[]*cache.RunningTime{\n+\t\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t\t},\n+\t\t\t\t\tmap[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tpodResource(\"somepod2\", \"somepod2\", \"somens2\", \"2\",\n+\t\t\t\t\tresource.MustParse(\"1G\"),\n+\t\t\t\t\t[]*cache.RunningTime{\n+\t\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t\t},\n+\t\t\t\t\tmap[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t\tsvcResource(\"1234\", \"somesvc1\", \"somens1\", \"1\", map[string]string{\"foo\": \"bar\"}),\n+\t\t\t\tsvcResource(\"5678\", \"somesvc2\", \"somens2\", \"2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\titems_in_queue: 1,\n+\t\t\tqueue_key:      \"somens2\",\n+\t\t},\n+\t\t{\n+\t\t\tname:       \"Projects in excluded namespaces are not added to queue\",\n+\t\t\tidleDryRun: false,\n+\t\t\tnetmap:     map[string]float64{\"somens2\": 1000, \"somens1\": 1000},\n+\t\t\texclude:    map[string]bool{\"somens2\": true},\n+\t\t\tpods: []*kapi.Pod{\n+\t\t\t\tpod(\"somepod2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\tservices: []*kapi.Service{\n+\t\t\t\tsvc(\"somesvc2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\treplicationControllers: []*kapi.ReplicationController{\n+\t\t\t\trc(\"somerc2\", \"somens2\"),\n+\t\t\t},\n+\t\t\tdeploymentConfigs: []*deployapi.DeploymentConfig{\n+\t\t\t\tdc(\"anotherpoddc\", \"somens2\", map[string]string{\"app\": \"anotherapp\"}),\n+\t\t\t},\n+\t\t\tresources: []*cache.ResourceObject{\n+\t\t\t\tprojectResource(\"somens2\", false),\n+\t\t\t\trcResource(\"somerc2\", \"somerc2\", \"somens2\", \"1\", \"anotherpoddc\", []*cache.RunningTime{\n+\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t}),\n+\t\t\t\tpodResource(\"somepod2\", \"somepod2\", \"somens2\", \"2\",\n+\t\t\t\t\tresource.MustParse(\"1G\"),\n+\t\t\t\t\t[]*cache.RunningTime{\n+\t\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t\t},\n+\t\t\t\t\tmap[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t\tsvcResource(\"5678\", \"somesvc2\", \"somens2\", \"2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\titems_in_queue: 0,\n+\t\t\tqueue_key:      \"none\",\n+\t\t},\n+\t\t{\n+\t\t\tname:       \"2 items should be  added to queue\",\n+\t\t\tidleDryRun: false,\n+\t\t\tnetmap:     map[string]float64{\"somens2\": 1000, \"somens1\": 1000},\n+\t\t\texclude:    map[string]bool{\"\": true},\n+\t\t\tpods: []*kapi.Pod{\n+\t\t\t\tpod(\"somepod1\", \"somens1\", map[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tpod(\"somepod2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\tservices: []*kapi.Service{\n+\t\t\t\tsvc(\"somesvc1\", \"somens1\", map[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tsvc(\"somesvc2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\treplicationControllers: []*kapi.ReplicationController{\n+\t\t\t\trc(\"somerc1\", \"somens1\"),\n+\t\t\t\trc(\"somerc2\", \"somens2\"),\n+\t\t\t},\n+\t\t\tdeploymentConfigs: []*deployapi.DeploymentConfig{\n+\t\t\t\tdc(\"apoddc\", \"somens1\", map[string]string{\"app\": \"anapp\"}),\n+\t\t\t\tdc(\"anotherpoddc\", \"somens2\", map[string]string{\"app\": \"anotherapp\"}),\n+\t\t\t},\n+\t\t\tresources: []*cache.ResourceObject{\n+\t\t\t\tprojectResource(\"somens1\", false),\n+\t\t\t\tprojectResource(\"somens2\", false),\n+\t\t\t\trcResource(\"somerc1\", \"somerc1\", \"somens1\", \"1\", \"apoddc\", []*cache.RunningTime{\n+\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t}),\n+\t\t\t\trcResource(\"somerc2\", \"somerc2\", \"somens2\", \"1\", \"anotherpoddc\", []*cache.RunningTime{\n+\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t}),\n+\t\t\t\tpodResource(\"somepod1\", \"somepod1\", \"somens1\", \"1\",\n+\t\t\t\t\tresource.MustParse(\"500M\"),\n+\t\t\t\t\t[]*cache.RunningTime{\n+\t\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t\t},\n+\t\t\t\t\tmap[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tpodResource(\"somepod2\", \"somepod2\", \"somens2\", \"2\",\n+\t\t\t\t\tresource.MustParse(\"1G\"),\n+\t\t\t\t\t[]*cache.RunningTime{\n+\t\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t\t},\n+\t\t\t\t\tmap[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t\tsvcResource(\"1234\", \"somesvc1\", \"somens1\", \"1\", map[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tsvcResource(\"5678\", \"somesvc2\", \"somens2\", \"2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\titems_in_queue: 2,\n+\t\t\tqueue_key:      \"somens1\",\n+\t\t},\n+\t\t{\n+\t\t\tname:       \"2 items are scalable, but in IdleDryRun, queue should have 0 items\",\n+\t\t\tidleDryRun: true,\n+\t\t\tnetmap:     map[string]float64{\"somens2\": 1000, \"somens1\": 1000},\n+\t\t\texclude:    map[string]bool{\"\": true},\n+\t\t\tpods: []*kapi.Pod{\n+\t\t\t\tpod(\"somepod1\", \"somens1\", map[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tpod(\"somepod2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\tservices: []*kapi.Service{\n+\t\t\t\tsvc(\"somesvc1\", \"somens1\", map[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tsvc(\"somesvc2\", \"somens2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},\n+\t\t\treplicationControllers: []*kapi.ReplicationController{\n+\t\t\t\trc(\"somerc1\", \"somens1\"),\n+\t\t\t\trc(\"somerc2\", \"somens2\"),\n+\t\t\t},\n+\t\t\tdeploymentConfigs: []*deployapi.DeploymentConfig{\n+\t\t\t\tdc(\"apoddc\", \"somens1\", map[string]string{\"app\": \"anapp\"}),\n+\t\t\t\tdc(\"anotherpoddc\", \"somens2\", map[string]string{\"app\": \"anotherapp\"}),\n+\t\t\t},\n+\t\t\tresources: []*cache.ResourceObject{\n+\t\t\t\tprojectResource(\"somens1\", false),\n+\t\t\t\tprojectResource(\"somens2\", false),\n+\t\t\t\trcResource(\"somerc1\", \"somerc1\", \"somens1\", \"1\", \"apoddc\", []*cache.RunningTime{\n+\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t}),\n+\t\t\t\trcResource(\"somerc2\", \"somerc2\", \"somens2\", \"1\", \"anotherpoddc\", []*cache.RunningTime{\n+\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t}),\n+\t\t\t\tpodResource(\"somepod1\", \"somepod1\", \"somens1\", \"1\",\n+\t\t\t\t\tresource.MustParse(\"500M\"),\n+\t\t\t\t\t[]*cache.RunningTime{\n+\t\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t\t},\n+\t\t\t\t\tmap[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tpodResource(\"somepod2\", \"somepod2\", \"somens2\", \"2\",\n+\t\t\t\t\tresource.MustParse(\"1G\"),\n+\t\t\t\t\t[]*cache.RunningTime{\n+\t\t\t\t\t\trunningTime(time.Now().Add(-1*time.Hour),\n+\t\t\t\t\t\t\ttime.Time{}),\n+\t\t\t\t\t},\n+\t\t\t\t\tmap[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t\tsvcResource(\"1234\", \"somesvc1\", \"somens1\", \"1\", map[string]string{\"app\": \"anapp\", \"deploymentconfig\": \"apoddc\"}),\n+\t\t\t\tsvcResource(\"5678\", \"somesvc2\", \"somens2\", \"2\", map[string]string{\"app\": \"anotherapp\", \"deploymentconfig\": \"anotherpoddc\"}),\n+\t\t\t},","path":"pkg/idling/autoidle_test.go","position":179,"original_position":231,"commit_id":"c3d2c41cfcfc00609c6c2df39d7e67be6f22ca48","original_commit_id":"c3d2c41cfcfc00609c6c2df39d7e67be6f22ca48","user":{"login":"dgoodwin","id":51265,"avatar_url":"https://avatars3.githubusercontent.com/u/51265?v=4","gravatar_id":"","url":"https://api.github.com/users/dgoodwin","html_url":"https://github.com/dgoodwin","followers_url":"https://api.github.com/users/dgoodwin/followers","following_url":"https://api.github.com/users/dgoodwin/following{/other_user}","gists_url":"https://api.github.com/users/dgoodwin/gists{/gist_id}","starred_url":"https://api.github.com/users/dgoodwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgoodwin/subscriptions","organizations_url":"https://api.github.com/users/dgoodwin/orgs","repos_url":"https://api.github.com/users/dgoodwin/repos","events_url":"https://api.github.com/users/dgoodwin/events{/privacy}","received_events_url":"https://api.github.com/users/dgoodwin/received_events","type":"User","site_admin":false},"body":"Is there any way we could avoid duplicating all of these pods/rcs/svcs/etc as both objects, and as resources? This looks hard to keep in sync, if we could just define that data once on the test and have the test set it up that would be awesome. Perhaps just define the objects and have the resources automatically created?","created_at":"2017-11-17T13:09:19Z","updated_at":"2017-11-17T13:11:32Z","html_url":"https://github.com/openshift/online-hibernation/pull/18#discussion_r151680174","pull_request_url":"https://api.github.com/repos/openshift/online-hibernation/pulls/18","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/openshift/online-hibernation/pulls/comments/151680174"},"html":{"href":"https://github.com/openshift/online-hibernation/pull/18#discussion_r151680174"},"pull_request":{"href":"https://api.github.com/repos/openshift/online-hibernation/pulls/18"}}},"pull_request":{"url":"https://api.github.com/repos/openshift/online-hibernation/pulls/18","id":150949798,"html_url":"https://github.com/openshift/online-hibernation/pull/18","diff_url":"https://github.com/openshift/online-hibernation/pull/18.diff","patch_url":"https://github.com/openshift/online-hibernation/pull/18.patch","issue_url":"https://api.github.com/repos/openshift/online-hibernation/issues/18","number":18,"state":"open","locked":false,"title":"query prometheus","user":{"login":"sallyom","id":11166065,"avatar_url":"https://avatars1.githubusercontent.com/u/11166065?v=4","gravatar_id":"","url":"https://api.github.com/users/sallyom","html_url":"https://github.com/sallyom","followers_url":"https://api.github.com/users/sallyom/followers","following_url":"https://api.github.com/users/sallyom/following{/other_user}","gists_url":"https://api.github.com/users/sallyom/gists{/gist_id}","starred_url":"https://api.github.com/users/sallyom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sallyom/subscriptions","organizations_url":"https://api.github.com/users/sallyom/orgs","repos_url":"https://api.github.com/users/sallyom/repos","events_url":"https://api.github.com/users/sallyom/events{/privacy}","received_events_url":"https://api.github.com/users/sallyom/received_events","type":"User","site_admin":false},"body":"@abhgupta @dgoodwin here's the prometheus implementation and also the cleanup code from the closed PR: https://github.com/openshift/online-hibernation/pull/17\r\nPR:\r\n* switch from hawkular query to prometheus query\r\n*  change cmd/force-sleep to cmd/hibernate\r\n*  only add projects with pods associated with scalable resource to the queue for idling\r\n* make default goal in Makefile build, not help\r\n* remove Godeps dir from repo\r\n\r\nEDIT: this PR depends on  https://github.com/openshift/online/pull/1544 for deployment","created_at":"2017-11-06T20:21:34Z","updated_at":"2017-11-17T13:11:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"de7b926cdc3b74641988bb946a902716613e2620","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/openshift/online-hibernation/pulls/18/commits","review_comments_url":"https://api.github.com/repos/openshift/online-hibernation/pulls/18/comments","review_comment_url":"https://api.github.com/repos/openshift/online-hibernation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/openshift/online-hibernation/issues/18/comments","statuses_url":"https://api.github.com/repos/openshift/online-hibernation/statuses/c3d2c41cfcfc00609c6c2df39d7e67be6f22ca48","head":{"label":"sallyom:idler-w-prometheus","ref":"idler-w-prometheus","sha":"c3d2c41cfcfc00609c6c2df39d7e67be6f22ca48","user":{"login":"sallyom","id":11166065,"avatar_url":"https://avatars1.githubusercontent.com/u/11166065?v=4","gravatar_id":"","url":"https://api.github.com/users/sallyom","html_url":"https://github.com/sallyom","followers_url":"https://api.github.com/users/sallyom/followers","following_url":"https://api.github.com/users/sallyom/following{/other_user}","gists_url":"https://api.github.com/users/sallyom/gists{/gist_id}","starred_url":"https://api.github.com/users/sallyom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sallyom/subscriptions","organizations_url":"https://api.github.com/users/sallyom/orgs","repos_url":"https://api.github.com/users/sallyom/repos","events_url":"https://api.github.com/users/sallyom/events{/privacy}","received_events_url":"https://api.github.com/users/sallyom/received_events","type":"User","site_admin":false},"repo":{"id":100408669,"name":"online-hibernation","full_name":"sallyom/online-hibernation","owner":{"login":"sallyom","id":11166065,"avatar_url":"https://avatars1.githubusercontent.com/u/11166065?v=4","gravatar_id":"","url":"https://api.github.com/users/sallyom","html_url":"https://github.com/sallyom","followers_url":"https://api.github.com/users/sallyom/followers","following_url":"https://api.github.com/users/sallyom/following{/other_user}","gists_url":"https://api.github.com/users/sallyom/gists{/gist_id}","starred_url":"https://api.github.com/users/sallyom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sallyom/subscriptions","organizations_url":"https://api.github.com/users/sallyom/orgs","repos_url":"https://api.github.com/users/sallyom/repos","events_url":"https://api.github.com/users/sallyom/events{/privacy}","received_events_url":"https://api.github.com/users/sallyom/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sallyom/online-hibernation","description":null,"fork":true,"url":"https://api.github.com/repos/sallyom/online-hibernation","forks_url":"https://api.github.com/repos/sallyom/online-hibernation/forks","keys_url":"https://api.github.com/repos/sallyom/online-hibernation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sallyom/online-hibernation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sallyom/online-hibernation/teams","hooks_url":"https://api.github.com/repos/sallyom/online-hibernation/hooks","issue_events_url":"https://api.github.com/repos/sallyom/online-hibernation/issues/events{/number}","events_url":"https://api.github.com/repos/sallyom/online-hibernation/events","assignees_url":"https://api.github.com/repos/sallyom/online-hibernation/assignees{/user}","branches_url":"https://api.github.com/repos/sallyom/online-hibernation/branches{/branch}","tags_url":"https://api.github.com/repos/sallyom/online-hibernation/tags","blobs_url":"https://api.github.com/repos/sallyom/online-hibernation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sallyom/online-hibernation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sallyom/online-hibernation/git/refs{/sha}","trees_url":"https://api.github.com/repos/sallyom/online-hibernation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sallyom/online-hibernation/statuses/{sha}","languages_url":"https://api.github.com/repos/sallyom/online-hibernation/languages","stargazers_url":"https://api.github.com/repos/sallyom/online-hibernation/stargazers","contributors_url":"https://api.github.com/repos/sallyom/online-hibernation/contributors","subscribers_url":"https://api.github.com/repos/sallyom/online-hibernation/subscribers","subscription_url":"https://api.github.com/repos/sallyom/online-hibernation/subscription","commits_url":"https://api.github.com/repos/sallyom/online-hibernation/commits{/sha}","git_commits_url":"https://api.github.com/repos/sallyom/online-hibernation/git/commits{/sha}","comments_url":"https://api.github.com/repos/sallyom/online-hibernation/comments{/number}","issue_comment_url":"https://api.github.com/repos/sallyom/online-hibernation/issues/comments{/number}","contents_url":"https://api.github.com/repos/sallyom/online-hibernation/contents/{+path}","compare_url":"https://api.github.com/repos/sallyom/online-hibernation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sallyom/online-hibernation/merges","archive_url":"https://api.github.com/repos/sallyom/online-hibernation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sallyom/online-hibernation/downloads","issues_url":"https://api.github.com/repos/sallyom/online-hibernation/issues{/number}","pulls_url":"https://api.github.com/repos/sallyom/online-hibernation/pulls{/number}","milestones_url":"https://api.github.com/repos/sallyom/online-hibernation/milestones{/number}","notifications_url":"https://api.github.com/repos/sallyom/online-hibernation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sallyom/online-hibernation/labels{/name}","releases_url":"https://api.github.com/repos/sallyom/online-hibernation/releases{/id}","deployments_url":"https://api.github.com/repos/sallyom/online-hibernation/deployments","created_at":"2017-08-15T18:50:27Z","updated_at":"2017-08-15T18:50:30Z","pushed_at":"2017-11-17T12:43:18Z","git_url":"git://github.com/sallyom/online-hibernation.git","ssh_url":"git@github.com:sallyom/online-hibernation.git","clone_url":"https://github.com/sallyom/online-hibernation.git","svn_url":"https://github.com/sallyom/online-hibernation","homepage":null,"size":32827,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"openshift:master","ref":"master","sha":"3922713438757003b65626de9f1bff4290ba67cf","user":{"login":"openshift","id":792337,"avatar_url":"https://avatars3.githubusercontent.com/u/792337?v=4","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"repo":{"id":99231409,"name":"online-hibernation","full_name":"openshift/online-hibernation","owner":{"login":"openshift","id":792337,"avatar_url":"https://avatars3.githubusercontent.com/u/792337?v=4","gravatar_id":"","url":"https://api.github.com/users/openshift","html_url":"https://github.com/openshift","followers_url":"https://api.github.com/users/openshift/followers","following_url":"https://api.github.com/users/openshift/following{/other_user}","gists_url":"https://api.github.com/users/openshift/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift/subscriptions","organizations_url":"https://api.github.com/users/openshift/orgs","repos_url":"https://api.github.com/users/openshift/repos","events_url":"https://api.github.com/users/openshift/events{/privacy}","received_events_url":"https://api.github.com/users/openshift/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/openshift/online-hibernation","description":null,"fork":false,"url":"https://api.github.com/repos/openshift/online-hibernation","forks_url":"https://api.github.com/repos/openshift/online-hibernation/forks","keys_url":"https://api.github.com/repos/openshift/online-hibernation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openshift/online-hibernation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openshift/online-hibernation/teams","hooks_url":"https://api.github.com/repos/openshift/online-hibernation/hooks","issue_events_url":"https://api.github.com/repos/openshift/online-hibernation/issues/events{/number}","events_url":"https://api.github.com/repos/openshift/online-hibernation/events","assignees_url":"https://api.github.com/repos/openshift/online-hibernation/assignees{/user}","branches_url":"https://api.github.com/repos/openshift/online-hibernation/branches{/branch}","tags_url":"https://api.github.com/repos/openshift/online-hibernation/tags","blobs_url":"https://api.github.com/repos/openshift/online-hibernation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openshift/online-hibernation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openshift/online-hibernation/git/refs{/sha}","trees_url":"https://api.github.com/repos/openshift/online-hibernation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openshift/online-hibernation/statuses/{sha}","languages_url":"https://api.github.com/repos/openshift/online-hibernation/languages","stargazers_url":"https://api.github.com/repos/openshift/online-hibernation/stargazers","contributors_url":"https://api.github.com/repos/openshift/online-hibernation/contributors","subscribers_url":"https://api.github.com/repos/openshift/online-hibernation/subscribers","subscription_url":"https://api.github.com/repos/openshift/online-hibernation/subscription","commits_url":"https://api.github.com/repos/openshift/online-hibernation/commits{/sha}","git_commits_url":"https://api.github.com/repos/openshift/online-hibernation/git/commits{/sha}","comments_url":"https://api.github.com/repos/openshift/online-hibernation/comments{/number}","issue_comment_url":"https://api.github.com/repos/openshift/online-hibernation/issues/comments{/number}","contents_url":"https://api.github.com/repos/openshift/online-hibernation/contents/{+path}","compare_url":"https://api.github.com/repos/openshift/online-hibernation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openshift/online-hibernation/merges","archive_url":"https://api.github.com/repos/openshift/online-hibernation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openshift/online-hibernation/downloads","issues_url":"https://api.github.com/repos/openshift/online-hibernation/issues{/number}","pulls_url":"https://api.github.com/repos/openshift/online-hibernation/pulls{/number}","milestones_url":"https://api.github.com/repos/openshift/online-hibernation/milestones{/number}","notifications_url":"https://api.github.com/repos/openshift/online-hibernation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openshift/online-hibernation/labels{/name}","releases_url":"https://api.github.com/repos/openshift/online-hibernation/releases{/id}","deployments_url":"https://api.github.com/repos/openshift/online-hibernation/deployments","created_at":"2017-08-03T12:43:06Z","updated_at":"2017-11-06T19:25:52Z","pushed_at":"2017-11-17T01:35:37Z","git_url":"git://github.com/openshift/online-hibernation.git","ssh_url":"git@github.com:openshift/online-hibernation.git","clone_url":"https://github.com/openshift/online-hibernation.git","svn_url":"https://github.com/openshift/online-hibernation","homepage":null,"size":32698,"stargazers_count":2,"watchers_count":2,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":6,"mirror_url":null,"archived":false,"open_issues_count":1,"forks":6,"open_issues":1,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/openshift/online-hibernation/pulls/18"},"html":{"href":"https://github.com/openshift/online-hibernation/pull/18"},"issue":{"href":"https://api.github.com/repos/openshift/online-hibernation/issues/18"},"comments":{"href":"https://api.github.com/repos/openshift/online-hibernation/issues/18/comments"},"review_comments":{"href":"https://api.github.com/repos/openshift/online-hibernation/pulls/18/comments"},"review_comment":{"href":"https://api.github.com/repos/openshift/online-hibernation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/openshift/online-hibernation/pulls/18/commits"},"statuses":{"href":"https://api.github.com/repos/openshift/online-hibernation/statuses/c3d2c41cfcfc00609c6c2df39d7e67be6f22ca48"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"dgoodwin"}}