{"action":"created","comment":{"url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/comments/187213404","pull_request_review_id":118948463,"id":187213404,"diff_hunk":"@@ -6645,268 +2169,311 @@ var tnthDates = {\n \n };\n \n-/***\n- * Bootstrap datatables functions\n- * Uses http://bootstrap-table.wenzhixin.net.cn/documentation/\n- ****/\n-\n-var tnthTables = {\n-    /***\n-     * Quick way to sort when text is wrapper in an <a href> or other tag\n-     * @param a,b - the two items to compare\n-     * @returns 1,-1 or 0 for sorting\n-     */\n-    \"stripLinksSorter\": function(a,b) {\n-        a = $(a).text();\n-        b = $(b).text();\n-        var aa = parseFloat(a);\n-        var bb = parseFloat(b);\n-        //if (aa > bb) return 1;\n-        //if (aa < bb) return -1;\n-        //return 0;\n-        return  bb - aa;\n-    },\n-    /***\n-     * Quick way to sort when text is wrapped in an <a href> or other tag\n-     * NOTE for text that is NOT number\n-     * @param a,b - the two items to compare\n-     * @returns 1,-1 or 0 for sorting\n-     */\n-    \"stripLinksTextSorter\": function(a,b) {\n-        var aa = $(a).text();\n-        var bb = $(b).text();\n-        if(aa < bb) return -1;\n-        if(aa > bb) return 1;\n-        return 0;\n-    },\n-    /***\n-     * sorting date string,\n-     * @param a,b - the two items to compare - note, this assumes that the parameters\n-     * are in valid date format e.g. 3 August 2017\n-     * @returns 1,-1 or 0 for sorting\n-     */\n-    \"dateSorter\": function(a,b) {\n-        if (!hasValue(a)) a = 0;\n-        if (!hasValue(b)) b = 0;\n-        /*\n-         * make sure the string passed in does not have line break element\n-         * if so it is a possible mult-line text, split it up and use\n-         * the first item in the resulting array\n-         */\n-        var regex = /<br\\s*[\\/]?>/gi;\n-        a = a.replace(regex, \"\\n\");\n-        b = b.replace(regex, \"\\n\");\n-        var ar = a.split(\"\\n\");\n-        if (ar.length > 0) a = ar[0];\n-        var br = b.split(\"\\n\");\n-        if (br.length > 0) b = br[0];\n-        /* note getTime return returns the numeric value\n-         * corresponding to the time for the specified date according to universal time\n-         * therefore, can be used for sorting\n-         */\n-        var a_d = (new Date(a)).getTime();\n-        var b_d = (new Date(b)).getTime();\n-\n-        if (isNaN(a_d)) a_d = 0;\n-        if (isNaN(b_d)) b_d = 0;\n-\n-        return  b_d - a_d;\n+var Global = {\n+    \"registerModules\": function() { //TODO use webpack or requireJS to import modules?\n+        if (!window.portalModules) {\n+            window.portalModules = {};\n+        }\n+        window.portalModules.SYSTEM_IDENTIFIER_ENUM = SYSTEM_IDENTIFIER_ENUM;\n+        window.portalModules.tnthAjax = tnthAjax;\n+        window.portalModules.tnthDates = tnthDates;\n+        window.portalModules.orgTool = OrgTool;\n+        window.portalModules.i18next = i18next;\n     },\n-    /***\n-     * sorting alpha numeric string\n-     */\n-     \"alphanumericSorter\": function (a, b) {\n-        /*\n-         * see https://cdn.rawgit.com/myadzel/6405e60256df579eda8c/raw/e24a756e168cb82d0798685fd3069a75f191783f/alphanum.js\n-         */\n-        return alphanum(a, b);\n-    }\n-};\n-var FieldLoaderHelper = function () {\n-    this.delayDuration = 600;\n-    this.showLoader = function(targetField) {\n-        if(targetField && targetField.length > 0) {\n-           $(\"#\" + targetField.attr(\"data-save-container-id\") + \"_load\").css(\"opacity\", 1);\n-        };\n-    };\n-\n-    this.showUpdate = function(targetField) {\n-        targetField = targetField || $(targetField);\n-        var __timeout = this.delayDuration;\n-        if(targetField && targetField.length > 0) {\n-            setTimeout(function() { (function(targetField) {\n-                var errorField = $(\"#\" + targetField.attr(\"data-save-container-id\") + \"_error\");\n-                var successField = $(\"#\"+ targetField.attr(\"data-save-container-id\") + \"_success\");\n-                var loadingField = $(\"#\" + targetField.attr(\"data-save-container-id\") + \"_load\");\n-                errorField.text(\"\").css(\"opacity\", 0);\n-                successField.text(\"success\");\n-                loadingField.animate({\"opacity\": 0}, __timeout, function() {\n-                    successField.animate({\"opacity\": 1}, __timeout, function() {\n-                        setTimeout(function() { successField.animate({\"opacity\": 0}, __timeout*2); }, __timeout*2);\n-                });\n-             });\n-            })(targetField); }, __timeout);\n-        };\n-    };\n-\n-    this.showError = function(targetField) {\n-        targetField = targetField || $(targetField);\n-        var __timeout = this.delayDuration;\n-        if(targetField && targetField.length > 0) {\n-            setTimeout(function() { (function(targetField) {\n-                var errorField = $(\"#\" + targetField.attr(\"data-save-container-id\") + \"_error\");\n-                var successField = $(\"#\"+ targetField.attr(\"data-save-container-id\") + \"_success\");\n-                var loadingField = $(\"#\" + targetField.attr(\"data-save-container-id\") + \"_load\");\n-                errorField.text(\"Unable to update. System/Server Error.\");\n-                successField.text(\"\").css(\"opacity\", 0);\n-                loadingField.animate({\"opacity\": 0}, __timeout, function() {\n-                    errorField.animate({\"opacity\": 1}, __timeout, function() {\n-                        setTimeout(function() { errorField.animate({\"opacity\": 0}, __timeout*2); }, __timeout*2);\n+    \"initPortalWrapper\": function(PORTAL_NAV_PAGE, callback) {\n+        var isIE = getIEVersion();\n+        callback = callback || function() {};\n+        var useFunc = isIE ? newHttpRequest: funcWrapper;\n+        useFunc(PORTAL_NAV_PAGE, function(data) {\n+            embed_page(data);\n+            setTimeout(function() {\n+                $(\"#tnthNavWrapper .logout\").on(\"click\", function(e) {\n+                    console.log(\"HERE?\")\n+                    e.stopImmediatePropagation();\n+                    sessionStorage.clear();\n                 });\n-             });\n-            })(targetField); }, __timeout);\n-        };\n-    };\n-};\n-\n-var userSetLang = tnthDates.getUserLocale();\n-__i18next.init({\n-    \"debug\": false,\n-    \"initImmediate\": false,\n-    \"lng\": userSetLang\n-}, function() {\n-    $(document).ready(function() {\n-        var PORTAL_NAV_PAGE = window.location.protocol+\"//\"+window.location.host+\"/api/portal-wrapper-html/\";\n-        if (PORTAL_NAV_PAGE) {\n-            loader(true);\n-            fillContent.initPortalWrapper(PORTAL_NAV_PAGE);\n-        } else {\n-            loader();\n-        }\n+            }, 150);\n+            Global.getNotification(function(data) { //ajax to get notifications information\n+                Global.notifications(data);\n+            });\n+            callback();\n+        });\n+    },\n+    \"loginAs\": function() {\n         var LOGIN_AS_PATIENT = (typeof sessionStorage !== \"undefined\") ? sessionStorage.getItem(\"loginAsPatient\") : null;\n         if (LOGIN_AS_PATIENT) {\n-            /*\n-             * need to clear current user locale in session storage when logging in as patient\n-             */\n-            tnthDates.getUserLocale(true);\n+            sessionStorage.clear();\n+            tnthDates.getUserLocale(true); //need to clear current user locale in session storage when logging in as patient\n             if (typeof history !== \"undefined\" && history.pushState) {\n                 history.pushState(null, null, location.href);\n             }\n-            window.addEventListener(\"popstate\", function(event) {\n+            window.addEventListener(\"popstate\", function() {\n                 if (typeof history !== \"undefined\" && history.pushState) {\n                     history.pushState(null, null, location.href);\n                 } else {\n                     window.history.forward(1);\n                 }\n             });\n         }\n+    },\n+    \"footer\": function() {\n+        var logoLinks = $(\"#homeFooter .logo-link\");\n+        if (logoLinks.length > 0) {\n+            logoLinks.each(function() {\n+                if (!$.trim($(this).attr(\"href\"))) {\n+                    $(this).removeAttr(\"target\");\n+                    $(this).on(\"click\", function(e) {\n+                        e.preventDefault();\n+                        return false;\n+                    });\n+                }\n+            });\n+        }\n+        setTimeout(function() { //Reveal footer after load to avoid any flashes will above content loads\n+            $(\"#homeFooter\").show();\n+        }, 100);\n \n-        tnthAjax.beforeSend();\n+        setTimeout(function() {\n+            var userLocale = $(\"#copyrightLocaleCode\").val(), footerElements = $(\"#homeFooter .copyright\");\n+            var getContent = function(cc) {\n+                var content = \"\";\n+                switch (String(cc.toUpperCase())) {\n+                case \"US\":\n+                case \"EN_US\":\n+                    content = i18next.t(\"&copy; 2017 Movember Foundation. All rights reserved. A registered 501(c)3 non-profit organization (Movember Foundation).\");\n+                    break;\n+                case \"AU\":\n+                case \"EN_AU\":\n+                    content = i18next.t(\"&copy; 2017 Movember Foundation. All rights reserved. Movember Foundation is a registered charity in Australia ABN 48894537905 (Movember Foundation).\");\n+                    break;\n+                case \"NZ\":\n+                case \"EN_NZ\":\n+                    content = i18next.t(\"&copy; 2017 Movember Foundation. All rights reserved. Movember Foundation is a New Zealand registered charity number CC51320 (Movember Foundation).\");\n+                    break;\n+                default:\n+                    content = i18next.t(\"&copy; 2017 Movember Foundation (Movember Foundation). All rights reserved.\");\n \n-        fillContent.footer();\n+                }\n+                return content;\n \n-        if ($(\"#termsContainer.website-consent-script\").length > 0) {\n-            fillContent.websiteConsentScript();\n+            };\n+            if (userLocale) {\n+                footerElements.html(getContent(userLocale));\n+            } else {\n+                $.getJSON(\"//freegeoip.net/json/?callback=?\", function(data) {\n+                    if (data && data.country_code) { //country code Australia AU New Zealand NZ USA US\n+                        footerElements.html(getContent(data.country_code));\n+                    } else {\n+                        footerElements.html(getContent());\n+                    }\n+                });\n+            }\n+        }, 500);\n+    },\n+    \"getNotification\": function(callback) {\n+        callback = callback || function() {};\n+        var userId = $(\"#notificationUserId\").val();\n+        if (userId) {\n+            var notificationSessionKey = \"notification_\" + userId;\n+            if (sessionStorage.getItem(notificationSessionKey)) {\n+                callback(JSON.parse(sessionStorage.getItem(notificationSessionKey)));\n+            } else {\n+                $.ajax({\n+                    type:\"GET\",\n+                    url: \"/api/user/\"+userId+\"/notification\"\n+                }).done(function(data) {\n+                    if (data) {\n+                        callback(data);\n+                        sessionStorage.setItem(notificationSessionKey, JSON.stringify(data));\n+                    } else {\n+                        callback({\"error\": i18next.t(\"no data returned\")});\n+                    }\n+                }).fail(function(){\n+                    callback({\"error\": i18next.t(\"Error occurred retrieving notification.\")});\n+                });\n+            }\n+        } else {\n+            callback({\"error\": i18next.t(\"User id is required\")});\n+        }\n+    },\n+    \"deleteNotification\": function(userId, notificationId) {\n+        if (!userId || parseInt(notificationId) < 0 || !notificationId) {\n+            return false;\n+        }\n+        this.getNotification(function(data) {\n+            if (data.notifications && data.notifications.length > 0) {\n+                var arrNotification = $.grep(data.notifications, function(notification) { //check if there is notification for this id -dealing with use case where user deletes same notification in a separate open window\n+                    return notification.id == notificationId;\n+                });\n+                var userId = $(\"#notificationUserId\").val();\n+                if (arrNotification.length > 0 && userId) { //delete notification only if it exists\n+                    $.ajax({\n+                        type: \"DELETE\",\n+                        url: \"/api/user/\" + userId + \"/notification/\" + notificationId\n+                    }).done(function() {\n+                        sessionStorage.removeItem(\"notification_\"+userId);\n+                    });\n+                }\n+            }\n+        });\n+    },\n+    \"notifications\": function(data) {\n+        if (data && data.notifications && data.notifications.length > 0) {\n+            var notificationText = \"\";\n+            (data.notifications).forEach(function(notice) {\n+                notificationText += \"<div class='notification' data-id='\" + notice.id + \"' data-name='\" + notice.name + \"'>\" + i18next.t(notice.content) + \"</div>\";","path":"portal/static/js/main.js","position":7951,"original_position":7951,"commit_id":"23ef351f1fb0a20a5c480f9e6215d3c1fb288d0c","original_commit_id":"23ef351f1fb0a20a5c480f9e6215d3c1fb288d0c","user":{"login":"codacy-bot","id":19940114,"avatar_url":"https://avatars1.githubusercontent.com/u/19940114?v=4","gravatar_id":"","url":"https://api.github.com/users/codacy-bot","html_url":"https://github.com/codacy-bot","followers_url":"https://api.github.com/users/codacy-bot/followers","following_url":"https://api.github.com/users/codacy-bot/following{/other_user}","gists_url":"https://api.github.com/users/codacy-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/codacy-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codacy-bot/subscriptions","organizations_url":"https://api.github.com/users/codacy-bot/orgs","repos_url":"https://api.github.com/users/codacy-bot/repos","events_url":"https://api.github.com/users/codacy-bot/events{/privacy}","received_events_url":"https://api.github.com/users/codacy-bot/received_events","type":"User","site_admin":false},"body":"![Codacy](https://app.codacy.com/assets/images/favicon.png) Issue found: ['i18next' was used before it was defined. (no-use-before-define)](https://app.codacy.com/app/uwcirg/true_nth_usa_portal/pullRequest?prid=1601916)","created_at":"2018-05-10T00:35:00Z","updated_at":"2018-05-10T00:35:00Z","html_url":"https://github.com/uwcirg/true_nth_usa_portal/pull/2088#discussion_r187213404","pull_request_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/comments/187213404"},"html":{"href":"https://github.com/uwcirg/true_nth_usa_portal/pull/2088#discussion_r187213404"},"pull_request":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088"}}},"pull_request":{"url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088","id":185307261,"html_url":"https://github.com/uwcirg/true_nth_usa_portal/pull/2088","diff_url":"https://github.com/uwcirg/true_nth_usa_portal/pull/2088.diff","patch_url":"https://github.com/uwcirg/true_nth_usa_portal/pull/2088.patch","issue_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/2088","number":2088,"state":"open","locked":false,"title":"Feature/js refactor 1","user":{"login":"achen2401","id":12942714,"avatar_url":"https://avatars2.githubusercontent.com/u/12942714?v=4","gravatar_id":"","url":"https://api.github.com/users/achen2401","html_url":"https://github.com/achen2401","followers_url":"https://api.github.com/users/achen2401/followers","following_url":"https://api.github.com/users/achen2401/following{/other_user}","gists_url":"https://api.github.com/users/achen2401/gists{/gist_id}","starred_url":"https://api.github.com/users/achen2401/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/achen2401/subscriptions","organizations_url":"https://api.github.com/users/achen2401/orgs","repos_url":"https://api.github.com/users/achen2401/repos","events_url":"https://api.github.com/users/achen2401/events{/privacy}","received_events_url":"https://api.github.com/users/achen2401/received_events","type":"User","site_admin":false},"body":"https://jira.movember.com/browse/TN-483\r\nremove dependencies among core objects (e.g. tnthAjax, assembleContent, etc.)\r\nmove profile object out from mainJS\r\nuse Vue when necessary to render data\r\nrefactor profile templates to remove duplicate code\r\nadd gulpfile for development tasks, e.g. compiling less, minify code, etc.\r\nbug fixes in initial queries\r\nalso containing bug fixes for:  TN-1025, TN-988, TN-1035\r\n\r\nI did add TODO notes for future work, this is initial foray but hopefully a good start\r\n# WILL BE FOR NEXT SPRINT, DON'T MERGE YET, WORKING ON FIXES BASED ON COMMENTS","created_at":"2018-05-02T00:17:32Z","updated_at":"2018-05-10T00:35:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"81726d0c2bda6bdc7667715296f368172e47a7eb","assignee":null,"assignees":[],"requested_reviewers":[{"login":"pbugni","id":755392,"avatar_url":"https://avatars0.githubusercontent.com/u/755392?v=4","gravatar_id":"","url":"https://api.github.com/users/pbugni","html_url":"https://github.com/pbugni","followers_url":"https://api.github.com/users/pbugni/followers","following_url":"https://api.github.com/users/pbugni/following{/other_user}","gists_url":"https://api.github.com/users/pbugni/gists{/gist_id}","starred_url":"https://api.github.com/users/pbugni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbugni/subscriptions","organizations_url":"https://api.github.com/users/pbugni/orgs","repos_url":"https://api.github.com/users/pbugni/repos","events_url":"https://api.github.com/users/pbugni/events{/privacy}","received_events_url":"https://api.github.com/users/pbugni/received_events","type":"User","site_admin":false},{"login":"mcjustin","id":1036500,"avatar_url":"https://avatars2.githubusercontent.com/u/1036500?v=4","gravatar_id":"","url":"https://api.github.com/users/mcjustin","html_url":"https://github.com/mcjustin","followers_url":"https://api.github.com/users/mcjustin/followers","following_url":"https://api.github.com/users/mcjustin/following{/other_user}","gists_url":"https://api.github.com/users/mcjustin/gists{/gist_id}","starred_url":"https://api.github.com/users/mcjustin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcjustin/subscriptions","organizations_url":"https://api.github.com/users/mcjustin/orgs","repos_url":"https://api.github.com/users/mcjustin/repos","events_url":"https://api.github.com/users/mcjustin/events{/privacy}","received_events_url":"https://api.github.com/users/mcjustin/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":{"url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/milestones/3","html_url":"https://github.com/uwcirg/true_nth_usa_portal/milestone/3","labels_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/milestones/3/labels","id":3318618,"number":3,"title":"Sprint 11","description":"","creator":{"login":"ivan-c","id":5333433,"avatar_url":"https://avatars1.githubusercontent.com/u/5333433?v=4","gravatar_id":"","url":"https://api.github.com/users/ivan-c","html_url":"https://github.com/ivan-c","followers_url":"https://api.github.com/users/ivan-c/followers","following_url":"https://api.github.com/users/ivan-c/following{/other_user}","gists_url":"https://api.github.com/users/ivan-c/gists{/gist_id}","starred_url":"https://api.github.com/users/ivan-c/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ivan-c/subscriptions","organizations_url":"https://api.github.com/users/ivan-c/orgs","repos_url":"https://api.github.com/users/ivan-c/repos","events_url":"https://api.github.com/users/ivan-c/events{/privacy}","received_events_url":"https://api.github.com/users/ivan-c/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2018-05-03T19:05:26Z","updated_at":"2018-05-09T22:46:46Z","due_on":"2018-05-25T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088/commits","review_comments_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088/comments","review_comment_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/comments{/number}","comments_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/2088/comments","statuses_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/statuses/23ef351f1fb0a20a5c480f9e6215d3c1fb288d0c","head":{"label":"uwcirg:feature/js-refactor-1","ref":"feature/js-refactor-1","sha":"23ef351f1fb0a20a5c480f9e6215d3c1fb288d0c","user":{"login":"uwcirg","id":4440514,"avatar_url":"https://avatars1.githubusercontent.com/u/4440514?v=4","gravatar_id":"","url":"https://api.github.com/users/uwcirg","html_url":"https://github.com/uwcirg","followers_url":"https://api.github.com/users/uwcirg/followers","following_url":"https://api.github.com/users/uwcirg/following{/other_user}","gists_url":"https://api.github.com/users/uwcirg/gists{/gist_id}","starred_url":"https://api.github.com/users/uwcirg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uwcirg/subscriptions","organizations_url":"https://api.github.com/users/uwcirg/orgs","repos_url":"https://api.github.com/users/uwcirg/repos","events_url":"https://api.github.com/users/uwcirg/events{/privacy}","received_events_url":"https://api.github.com/users/uwcirg/received_events","type":"Organization","site_admin":false},"repo":{"id":37150258,"name":"true_nth_usa_portal","full_name":"uwcirg/true_nth_usa_portal","owner":{"login":"uwcirg","id":4440514,"avatar_url":"https://avatars1.githubusercontent.com/u/4440514?v=4","gravatar_id":"","url":"https://api.github.com/users/uwcirg","html_url":"https://github.com/uwcirg","followers_url":"https://api.github.com/users/uwcirg/followers","following_url":"https://api.github.com/users/uwcirg/following{/other_user}","gists_url":"https://api.github.com/users/uwcirg/gists{/gist_id}","starred_url":"https://api.github.com/users/uwcirg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uwcirg/subscriptions","organizations_url":"https://api.github.com/users/uwcirg/orgs","repos_url":"https://api.github.com/users/uwcirg/repos","events_url":"https://api.github.com/users/uwcirg/events{/privacy}","received_events_url":"https://api.github.com/users/uwcirg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uwcirg/true_nth_usa_portal","description":"TrueNTH USA Portal / Shared Services, primary codebase","fork":false,"url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal","forks_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/forks","keys_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/teams","hooks_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/hooks","issue_events_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/events{/number}","events_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/events","assignees_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/assignees{/user}","branches_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/branches{/branch}","tags_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/tags","blobs_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/statuses/{sha}","languages_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/languages","stargazers_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/stargazers","contributors_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/contributors","subscribers_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/subscribers","subscription_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/subscription","commits_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/contents/{+path}","compare_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/merges","archive_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/downloads","issues_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues{/number}","pulls_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls{/number}","milestones_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/milestones{/number}","notifications_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/labels{/name}","releases_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/releases{/id}","deployments_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/deployments","created_at":"2015-06-09T18:25:47Z","updated_at":"2018-05-09T15:27:44Z","pushed_at":"2018-05-10T00:31:21Z","git_url":"git://github.com/uwcirg/true_nth_usa_portal.git","ssh_url":"git@github.com:uwcirg/true_nth_usa_portal.git","clone_url":"https://github.com/uwcirg/true_nth_usa_portal.git","svn_url":"https://github.com/uwcirg/true_nth_usa_portal","homepage":"","size":50870,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause"},"forks":3,"open_issues":3,"watchers":1,"default_branch":"develop"}},"base":{"label":"uwcirg:develop","ref":"develop","sha":"58a6146188104fa36c8fdaea708cfb586aecf164","user":{"login":"uwcirg","id":4440514,"avatar_url":"https://avatars1.githubusercontent.com/u/4440514?v=4","gravatar_id":"","url":"https://api.github.com/users/uwcirg","html_url":"https://github.com/uwcirg","followers_url":"https://api.github.com/users/uwcirg/followers","following_url":"https://api.github.com/users/uwcirg/following{/other_user}","gists_url":"https://api.github.com/users/uwcirg/gists{/gist_id}","starred_url":"https://api.github.com/users/uwcirg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uwcirg/subscriptions","organizations_url":"https://api.github.com/users/uwcirg/orgs","repos_url":"https://api.github.com/users/uwcirg/repos","events_url":"https://api.github.com/users/uwcirg/events{/privacy}","received_events_url":"https://api.github.com/users/uwcirg/received_events","type":"Organization","site_admin":false},"repo":{"id":37150258,"name":"true_nth_usa_portal","full_name":"uwcirg/true_nth_usa_portal","owner":{"login":"uwcirg","id":4440514,"avatar_url":"https://avatars1.githubusercontent.com/u/4440514?v=4","gravatar_id":"","url":"https://api.github.com/users/uwcirg","html_url":"https://github.com/uwcirg","followers_url":"https://api.github.com/users/uwcirg/followers","following_url":"https://api.github.com/users/uwcirg/following{/other_user}","gists_url":"https://api.github.com/users/uwcirg/gists{/gist_id}","starred_url":"https://api.github.com/users/uwcirg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uwcirg/subscriptions","organizations_url":"https://api.github.com/users/uwcirg/orgs","repos_url":"https://api.github.com/users/uwcirg/repos","events_url":"https://api.github.com/users/uwcirg/events{/privacy}","received_events_url":"https://api.github.com/users/uwcirg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uwcirg/true_nth_usa_portal","description":"TrueNTH USA Portal / Shared Services, primary codebase","fork":false,"url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal","forks_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/forks","keys_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/teams","hooks_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/hooks","issue_events_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/events{/number}","events_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/events","assignees_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/assignees{/user}","branches_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/branches{/branch}","tags_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/tags","blobs_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/statuses/{sha}","languages_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/languages","stargazers_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/stargazers","contributors_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/contributors","subscribers_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/subscribers","subscription_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/subscription","commits_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/contents/{+path}","compare_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/merges","archive_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/downloads","issues_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues{/number}","pulls_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls{/number}","milestones_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/milestones{/number}","notifications_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/labels{/name}","releases_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/releases{/id}","deployments_url":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/deployments","created_at":"2015-06-09T18:25:47Z","updated_at":"2018-05-09T15:27:44Z","pushed_at":"2018-05-10T00:31:21Z","git_url":"git://github.com/uwcirg/true_nth_usa_portal.git","ssh_url":"git@github.com:uwcirg/true_nth_usa_portal.git","clone_url":"https://github.com/uwcirg/true_nth_usa_portal.git","svn_url":"https://github.com/uwcirg/true_nth_usa_portal","homepage":"","size":50870,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause"},"forks":3,"open_issues":3,"watchers":1,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088"},"html":{"href":"https://github.com/uwcirg/true_nth_usa_portal/pull/2088"},"issue":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/2088"},"comments":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/issues/2088/comments"},"review_comments":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088/comments"},"review_comment":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/pulls/2088/commits"},"statuses":{"href":"https://api.github.com/repos/uwcirg/true_nth_usa_portal/statuses/23ef351f1fb0a20a5c480f9e6215d3c1fb288d0c"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"codacy-bot"}}