{"action":"created","comment":{"url":"https://api.github.com/repos/openshift/console/pulls/comments/238000835","pull_request_review_id":180418907,"id":238000835,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzODAwMDgzNQ==","diff_hunk":"@@ -0,0 +1,37 @@\n+import * as _ from 'lodash-es';\n+\n+import { referenceForModel } from '../../../../module/k8s';\n+\n+export const getResourceKind = (model, name, namespaced, namespace, isList, matchLabels, matchExpressions) => {\n+  // TODO: do we need `isList` and `prop` here?\n+  const res = { kind: model.kind, namespaced, namespace, isList, prop: model.kind };\n+  if (name) {\n+    res.name = name;\n+  }\n+  if (matchLabels) {\n+    res.selector = { matchLabels };\n+  }\n+  if (matchExpressions) {\n+    res.selector = { matchExpressions };\n+  }\n+  if (model.crd) {\n+    res.kind = referenceForModel(model);\n+  }\n+  return res;\n+};\n+\n+export const getLabelMatcher = (vm) => _.get(vm, 'spec.template.metadata.labels');\n+\n+export const findPod = (data, name) => {\n+  const pods = data.filter(p => p.metadata.name.startsWith(`virt-launcher-${name}-`));\n+  const runningPod = pods.find(p => _.get(p, 'status.phase') === 'Running' || _.get(p, 'status.phase') === 'Pending');\n+  return runningPod ? runningPod : pods.find(p => _.get(p, 'status.phase') === 'Failed' || _.get(p, 'status.phase') === 'Unknown');\n+};\n+\n+export const findVMI = (data, name) => data.find(vmi => vmi.metadata.name === name);\n+\n+export const getFlattenForKind = (kind) => {\n+  return resources => _.get(resources, kind, {}).data;\n+};\n+\n+export const getVmStatus = vm => _.get(vm, 'spec.running', false) ? 'Running' : 'Stopped';","path":"frontend/public/extend/kubevirt/module/k8s/vms.js","position":37,"original_position":37,"commit_id":"9575c7b0be69ad482b8aba326a4ac05b372b1d50","original_commit_id":"9575c7b0be69ad482b8aba326a4ac05b372b1d50","user":{"login":"spadgett","id":1167259,"node_id":"MDQ6VXNlcjExNjcyNTk=","avatar_url":"https://avatars1.githubusercontent.com/u/1167259?v=4","gravatar_id":"","url":"https://api.github.com/users/spadgett","html_url":"https://github.com/spadgett","followers_url":"https://api.github.com/users/spadgett/followers","following_url":"https://api.github.com/users/spadgett/following{/other_user}","gists_url":"https://api.github.com/users/spadgett/gists{/gist_id}","starred_url":"https://api.github.com/users/spadgett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spadgett/subscriptions","organizations_url":"https://api.github.com/users/spadgett/orgs","repos_url":"https://api.github.com/users/spadgett/repos","events_url":"https://api.github.com/users/spadgett/events{/privacy}","received_events_url":"https://api.github.com/users/spadgett/received_events","type":"User","site_admin":false},"body":"```suggestion\r\nexport const getVMStatus = vm => _.get(vm, 'spec.running', false) ? 'Running' : 'Stopped';\r\n```","created_at":"2018-11-30T21:00:53Z","updated_at":"2018-11-30T21:10:16Z","html_url":"https://github.com/openshift/console/pull/888#discussion_r238000835","pull_request_url":"https://api.github.com/repos/openshift/console/pulls/888","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/openshift/console/pulls/comments/238000835"},"html":{"href":"https://github.com/openshift/console/pull/888#discussion_r238000835"},"pull_request":{"href":"https://api.github.com/repos/openshift/console/pulls/888"}}},"pull_request":{"url":"https://api.github.com/repos/openshift/console/pulls/888","id":235092835,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM1MDkyODM1","html_url":"https://github.com/openshift/console/pull/888","diff_url":"https://github.com/openshift/console/pull/888.diff","patch_url":"https://github.com/openshift/console/pull/888.patch","issue_url":"https://api.github.com/repos/openshift/console/issues/888","number":888,"state":"open","locked":false,"title":"KubeVirt extension PoC","user":{"login":"vojtechszocs","id":648971,"node_id":"MDQ6VXNlcjY0ODk3MQ==","avatar_url":"https://avatars2.githubusercontent.com/u/648971?v=4","gravatar_id":"","url":"https://api.github.com/users/vojtechszocs","html_url":"https://github.com/vojtechszocs","followers_url":"https://api.github.com/users/vojtechszocs/followers","following_url":"https://api.github.com/users/vojtechszocs/following{/other_user}","gists_url":"https://api.github.com/users/vojtechszocs/gists{/gist_id}","starred_url":"https://api.github.com/users/vojtechszocs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vojtechszocs/subscriptions","organizations_url":"https://api.github.com/users/vojtechszocs/orgs","repos_url":"https://api.github.com/users/vojtechszocs/repos","events_url":"https://api.github.com/users/vojtechszocs/events{/privacy}","received_events_url":"https://api.github.com/users/vojtechszocs/received_events","type":"User","site_admin":false},"body":"_This is a work in progress. Changes will be made based on received feedback._\r\n\r\n## Summary\r\n\r\nThis PR introduces [KubeVirt](https://kubevirt.io/) extension of Console UI.\r\n\r\nTo avoid complexity and time spent on designing a formal extension mechanism, the current form of integration is through minimum necessary changes to application code. This PR therefore contains two types of code:\r\n\r\n- KubeVirt code, isolated to `public/extend/kubevirt` directory\r\n  - example: `public/extend/kubevirt/components/vm-list.jsx`\r\n- modification of application code, importing and using KubeVirt code\r\n  - example: `public/components/resource-pages.ts`\r\n\r\nCode in `public/extend/kubevirt` directory contains program elements necessary for the integration, like the list and details page for the `VirtualMachine` resource. KubeVirt specific UI elements, like the \"Create VM\" wizard, are maintained in a separate repository and consumed via npm package:\r\n\r\n- GitHub repo: https://github.com/kubevirt/web-ui-components\r\n- Travis CI: https://travis-ci.org/kubevirt/web-ui-components\r\n- Coveralls: https://coveralls.io/github/kubevirt/web-ui-components\r\n- Cosmos playground: https://kubevirt.io/web-ui-components ([build info](https://kubevirt.io/web-ui-components/build-info.txt))\r\n\r\nReact components in `kubevirt-web-ui-components` package generally follow Console UI dependency requirements, including [PatternFly 3](https://github.com/patternfly/patternfly) and the corresponding [PatternFly-React](https://github.com/patternfly/patternfly-react) implementation. Files contained in this package include [Babel-processed JavaScript](https://github.com/kubevirt/web-ui-components/blob/master/config/babel.config.js) and [Sass partials](https://github.com/kubevirt/web-ui-components/blob/master/sass/_components.scss).\r\n\r\n## Scope\r\n\r\n### VM list page\r\n\r\n![vm-list](https://user-images.githubusercontent.com/648971/49305491-ad6fe800-f4cf-11e8-8be9-99402a237cc6.png)\r\n\r\n### VM details page\r\n\r\n![vm-details](https://user-images.githubusercontent.com/648971/49306458-8d8df380-f4d2-11e8-8c48-8e0d881a603d.png)\r\n\r\n### KubeVirt version on all-projects overview page\r\n\r\n![all-overview](https://user-images.githubusercontent.com/648971/49307062-5b7d9100-f4d4-11e8-85e3-9b0beb5b165e.png)\r\n\r\n### VM list and details on project overview page\r\n\r\n![vm-overview](https://user-images.githubusercontent.com/648971/49307381-52d98a80-f4d5-11e8-85bc-76df1b4d7e32.png)\r\n\r\n### VM actions\r\n\r\n![vm-actions](https://user-images.githubusercontent.com/648971/49307568-deebb200-f4d5-11e8-85e0-83103418eb60.png)\r\n\r\n## What's missing from [kubevirt-web-ui](https://github.com/kubevirt/web-ui) fork\r\n\r\nBelow features have been skipped on purpose in order to reduce initial PR complexity:\r\n\r\n- VM list page:\r\n  - missing create VM through wizard workflow\r\n- VM details page:\r\n  - missing detail tabs: Consoles, Network Interfaces, Disks\r\n- VM actions:\r\n  - missing \"Restart Virtual Machine\"\r\n\r\n## Environment setup\r\n\r\nHere are the steps I've used to prepare a local development environment with KubeVirt enabled:\r\n\r\n1. download the `oc` binary distributed via `openshift-origin-client-tools` archive for [OKD v3.10.0](https://github.com/openshift/origin/releases/tag/v3.10.0) and put it on your `PATH`\r\n   * if you plan to run UI integration tests, create a `kubectl` symlink to `oc`\r\n\r\n2. make sure your cluster is up, note the cluster up configuration directory:\r\n    ```bash\r\n    ocBaseDir=\"/path/to/openshift.local.clusterup\"\r\n    ```\r\n\r\n3. put your cluster down and update `node/node-config.yaml`:\r\n    ```bash\r\n    sed -i \"/kind/ a\\kubeletArguments:\\n  feature-gates:\\n  - DevicePlugins=true\" $ocBaseDir/node/node-config.yaml\r\n    ```\r\n\r\n4. put your cluster up and login as admin user:\r\n    ```bash\r\n    oc login -u system:admin\r\n    ```\r\n\r\n5. prepare your cluster for KubeVirt installation:\r\n    ```bash\r\n    KUBELET_ROOTFS=$(docker inspect $(docker ps | grep kubelet | cut -d\" \" -f1) | jq -r \".[0].GraphDriver.Data.MergedDir\" -)\r\n    sudo mkdir -p /var/lib/kubelet/device-plugins $KUBELET_ROOTFS/var/lib/kubelet/device-plugins\r\n    sudo mount -o bind $KUBELET_ROOTFS/var/lib/kubelet/device-plugins /var/lib/kubelet/device-plugins\r\n    ```\r\n    ```bash\r\n    oc adm policy add-cluster-role-to-user cluster-admin developer\r\n    oc label node localhost kubevirt.io/schedulable=true\r\n    oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-privileged\r\n    oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-controller\r\n    oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-infra\r\n    oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:kubevirt-apiserver\r\n    ```\r\n    ```bash\r\n    cat <<EOF > dv-featuregate.yaml\r\n    apiVersion: v1\r\n    kind: ConfigMap\r\n    metadata:\r\n      name: kubevirt-config\r\n      namespace: kube-system\r\n      labels:\r\n        kubevirt.io: \"\"\r\n    data:\r\n      feature-gates: \"DataVolumes\"\r\n    EOF\r\n    oc create -f dv-featuregate.yaml\r\n    oc adm policy add-scc-to-user privileged -z cdi-sa\r\n    ```\r\n\r\n6. install [KubeVirt v0.9.1](https://github.com/kubevirt/kubevirt/releases/tag/v0.9.1) and [CDI v1.2.0](https://github.com/kubevirt/containerized-data-importer/releases/tag/v1.2.0)\r\n    ```bash\r\n    oc create -f https://github.com/kubevirt/containerized-data-importer/releases/download/v1.2.0/cdi-controller.yaml\r\n    oc create -f https://github.com/kubevirt/kubevirt/releases/download/v0.9.1/kubevirt.yaml\r\n    ```\r\n\r\n7. add sample VM resource\r\n    ```bash\r\n    oc apply -f https://raw.githubusercontent.com/kubevirt/demo/master/manifests/vm.yaml\r\n    ```\r\n\r\n## Related resources\r\n\r\n- [KubeVirt OpenAPI reference](https://kubevirt.io/api-reference/)\r\n\r\n## Action items necessary for PR completion\r\n\r\n- [ ] improve KubeVirt code to use TypeScript\r\n- [ ] ensure that initial application chunk (`main-chunk`) is not impacted by KubeVirt code\r\n- [ ] analyze KubeVirt related chunks (`virtual-machine-chunk`) and try to reduce their footprint\r\n","created_at":"2018-11-30T19:33:51Z","updated_at":"2018-11-30T21:10:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"90175604036fa452d38c9a9f679c8b20ee3930f4","assignee":{"login":"alecmerdler","id":11700385,"node_id":"MDQ6VXNlcjExNzAwMzg1","avatar_url":"https://avatars2.githubusercontent.com/u/11700385?v=4","gravatar_id":"","url":"https://api.github.com/users/alecmerdler","html_url":"https://github.com/alecmerdler","followers_url":"https://api.github.com/users/alecmerdler/followers","following_url":"https://api.github.com/users/alecmerdler/following{/other_user}","gists_url":"https://api.github.com/users/alecmerdler/gists{/gist_id}","starred_url":"https://api.github.com/users/alecmerdler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alecmerdler/subscriptions","organizations_url":"https://api.github.com/users/alecmerdler/orgs","repos_url":"https://api.github.com/users/alecmerdler/repos","events_url":"https://api.github.com/users/alecmerdler/events{/privacy}","received_events_url":"https://api.github.com/users/alecmerdler/received_events","type":"User","site_admin":false},"assignees":[{"login":"alecmerdler","id":11700385,"node_id":"MDQ6VXNlcjExNzAwMzg1","avatar_url":"https://avatars2.githubusercontent.com/u/11700385?v=4","gravatar_id":"","url":"https://api.github.com/users/alecmerdler","html_url":"https://github.com/alecmerdler","followers_url":"https://api.github.com/users/alecmerdler/followers","following_url":"https://api.github.com/users/alecmerdler/following{/other_user}","gists_url":"https://api.github.com/users/alecmerdler/gists{/gist_id}","starred_url":"https://api.github.com/users/alecmerdler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alecmerdler/subscriptions","organizations_url":"https://api.github.com/users/alecmerdler/orgs","repos_url":"https://api.github.com/users/alecmerdler/repos","events_url":"https://api.github.com/users/alecmerdler/events{/privacy}","received_events_url":"https://api.github.com/users/alecmerdler/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"alecmerdler","id":11700385,"node_id":"MDQ6VXNlcjExNzAwMzg1","avatar_url":"https://avatars2.githubusercontent.com/u/11700385?v=4","gravatar_id":"","url":"https://api.github.com/users/alecmerdler","html_url":"https://github.com/alecmerdler","followers_url":"https://api.github.com/users/alecmerdler/followers","following_url":"https://api.github.com/users/alecmerdler/following{/other_user}","gists_url":"https://api.github.com/users/alecmerdler/gists{/gist_id}","starred_url":"https://api.github.com/users/alecmerdler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alecmerdler/subscriptions","organizations_url":"https://api.github.com/users/alecmerdler/orgs","repos_url":"https://api.github.com/users/alecmerdler/repos","events_url":"https://api.github.com/users/alecmerdler/events{/privacy}","received_events_url":"https://api.github.com/users/alecmerdler/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":926925141,"node_id":"MDU6TGFiZWw5MjY5MjUxNDE=","url":"https://api.github.com/repos/openshift/console/labels/size/XL","name":"size/XL","color":"ee5500","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/openshift/console/pulls/888/commits","review_comments_url":"https://api.github.com/repos/openshift/console/pulls/888/comments","review_comment_url":"https://api.github.com/repos/openshift/console/pulls/comments{/number}","comments_url":"https://api.github.com/repos/openshift/console/issues/888/comments","statuses_url":"https://api.github.com/repos/openshift/console/statuses/9575c7b0be69ad482b8aba326a4ac05b372b1d50","head":{"label":"vojtechszocs:kubevirt-extension-poc","ref":"kubevirt-extension-poc","sha":"9575c7b0be69ad482b8aba326a4ac05b372b1d50","user":{"login":"vojtechszocs","id":648971,"node_id":"MDQ6VXNlcjY0ODk3MQ==","avatar_url":"https://avatars2.githubusercontent.com/u/648971?v=4","gravatar_id":"","url":"https://api.github.com/users/vojtechszocs","html_url":"https://github.com/vojtechszocs","followers_url":"https://api.github.com/users/vojtechszocs/followers","following_url":"https://api.github.com/users/vojtechszocs/following{/other_user}","gists_url":"https://api.github.com/users/vojtechszocs/gists{/gist_id}","starred_url":"https://api.github.com/users/vojtechszocs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vojtechszocs/subscriptions","organizations_url":"https://api.github.com/users/vojtechszocs/orgs","repos_url":"https://api.github.com/users/vojtechszocs/repos","events_url":"https://api.github.com/users/vojtechszocs/events{/privacy}","received_events_url":"https://api.github.com/users/vojtechszocs/received_events","type":"User","site_admin":false},"repo":{"id":145566731,"node_id":"MDEwOlJlcG9zaXRvcnkxNDU1NjY3MzE=","name":"console","full_name":"vojtechszocs/console","private":false,"owner":{"login":"vojtechszocs","id":648971,"node_id":"MDQ6VXNlcjY0ODk3MQ==","avatar_url":"https://avatars2.githubusercontent.com/u/648971?v=4","gravatar_id":"","url":"https://api.github.com/users/vojtechszocs","html_url":"https://github.com/vojtechszocs","followers_url":"https://api.github.com/users/vojtechszocs/followers","following_url":"https://api.github.com/users/vojtechszocs/following{/other_user}","gists_url":"https://api.github.com/users/vojtechszocs/gists{/gist_id}","starred_url":"https://api.github.com/users/vojtechszocs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vojtechszocs/subscriptions","organizations_url":"https://api.github.com/users/vojtechszocs/orgs","repos_url":"https://api.github.com/users/vojtechszocs/repos","events_url":"https://api.github.com/users/vojtechszocs/events{/privacy}","received_events_url":"https://api.github.com/users/vojtechszocs/received_events","type":"User","site_admin":false},"html_url":"https://github.com/vojtechszocs/console","description":"OpenShift Cluster Console UI","fork":true,"url":"https://api.github.com/repos/vojtechszocs/console","forks_url":"https://api.github.com/repos/vojtechszocs/console/forks","keys_url":"https://api.github.com/repos/vojtechszocs/console/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vojtechszocs/console/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vojtechszocs/console/teams","hooks_url":"https://api.github.com/repos/vojtechszocs/console/hooks","issue_events_url":"https://api.github.com/repos/vojtechszocs/console/issues/events{/number}","events_url":"https://api.github.com/repos/vojtechszocs/console/events","assignees_url":"https://api.github.com/repos/vojtechszocs/console/assignees{/user}","branches_url":"https://api.github.com/repos/vojtechszocs/console/branches{/branch}","tags_url":"https://api.github.com/repos/vojtechszocs/console/tags","blobs_url":"https://api.github.com/repos/vojtechszocs/console/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vojtechszocs/console/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vojtechszocs/console/git/refs{/sha}","trees_url":"https://api.github.com/repos/vojtechszocs/console/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vojtechszocs/console/statuses/{sha}","languages_url":"https://api.github.com/repos/vojtechszocs/console/languages","stargazers_url":"https://api.github.com/repos/vojtechszocs/console/stargazers","contributors_url":"https://api.github.com/repos/vojtechszocs/console/contributors","subscribers_url":"https://api.github.com/repos/vojtechszocs/console/subscribers","subscription_url":"https://api.github.com/repos/vojtechszocs/console/subscription","commits_url":"https://api.github.com/repos/vojtechszocs/console/commits{/sha}","git_commits_url":"https://api.github.com/repos/vojtechszocs/console/git/commits{/sha}","comments_url":"https://api.github.com/repos/vojtechszocs/console/comments{/number}","issue_comment_url":"https://api.github.com/repos/vojtechszocs/console/issues/comments{/number}","contents_url":"https://api.github.com/repos/vojtechszocs/console/contents/{+path}","compare_url":"https://api.github.com/repos/vojtechszocs/console/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vojtechszocs/console/merges","archive_url":"https://api.github.com/repos/vojtechszocs/console/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vojtechszocs/console/downloads","issues_url":"https://api.github.com/repos/vojtechszocs/console/issues{/number}","pulls_url":"https://api.github.com/repos/vojtechszocs/console/pulls{/number}","milestones_url":"https://api.github.com/repos/vojtechszocs/console/milestones{/number}","notifications_url":"https://api.github.com/repos/vojtechszocs/console/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vojtechszocs/console/labels{/name}","releases_url":"https://api.github.com/repos/vojtechszocs/console/releases{/id}","deployments_url":"https://api.github.com/repos/vojtechszocs/console/deployments","created_at":"2018-08-21T13:19:25Z","updated_at":"2018-08-21T13:19:29Z","pushed_at":"2018-11-30T17:04:32Z","git_url":"git://github.com/vojtechszocs/console.git","ssh_url":"git@github.com:vojtechszocs/console.git","clone_url":"https://github.com/vojtechszocs/console.git","svn_url":"https://github.com/vojtechszocs/console","homepage":"https://www.openshift.org","size":89309,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","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":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":"openshift:master","ref":"master","sha":"c08c6de8def401ef654889fee2b1b89e73412592","user":{"login":"openshift","id":792337,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc5MjMzNw==","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":129436456,"node_id":"MDEwOlJlcG9zaXRvcnkxMjk0MzY0NTY=","name":"console","full_name":"openshift/console","private":false,"owner":{"login":"openshift","id":792337,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc5MjMzNw==","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},"html_url":"https://github.com/openshift/console","description":"OpenShift Cluster Console UI","fork":false,"url":"https://api.github.com/repos/openshift/console","forks_url":"https://api.github.com/repos/openshift/console/forks","keys_url":"https://api.github.com/repos/openshift/console/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openshift/console/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openshift/console/teams","hooks_url":"https://api.github.com/repos/openshift/console/hooks","issue_events_url":"https://api.github.com/repos/openshift/console/issues/events{/number}","events_url":"https://api.github.com/repos/openshift/console/events","assignees_url":"https://api.github.com/repos/openshift/console/assignees{/user}","branches_url":"https://api.github.com/repos/openshift/console/branches{/branch}","tags_url":"https://api.github.com/repos/openshift/console/tags","blobs_url":"https://api.github.com/repos/openshift/console/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openshift/console/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openshift/console/git/refs{/sha}","trees_url":"https://api.github.com/repos/openshift/console/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openshift/console/statuses/{sha}","languages_url":"https://api.github.com/repos/openshift/console/languages","stargazers_url":"https://api.github.com/repos/openshift/console/stargazers","contributors_url":"https://api.github.com/repos/openshift/console/contributors","subscribers_url":"https://api.github.com/repos/openshift/console/subscribers","subscription_url":"https://api.github.com/repos/openshift/console/subscription","commits_url":"https://api.github.com/repos/openshift/console/commits{/sha}","git_commits_url":"https://api.github.com/repos/openshift/console/git/commits{/sha}","comments_url":"https://api.github.com/repos/openshift/console/comments{/number}","issue_comment_url":"https://api.github.com/repos/openshift/console/issues/comments{/number}","contents_url":"https://api.github.com/repos/openshift/console/contents/{+path}","compare_url":"https://api.github.com/repos/openshift/console/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openshift/console/merges","archive_url":"https://api.github.com/repos/openshift/console/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openshift/console/downloads","issues_url":"https://api.github.com/repos/openshift/console/issues{/number}","pulls_url":"https://api.github.com/repos/openshift/console/pulls{/number}","milestones_url":"https://api.github.com/repos/openshift/console/milestones{/number}","notifications_url":"https://api.github.com/repos/openshift/console/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openshift/console/labels{/name}","releases_url":"https://api.github.com/repos/openshift/console/releases{/id}","deployments_url":"https://api.github.com/repos/openshift/console/deployments","created_at":"2018-04-13T17:54:59Z","updated_at":"2018-11-30T21:03:48Z","pushed_at":"2018-11-30T21:03:43Z","git_url":"git://github.com/openshift/console.git","ssh_url":"git@github.com:openshift/console.git","clone_url":"https://github.com/openshift/console.git","svn_url":"https://github.com/openshift/console","homepage":"https://www.openshift.org","size":89401,"stargazers_count":34,"watchers_count":34,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":49,"mirror_url":null,"archived":false,"open_issues_count":38,"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":49,"open_issues":38,"watchers":34,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/openshift/console/pulls/888"},"html":{"href":"https://github.com/openshift/console/pull/888"},"issue":{"href":"https://api.github.com/repos/openshift/console/issues/888"},"comments":{"href":"https://api.github.com/repos/openshift/console/issues/888/comments"},"review_comments":{"href":"https://api.github.com/repos/openshift/console/pulls/888/comments"},"review_comment":{"href":"https://api.github.com/repos/openshift/console/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/openshift/console/pulls/888/commits"},"statuses":{"href":"https://api.github.com/repos/openshift/console/statuses/9575c7b0be69ad482b8aba326a4ac05b372b1d50"}},"author_association":"NONE"}}
{"actor":{"display_login":"spadgett"}}