{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/comments/209729127","pull_request_review_id":145799825,"id":209729127,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwOTcyOTEyNw==","diff_hunk":"@@ -191,19 +198,84 @@ func evictPodsFromTargetNodes(client clientset.Interface, evictionPolicyGroupVer\n \t\tglog.V(3).Infof(\"evicting pods from node %#v with usage: %#v\", node.node.Name, node.usage)\n \t\tcurrentPodsEvicted := nodepodCount[node.node]\n \n-\t\t// evict best effort pods\n-\t\tevictPods(node.bePods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n-\t\t// evict burstable pods\n-\t\tevictPods(node.bPods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n-\t\t// evict guaranteed pods\n-\t\tevictPods(node.gPods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n+\t\t// Check if all pods have priority, if yes, go ahead and sort them based on priority.\n+\t\tif checkIfAllPodsHavePriority(node.allpods) {\n+\t\t\tglog.V(1).Infof(\"All pods have priority associated with them. Evicting pods based on priority\")\n+\t\t\t// sort the evictable Pods based on priority.\n+\t\t\tsortPodsBasedOnPriority(node.allpods)\n+\n+\t\t\t// groupPods based on priority. The output would be a map of {priorityNumber:podList} ex: {1: {pod1, pod2})\n+\t\t\tpodPriorityGroup := priorityToPodMap{}\n+\t\t\tfor _, pod := range node.allpods {\n+\t\t\t\t// TODO: This is O(n^2), we can better this.\n+\t\t\t\tgroupByPodPriority(*pod.Spec.Priority, node.allpods, podPriorityGroup)\n+\t\t\t}\n+\n+\t\t\t// evict pods based on priority.\n+\t\t\tfor _, pods := range podPriorityGroup {\n+\t\t\t\t// Pods within same group needs to evicted based on QoS.\n+\t\t\t\tnonEvictablePods, bePods, bPods, gPods := classifyPods(pods)\n+\t\t\t\tglog.V(1).Infof(\"There are %v non-evictable pods on the node\", len(nonEvictablePods))\n+\t\t\t\tevictPods(bePods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n+\t\t\t\tevictPods(bPods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n+\t\t\t\tevictPods(gPods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n+\t\t\t}\n+\t\t} else {\n+\t\t\t// TODO: Remove this when we support only priority.\n+\t\t\t//  Falling back to evicting pods based on priority.\n+\t\t\tglog.V(1).Infof(\"Evicting pods based on QoS\")\n+\t\t\tglog.V(1).Infof(\"There are %v non-evictable pods on the node\", len(node.nonRemovablePods))\n+\t\t\t// evict best effort pods\n+\t\t\tevictPods(node.bePods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n+\t\t\t// evict burstable pods\n+\t\t\tevictPods(node.bPods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n+\t\t\t// evict guaranteed pods\n+\t\t\tevictPods(node.gPods, client, evictionPolicyGroupVersion, targetThresholds, nodeCapacity, node.usage, &totalPods, &totalCpu, &totalMem, &currentPodsEvicted, dryRun, maxPodsToEvict)\n+\t\t}\n \t\tnodepodCount[node.node] = currentPodsEvicted\n \t\tpodsEvicted = podsEvicted + nodepodCount[node.node]\n \t\tglog.V(1).Infof(\"%v pods evicted from node %#v with usage %v\", nodepodCount[node.node], node.node.Name, node.usage)\n \t}\n \treturn podsEvicted\n }\n \n+// groupByPodPriority groups pods by priorities.\n+func groupByPodPriority(priority int32, pods []*v1.Pod, podGroupByPriority priorityToPodMap) {\n+\tpodsWithSamePriority := []*v1.Pod{}\n+\tfor _, pod := range pods {\n+\t\tif *pod.Spec.Priority == priority {\n+\t\t\tif _, ok := podGroupByPriority[priority]; !ok {\n+\t\t\t\tpodGroupByPriority[priority] = append(podsWithSamePriority, pod)\n+\t\t\t} else {\n+\t\t\t\t// add only if the pod doesn't exist in current list.\n+\t\t\t\tif !checkIfPodExistsInList(pod, podGroupByPriority[priority]) {\n+\t\t\t\t\tpodGroupByPriority[priority] = append(podGroupByPriority[priority], pod)\n+\t\t\t\t}\n+\t\t\t}\n+\t\t}\n+\t}\n+}\n+\n+// checkIfAllPodsHavePriority checks if all the pods in the given pod list have a priority associated with them.\n+func checkIfAllPodsHavePriority(podList []*v1.Pod) bool {\n+\tfor _, pod := range podList {","path":"pkg/descheduler/strategies/lownodeutilization.go","position":125,"original_position":125,"commit_id":"9915f7e9a1b366b4563d9b3b360cd4e8af3e367d","original_commit_id":"9915f7e9a1b366b4563d9b3b360cd4e8af3e367d","user":{"login":"ravisantoshgudimetla","id":11657829,"node_id":"MDQ6VXNlcjExNjU3ODI5","avatar_url":"https://avatars3.githubusercontent.com/u/11657829?v=4","gravatar_id":"","url":"https://api.github.com/users/ravisantoshgudimetla","html_url":"https://github.com/ravisantoshgudimetla","followers_url":"https://api.github.com/users/ravisantoshgudimetla/followers","following_url":"https://api.github.com/users/ravisantoshgudimetla/following{/other_user}","gists_url":"https://api.github.com/users/ravisantoshgudimetla/gists{/gist_id}","starred_url":"https://api.github.com/users/ravisantoshgudimetla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ravisantoshgudimetla/subscriptions","organizations_url":"https://api.github.com/users/ravisantoshgudimetla/orgs","repos_url":"https://api.github.com/users/ravisantoshgudimetla/repos","events_url":"https://api.github.com/users/ravisantoshgudimetla/events{/privacy}","received_events_url":"https://api.github.com/users/ravisantoshgudimetla/received_events","type":"User","site_admin":false},"body":"Well, I am not sure, if priority admission plugin is enabled after some pods are created, there could be some pods that don't have priority.(Because admission controller is run on create/update). While I did not test this scenario, I think this could be a problem, that's why I ran for entire set of pods on the node. This also ensures that the subsequent sorting of pods based on priority won't fail.","created_at":"2018-08-13T19:25:27Z","updated_at":"2018-08-13T19:25:27Z","html_url":"https://github.com/kubernetes-incubator/descheduler/pull/105#discussion_r209729127","pull_request_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/comments/209729127"},"html":{"href":"https://github.com/kubernetes-incubator/descheduler/pull/105#discussion_r209729127"},"pull_request":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105"}},"in_reply_to_id":209724585},"pull_request":{"url":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105","id":205754871,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA1NzU0ODcx","html_url":"https://github.com/kubernetes-incubator/descheduler/pull/105","diff_url":"https://github.com/kubernetes-incubator/descheduler/pull/105.diff","patch_url":"https://github.com/kubernetes-incubator/descheduler/pull/105.patch","issue_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/issues/105","number":105,"state":"open","locked":false,"title":"Low node utilization to respect priority while evicting pods","user":{"login":"ravisantoshgudimetla","id":11657829,"node_id":"MDQ6VXNlcjExNjU3ODI5","avatar_url":"https://avatars3.githubusercontent.com/u/11657829?v=4","gravatar_id":"","url":"https://api.github.com/users/ravisantoshgudimetla","html_url":"https://github.com/ravisantoshgudimetla","followers_url":"https://api.github.com/users/ravisantoshgudimetla/followers","following_url":"https://api.github.com/users/ravisantoshgudimetla/following{/other_user}","gists_url":"https://api.github.com/users/ravisantoshgudimetla/gists{/gist_id}","starred_url":"https://api.github.com/users/ravisantoshgudimetla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ravisantoshgudimetla/subscriptions","organizations_url":"https://api.github.com/users/ravisantoshgudimetla/orgs","repos_url":"https://api.github.com/users/ravisantoshgudimetla/repos","events_url":"https://api.github.com/users/ravisantoshgudimetla/events{/privacy}","received_events_url":"https://api.github.com/users/ravisantoshgudimetla/received_events","type":"User","site_admin":false},"body":"This PR introduces the notion of priority while evicting pods. Also, updated existing test cases to reflect the same. Some of the e2e's may fail which I will work on.","created_at":"2018-08-02T14:29:37Z","updated_at":"2018-08-13T19:25:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"049dd0bc034e05f1aa044287b206fb5d9c12f694","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":691566093,"node_id":"MDU6TGFiZWw2OTE1NjYwOTM=","url":"https://api.github.com/repos/kubernetes-incubator/descheduler/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"ededed","default":false},{"id":691691954,"node_id":"MDU6TGFiZWw2OTE2OTE5NTQ=","url":"https://api.github.com/repos/kubernetes-incubator/descheduler/labels/size/L","name":"size/L","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105/commits","review_comments_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105/comments","review_comment_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/issues/105/comments","statuses_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/statuses/9915f7e9a1b366b4563d9b3b360cd4e8af3e367d","head":{"label":"ravisantoshgudimetla:priority-low-node","ref":"priority-low-node","sha":"9915f7e9a1b366b4563d9b3b360cd4e8af3e367d","user":{"login":"ravisantoshgudimetla","id":11657829,"node_id":"MDQ6VXNlcjExNjU3ODI5","avatar_url":"https://avatars3.githubusercontent.com/u/11657829?v=4","gravatar_id":"","url":"https://api.github.com/users/ravisantoshgudimetla","html_url":"https://github.com/ravisantoshgudimetla","followers_url":"https://api.github.com/users/ravisantoshgudimetla/followers","following_url":"https://api.github.com/users/ravisantoshgudimetla/following{/other_user}","gists_url":"https://api.github.com/users/ravisantoshgudimetla/gists{/gist_id}","starred_url":"https://api.github.com/users/ravisantoshgudimetla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ravisantoshgudimetla/subscriptions","organizations_url":"https://api.github.com/users/ravisantoshgudimetla/orgs","repos_url":"https://api.github.com/users/ravisantoshgudimetla/repos","events_url":"https://api.github.com/users/ravisantoshgudimetla/events{/privacy}","received_events_url":"https://api.github.com/users/ravisantoshgudimetla/received_events","type":"User","site_admin":false},"repo":{"id":101431442,"node_id":"MDEwOlJlcG9zaXRvcnkxMDE0MzE0NDI=","name":"rescheduler","full_name":"ravisantoshgudimetla/rescheduler","owner":{"login":"ravisantoshgudimetla","id":11657829,"node_id":"MDQ6VXNlcjExNjU3ODI5","avatar_url":"https://avatars3.githubusercontent.com/u/11657829?v=4","gravatar_id":"","url":"https://api.github.com/users/ravisantoshgudimetla","html_url":"https://github.com/ravisantoshgudimetla","followers_url":"https://api.github.com/users/ravisantoshgudimetla/followers","following_url":"https://api.github.com/users/ravisantoshgudimetla/following{/other_user}","gists_url":"https://api.github.com/users/ravisantoshgudimetla/gists{/gist_id}","starred_url":"https://api.github.com/users/ravisantoshgudimetla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ravisantoshgudimetla/subscriptions","organizations_url":"https://api.github.com/users/ravisantoshgudimetla/orgs","repos_url":"https://api.github.com/users/ravisantoshgudimetla/repos","events_url":"https://api.github.com/users/ravisantoshgudimetla/events{/privacy}","received_events_url":"https://api.github.com/users/ravisantoshgudimetla/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ravisantoshgudimetla/rescheduler","description":"Rescheduler for Kubernetes","fork":true,"url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler","forks_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/forks","keys_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/teams","hooks_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/hooks","issue_events_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/issues/events{/number}","events_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/events","assignees_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/assignees{/user}","branches_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/branches{/branch}","tags_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/tags","blobs_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/git/refs{/sha}","trees_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/statuses/{sha}","languages_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/languages","stargazers_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/stargazers","contributors_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/contributors","subscribers_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/subscribers","subscription_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/subscription","commits_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/commits{/sha}","git_commits_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/git/commits{/sha}","comments_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/comments{/number}","issue_comment_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/issues/comments{/number}","contents_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/contents/{+path}","compare_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/merges","archive_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/downloads","issues_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/issues{/number}","pulls_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/pulls{/number}","milestones_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/milestones{/number}","notifications_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/labels{/name}","releases_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/releases{/id}","deployments_url":"https://api.github.com/repos/ravisantoshgudimetla/rescheduler/deployments","created_at":"2017-08-25T18:29:46Z","updated_at":"2018-03-16T13:52:58Z","pushed_at":"2018-08-08T17:14:22Z","git_url":"git://github.com/ravisantoshgudimetla/rescheduler.git","ssh_url":"git@github.com:ravisantoshgudimetla/rescheduler.git","clone_url":"https://github.com/ravisantoshgudimetla/rescheduler.git","svn_url":"https://github.com/ravisantoshgudimetla/rescheduler","homepage":null,"size":42950,"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":1,"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":1,"watchers":0,"default_branch":"master"}},"base":{"label":"kubernetes-incubator:master","ref":"master","sha":"72d6a8aa337e449cfd43c1ad88d9b84f9b9a2244","user":{"login":"kubernetes-incubator","id":20862812,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIwODYyODEy","avatar_url":"https://avatars2.githubusercontent.com/u/20862812?v=4","gravatar_id":"","url":"https://api.github.com/users/kubernetes-incubator","html_url":"https://github.com/kubernetes-incubator","followers_url":"https://api.github.com/users/kubernetes-incubator/followers","following_url":"https://api.github.com/users/kubernetes-incubator/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-incubator/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-incubator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-incubator/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-incubator/orgs","repos_url":"https://api.github.com/users/kubernetes-incubator/repos","events_url":"https://api.github.com/users/kubernetes-incubator/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-incubator/received_events","type":"Organization","site_admin":false},"repo":{"id":98671007,"node_id":"MDEwOlJlcG9zaXRvcnk5ODY3MTAwNw==","name":"descheduler","full_name":"kubernetes-incubator/descheduler","owner":{"login":"kubernetes-incubator","id":20862812,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIwODYyODEy","avatar_url":"https://avatars2.githubusercontent.com/u/20862812?v=4","gravatar_id":"","url":"https://api.github.com/users/kubernetes-incubator","html_url":"https://github.com/kubernetes-incubator","followers_url":"https://api.github.com/users/kubernetes-incubator/followers","following_url":"https://api.github.com/users/kubernetes-incubator/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-incubator/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-incubator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-incubator/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-incubator/orgs","repos_url":"https://api.github.com/users/kubernetes-incubator/repos","events_url":"https://api.github.com/users/kubernetes-incubator/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-incubator/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kubernetes-incubator/descheduler","description":"Descheduler for Kubernetes","fork":false,"url":"https://api.github.com/repos/kubernetes-incubator/descheduler","forks_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/forks","keys_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/teams","hooks_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/hooks","issue_events_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/events","assignees_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/tags","blobs_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/languages","stargazers_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/stargazers","contributors_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/contributors","subscribers_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/subscribers","subscription_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/subscription","commits_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/merges","archive_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/downloads","issues_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes-incubator/descheduler/deployments","created_at":"2017-07-28T17:11:38Z","updated_at":"2018-08-13T04:54:03Z","pushed_at":"2018-08-08T17:14:24Z","git_url":"git://github.com/kubernetes-incubator/descheduler.git","ssh_url":"git@github.com:kubernetes-incubator/descheduler.git","clone_url":"https://github.com/kubernetes-incubator/descheduler.git","svn_url":"https://github.com/kubernetes-incubator/descheduler","homepage":"https://github.com/kubernetes-incubator/descheduler","size":42922,"stargazers_count":245,"watchers_count":245,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":38,"mirror_url":null,"archived":false,"open_issues_count":21,"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":38,"open_issues":21,"watchers":245,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105"},"html":{"href":"https://github.com/kubernetes-incubator/descheduler/pull/105"},"issue":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/issues/105"},"comments":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/issues/105/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/pulls/105/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes-incubator/descheduler/statuses/9915f7e9a1b366b4563d9b3b360cd4e8af3e367d"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"ravisantoshgudimetla"}}