{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/openenclave/pulls/comments/239292536","pull_request_review_id":182041094,"id":239292536,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzOTI5MjUzNg==","diff_hunk":"@@ -0,0 +1,205 @@\n+// Copyright (c) Microsoft Corporation. All rights reserved.\n+// Licensed under the MIT License.\n+#include <openenclave/bits/safecrt.h>\n+#include <openenclave/bits/safemath.h>\n+#include <openenclave/bits/types.h>\n+#include <openenclave/enclave.h>\n+#include <openenclave/internal/calls.h>\n+#include <openenclave/internal/enclavelibc.h>\n+#include <openenclave/internal/report.h>\n+#include <openenclave/internal/sgxtypes.h>\n+#include <openenclave/internal/trace.h>\n+#include <openenclave/internal/utils.h>\n+\n+static oe_log_filter_t g_active_log_filter = {0};\n+static char g_logging_filename[MAX_FILENAME_LEN];\n+static bool g_debug_allowed_enclave = false;\n+\n+const char* get_filename_from_path(const char* path)\n+{\n+    if (path)\n+    {\n+        for (size_t i = oe_strlen(path) - 1; i >= 0; i--)\n+        {\n+            if (path[i] == '/')\n+            {\n+                return &path[i + 1];\n+            }\n+        }\n+    }\n+    return path;\n+}\n+\n+// Read an enclave's identity attribute to see to if it was signed as an debug\n+// enclave\n+bool is_enclave_debug_allowed()\n+{\n+    bool ret = false;\n+#ifdef OE_USE_LIBSGX\n+\n+#if defined(__linux__)\n+    oe_result_t result = 0;\n+    td_t* td = oe_get_td();\n+    uint8_t* report_buffer = NULL;\n+\n+    if (td->simulate)\n+    {\n+        // enclave in simulate mode is treated as debug_allowed\n+        ret = true;\n+    }\n+    else\n+    {\n+        uint64_t report_buffer_size = OE_MAX_REPORT_SIZE;\n+        const sgx_report_t* sgx_report = NULL;\n+        oe_report_header_t* header = NULL;\n+\n+        report_buffer = (uint8_t*)oe_malloc(OE_MAX_REPORT_SIZE);\n+        if (report_buffer == NULL)\n+            goto done;\n+\n+        // get a report on the enclave itself for enclave identity information\n+        report_buffer_size = OE_MAX_REPORT_SIZE;\n+        result = oe_get_report(\n+            0, NULL, 0, NULL, 0, report_buffer, &report_buffer_size);\n+        if (result != OE_OK)\n+            goto done;\n+\n+        header = (oe_report_header_t*)report_buffer;\n+        sgx_report = (const sgx_report_t*)header->report;\n+        ret = (sgx_report->body.attributes.flags & SGX_FLAGS_DEBUG) != 0;\n+    }\n+done:\n+    if (report_buffer)\n+        oe_free(report_buffer);\n+#elif defined(_WIN32)\n+    // WIN32 support is still under development.\n+    // We will have to come back to handle this case\n+    ret = true;\n+#endif\n+\n+#else\n+// When adding support for non-SGX solutions, we need to find a way to correctly\n+// identify whether an enclave is debug-allowed.\n+#endif\n+    return ret;\n+}\n+\n+/*\n+**==============================================================================\n+**\n+** _handle_oelog_init()\n+**\n+** Handle the OE_ECALL_LOG_INIT from host and initialize SDK logging\n+** configuration\n+**\n+**==============================================================================\n+*/\n+oe_result_t _handle_oelog_init(uint64_t arg)\n+{\n+    oe_result_t result = OE_FAILURE;\n+    const char* filename = NULL;\n+    oe_log_filter_t* filter = (oe_log_filter_t*)arg;\n+\n+    if (filter == NULL)\n+    {\n+        result = OE_INVALID_PARAMETER;\n+        goto done;\n+    }\n+    /* Copy structure into enclave memory */\n+    oe_memcpy(&g_active_log_filter, filter, sizeof(oe_log_filter_t));\n+\n+    if (!oe_is_outside_enclave((void*)filter, sizeof(oe_log_filter_t)))","path":"enclave/core/tracee.c","position":114,"original_position":111,"commit_id":"8838f7f0da1c004323c097d446938be3c8b3c14c","original_commit_id":"dca3dcad8795c97a5c05b06107e77a045847da7c","user":{"login":"ihaller","id":31476121,"node_id":"MDQ6VXNlcjMxNDc2MTIx","avatar_url":"https://avatars3.githubusercontent.com/u/31476121?v=4","gravatar_id":"","url":"https://api.github.com/users/ihaller","html_url":"https://github.com/ihaller","followers_url":"https://api.github.com/users/ihaller/followers","following_url":"https://api.github.com/users/ihaller/following{/other_user}","gists_url":"https://api.github.com/users/ihaller/gists{/gist_id}","starred_url":"https://api.github.com/users/ihaller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ihaller/subscriptions","organizations_url":"https://api.github.com/users/ihaller/orgs","repos_url":"https://api.github.com/users/ihaller/repos","events_url":"https://api.github.com/users/ihaller/events{/privacy}","received_events_url":"https://api.github.com/users/ihaller/received_events","type":"User","site_admin":false},"body":"anakrish is right that you should never dereference an untrusted pointer without first validating it. But this memcpy only dereferences the filter pointer and not filter.path (that one is dereferenced in the function called related to the path extraction), so it can be placed after the first validation, but before the second one.\r\n\r\nThe rule of thumb is:\r\n- Any dereferencing of an untrusted pointer should be preceded by a range check corresponding to the range to be accessed.\r\n- The first dereferencing of an untrusted pointer should be a memcpy into enclave memory (ideally volatile copy).\r\n- Any subsequent dereferencing should be rewritten to use the enclave copy of the data instead.\r\n","created_at":"2018-12-06T00:42:02Z","updated_at":"2018-12-06T00:42:03Z","html_url":"https://github.com/Microsoft/openenclave/pull/1118#discussion_r239292536","pull_request_url":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/openenclave/pulls/comments/239292536"},"html":{"href":"https://github.com/Microsoft/openenclave/pull/1118#discussion_r239292536"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118"}},"in_reply_to_id":239197934},"pull_request":{"url":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118","id":234076373,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM0MDc2Mzcz","html_url":"https://github.com/Microsoft/openenclave/pull/1118","diff_url":"https://github.com/Microsoft/openenclave/pull/1118.diff","patch_url":"https://github.com/Microsoft/openenclave/pull/1118.patch","issue_url":"https://api.github.com/repos/Microsoft/openenclave/issues/1118","number":1118,"state":"open","locked":false,"title":"Added OE SDK logging mechanism","user":{"login":"soccerGB","id":19215578,"node_id":"MDQ6VXNlcjE5MjE1NTc4","avatar_url":"https://avatars2.githubusercontent.com/u/19215578?v=4","gravatar_id":"","url":"https://api.github.com/users/soccerGB","html_url":"https://github.com/soccerGB","followers_url":"https://api.github.com/users/soccerGB/followers","following_url":"https://api.github.com/users/soccerGB/following{/other_user}","gists_url":"https://api.github.com/users/soccerGB/gists{/gist_id}","starred_url":"https://api.github.com/users/soccerGB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/soccerGB/subscriptions","organizations_url":"https://api.github.com/users/soccerGB/orgs","repos_url":"https://api.github.com/users/soccerGB/repos","events_url":"https://api.github.com/users/soccerGB/events{/privacy}","received_events_url":"https://api.github.com/users/soccerGB/received_events","type":"User","site_admin":false},"body":"This PR implements proposal mentioned in the following issue.\r\nhttps://github.com/Microsoft/openenclave/issues/1045\r\n","created_at":"2018-11-27T22:05:05Z","updated_at":"2018-12-06T00:42:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"847781df9ba6ff33f9905911c564f3b99b8c99d8","assignee":null,"assignees":[],"requested_reviewers":[{"login":"radhikaj","id":6453577,"node_id":"MDQ6VXNlcjY0NTM1Nzc=","avatar_url":"https://avatars1.githubusercontent.com/u/6453577?v=4","gravatar_id":"","url":"https://api.github.com/users/radhikaj","html_url":"https://github.com/radhikaj","followers_url":"https://api.github.com/users/radhikaj/followers","following_url":"https://api.github.com/users/radhikaj/following{/other_user}","gists_url":"https://api.github.com/users/radhikaj/gists{/gist_id}","starred_url":"https://api.github.com/users/radhikaj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radhikaj/subscriptions","organizations_url":"https://api.github.com/users/radhikaj/orgs","repos_url":"https://api.github.com/users/radhikaj/repos","events_url":"https://api.github.com/users/radhikaj/events{/privacy}","received_events_url":"https://api.github.com/users/radhikaj/received_events","type":"User","site_admin":false},{"login":"mikbras","id":10839418,"node_id":"MDQ6VXNlcjEwODM5NDE4","avatar_url":"https://avatars2.githubusercontent.com/u/10839418?v=4","gravatar_id":"","url":"https://api.github.com/users/mikbras","html_url":"https://github.com/mikbras","followers_url":"https://api.github.com/users/mikbras/followers","following_url":"https://api.github.com/users/mikbras/following{/other_user}","gists_url":"https://api.github.com/users/mikbras/gists{/gist_id}","starred_url":"https://api.github.com/users/mikbras/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikbras/subscriptions","organizations_url":"https://api.github.com/users/mikbras/orgs","repos_url":"https://api.github.com/users/mikbras/repos","events_url":"https://api.github.com/users/mikbras/events{/privacy}","received_events_url":"https://api.github.com/users/mikbras/received_events","type":"User","site_admin":false},{"login":"johnkord","id":16021727,"node_id":"MDQ6VXNlcjE2MDIxNzI3","avatar_url":"https://avatars1.githubusercontent.com/u/16021727?v=4","gravatar_id":"","url":"https://api.github.com/users/johnkord","html_url":"https://github.com/johnkord","followers_url":"https://api.github.com/users/johnkord/followers","following_url":"https://api.github.com/users/johnkord/following{/other_user}","gists_url":"https://api.github.com/users/johnkord/gists{/gist_id}","starred_url":"https://api.github.com/users/johnkord/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnkord/subscriptions","organizations_url":"https://api.github.com/users/johnkord/orgs","repos_url":"https://api.github.com/users/johnkord/repos","events_url":"https://api.github.com/users/johnkord/events{/privacy}","received_events_url":"https://api.github.com/users/johnkord/received_events","type":"User","site_admin":false},{"login":"anitagov","id":16311437,"node_id":"MDQ6VXNlcjE2MzExNDM3","avatar_url":"https://avatars3.githubusercontent.com/u/16311437?v=4","gravatar_id":"","url":"https://api.github.com/users/anitagov","html_url":"https://github.com/anitagov","followers_url":"https://api.github.com/users/anitagov/followers","following_url":"https://api.github.com/users/anitagov/following{/other_user}","gists_url":"https://api.github.com/users/anitagov/gists{/gist_id}","starred_url":"https://api.github.com/users/anitagov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anitagov/subscriptions","organizations_url":"https://api.github.com/users/anitagov/orgs","repos_url":"https://api.github.com/users/anitagov/repos","events_url":"https://api.github.com/users/anitagov/events{/privacy}","received_events_url":"https://api.github.com/users/anitagov/received_events","type":"User","site_admin":false},{"login":"dmitsh","id":17212177,"node_id":"MDQ6VXNlcjE3MjEyMTc3","avatar_url":"https://avatars3.githubusercontent.com/u/17212177?v=4","gravatar_id":"","url":"https://api.github.com/users/dmitsh","html_url":"https://github.com/dmitsh","followers_url":"https://api.github.com/users/dmitsh/followers","following_url":"https://api.github.com/users/dmitsh/following{/other_user}","gists_url":"https://api.github.com/users/dmitsh/gists{/gist_id}","starred_url":"https://api.github.com/users/dmitsh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmitsh/subscriptions","organizations_url":"https://api.github.com/users/dmitsh/orgs","repos_url":"https://api.github.com/users/dmitsh/repos","events_url":"https://api.github.com/users/dmitsh/events{/privacy}","received_events_url":"https://api.github.com/users/dmitsh/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118/commits","review_comments_url":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118/comments","review_comment_url":"https://api.github.com/repos/Microsoft/openenclave/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/openenclave/issues/1118/comments","statuses_url":"https://api.github.com/repos/Microsoft/openenclave/statuses/8838f7f0da1c004323c097d446938be3c8b3c14c","head":{"label":"Microsoft:soccerl/sdklogging","ref":"soccerl/sdklogging","sha":"8838f7f0da1c004323c097d446938be3c8b3c14c","user":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":101804230,"node_id":"MDEwOlJlcG9zaXRvcnkxMDE4MDQyMzA=","name":"openenclave","full_name":"Microsoft/openenclave","private":false,"owner":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/Microsoft/openenclave","description":"SDK for developing enclaves","fork":false,"url":"https://api.github.com/repos/Microsoft/openenclave","forks_url":"https://api.github.com/repos/Microsoft/openenclave/forks","keys_url":"https://api.github.com/repos/Microsoft/openenclave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/openenclave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/openenclave/teams","hooks_url":"https://api.github.com/repos/Microsoft/openenclave/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/openenclave/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/openenclave/events","assignees_url":"https://api.github.com/repos/Microsoft/openenclave/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/openenclave/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/openenclave/tags","blobs_url":"https://api.github.com/repos/Microsoft/openenclave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/openenclave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/openenclave/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/openenclave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/openenclave/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/openenclave/languages","stargazers_url":"https://api.github.com/repos/Microsoft/openenclave/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/openenclave/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/openenclave/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/openenclave/subscription","commits_url":"https://api.github.com/repos/Microsoft/openenclave/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/openenclave/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/openenclave/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/openenclave/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/openenclave/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/openenclave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/openenclave/merges","archive_url":"https://api.github.com/repos/Microsoft/openenclave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/openenclave/downloads","issues_url":"https://api.github.com/repos/Microsoft/openenclave/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/openenclave/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/openenclave/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/openenclave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/openenclave/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/openenclave/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/openenclave/deployments","created_at":"2017-08-29T20:31:38Z","updated_at":"2018-12-06T00:37:25Z","pushed_at":"2018-12-06T00:40:34Z","git_url":"git://github.com/Microsoft/openenclave.git","ssh_url":"git@github.com:Microsoft/openenclave.git","clone_url":"https://github.com/Microsoft/openenclave.git","svn_url":"https://github.com/Microsoft/openenclave","homepage":null,"size":46123,"stargazers_count":79,"watchers_count":79,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":21,"mirror_url":null,"archived":false,"open_issues_count":178,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":21,"open_issues":178,"watchers":79,"default_branch":"master"}},"base":{"label":"Microsoft:master","ref":"master","sha":"d92b90f7fc16e2abd144a0fda2af89609efc6cfa","user":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":101804230,"node_id":"MDEwOlJlcG9zaXRvcnkxMDE4MDQyMzA=","name":"openenclave","full_name":"Microsoft/openenclave","private":false,"owner":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/Microsoft/openenclave","description":"SDK for developing enclaves","fork":false,"url":"https://api.github.com/repos/Microsoft/openenclave","forks_url":"https://api.github.com/repos/Microsoft/openenclave/forks","keys_url":"https://api.github.com/repos/Microsoft/openenclave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/openenclave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/openenclave/teams","hooks_url":"https://api.github.com/repos/Microsoft/openenclave/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/openenclave/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/openenclave/events","assignees_url":"https://api.github.com/repos/Microsoft/openenclave/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/openenclave/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/openenclave/tags","blobs_url":"https://api.github.com/repos/Microsoft/openenclave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/openenclave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/openenclave/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/openenclave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/openenclave/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/openenclave/languages","stargazers_url":"https://api.github.com/repos/Microsoft/openenclave/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/openenclave/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/openenclave/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/openenclave/subscription","commits_url":"https://api.github.com/repos/Microsoft/openenclave/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/openenclave/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/openenclave/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/openenclave/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/openenclave/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/openenclave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/openenclave/merges","archive_url":"https://api.github.com/repos/Microsoft/openenclave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/openenclave/downloads","issues_url":"https://api.github.com/repos/Microsoft/openenclave/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/openenclave/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/openenclave/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/openenclave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/openenclave/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/openenclave/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/openenclave/deployments","created_at":"2017-08-29T20:31:38Z","updated_at":"2018-12-06T00:37:25Z","pushed_at":"2018-12-06T00:40:34Z","git_url":"git://github.com/Microsoft/openenclave.git","ssh_url":"git@github.com:Microsoft/openenclave.git","clone_url":"https://github.com/Microsoft/openenclave.git","svn_url":"https://github.com/Microsoft/openenclave","homepage":null,"size":46123,"stargazers_count":79,"watchers_count":79,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":21,"mirror_url":null,"archived":false,"open_issues_count":178,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":21,"open_issues":178,"watchers":79,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118"},"html":{"href":"https://github.com/Microsoft/openenclave/pull/1118"},"issue":{"href":"https://api.github.com/repos/Microsoft/openenclave/issues/1118"},"comments":{"href":"https://api.github.com/repos/Microsoft/openenclave/issues/1118/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/openenclave/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/openenclave/pulls/1118/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/openenclave/statuses/8838f7f0da1c004323c097d446938be3c8b3c14c"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"ihaller"}}