{"action":"created","comment":{"url":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/comments/204935994","pull_request_review_id":140108783,"id":204935994,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNDkzNTk5NA==","diff_hunk":"@@ -0,0 +1,182 @@\n+# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\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+# A copy of the License is located at\n+#     http://www.apache.org/licenses/LICENSE-2.0\n+# or in the \"license\" file accompanying this file. This file is distributed\n+# on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either\n+# express or implied. See the License for the specific language governing\n+# permissions and limitations under the License.\n+\n+import pytest\n+from mms.service_manager import ServiceManager\n+from mock import patch, MagicMock\n+\n+model_names = ['DummyNodeService', 'vqa2', 'rnn3']\n+\n+service_manager = ServiceManager()\n+\n+\n+def test_addmodelservice_to_registry():\n+    service_manager.add_modelservice_to_registry(model_name='resnet', model_service_class_def='resnet.py')\n+\n+    # Verify that this was actually added\n+    response = service_manager.get_modelservices_registry(model_names=['resnet'])\n+    assert response['resnet'] == 'resnet.py'\n+\n+\n+def test_get_modelservices_registry_with_null_model_names():\n+    response = service_manager.get_modelservices_registry()\n+\n+    assert response.name == 'modelservice'\n+\n+\n+def test_modelservices_registry_with_model_names():\n+    expected_response = dict()\n+\n+    for model in model_names:\n+        service_manager.add_modelservice_to_registry(model, ''.join([model, '.py']))\n+        expected_response[model] = ''.join([model, '.py'])\n+\n+    response = service_manager.get_modelservices_registry(model_names)\n+\n+    assert expected_response == response\n+\n+\n+def test_get_loaded_modelservices_with_nil_model_names():\n+    response = service_manager.get_loaded_modelservices()\n+\n+    assert response.name == \"loaded_modelservices\"\n+\n+\n+def test_get_loaded_modelservices_with_model_names():\n+    expected_response = dict()\n+\n+    for model in model_names:\n+        service_manager.loaded_modelservices[model] = ''.join([model, '.service'])\n+        expected_response[model] = ''.join([model, '.service'])\n+\n+    response = service_manager.get_loaded_modelservices(model_names)\n+    assert expected_response == response\n+\n+\n+def test_parse_modelservices_from_module_with_nil_service_file():\n+    with pytest.raises(Exception) as error:\n+        service_manager.parse_modelservices_from_module(service_file=None)\n+\n+    assert error.value.args[0] == \"Invalid service file given\"\n+\n+\n+def test_parse_modelservices_from_module_with_incorrect_file():\n+    service_file_path = 'mms/tests/unit_tests/test_utils/dummy_model_service.p'\n+\n+    with pytest.raises(Exception) as error:\n+        service_manager.parse_modelservices_from_module(service_file_path)\n+\n+    assert \"Error when loading service file\" in error.value.args[0]\n+\n+\n+def test_parse_modelservices_from_module_with_correct_file():\n+    service_file_path = 'mms/tests/unit_tests/test_utils/dummy_model_service.py'\n+\n+    result = service_manager.parse_modelservices_from_module(service_file_path)\n+\n+    class_list = [x.__name__ for x in result]\n+\n+    assert \"SomeOtherClass\" not in class_list\n+    assert \"SingleNodeService\" in class_list\n+    assert \"DummyNodeService\" in class_list\n+\n+\n+@patch.object(service_manager, 'get_modelservices_registry', wraps=service_manager.get_modelservices_registry)\n+def test_get_registered_modelservices_with_nil_modelservice_names(spy):\n+    service_manager.get_registered_modelservices(modelservice_names=None)\n+    spy.assert_called_with(None)\n+\n+\n+@patch.object(service_manager, 'get_modelservices_registry', wraps=service_manager.get_modelservices_registry)\n+def test_get_registered_modelservices_some_modelservice_name(spy):\n+    response = service_manager.get_registered_modelservices(modelservice_names=model_names[0])\n+\n+    spy.assert_called_with([model_names[0]])\n+\n+    assert model_names[0] in response.keys()\n+    assert response[model_names[0]] == ''.join([model_names[0], '.py'])\n+\n+\n+def test_unload_models():\n+    expected_response = dict()\n+    for model in model_names:\n+        service_manager.loaded_modelservices[model] = ''.join([model, '.service'])\n+        expected_response[model] = ''.join([model, '.service'])\n+\n+    response = service_manager.unload_models(model_names[0])\n+    del (expected_response[model_names[0]])\n+\n+    assert model_names[0] not in response\n+    assert expected_response == response\n+\n+\n+@patch.object(service_manager, 'parse_modelservices_from_module', wraps=service_manager.parse_modelservices_from_module)\n+def test_register_module_with_errors(parse_modelservices):\n+    service_file_path = 'mms/tests/unit_tests/test_utils/dummy_model_service.py'\n+    service_manager.register_module(service_file_path)\n+    parse_modelservices.assert_called_with(service_file_path)\n+\n+    parse_modelservices.return_value = list()\n+\n+    with pytest.raises(AssertionError) as error:\n+        service_manager.register_module(service_file_path)\n+        parse_modelservices.assert_called_with(service_file_path)\n+\n+    assert error.value.args[0] == \"No valid python class derived from Base Model Service is in module file: {}\".\\\n+        format(service_file_path)\n+\n+\n+@patch.object(service_manager, 'parse_modelservices_from_module', wraps=service_manager.parse_modelservices_from_module)\n+@patch.object(service_manager, 'add_modelservice_to_registry', wraps=service_manager.add_modelservice_to_registry)\n+def test_register_module_with_no_errors(add_modelservice, parse_modelservice):\n+    service_file_path = 'mms/tests/unit_tests/test_utils/dummy_model_service.py'\n+    service_manager.register_module(service_file_path)\n+\n+    add_modelservice.assert_called()\n+    parse_modelservice.assert_called_with(service_file_path)\n+\n+\n+@patch.object(service_manager, 'register_module', wraps=service_manager.register_module)\n+def test_register_and_load_modules_with_assertion_error(spy):\n+    model_name = model_names[0]\n+    model_dir = \"mms/tests/unit_tests/test_utils\"\n+    manifest = {}\n+    module_file_path = ''.join([model_dir, '/dummy_model_service.py'])\n+    gpu = 0\n+    batch_size = 128\n+\n+    spy.return_value = list()\n+    with pytest.raises(Exception) as error:\n+        service_manager.register_and_load_modules(model_name, model_dir, manifest, module_file_path, gpu, batch_size)\n+\n+    assert error.value.args[0] == \"Invalid service file found mms/tests/unit_tests/test_utils/dummy_model_service.py.\" \\\n+                                  \" Service file should contain only one service class. Found 0\"\n+    spy.assert_called_with(module_file_path)\n+\n+\n+@patch.object(service_manager,'get_registered_modelservices',\n+              wraps=service_manager.get_registered_modelservices)\n+@patch.object(service_manager, 'load_model', wraps=service_manager.load_model)\n+def test_register_and_load_modules(load_model, registered_modelservices):\n+    model_name = model_names[0]\n+    model_dir = 'mms/tests/unit_tests/test_utils'\n+    manifest = {}\n+    module_file_path = ''.join([model_dir, '/dummy_model_service.py'])","path":"mms/tests/unit_tests/test_service_manager.py","position":null,"original_position":171,"commit_id":"a78758d3d6c09a8c763363818fd02a3967572a7d","original_commit_id":"6e6f6d595b1b3a728ce268f63380d4fbd2f5e958","user":{"login":"piyushghai","id":7931019,"node_id":"MDQ6VXNlcjc5MzEwMTk=","avatar_url":"https://avatars1.githubusercontent.com/u/7931019?v=4","gravatar_id":"","url":"https://api.github.com/users/piyushghai","html_url":"https://github.com/piyushghai","followers_url":"https://api.github.com/users/piyushghai/followers","following_url":"https://api.github.com/users/piyushghai/following{/other_user}","gists_url":"https://api.github.com/users/piyushghai/gists{/gist_id}","starred_url":"https://api.github.com/users/piyushghai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piyushghai/subscriptions","organizations_url":"https://api.github.com/users/piyushghai/orgs","repos_url":"https://api.github.com/users/piyushghai/repos","events_url":"https://api.github.com/users/piyushghai/events{/privacy}","received_events_url":"https://api.github.com/users/piyushghai/received_events","type":"User","site_admin":false},"body":"Done.","created_at":"2018-07-24T22:51:39Z","updated_at":"2018-07-24T22:51:39Z","html_url":"https://github.com/awslabs/mxnet-model-server/pull/462#discussion_r204935994","pull_request_url":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/comments/204935994"},"html":{"href":"https://github.com/awslabs/mxnet-model-server/pull/462#discussion_r204935994"},"pull_request":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462"}},"in_reply_to_id":204903831},"pull_request":{"url":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462","id":203382207,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzMzgyMjA3","html_url":"https://github.com/awslabs/mxnet-model-server/pull/462","diff_url":"https://github.com/awslabs/mxnet-model-server/pull/462.diff","patch_url":"https://github.com/awslabs/mxnet-model-server/pull/462.patch","issue_url":"https://api.github.com/repos/awslabs/mxnet-model-server/issues/462","number":462,"state":"open","locked":false,"title":"Added unit tests for service_manager class","user":{"login":"piyushghai","id":7931019,"node_id":"MDQ6VXNlcjc5MzEwMTk=","avatar_url":"https://avatars1.githubusercontent.com/u/7931019?v=4","gravatar_id":"","url":"https://api.github.com/users/piyushghai","html_url":"https://github.com/piyushghai","followers_url":"https://api.github.com/users/piyushghai/followers","following_url":"https://api.github.com/users/piyushghai/following{/other_user}","gists_url":"https://api.github.com/users/piyushghai/gists{/gist_id}","starred_url":"https://api.github.com/users/piyushghai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piyushghai/subscriptions","organizations_url":"https://api.github.com/users/piyushghai/orgs","repos_url":"https://api.github.com/users/piyushghai/repos","events_url":"https://api.github.com/users/piyushghai/events{/privacy}","received_events_url":"https://api.github.com/users/piyushghai/received_events","type":"User","site_admin":false},"body":"Unit tests for service_manager.py\r\nUnit test cases for MXNET model service error\r\nUnit test cases for model_service.py\r\n\r\n\r\nBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.\r\n","created_at":"2018-07-24T00:56:16Z","updated_at":"2018-07-24T22:51:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1295255e6fad869da40313d83871d44bce8717f7","assignee":null,"assignees":[],"requested_reviewers":[{"login":"frankfliu","id":24425551,"node_id":"MDQ6VXNlcjI0NDI1NTUx","avatar_url":"https://avatars1.githubusercontent.com/u/24425551?v=4","gravatar_id":"","url":"https://api.github.com/users/frankfliu","html_url":"https://github.com/frankfliu","followers_url":"https://api.github.com/users/frankfliu/followers","following_url":"https://api.github.com/users/frankfliu/following{/other_user}","gists_url":"https://api.github.com/users/frankfliu/gists{/gist_id}","starred_url":"https://api.github.com/users/frankfliu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frankfliu/subscriptions","organizations_url":"https://api.github.com/users/frankfliu/orgs","repos_url":"https://api.github.com/users/frankfliu/repos","events_url":"https://api.github.com/users/frankfliu/events{/privacy}","received_events_url":"https://api.github.com/users/frankfliu/received_events","type":"User","site_admin":false},{"login":"vdantu","id":36211508,"node_id":"MDQ6VXNlcjM2MjExNTA4","avatar_url":"https://avatars1.githubusercontent.com/u/36211508?v=4","gravatar_id":"","url":"https://api.github.com/users/vdantu","html_url":"https://github.com/vdantu","followers_url":"https://api.github.com/users/vdantu/followers","following_url":"https://api.github.com/users/vdantu/following{/other_user}","gists_url":"https://api.github.com/users/vdantu/gists{/gist_id}","starred_url":"https://api.github.com/users/vdantu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vdantu/subscriptions","organizations_url":"https://api.github.com/users/vdantu/orgs","repos_url":"https://api.github.com/users/vdantu/repos","events_url":"https://api.github.com/users/vdantu/events{/privacy}","received_events_url":"https://api.github.com/users/vdantu/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462/commits","review_comments_url":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462/comments","review_comment_url":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/comments{/number}","comments_url":"https://api.github.com/repos/awslabs/mxnet-model-server/issues/462/comments","statuses_url":"https://api.github.com/repos/awslabs/mxnet-model-server/statuses/a78758d3d6c09a8c763363818fd02a3967572a7d","head":{"label":"piyushghai:netty3","ref":"netty3","sha":"a78758d3d6c09a8c763363818fd02a3967572a7d","user":{"login":"piyushghai","id":7931019,"node_id":"MDQ6VXNlcjc5MzEwMTk=","avatar_url":"https://avatars1.githubusercontent.com/u/7931019?v=4","gravatar_id":"","url":"https://api.github.com/users/piyushghai","html_url":"https://github.com/piyushghai","followers_url":"https://api.github.com/users/piyushghai/followers","following_url":"https://api.github.com/users/piyushghai/following{/other_user}","gists_url":"https://api.github.com/users/piyushghai/gists{/gist_id}","starred_url":"https://api.github.com/users/piyushghai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piyushghai/subscriptions","organizations_url":"https://api.github.com/users/piyushghai/orgs","repos_url":"https://api.github.com/users/piyushghai/repos","events_url":"https://api.github.com/users/piyushghai/events{/privacy}","received_events_url":"https://api.github.com/users/piyushghai/received_events","type":"User","site_admin":false},"repo":{"id":141317146,"node_id":"MDEwOlJlcG9zaXRvcnkxNDEzMTcxNDY=","name":"mxnet-model-server","full_name":"piyushghai/mxnet-model-server","owner":{"login":"piyushghai","id":7931019,"node_id":"MDQ6VXNlcjc5MzEwMTk=","avatar_url":"https://avatars1.githubusercontent.com/u/7931019?v=4","gravatar_id":"","url":"https://api.github.com/users/piyushghai","html_url":"https://github.com/piyushghai","followers_url":"https://api.github.com/users/piyushghai/followers","following_url":"https://api.github.com/users/piyushghai/following{/other_user}","gists_url":"https://api.github.com/users/piyushghai/gists{/gist_id}","starred_url":"https://api.github.com/users/piyushghai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piyushghai/subscriptions","organizations_url":"https://api.github.com/users/piyushghai/orgs","repos_url":"https://api.github.com/users/piyushghai/repos","events_url":"https://api.github.com/users/piyushghai/events{/privacy}","received_events_url":"https://api.github.com/users/piyushghai/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/piyushghai/mxnet-model-server","description":"Model Server for Apache MXNet is a tool for serving neural net models for inference","fork":true,"url":"https://api.github.com/repos/piyushghai/mxnet-model-server","forks_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/forks","keys_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/teams","hooks_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/hooks","issue_events_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/issues/events{/number}","events_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/events","assignees_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/assignees{/user}","branches_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/branches{/branch}","tags_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/tags","blobs_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/statuses/{sha}","languages_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/languages","stargazers_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/stargazers","contributors_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/contributors","subscribers_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/subscribers","subscription_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/subscription","commits_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/issues/comments{/number}","contents_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/contents/{+path}","compare_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/merges","archive_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/downloads","issues_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/issues{/number}","pulls_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/pulls{/number}","milestones_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/milestones{/number}","notifications_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/labels{/name}","releases_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/releases{/id}","deployments_url":"https://api.github.com/repos/piyushghai/mxnet-model-server/deployments","created_at":"2018-07-17T16:40:29Z","updated_at":"2018-07-17T16:40:32Z","pushed_at":"2018-07-24T22:51:17Z","git_url":"git://github.com/piyushghai/mxnet-model-server.git","ssh_url":"git@github.com:piyushghai/mxnet-model-server.git","clone_url":"https://github.com/piyushghai/mxnet-model-server.git","svn_url":"https://github.com/piyushghai/mxnet-model-server","homepage":"","size":36174,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"awslabs:netty","ref":"netty","sha":"661d6d556b3654cf7b473b1b5b4e5884887020e1","user":{"login":"awslabs","id":3299148,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyOTkxNDg=","avatar_url":"https://avatars0.githubusercontent.com/u/3299148?v=4","gravatar_id":"","url":"https://api.github.com/users/awslabs","html_url":"https://github.com/awslabs","followers_url":"https://api.github.com/users/awslabs/followers","following_url":"https://api.github.com/users/awslabs/following{/other_user}","gists_url":"https://api.github.com/users/awslabs/gists{/gist_id}","starred_url":"https://api.github.com/users/awslabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awslabs/subscriptions","organizations_url":"https://api.github.com/users/awslabs/orgs","repos_url":"https://api.github.com/users/awslabs/repos","events_url":"https://api.github.com/users/awslabs/events{/privacy}","received_events_url":"https://api.github.com/users/awslabs/received_events","type":"Organization","site_admin":false},"repo":{"id":105830539,"node_id":"MDEwOlJlcG9zaXRvcnkxMDU4MzA1Mzk=","name":"mxnet-model-server","full_name":"awslabs/mxnet-model-server","owner":{"login":"awslabs","id":3299148,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyOTkxNDg=","avatar_url":"https://avatars0.githubusercontent.com/u/3299148?v=4","gravatar_id":"","url":"https://api.github.com/users/awslabs","html_url":"https://github.com/awslabs","followers_url":"https://api.github.com/users/awslabs/followers","following_url":"https://api.github.com/users/awslabs/following{/other_user}","gists_url":"https://api.github.com/users/awslabs/gists{/gist_id}","starred_url":"https://api.github.com/users/awslabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awslabs/subscriptions","organizations_url":"https://api.github.com/users/awslabs/orgs","repos_url":"https://api.github.com/users/awslabs/repos","events_url":"https://api.github.com/users/awslabs/events{/privacy}","received_events_url":"https://api.github.com/users/awslabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/awslabs/mxnet-model-server","description":"Model Server for Apache MXNet is a tool for serving neural net models for inference","fork":false,"url":"https://api.github.com/repos/awslabs/mxnet-model-server","forks_url":"https://api.github.com/repos/awslabs/mxnet-model-server/forks","keys_url":"https://api.github.com/repos/awslabs/mxnet-model-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/awslabs/mxnet-model-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/awslabs/mxnet-model-server/teams","hooks_url":"https://api.github.com/repos/awslabs/mxnet-model-server/hooks","issue_events_url":"https://api.github.com/repos/awslabs/mxnet-model-server/issues/events{/number}","events_url":"https://api.github.com/repos/awslabs/mxnet-model-server/events","assignees_url":"https://api.github.com/repos/awslabs/mxnet-model-server/assignees{/user}","branches_url":"https://api.github.com/repos/awslabs/mxnet-model-server/branches{/branch}","tags_url":"https://api.github.com/repos/awslabs/mxnet-model-server/tags","blobs_url":"https://api.github.com/repos/awslabs/mxnet-model-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/awslabs/mxnet-model-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/awslabs/mxnet-model-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/awslabs/mxnet-model-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/awslabs/mxnet-model-server/statuses/{sha}","languages_url":"https://api.github.com/repos/awslabs/mxnet-model-server/languages","stargazers_url":"https://api.github.com/repos/awslabs/mxnet-model-server/stargazers","contributors_url":"https://api.github.com/repos/awslabs/mxnet-model-server/contributors","subscribers_url":"https://api.github.com/repos/awslabs/mxnet-model-server/subscribers","subscription_url":"https://api.github.com/repos/awslabs/mxnet-model-server/subscription","commits_url":"https://api.github.com/repos/awslabs/mxnet-model-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/awslabs/mxnet-model-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/awslabs/mxnet-model-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/awslabs/mxnet-model-server/issues/comments{/number}","contents_url":"https://api.github.com/repos/awslabs/mxnet-model-server/contents/{+path}","compare_url":"https://api.github.com/repos/awslabs/mxnet-model-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/awslabs/mxnet-model-server/merges","archive_url":"https://api.github.com/repos/awslabs/mxnet-model-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/awslabs/mxnet-model-server/downloads","issues_url":"https://api.github.com/repos/awslabs/mxnet-model-server/issues{/number}","pulls_url":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls{/number}","milestones_url":"https://api.github.com/repos/awslabs/mxnet-model-server/milestones{/number}","notifications_url":"https://api.github.com/repos/awslabs/mxnet-model-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/awslabs/mxnet-model-server/labels{/name}","releases_url":"https://api.github.com/repos/awslabs/mxnet-model-server/releases{/id}","deployments_url":"https://api.github.com/repos/awslabs/mxnet-model-server/deployments","created_at":"2017-10-04T23:41:07Z","updated_at":"2018-07-22T10:25:54Z","pushed_at":"2018-07-24T22:51:19Z","git_url":"git://github.com/awslabs/mxnet-model-server.git","ssh_url":"git@github.com:awslabs/mxnet-model-server.git","clone_url":"https://github.com/awslabs/mxnet-model-server.git","svn_url":"https://github.com/awslabs/mxnet-model-server","homepage":"","size":36167,"stargazers_count":274,"watchers_count":274,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":61,"mirror_url":null,"archived":false,"open_issues_count":48,"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":61,"open_issues":48,"watchers":274,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462"},"html":{"href":"https://github.com/awslabs/mxnet-model-server/pull/462"},"issue":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/issues/462"},"comments":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/issues/462/comments"},"review_comments":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462/comments"},"review_comment":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/pulls/462/commits"},"statuses":{"href":"https://api.github.com/repos/awslabs/mxnet-model-server/statuses/a78758d3d6c09a8c763363818fd02a3967572a7d"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"piyushghai"}}