{"action":"created","comment":{"url":"https://api.github.com/repos/cerner/cclunit-framework/pulls/comments/245090829","pull_request_review_id":189129349,"id":245090829,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NTA5MDgyOQ==","diff_hunk":"@@ -0,0 +1,268 @@\n+\n+# CCL Unit Mocking\n+**\\*CAUTION\\*** **The CCL Unit Mocking framework should only be used in non-production environments.  Table mocking creates new tables against an Oracle instance for the lifetime of the test.  Because the DDL is generated in a dynamic way, it is possible through inappropriate use of the framework to affect the actual table.  Please only use the documented API.**\n+\n+## API\n+\n+**cclutDefineMockTable(tableName = vc, fieldNames = vc, fieldTypes = vc)**\n+\n+Defines a mock table structure that can be created for use within a program.  This is the first function to be called in the process of mocking a table.  It must be called before cclutAddMockIndex(), cclutAddMockConstraint(), and  \n+cclutCreateMockTable() can be called.  The table will not be mocked in cclutExecuteProgramWithMocks() unless  \n+cclutCreateMockTable() is called.  tableName, columnNames, and columnTypes are required.  columnNames and columnTypes are expected to be pipe-delimited strings.  The columnTypes should have the same count as columnNames and be in the same order.  \n+  \n+@param tableName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The table to be mocked.  \n+@param columnNames  \n+&nbsp;&nbsp;&nbsp;&nbsp;A pipe-delimited list of columns to be mocked on the table  \n+@param columnTypes  \n+&nbsp;&nbsp;&nbsp;&nbsp;A pipe-delimited list of types for each column  \n+@returns  \n+&nbsp;&nbsp;&nbsp;&nbsp;The name of the mock table (This can be used to select data for testing)  \n+  \n+Example:  \n+call cclutDefineMockTable(\"person\", \"person_id|name_last|name_first|birth_dt_tm\", \"f8|vc|vc|dq8\") \n+\n+**cclutAddMockConstraint(tableName = vc, columnName = vc, columnConstraint = vc)**\n+\n+Adds a constraint to a mock table.  The table must already be defined through cclutDefineMockTable(), otherwise an error will be thrown.  This function may not be called after cclutCreateMockTable().  tableName and columnName are required. If the columnName is not valid for the table specified, an error will be thrown.  All constraints for a column should be present in the columnConstraint field.  If a constraint already exists, this function will overwrite it with the new value.  If columnConstraint is blank, the constraint will be removed for the column.  The supported constraints can be seen here:  \n+https://wiki.cerner.com/display/public/1101discernHP/SELECT+INTO+TABLE+Table_Name+Using+Discern+Explorer  \n+  \n+@param tableName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The table to which the constraint will be added.  \n+@param columnName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The column to which the constraint will be applied.  \n+@param columnConstraint  \n+&nbsp;&nbsp;&nbsp;&nbsp;A string of all constraints to be applied to the column.  \n+  \n+Example:  \n+call cclutAddMockConstraint(\"person\", \"name_last\", \"not null unique\")\n+\n+**cclutAddMockIndex(tableName = vc, columnNames = vc, isUnique = i4)**\n+\n+Adds an index to a mock table.  The table must already be defined through cclutDefineMockTable(), otherwise an error will be thrown.  This function may not be called after cclutCreateMockTable().  tableName, columnNames, and isUnique are required.  columnNames may be a single column name or a pipe-delimited list of columns for a composite index (the order of the columns will be the order of the index).  If isUnique is 1, then a unique index will be created.  If isUnique is 0, then a non-unique index will be created.  \n+  \n+@param tableName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The table to which the index will be added.  \n+@param columnNames  \n+&nbsp;&nbsp;&nbsp;&nbsp;A pipe-delimited string of column names for the index.  \n+@param isUnique  \n+&nbsp;&nbsp;&nbsp;&nbsp;1 to create a unique index; 0 to create a non-unique index  \n+  \n+Example:  \n+call cclutAddMockIndex(\"person\", \"person_id\", 1)  \n+call cclutAddMockIndex(\"person\", \"name_last|name_first\", 0)\n+\n+**cclutCreateMockTable(tableName = vc)**\n+\n+Creates the mock table.  The table must already be defined through cclutDefineMockTable(), otherwise an error will be thrown.  If the table has already been created, the function will return silently.  tableName is required.  \n+  \n+@param tableName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The table to be mocked.  \n+  \n+Example:  \n+call cclutCreateMockTable(\"person\")\n+\n+**cclutRemoveMockTable(tableName = vc)**\n+\n+Removes the mock table.  If the table was already created, it will also be dropped.  If the table is not currently  \n+mocked, it will return silently.  tableName is required.  \n+  \n+@param tableName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The table that is mocked.  \n+  \n+Example:  \n+call cclutRemoveMockTable(\"person\")\n+\n+**cclutRemoveAllMockTables(null)**\n+\n+Removes all mock tables.  Any tables that have already been created will also be dropped.  \n+  \n+Example:  \n+call cclutRemoveAllMockTables(null)\n+\n+**cclutAddMockData(tableName = vc, rowData = vc)**\n+\n+Add a row of mock data to a table.  tableName and rowData are required.  tableName must have already been created through cclutCreateMockTable() or an error will be thrown.  rowData is a pipe-delimited string for each column in the same order that was used in cclutDefineMockTable().  For character fields, the backslash (\\\\) will serve as an escape character.  For date fields, the value in rowData will be supplied to the cnvtdatetime() function.  All other values will be passed as-is.  \n+  \n+Supported escape values  \n+\\\\| = | (to represent a pipe in character fields)  \n+\\\\\\\\ = \\ (to represent a backslash in character fields)  \n+\\null = null (no value will be inserted into the column)  \n+  \n+@param tableName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The table to which the data will be added.  \n+@param rowData  \n+&nbsp;&nbsp;&nbsp;&nbsp;A pipe-delimited string of data to be inserted into the table.  \n+  \n+Example:  \n+call cclutDefineMockTable(\"person\", \"person_id|name_last|name_first|birth_dt_tm\", \"f8|vc|vc|dq8\")  \n+call cclutCreateMockTable(\"person\")  \n+call cclutAddMockData(\"person\", \"1.0|Washington|George|01-JAN-1970 00:00\") ;Will add George Washington  \n+call cclutAddMockData(\"person\", \"2.0|A\\\\|d\\\\\\\\ams|John|02-FEB-1971 11:11\") ;Will add John A|d\\ams  \n+call cclutAddMockData(\"person\", \"3.0|Jefferson|\\null|03-MAR-1972 22:22\") ;Will add Jefferson (no first name)  \n+call cclutAddMockData(\"person\", \"4.0|Madison||04-APR-1973 10:33\") ;Will add Madison (empty string for first name)\n+\n+**cclutClearMockData(tableName = vc)**\n+\n+Clears all data from the mock table.  This is functionally similar to a truncate.  tableName is required.  The table  \n+must have been created through cclutCreateMockTable() or else an error will be thrown.  \n+  \n+@param tableName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The table to be cleared.  \n+  \n+Example:  \n+call cclutClearMockData(\"person\")\n+\n+**cclutAddMockImplementation(originalName = vc, replaceName = vc)**\n+\n+Adds a mock implementation to be utilized by cclutExecuteProgramWithMocks.  This can include record structures, subroutines, or other programs.  originalName and replaceName are required.  If originalName is already being mocked, the mock will be overwritten with the new replaceName.  \n+  \n+@param originalName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The object to be mocked.  \n+@param replaceName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The mocked object.  \n+  \n+Example:  \n+call cclutAddMockImplementation(\"uar_get_code_by\", \"mock_uar_get_code_by\")\n+\n+**cclutRemoveMockImplementation(originalName = vc)**\n+\n+Removes a mock implementation.  \n+  \n+@param originalName  \n+&nbsp;&nbsp;&nbsp;&nbsp;The object that is mocked.  \n+  \n+Example:  \n+call cclutRemoveMockImplementation(\"uar_get_code_by\")\n+\n+**cclutRemoveAllMockImplementations(null)**\n+\n+Removes all mock implementations.  \n+  \n+Example:  \n+call cclutRemoveAllMockImplementations(null)\n+\n+**cclutExecuteProgramWithMocks(programName = vc, params = vc, namespace = vc)**\n+\n+Executes a program with all mocks currently added through cclutAddMockImplementation() and cclutCreateMockTable(). programName is required.  params is a string parameter to be sent directly to the program, so all commas and string delimiters must be specified.  If namespace is omitted, it will default to the PUBLIC namespace.  \n+  \n+Example:  \n+call cclutExecuteProgramWithMocks(\"ccl_my_program\", \"\\^MINE^, 1.0, ^string parameter^\", \"MYNAMESPACE\")\n+\n+**cclutRemoveAllMocks**\n+\n+Removes all mock implementations and mock tables that have been added through the cclutAddMockImplementation() and cclutCreateMockTable() APIs.  This should be called at the completion of a test suite to clean up all mocks.  \n+  \n+Example:  \n+call cclutRemoveAllMocks(null)\n+\n+## Implementation Notes\n+1. cclutRemoveAllMocks should be called as part of the teardown for all tests.  The framework will attempt to clean up any outstanding mocks, but it is good practice to explicitly remove any mocks to ensure that no mocked tables remain in the Oracle instance.\n+\n+2. The mocked items created through cclutCreateMockTable() and cclutAddMockImplementation will not be applied to children script called from the script-under-test.  Some alternatives would be to mock the child script to return the appropriate data or to mock the child script to execute the real script applying the mocked tables and implementations.","path":"cclunit-framework-source/doc/CCLUTMOCKING.md","position":162,"original_position":162,"commit_id":"cef8d0867cbeebf3bb9adb3498bc31500d0fc48c","original_commit_id":"cef8d0867cbeebf3bb9adb3498bc31500d0fc48c","user":{"login":"cernertrevor","id":44979171,"node_id":"MDQ6VXNlcjQ0OTc5MTcx","avatar_url":"https://avatars1.githubusercontent.com/u/44979171?v=4","gravatar_id":"","url":"https://api.github.com/users/cernertrevor","html_url":"https://github.com/cernertrevor","followers_url":"https://api.github.com/users/cernertrevor/followers","following_url":"https://api.github.com/users/cernertrevor/following{/other_user}","gists_url":"https://api.github.com/users/cernertrevor/gists{/gist_id}","starred_url":"https://api.github.com/users/cernertrevor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cernertrevor/subscriptions","organizations_url":"https://api.github.com/users/cernertrevor/orgs","repos_url":"https://api.github.com/users/cernertrevor/repos","events_url":"https://api.github.com/users/cernertrevor/events{/privacy}","received_events_url":"https://api.github.com/users/cernertrevor/received_events","type":"User","site_admin":false},"body":"Well, I don't like the idea of bumping the minimum CCL version (since it's the absolute newest version that has the new \"replace\" functionality) when it would just be a side piece of functionality.  \r\n\r\nWe _could_ (I suppose) stipulate that the propagation functionality requires 8.14.3/9.02.3, while everything else is lower, but that feels like it creates a bad precedent, and we should stick to a singular version for everything.\r\n\r\nSo I'm waffling between not offering it in this initial release or doing the version check.  The version check might also lead to bad precedents (Why not do version checking for all features?), so I think I'm leaning more towards not offering it in the initial release, and then we can add it if there's a strong appetite from consumers.  Since it is new functionality to CCL, anyone that was doing mocking prior was already mocking their external calls (at least if they were honoring the spirit of a \"unit\" test), so I don't think it would be an undue burden to continue that.  It also reduces the complexity of this initial version as I want to ensure we have a strong foundation rather than trying to get every piece of functionality out the door in one release.\r\n\r\nIf you think it's important enough though, I can throw in the version check.","created_at":"2019-01-03T18:31:43Z","updated_at":"2019-01-03T18:31:43Z","html_url":"https://github.com/cerner/cclunit-framework/pull/7#discussion_r245090829","pull_request_url":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/cerner/cclunit-framework/pulls/comments/245090829"},"html":{"href":"https://github.com/cerner/cclunit-framework/pull/7#discussion_r245090829"},"pull_request":{"href":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7"}},"in_reply_to_id":241603237},"pull_request":{"url":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7","id":238552395,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM4NTUyMzk1","html_url":"https://github.com/cerner/cclunit-framework/pull/7","diff_url":"https://github.com/cerner/cclunit-framework/pull/7.diff","patch_url":"https://github.com/cerner/cclunit-framework/pull/7.patch","issue_url":"https://api.github.com/repos/cerner/cclunit-framework/issues/7","number":7,"state":"open","locked":false,"title":"Initial import of CCL Unit Mocking.","user":{"login":"cernertrevor","id":44979171,"node_id":"MDQ6VXNlcjQ0OTc5MTcx","avatar_url":"https://avatars1.githubusercontent.com/u/44979171?v=4","gravatar_id":"","url":"https://api.github.com/users/cernertrevor","html_url":"https://github.com/cernertrevor","followers_url":"https://api.github.com/users/cernertrevor/followers","following_url":"https://api.github.com/users/cernertrevor/following{/other_user}","gists_url":"https://api.github.com/users/cernertrevor/gists{/gist_id}","starred_url":"https://api.github.com/users/cernertrevor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cernertrevor/subscriptions","organizations_url":"https://api.github.com/users/cernertrevor/orgs","repos_url":"https://api.github.com/users/cernertrevor/repos","events_url":"https://api.github.com/users/cernertrevor/events{/privacy}","received_events_url":"https://api.github.com/users/cernertrevor/received_events","type":"User","site_admin":false},"body":"@feckertson \r\n@ramkumar88\r\n@4mos\r\n","created_at":"2018-12-13T22:25:11Z","updated_at":"2019-01-03T18:31:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"adcf6b7302d20d2777c986dffccf861b33d6e4b4","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7/commits","review_comments_url":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7/comments","review_comment_url":"https://api.github.com/repos/cerner/cclunit-framework/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cerner/cclunit-framework/issues/7/comments","statuses_url":"https://api.github.com/repos/cerner/cclunit-framework/statuses/cef8d0867cbeebf3bb9adb3498bc31500d0fc48c","head":{"label":"cernertrevor:ccl-mock","ref":"ccl-mock","sha":"cef8d0867cbeebf3bb9adb3498bc31500d0fc48c","user":{"login":"cernertrevor","id":44979171,"node_id":"MDQ6VXNlcjQ0OTc5MTcx","avatar_url":"https://avatars1.githubusercontent.com/u/44979171?v=4","gravatar_id":"","url":"https://api.github.com/users/cernertrevor","html_url":"https://github.com/cernertrevor","followers_url":"https://api.github.com/users/cernertrevor/followers","following_url":"https://api.github.com/users/cernertrevor/following{/other_user}","gists_url":"https://api.github.com/users/cernertrevor/gists{/gist_id}","starred_url":"https://api.github.com/users/cernertrevor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cernertrevor/subscriptions","organizations_url":"https://api.github.com/users/cernertrevor/orgs","repos_url":"https://api.github.com/users/cernertrevor/repos","events_url":"https://api.github.com/users/cernertrevor/events{/privacy}","received_events_url":"https://api.github.com/users/cernertrevor/received_events","type":"User","site_admin":false},"repo":{"id":157249945,"node_id":"MDEwOlJlcG9zaXRvcnkxNTcyNDk5NDU=","name":"cclunit-framework","full_name":"cernertrevor/cclunit-framework","private":false,"owner":{"login":"cernertrevor","id":44979171,"node_id":"MDQ6VXNlcjQ0OTc5MTcx","avatar_url":"https://avatars1.githubusercontent.com/u/44979171?v=4","gravatar_id":"","url":"https://api.github.com/users/cernertrevor","html_url":"https://github.com/cernertrevor","followers_url":"https://api.github.com/users/cernertrevor/followers","following_url":"https://api.github.com/users/cernertrevor/following{/other_user}","gists_url":"https://api.github.com/users/cernertrevor/gists{/gist_id}","starred_url":"https://api.github.com/users/cernertrevor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cernertrevor/subscriptions","organizations_url":"https://api.github.com/users/cernertrevor/orgs","repos_url":"https://api.github.com/users/cernertrevor/repos","events_url":"https://api.github.com/users/cernertrevor/events{/privacy}","received_events_url":"https://api.github.com/users/cernertrevor/received_events","type":"User","site_admin":false},"html_url":"https://github.com/cernertrevor/cclunit-framework","description":"A collection of CCL source code for executing CCL Unit tests and generating code coverage data.","fork":true,"url":"https://api.github.com/repos/cernertrevor/cclunit-framework","forks_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/forks","keys_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/teams","hooks_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/hooks","issue_events_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/issues/events{/number}","events_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/events","assignees_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/assignees{/user}","branches_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/branches{/branch}","tags_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/tags","blobs_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/statuses/{sha}","languages_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/languages","stargazers_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/stargazers","contributors_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/contributors","subscribers_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/subscribers","subscription_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/subscription","commits_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/contents/{+path}","compare_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/merges","archive_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/downloads","issues_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/issues{/number}","pulls_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/pulls{/number}","milestones_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/milestones{/number}","notifications_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/labels{/name}","releases_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/releases{/id}","deployments_url":"https://api.github.com/repos/cernertrevor/cclunit-framework/deployments","created_at":"2018-11-12T17:21:51Z","updated_at":"2018-11-12T17:21:54Z","pushed_at":"2018-12-13T21:53:14Z","git_url":"git://github.com/cernertrevor/cclunit-framework.git","ssh_url":"git@github.com:cernertrevor/cclunit-framework.git","clone_url":"https://github.com/cernertrevor/cclunit-framework.git","svn_url":"https://github.com/cernertrevor/cclunit-framework","homepage":"","size":223,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"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":"cerner:master","ref":"master","sha":"9a0ad4b3c6c65d5ff0604c99c580448cca4bc5ab","user":{"login":"cerner","id":1873208,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4NzMyMDg=","avatar_url":"https://avatars1.githubusercontent.com/u/1873208?v=4","gravatar_id":"","url":"https://api.github.com/users/cerner","html_url":"https://github.com/cerner","followers_url":"https://api.github.com/users/cerner/followers","following_url":"https://api.github.com/users/cerner/following{/other_user}","gists_url":"https://api.github.com/users/cerner/gists{/gist_id}","starred_url":"https://api.github.com/users/cerner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cerner/subscriptions","organizations_url":"https://api.github.com/users/cerner/orgs","repos_url":"https://api.github.com/users/cerner/repos","events_url":"https://api.github.com/users/cerner/events{/privacy}","received_events_url":"https://api.github.com/users/cerner/received_events","type":"Organization","site_admin":false},"repo":{"id":134469712,"node_id":"MDEwOlJlcG9zaXRvcnkxMzQ0Njk3MTI=","name":"cclunit-framework","full_name":"cerner/cclunit-framework","private":false,"owner":{"login":"cerner","id":1873208,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4NzMyMDg=","avatar_url":"https://avatars1.githubusercontent.com/u/1873208?v=4","gravatar_id":"","url":"https://api.github.com/users/cerner","html_url":"https://github.com/cerner","followers_url":"https://api.github.com/users/cerner/followers","following_url":"https://api.github.com/users/cerner/following{/other_user}","gists_url":"https://api.github.com/users/cerner/gists{/gist_id}","starred_url":"https://api.github.com/users/cerner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cerner/subscriptions","organizations_url":"https://api.github.com/users/cerner/orgs","repos_url":"https://api.github.com/users/cerner/repos","events_url":"https://api.github.com/users/cerner/events{/privacy}","received_events_url":"https://api.github.com/users/cerner/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/cerner/cclunit-framework","description":"A collection of CCL source code for executing CCL Unit tests and generating code coverage data.","fork":false,"url":"https://api.github.com/repos/cerner/cclunit-framework","forks_url":"https://api.github.com/repos/cerner/cclunit-framework/forks","keys_url":"https://api.github.com/repos/cerner/cclunit-framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cerner/cclunit-framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cerner/cclunit-framework/teams","hooks_url":"https://api.github.com/repos/cerner/cclunit-framework/hooks","issue_events_url":"https://api.github.com/repos/cerner/cclunit-framework/issues/events{/number}","events_url":"https://api.github.com/repos/cerner/cclunit-framework/events","assignees_url":"https://api.github.com/repos/cerner/cclunit-framework/assignees{/user}","branches_url":"https://api.github.com/repos/cerner/cclunit-framework/branches{/branch}","tags_url":"https://api.github.com/repos/cerner/cclunit-framework/tags","blobs_url":"https://api.github.com/repos/cerner/cclunit-framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cerner/cclunit-framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cerner/cclunit-framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/cerner/cclunit-framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cerner/cclunit-framework/statuses/{sha}","languages_url":"https://api.github.com/repos/cerner/cclunit-framework/languages","stargazers_url":"https://api.github.com/repos/cerner/cclunit-framework/stargazers","contributors_url":"https://api.github.com/repos/cerner/cclunit-framework/contributors","subscribers_url":"https://api.github.com/repos/cerner/cclunit-framework/subscribers","subscription_url":"https://api.github.com/repos/cerner/cclunit-framework/subscription","commits_url":"https://api.github.com/repos/cerner/cclunit-framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/cerner/cclunit-framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/cerner/cclunit-framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/cerner/cclunit-framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/cerner/cclunit-framework/contents/{+path}","compare_url":"https://api.github.com/repos/cerner/cclunit-framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cerner/cclunit-framework/merges","archive_url":"https://api.github.com/repos/cerner/cclunit-framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cerner/cclunit-framework/downloads","issues_url":"https://api.github.com/repos/cerner/cclunit-framework/issues{/number}","pulls_url":"https://api.github.com/repos/cerner/cclunit-framework/pulls{/number}","milestones_url":"https://api.github.com/repos/cerner/cclunit-framework/milestones{/number}","notifications_url":"https://api.github.com/repos/cerner/cclunit-framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cerner/cclunit-framework/labels{/name}","releases_url":"https://api.github.com/repos/cerner/cclunit-framework/releases{/id}","deployments_url":"https://api.github.com/repos/cerner/cclunit-framework/deployments","created_at":"2018-05-22T20:06:00Z","updated_at":"2018-12-28T16:36:20Z","pushed_at":"2018-12-22T13:16:16Z","git_url":"git://github.com/cerner/cclunit-framework.git","ssh_url":"git@github.com:cerner/cclunit-framework.git","clone_url":"https://github.com/cerner/cclunit-framework.git","svn_url":"https://github.com/cerner/cclunit-framework","homepage":"","size":205,"stargazers_count":1,"watchers_count":1,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":4,"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":4,"open_issues":4,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7"},"html":{"href":"https://github.com/cerner/cclunit-framework/pull/7"},"issue":{"href":"https://api.github.com/repos/cerner/cclunit-framework/issues/7"},"comments":{"href":"https://api.github.com/repos/cerner/cclunit-framework/issues/7/comments"},"review_comments":{"href":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7/comments"},"review_comment":{"href":"https://api.github.com/repos/cerner/cclunit-framework/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cerner/cclunit-framework/pulls/7/commits"},"statuses":{"href":"https://api.github.com/repos/cerner/cclunit-framework/statuses/cef8d0867cbeebf3bb9adb3498bc31500d0fc48c"}},"author_association":"NONE"}}
{"actor":{"display_login":"cernertrevor"}}