{"action":"created","comment":{"url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/comments/152117957","pull_request_review_id":77915897,"id":152117957,"diff_hunk":"@@ -0,0 +1,69 @@\n+/*\n+    Copyright (c) 2017, Salesforce.org\n+    All rights reserved.\n+\n+    Redistribution and use in source and binary forms, with or without\n+    modification, are permitted provided that the following conditions are met:\n+\n+    * Redistributions of source code must retain the above copyright\n+      notice, this list of conditions and the following disclaimer.\n+    * Redistributions in binary form must reproduce the above copyright\n+      notice, this list of conditions and the following disclaimer in the\n+      documentation and/or other materials provided with the distribution.\n+    * Neither the name of Salesforce.org nor the names of\n+      its contributors may be used to endorse or promote products derived\n+      from this software without specific prior written permission.\n+\n+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+    \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n+    FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n+    COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n+    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n+    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n+    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\n+    ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n+    POSSIBILITY OF SUCH DAMAGE.\n+*/\n+/**\n+* @author Salesforce.org\n+* @date 2017\n+* @group TDTM\n+* @group-content ../../ApexDocContent/TDTM.htm\n+* @description Test class for the THAN_ClearCache_TDTM class\n+*/\n+@isTest\n+public with sharing class THAN_ClearCache_TEST {\n+\n+    //Test to verify that the cached tokens get cleared\n+    @isTest\n+    public static void clearCacheAfterInsertTriggerHandler() {\n+        //Insert user's handlers\n+        Trigger_Handler__c contactUpdate = new Trigger_Handler__c(\n+                Active__c = true,\n+                Asynchronous__c = false,\n+                Class__c = 'Contact_Update_User',\n+                Load_Order__c = 0.20,\n+                Object__c = 'Contact',\n+                Trigger_Action__c = 'BeforeInsert;BeforeUpdate',\n+                Filter_Field__c = 'Gender__c',\n+                Filter_Value__c = 'Male'\n+        );\n+\n+        insert contactUpdate;\n+\n+        //After insert Trigger Handler, system should clear the cache, so getTdtmConfig should include the new TriggerHandler\n+        List<TDTM_Global_API.TdtmToken> tokens = TDTM_Global_API.getTdtmConfig();","path":"src/classes/THAN_ClearCache_TEST.cls","position":58,"original_position":58,"commit_id":"80bc7eb14614732977e19bba083f3bff991bd9d2","original_commit_id":"80bc7eb14614732977e19bba083f3bff991bd9d2","user":{"login":"ceiroa","id":1894238,"avatar_url":"https://avatars0.githubusercontent.com/u/1894238?v=4","gravatar_id":"","url":"https://api.github.com/users/ceiroa","html_url":"https://github.com/ceiroa","followers_url":"https://api.github.com/users/ceiroa/followers","following_url":"https://api.github.com/users/ceiroa/following{/other_user}","gists_url":"https://api.github.com/users/ceiroa/gists{/gist_id}","starred_url":"https://api.github.com/users/ceiroa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceiroa/subscriptions","organizations_url":"https://api.github.com/users/ceiroa/orgs","repos_url":"https://api.github.com/users/ceiroa/repos","events_url":"https://api.github.com/users/ceiroa/events{/privacy}","received_events_url":"https://api.github.com/users/ceiroa/received_events","type":"User","site_admin":false},"body":"Is `TDTM_Global_API.getTdtmConfig()` going to return only the TDTM record we manually inserted, or the default config plus the one we inserted? Can we assert the size of the returned list?","created_at":"2017-11-20T21:36:26Z","updated_at":"2017-11-20T21:37:33Z","html_url":"https://github.com/SalesforceFoundation/HEDAP/pull/514#discussion_r152117957","pull_request_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/comments/152117957"},"html":{"href":"https://github.com/SalesforceFoundation/HEDAP/pull/514#discussion_r152117957"},"pull_request":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514"}}},"pull_request":{"url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514","id":151787780,"html_url":"https://github.com/SalesforceFoundation/HEDAP/pull/514","diff_url":"https://github.com/SalesforceFoundation/HEDAP/pull/514.diff","patch_url":"https://github.com/SalesforceFoundation/HEDAP/pull/514.patch","issue_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/514","number":514,"state":"open","locked":false,"title":"Fixed TDTM_Global_API setTdtmConfig method. 1. setTdtmConfig will clear the cached Tdtm tokens 2. setTdtmConfig will save Filter Field and Filter Value","user":{"login":"weizsforg","id":31747737,"avatar_url":"https://avatars0.githubusercontent.com/u/31747737?v=4","gravatar_id":"","url":"https://api.github.com/users/weizsforg","html_url":"https://github.com/weizsforg","followers_url":"https://api.github.com/users/weizsforg/followers","following_url":"https://api.github.com/users/weizsforg/following{/other_user}","gists_url":"https://api.github.com/users/weizsforg/gists{/gist_id}","starred_url":"https://api.github.com/users/weizsforg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weizsforg/subscriptions","organizations_url":"https://api.github.com/users/weizsforg/orgs","repos_url":"https://api.github.com/users/weizsforg/repos","events_url":"https://api.github.com/users/weizsforg/events{/privacy}","received_events_url":"https://api.github.com/users/weizsforg/received_events","type":"User","site_admin":false},"body":"# Critical Changes\r\n\r\n# Changes\r\nAdded a new TDTM class, THAN_ClearCache_TDTM, that clears cached TDTM tokens after Trigger Handler record insert. Enhanced the setTdtmConfig method to clear cached TDTM tokens and to save values for Filter Field and Filter Value. Verify that your Apex unit tests and trigger handlers work as expected with these changes to setTdtmConfig.\r\n\r\n# Issues Closed\r\nFixes #467\r\nFixes #479\r\n\r\n# New Metadata\r\nTHAN_ClearCache_TDTM\r\nTHAN_ClearCache_TEST\r\n\r\n# Deleted Metadata\r\n\r\n# Testing Notes\r\nPlease note that this PR includes the fix for two GitHub issues (#467 and #479).  Those two issues are related to the TDTM_Global_API that will be used in Apex unit test. Those two issues are not directly related to the Filter logic in TDTM framework. \r\n\r\n#467 : The setTDTMConfig method missed the Filter Field and Filter Value when save the tokens into the database.\r\n\r\nSteps to reproduce:\r\n1. Run TDTM_Global_API.setTdtmConfig in the anonymous apex window (or in the Apex unit test) with a configuration that includes a value for the Filter Field and Filter Value fields in some of the items.\r\n2. Do a query about the Trigger_handler__c record, you will find that the Filter Field and Filter Value is not in the database. \r\n3. The root cause is that TDTM_Manager.mergeToken method excluding those fields.\r\n\r\n#479 :  The getTDTMCnnfig always return the cached TDTM tokens.\r\n\r\nSteps to reproduce:\r\n1. Insert a Trigger_Handler__c record (for example update a field on Contact when insert Contact in Apex unit test). The insertion operation will cause system to populate and cache the TDTM Tokens with default config. \r\n2. Insert a Contact record. You will find that the new Trigger Handler didn’t run. This is because the system uses the cached TDTM tokens from step 1 and the cache does not include the new Trigger_Hanlder__c record. \r\n3. When you call getTDTMCinfig method, it will always return the cached token from step 1 unless you manipulate the cached token directly. \r\n\r\nAnother way to reproduce:\r\n1. Insert a Contact record (or just call getTDTMConfig). The operation will cause system to populate and cache the TDTM Tokens with default config. \r\n2. Build a TDTM Token , like TDTM_Global_API.TdtmToken newHandlerToken = new TDTM_Global_API.TdtmToken('Contact_Update', 'Contact', 'BeforeInsert;BeforeUpdate', 0.2, true, false, null, null, false, '');\r\n3. Use TDTM_Global_API.setTdtmConfig(newHandlerToken) to set the new token\r\n4. When you call getTDTMConfig again, you will get the cached token from step 1 instead of the new one inserted in step 2\r\n  \r\n\r\nBasically, the TDTM_Global_API setTdtmConfig is an utility method for a developer to implement their Apex unit test. The end user will not use it. We already included our unit test to test the logic inside the function. The developer can implement additional unit test to verify the fixes in this PR if needed. \r\n\r\nFor QA, we need to verify four things for this PR:\r\n1. Verify the existing regression test cases still pass\r\n2. Verify the existing default Trigger Handlers stay the same after HEDA upgrade\r\n3. Verify that a New TDTM Trigger Handler (THAN_ClearCache_TDTM) is added after the HEDA upgrade\r\n4. If user created their own Trigger Handlers, verify they will stay the same after HEDA upgrade\r\n\r\n","created_at":"2017-11-09T23:10:25Z","updated_at":"2017-11-20T21:37:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"abff62f080f9fcf9d511d520518fa2a366287e69","assignee":{"login":"ceiroa","id":1894238,"avatar_url":"https://avatars0.githubusercontent.com/u/1894238?v=4","gravatar_id":"","url":"https://api.github.com/users/ceiroa","html_url":"https://github.com/ceiroa","followers_url":"https://api.github.com/users/ceiroa/followers","following_url":"https://api.github.com/users/ceiroa/following{/other_user}","gists_url":"https://api.github.com/users/ceiroa/gists{/gist_id}","starred_url":"https://api.github.com/users/ceiroa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceiroa/subscriptions","organizations_url":"https://api.github.com/users/ceiroa/orgs","repos_url":"https://api.github.com/users/ceiroa/repos","events_url":"https://api.github.com/users/ceiroa/events{/privacy}","received_events_url":"https://api.github.com/users/ceiroa/received_events","type":"User","site_admin":false},"assignees":[{"login":"ceiroa","id":1894238,"avatar_url":"https://avatars0.githubusercontent.com/u/1894238?v=4","gravatar_id":"","url":"https://api.github.com/users/ceiroa","html_url":"https://github.com/ceiroa","followers_url":"https://api.github.com/users/ceiroa/followers","following_url":"https://api.github.com/users/ceiroa/following{/other_user}","gists_url":"https://api.github.com/users/ceiroa/gists{/gist_id}","starred_url":"https://api.github.com/users/ceiroa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceiroa/subscriptions","organizations_url":"https://api.github.com/users/ceiroa/orgs","repos_url":"https://api.github.com/users/ceiroa/repos","events_url":"https://api.github.com/users/ceiroa/events{/privacy}","received_events_url":"https://api.github.com/users/ceiroa/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514/commits","review_comments_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514/comments","review_comment_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/514/comments","statuses_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/statuses/80bc7eb14614732977e19bba083f3bff991bd9d2","head":{"label":"SalesforceFoundation:feature/weizhang/tdtmgetconfig","ref":"feature/weizhang/tdtmgetconfig","sha":"80bc7eb14614732977e19bba083f3bff991bd9d2","user":{"login":"SalesforceFoundation","id":972305,"avatar_url":"https://avatars0.githubusercontent.com/u/972305?v=4","gravatar_id":"","url":"https://api.github.com/users/SalesforceFoundation","html_url":"https://github.com/SalesforceFoundation","followers_url":"https://api.github.com/users/SalesforceFoundation/followers","following_url":"https://api.github.com/users/SalesforceFoundation/following{/other_user}","gists_url":"https://api.github.com/users/SalesforceFoundation/gists{/gist_id}","starred_url":"https://api.github.com/users/SalesforceFoundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SalesforceFoundation/subscriptions","organizations_url":"https://api.github.com/users/SalesforceFoundation/orgs","repos_url":"https://api.github.com/users/SalesforceFoundation/repos","events_url":"https://api.github.com/users/SalesforceFoundation/events{/privacy}","received_events_url":"https://api.github.com/users/SalesforceFoundation/received_events","type":"Organization","site_admin":false},"repo":{"id":31678154,"name":"HEDAP","full_name":"SalesforceFoundation/HEDAP","owner":{"login":"SalesforceFoundation","id":972305,"avatar_url":"https://avatars0.githubusercontent.com/u/972305?v=4","gravatar_id":"","url":"https://api.github.com/users/SalesforceFoundation","html_url":"https://github.com/SalesforceFoundation","followers_url":"https://api.github.com/users/SalesforceFoundation/followers","following_url":"https://api.github.com/users/SalesforceFoundation/following{/other_user}","gists_url":"https://api.github.com/users/SalesforceFoundation/gists{/gist_id}","starred_url":"https://api.github.com/users/SalesforceFoundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SalesforceFoundation/subscriptions","organizations_url":"https://api.github.com/users/SalesforceFoundation/orgs","repos_url":"https://api.github.com/users/SalesforceFoundation/repos","events_url":"https://api.github.com/users/SalesforceFoundation/events{/privacy}","received_events_url":"https://api.github.com/users/SalesforceFoundation/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SalesforceFoundation/HEDAP","description":"Higher Education Data Architecture Package","fork":false,"url":"https://api.github.com/repos/SalesforceFoundation/HEDAP","forks_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/forks","keys_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/teams","hooks_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/hooks","issue_events_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/events{/number}","events_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/events","assignees_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/assignees{/user}","branches_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/branches{/branch}","tags_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/tags","blobs_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/refs{/sha}","trees_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/statuses/{sha}","languages_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/languages","stargazers_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/stargazers","contributors_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/contributors","subscribers_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/subscribers","subscription_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/subscription","commits_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/commits{/sha}","git_commits_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/commits{/sha}","comments_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/comments{/number}","issue_comment_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/comments{/number}","contents_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/contents/{+path}","compare_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/merges","archive_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/downloads","issues_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues{/number}","pulls_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls{/number}","milestones_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/milestones{/number}","notifications_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/labels{/name}","releases_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/releases{/id}","deployments_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/deployments","created_at":"2015-03-04T20:24:29Z","updated_at":"2017-11-08T14:54:07Z","pushed_at":"2017-11-17T21:39:16Z","git_url":"git://github.com/SalesforceFoundation/HEDAP.git","ssh_url":"git@github.com:SalesforceFoundation/HEDAP.git","clone_url":"https://github.com/SalesforceFoundation/HEDAP.git","svn_url":"https://github.com/SalesforceFoundation/HEDAP","homepage":"","size":15292,"stargazers_count":51,"watchers_count":51,"language":"Apex","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":58,"mirror_url":null,"archived":false,"open_issues_count":56,"forks":58,"open_issues":56,"watchers":51,"default_branch":"master"}},"base":{"label":"SalesforceFoundation:master","ref":"master","sha":"e38e6c00f5618268f503641c22cd3561ed1fc2f6","user":{"login":"SalesforceFoundation","id":972305,"avatar_url":"https://avatars0.githubusercontent.com/u/972305?v=4","gravatar_id":"","url":"https://api.github.com/users/SalesforceFoundation","html_url":"https://github.com/SalesforceFoundation","followers_url":"https://api.github.com/users/SalesforceFoundation/followers","following_url":"https://api.github.com/users/SalesforceFoundation/following{/other_user}","gists_url":"https://api.github.com/users/SalesforceFoundation/gists{/gist_id}","starred_url":"https://api.github.com/users/SalesforceFoundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SalesforceFoundation/subscriptions","organizations_url":"https://api.github.com/users/SalesforceFoundation/orgs","repos_url":"https://api.github.com/users/SalesforceFoundation/repos","events_url":"https://api.github.com/users/SalesforceFoundation/events{/privacy}","received_events_url":"https://api.github.com/users/SalesforceFoundation/received_events","type":"Organization","site_admin":false},"repo":{"id":31678154,"name":"HEDAP","full_name":"SalesforceFoundation/HEDAP","owner":{"login":"SalesforceFoundation","id":972305,"avatar_url":"https://avatars0.githubusercontent.com/u/972305?v=4","gravatar_id":"","url":"https://api.github.com/users/SalesforceFoundation","html_url":"https://github.com/SalesforceFoundation","followers_url":"https://api.github.com/users/SalesforceFoundation/followers","following_url":"https://api.github.com/users/SalesforceFoundation/following{/other_user}","gists_url":"https://api.github.com/users/SalesforceFoundation/gists{/gist_id}","starred_url":"https://api.github.com/users/SalesforceFoundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SalesforceFoundation/subscriptions","organizations_url":"https://api.github.com/users/SalesforceFoundation/orgs","repos_url":"https://api.github.com/users/SalesforceFoundation/repos","events_url":"https://api.github.com/users/SalesforceFoundation/events{/privacy}","received_events_url":"https://api.github.com/users/SalesforceFoundation/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SalesforceFoundation/HEDAP","description":"Higher Education Data Architecture Package","fork":false,"url":"https://api.github.com/repos/SalesforceFoundation/HEDAP","forks_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/forks","keys_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/teams","hooks_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/hooks","issue_events_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/events{/number}","events_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/events","assignees_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/assignees{/user}","branches_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/branches{/branch}","tags_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/tags","blobs_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/refs{/sha}","trees_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/statuses/{sha}","languages_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/languages","stargazers_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/stargazers","contributors_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/contributors","subscribers_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/subscribers","subscription_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/subscription","commits_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/commits{/sha}","git_commits_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/git/commits{/sha}","comments_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/comments{/number}","issue_comment_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/comments{/number}","contents_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/contents/{+path}","compare_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/merges","archive_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/downloads","issues_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues{/number}","pulls_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls{/number}","milestones_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/milestones{/number}","notifications_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/labels{/name}","releases_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/releases{/id}","deployments_url":"https://api.github.com/repos/SalesforceFoundation/HEDAP/deployments","created_at":"2015-03-04T20:24:29Z","updated_at":"2017-11-08T14:54:07Z","pushed_at":"2017-11-17T21:39:16Z","git_url":"git://github.com/SalesforceFoundation/HEDAP.git","ssh_url":"git@github.com:SalesforceFoundation/HEDAP.git","clone_url":"https://github.com/SalesforceFoundation/HEDAP.git","svn_url":"https://github.com/SalesforceFoundation/HEDAP","homepage":"","size":15292,"stargazers_count":51,"watchers_count":51,"language":"Apex","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":58,"mirror_url":null,"archived":false,"open_issues_count":56,"forks":58,"open_issues":56,"watchers":51,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514"},"html":{"href":"https://github.com/SalesforceFoundation/HEDAP/pull/514"},"issue":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/514"},"comments":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/issues/514/comments"},"review_comments":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514/comments"},"review_comment":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/pulls/514/commits"},"statuses":{"href":"https://api.github.com/repos/SalesforceFoundation/HEDAP/statuses/80bc7eb14614732977e19bba083f3bff991bd9d2"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ceiroa"}}