{"action":"created","comment":{"url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments/225362747","pull_request_review_id":164948647,"id":225362747,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNTM2Mjc0Nw==","diff_hunk":"@@ -0,0 +1,260 @@\n+#!/usr/bin/env bash\n+# Copyright 2018 The TensorFlow Authors. All Rights Reserved.\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+function usage\n+{\n+  script_name=$0\n+  echo \"Usage:\"\n+  echo \"  $script_name [--image docker_image] [--num_containers num_of_containers]\"\n+  echo \"               [--deployment deployment_name] [--configs_map configs_map]\"\n+  echo \"               [--cp] [--src local_src_dir] [--dest container_dest_dir]\"\n+  echo \"               [--port container_ssh_port] [--hostnet] [--shared_volume]\"\n+  echo \"               [--delete] [--help]\"\n+  echo \"\"\n+  echo \"  Parameters:\"\n+  echo \"    image:          docker image used to create container.\"\n+  echo \"    num_containers: number of containers that will be launched.\"\n+  echo \"    deployment:     deployment name. (default: k8s-ml-deployment)\"\n+  echo \"    configs_map:    configs map name. (default: k8s-configs-map)\"\n+  echo \"    cp:             upload file to all containers.\"\n+  echo \"    src:            path to local source file.\"\n+  echo \"    dest:           path to destination on container.\"\n+  echo \"    port:           ssh port in container. Set ssh port (other than 22)\"\n+  echo \"                    when host network mode is enabled\"\n+  echo \"    hostnet:        enable host network mode. (default: disable)\"\n+  echo \"    shared_volume:  Used to mount shared volume. (default: disable)\"\n+  echo \"    delete:         delete deployment and configmap.\"\n+  echo \"                    (default: k8s-ml-deployment and k8s-configs-map)\"\n+  echo \"    help:           print usage.\"\n+}\n+\n+# Create temporary directory\n+TMP_DIR=$(mktemp -d)\n+\n+# Temporary k8s yaml file\n+YAML_TMP_FILE=\"${TMP_DIR}/k8s_ml.yaml\"\n+\n+# Temporary hostfile\n+HOST_FILE=\"${TMP_DIR}/hostfile\"\n+\n+# Docker image and number of containers\n+DOCKER_IMAGE=\"\"\n+NUM_CONTAINERS=0\n+\n+# Default ssh port\n+SSH_PORT=22\n+\n+# Default configs map\n+CONFIGS_MAP=\"k8s-configs-map\"\n+\n+# Default Deployment\n+DEPLOYMENT=\"k8s-ml-deployment\"\n+\n+# Used for uploading file to all docker containers\n+CP=0\n+SRC=\"\"\n+DEST=\"\"\n+\n+# Python script to generate yaml file for k8s TensorFlow cluster\n+CUR_SCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\n+K8S_GEN_AllREDUCE_TF_YAML=\"${CUR_SCRIPT_DIR}/k8s_generate_yaml.py\"\n+\n+# Create or delete tensorflow cluster\n+# DELETE=0: Create cluster\n+# DELETE=1: Delete cluster\n+DELETE=0\n+\n+# Used to enable host network mode to achieve best performance\n+# USE_HOSTNET=0: Flannel network mode\n+# USE_HOSTNET=1: Host network mode\n+USE_HOSTNET=0\n+\n+# Used to mount shared volume\n+USE_SHARED_VOLUME=0\n+\n+if [ $# -lt 1 ]; then\n+  echo \"Error: illegal number of parameters\"\n+  usage\n+  exit 1\n+fi\n+\n+while [[ $# -ge 1 ]]\n+do\n+  key=\"$1\"\n+  case $key in\n+    --image)\n+      DOCKER_IMAGE=\"$2\"\n+      shift\n+      ;;\n+    --num_containers)\n+      NUM_CONTAINERS=\"$2\"\n+      shift\n+      ;;\n+    --configs_map)\n+      CONFIGS_MAP=\"$2\"\n+      shift\n+      ;;\n+    --deployment)\n+      DEPLOYMENT=\"$2\"\n+      shift\n+      ;;\n+    --cp)\n+      CP=1\n+      ;;\n+    --src)\n+      SRC=\"$2\"\n+      shift\n+      ;;\n+    --dest)\n+      DEST=\"$2\"\n+      shift\n+      ;;\n+    --port)\n+      SSH_PORT=\"$2\"\n+      shift\n+      ;;\n+    --hostnet)\n+      USE_HOSTNET=1\n+      ;;\n+    --shared_volume)\n+      USE_SHARED_VOLUME=1\n+      ;;\n+    --delete)\n+      DELETE=1\n+      ;;\n+    --help)\n+      usage\n+      exit 0\n+      ;;\n+    *)\n+      echo \"Unknown option: $key\"\n+      usage\n+      exit 1\n+      ;;\n+  esac\n+  shift\n+done\n+\n+function generate_yaml_file\n+{\n+  if [[ ! -f ${K8S_GEN_AllREDUCE_TF_YAML} ]]; then\n+    echo \"Error: can not find yaml-generating script ${K8S_GEN_AllREDUCE_TF_YAML}\"\n+    exit 1\n+  fi\n+\n+  echo \"\"\n+  echo \"Generating k8s cluster yaml config file with the following settings\"\n+  echo \"  Docker image: ${DOCKER_IMAGE}\"\n+  echo \"  Number of containers: ${NUM_CONTAINERS}\"\n+  echo \"  Configs map: ${CONFIGS_MAP}\"\n+  echo \"  Deployment: ${DEPLOYMENT}\"\n+\n+  if [ $USE_HOSTNET -eq 1 ]; then\n+    echo \"  Host network mode: True\"\n+    echo \"  Container ssh port: ${SSH_PORT}\"\n+  fi\n+\n+  python ${K8S_GEN_AllREDUCE_TF_YAML} \\\n+    --docker_image ${DOCKER_IMAGE} \\\n+    --num_containers ${NUM_CONTAINERS} \\\n+    --configs_map ${CONFIGS_MAP} \\\n+    --deployment ${DEPLOYMENT} \\\n+    --ssh_port ${SSH_PORT} \\\n+    --use_hostnet ${USE_HOSTNET} \\\n+    --use_shared_volume ${USE_SHARED_VOLUME} \\\n+    > ${YAML_TMP_FILE}\n+}\n+\n+# Note: this function remove the yaml file to make sure that the key automatically\n+# generated inside the container is not reused in other deployment\n+function remove_yaml_file\n+{\n+  rm -rf ${YAML_TMP_FILE}\n+}\n+\n+function upload_file_to_all_containers\n+{\n+  ${KUBECTL_BIN} get pods | grep ${DEPLOYMENT} \\\n+    | awk '{print $1}' | \\\n+    while read line;\n+    do\n+      echo \"Uploading $1 to $line:$2\"\n+      ${KUBECTL_BIN} cp $1 $line:$2\n+    done\n+}\n+\n+function generate_container_hostfile\n+{\n+  sleep 3\n+  ${KUBECTL_BIN} get pods --output=wide | grep ${DEPLOYMENT} \\","path":"tensorflow/tools/dist_test/scripts_allreduce/k8s_deploy_tensorflow.sh","position":202,"original_position":202,"commit_id":"de53a2dc4fa1d50569407722fd1cf8ed5435055e","original_commit_id":"de53a2dc4fa1d50569407722fd1cf8ed5435055e","user":{"login":"congxu-ml","id":38994615,"node_id":"MDQ6VXNlcjM4OTk0NjE1","avatar_url":"https://avatars1.githubusercontent.com/u/38994615?v=4","gravatar_id":"","url":"https://api.github.com/users/congxu-ml","html_url":"https://github.com/congxu-ml","followers_url":"https://api.github.com/users/congxu-ml/followers","following_url":"https://api.github.com/users/congxu-ml/following{/other_user}","gists_url":"https://api.github.com/users/congxu-ml/gists{/gist_id}","starred_url":"https://api.github.com/users/congxu-ml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/congxu-ml/subscriptions","organizations_url":"https://api.github.com/users/congxu-ml/orgs","repos_url":"https://api.github.com/users/congxu-ml/repos","events_url":"https://api.github.com/users/congxu-ml/events{/privacy}","received_events_url":"https://api.github.com/users/congxu-ml/received_events","type":"User","site_admin":false},"body":"I added that comment.","created_at":"2018-10-16T00:48:01Z","updated_at":"2018-10-16T00:48:01Z","html_url":"https://github.com/tensorflow/tensorflow/pull/22873#discussion_r225362747","pull_request_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments/225362747"},"html":{"href":"https://github.com/tensorflow/tensorflow/pull/22873#discussion_r225362747"},"pull_request":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873"}},"in_reply_to_id":224575290},"pull_request":{"url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873","id":221908203,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIxOTA4MjAz","html_url":"https://github.com/tensorflow/tensorflow/pull/22873","diff_url":"https://github.com/tensorflow/tensorflow/pull/22873.diff","patch_url":"https://github.com/tensorflow/tensorflow/pull/22873.patch","issue_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/22873","number":22873,"state":"open","locked":false,"title":"[Intel MKL] Add scripts for creating allreduce based Tensorflow k8s deployment","user":{"login":"congxu-ml","id":38994615,"node_id":"MDQ6VXNlcjM4OTk0NjE1","avatar_url":"https://avatars1.githubusercontent.com/u/38994615?v=4","gravatar_id":"","url":"https://api.github.com/users/congxu-ml","html_url":"https://github.com/congxu-ml","followers_url":"https://api.github.com/users/congxu-ml/followers","following_url":"https://api.github.com/users/congxu-ml/following{/other_user}","gists_url":"https://api.github.com/users/congxu-ml/gists{/gist_id}","starred_url":"https://api.github.com/users/congxu-ml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/congxu-ml/subscriptions","organizations_url":"https://api.github.com/users/congxu-ml/orgs","repos_url":"https://api.github.com/users/congxu-ml/repos","events_url":"https://api.github.com/users/congxu-ml/events{/privacy}","received_events_url":"https://api.github.com/users/congxu-ml/received_events","type":"User","site_admin":false},"body":"Create allreduce based distributed Tensorflow k8s deployment for testing\r\n\r\nIntel optimized Tensorflow horovod dockerfile\r\n- tensorflow/tools/docker/Dockerfile.devel-mkl-horovod\r\n- tensorflow/tools/docker/Dockerfile.mkl-horovod\r\n\r\nSigned-off-by: Cong Xu <cong.xu@intel.com>","created_at":"2018-10-10T19:37:37Z","updated_at":"2018-10-16T00:48:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7bd53fe413bab875a9ef6d4f06f69b2e5b145bd5","assignee":{"login":"harshini-gadige","id":42781361,"node_id":"MDQ6VXNlcjQyNzgxMzYx","avatar_url":"https://avatars1.githubusercontent.com/u/42781361?v=4","gravatar_id":"","url":"https://api.github.com/users/harshini-gadige","html_url":"https://github.com/harshini-gadige","followers_url":"https://api.github.com/users/harshini-gadige/followers","following_url":"https://api.github.com/users/harshini-gadige/following{/other_user}","gists_url":"https://api.github.com/users/harshini-gadige/gists{/gist_id}","starred_url":"https://api.github.com/users/harshini-gadige/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/harshini-gadige/subscriptions","organizations_url":"https://api.github.com/users/harshini-gadige/orgs","repos_url":"https://api.github.com/users/harshini-gadige/repos","events_url":"https://api.github.com/users/harshini-gadige/events{/privacy}","received_events_url":"https://api.github.com/users/harshini-gadige/received_events","type":"User","site_admin":false},"assignees":[{"login":"harshini-gadige","id":42781361,"node_id":"MDQ6VXNlcjQyNzgxMzYx","avatar_url":"https://avatars1.githubusercontent.com/u/42781361?v=4","gravatar_id":"","url":"https://api.github.com/users/harshini-gadige","html_url":"https://github.com/harshini-gadige","followers_url":"https://api.github.com/users/harshini-gadige/followers","following_url":"https://api.github.com/users/harshini-gadige/following{/other_user}","gists_url":"https://api.github.com/users/harshini-gadige/gists{/gist_id}","starred_url":"https://api.github.com/users/harshini-gadige/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/harshini-gadige/subscriptions","organizations_url":"https://api.github.com/users/harshini-gadige/orgs","repos_url":"https://api.github.com/users/harshini-gadige/repos","events_url":"https://api.github.com/users/harshini-gadige/events{/privacy}","received_events_url":"https://api.github.com/users/harshini-gadige/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":300136587,"node_id":"MDU6TGFiZWwzMDAxMzY1ODc=","url":"https://api.github.com/repos/tensorflow/tensorflow/labels/cla:%20yes","name":"cla: yes","color":"009800","default":false},{"id":386191887,"node_id":"MDU6TGFiZWwzODYxOTE4ODc=","url":"https://api.github.com/repos/tensorflow/tensorflow/labels/stat:awaiting%20response","name":"stat:awaiting response","color":"5319e7","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873/commits","review_comments_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873/comments","review_comment_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/22873/comments","statuses_url":"https://api.github.com/repos/tensorflow/tensorflow/statuses/de53a2dc4fa1d50569407722fd1cf8ed5435055e","head":{"label":"Intel-tensorflow:congxu/k8s","ref":"congxu/k8s","sha":"de53a2dc4fa1d50569407722fd1cf8ed5435055e","user":{"login":"Intel-tensorflow","id":24963131,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0OTYzMTMx","avatar_url":"https://avatars0.githubusercontent.com/u/24963131?v=4","gravatar_id":"","url":"https://api.github.com/users/Intel-tensorflow","html_url":"https://github.com/Intel-tensorflow","followers_url":"https://api.github.com/users/Intel-tensorflow/followers","following_url":"https://api.github.com/users/Intel-tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/Intel-tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/Intel-tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Intel-tensorflow/subscriptions","organizations_url":"https://api.github.com/users/Intel-tensorflow/orgs","repos_url":"https://api.github.com/users/Intel-tensorflow/repos","events_url":"https://api.github.com/users/Intel-tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/Intel-tensorflow/received_events","type":"Organization","site_admin":false},"repo":{"id":78224733,"node_id":"MDEwOlJlcG9zaXRvcnk3ODIyNDczMw==","name":"tensorflow","full_name":"Intel-tensorflow/tensorflow","private":false,"owner":{"login":"Intel-tensorflow","id":24963131,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0OTYzMTMx","avatar_url":"https://avatars0.githubusercontent.com/u/24963131?v=4","gravatar_id":"","url":"https://api.github.com/users/Intel-tensorflow","html_url":"https://github.com/Intel-tensorflow","followers_url":"https://api.github.com/users/Intel-tensorflow/followers","following_url":"https://api.github.com/users/Intel-tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/Intel-tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/Intel-tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Intel-tensorflow/subscriptions","organizations_url":"https://api.github.com/users/Intel-tensorflow/orgs","repos_url":"https://api.github.com/users/Intel-tensorflow/repos","events_url":"https://api.github.com/users/Intel-tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/Intel-tensorflow/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/Intel-tensorflow/tensorflow","description":"Computation using data flow graphs for scalable machine learning","fork":true,"url":"https://api.github.com/repos/Intel-tensorflow/tensorflow","forks_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/forks","keys_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/teams","hooks_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/hooks","issue_events_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/issues/events{/number}","events_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/events","assignees_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/assignees{/user}","branches_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/branches{/branch}","tags_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/tags","blobs_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/statuses/{sha}","languages_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/languages","stargazers_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/stargazers","contributors_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/contributors","subscribers_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/subscribers","subscription_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/subscription","commits_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/contents/{+path}","compare_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/merges","archive_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/downloads","issues_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/issues{/number}","pulls_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/pulls{/number}","milestones_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/milestones{/number}","notifications_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/labels{/name}","releases_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/releases{/id}","deployments_url":"https://api.github.com/repos/Intel-tensorflow/tensorflow/deployments","created_at":"2017-01-06T17:23:49Z","updated_at":"2018-10-15T01:43:37Z","pushed_at":"2018-10-15T01:43:33Z","git_url":"git://github.com/Intel-tensorflow/tensorflow.git","ssh_url":"git@github.com:Intel-tensorflow/tensorflow.git","clone_url":"https://github.com/Intel-tensorflow/tensorflow.git","svn_url":"https://github.com/Intel-tensorflow/tensorflow","homepage":"http://tensorflow.org","size":266587,"stargazers_count":8,"watchers_count":8,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"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":1,"open_issues":0,"watchers":8,"default_branch":"master"}},"base":{"label":"tensorflow:master","ref":"master","sha":"07bad266b3d485b12e218ffbc67ea3f1be35568d","user":{"login":"tensorflow","id":15658638,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjU4NjM4","avatar_url":"https://avatars1.githubusercontent.com/u/15658638?v=4","gravatar_id":"","url":"https://api.github.com/users/tensorflow","html_url":"https://github.com/tensorflow","followers_url":"https://api.github.com/users/tensorflow/followers","following_url":"https://api.github.com/users/tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensorflow/subscriptions","organizations_url":"https://api.github.com/users/tensorflow/orgs","repos_url":"https://api.github.com/users/tensorflow/repos","events_url":"https://api.github.com/users/tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/tensorflow/received_events","type":"Organization","site_admin":false},"repo":{"id":45717250,"node_id":"MDEwOlJlcG9zaXRvcnk0NTcxNzI1MA==","name":"tensorflow","full_name":"tensorflow/tensorflow","private":false,"owner":{"login":"tensorflow","id":15658638,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjU4NjM4","avatar_url":"https://avatars1.githubusercontent.com/u/15658638?v=4","gravatar_id":"","url":"https://api.github.com/users/tensorflow","html_url":"https://github.com/tensorflow","followers_url":"https://api.github.com/users/tensorflow/followers","following_url":"https://api.github.com/users/tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensorflow/subscriptions","organizations_url":"https://api.github.com/users/tensorflow/orgs","repos_url":"https://api.github.com/users/tensorflow/repos","events_url":"https://api.github.com/users/tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/tensorflow/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/tensorflow/tensorflow","description":"An Open Source Machine Learning Framework for Everyone","fork":false,"url":"https://api.github.com/repos/tensorflow/tensorflow","forks_url":"https://api.github.com/repos/tensorflow/tensorflow/forks","keys_url":"https://api.github.com/repos/tensorflow/tensorflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tensorflow/tensorflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tensorflow/tensorflow/teams","hooks_url":"https://api.github.com/repos/tensorflow/tensorflow/hooks","issue_events_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/events{/number}","events_url":"https://api.github.com/repos/tensorflow/tensorflow/events","assignees_url":"https://api.github.com/repos/tensorflow/tensorflow/assignees{/user}","branches_url":"https://api.github.com/repos/tensorflow/tensorflow/branches{/branch}","tags_url":"https://api.github.com/repos/tensorflow/tensorflow/tags","blobs_url":"https://api.github.com/repos/tensorflow/tensorflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tensorflow/tensorflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tensorflow/tensorflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/tensorflow/tensorflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tensorflow/tensorflow/statuses/{sha}","languages_url":"https://api.github.com/repos/tensorflow/tensorflow/languages","stargazers_url":"https://api.github.com/repos/tensorflow/tensorflow/stargazers","contributors_url":"https://api.github.com/repos/tensorflow/tensorflow/contributors","subscribers_url":"https://api.github.com/repos/tensorflow/tensorflow/subscribers","subscription_url":"https://api.github.com/repos/tensorflow/tensorflow/subscription","commits_url":"https://api.github.com/repos/tensorflow/tensorflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/tensorflow/tensorflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/tensorflow/tensorflow/contents/{+path}","compare_url":"https://api.github.com/repos/tensorflow/tensorflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tensorflow/tensorflow/merges","archive_url":"https://api.github.com/repos/tensorflow/tensorflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tensorflow/tensorflow/downloads","issues_url":"https://api.github.com/repos/tensorflow/tensorflow/issues{/number}","pulls_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls{/number}","milestones_url":"https://api.github.com/repos/tensorflow/tensorflow/milestones{/number}","notifications_url":"https://api.github.com/repos/tensorflow/tensorflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tensorflow/tensorflow/labels{/name}","releases_url":"https://api.github.com/repos/tensorflow/tensorflow/releases{/id}","deployments_url":"https://api.github.com/repos/tensorflow/tensorflow/deployments","created_at":"2015-11-07T01:19:20Z","updated_at":"2018-10-16T00:23:39Z","pushed_at":"2018-10-16T00:29:47Z","git_url":"git://github.com/tensorflow/tensorflow.git","ssh_url":"git@github.com:tensorflow/tensorflow.git","clone_url":"https://github.com/tensorflow/tensorflow.git","svn_url":"https://github.com/tensorflow/tensorflow","homepage":"https://tensorflow.org","size":268050,"stargazers_count":112064,"watchers_count":112064,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":68556,"mirror_url":null,"archived":false,"open_issues_count":1724,"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":68556,"open_issues":1724,"watchers":112064,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873"},"html":{"href":"https://github.com/tensorflow/tensorflow/pull/22873"},"issue":{"href":"https://api.github.com/repos/tensorflow/tensorflow/issues/22873"},"comments":{"href":"https://api.github.com/repos/tensorflow/tensorflow/issues/22873/comments"},"review_comments":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873/comments"},"review_comment":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/22873/commits"},"statuses":{"href":"https://api.github.com/repos/tensorflow/tensorflow/statuses/de53a2dc4fa1d50569407722fd1cf8ed5435055e"}},"author_association":"NONE"}}
{"actor":{"display_login":"congxu-ml"}}