{"action":"created","comment":{"url":"https://api.github.com/repos/dbfit/dbfit/pulls/comments/44217073","id":44217073,"diff_hunk":"@@ -0,0 +1,321 @@\n+package dbfit.environment;\n+\n+import dbfit.annotations.DatabaseEnvironment;\n+import dbfit.api.AbstractDbEnvironment;\n+import dbfit.fixture.StatementExecution;\n+import dbfit.util.DbParameterAccessor;\n+import dbfit.util.DdlStatementExecution;\n+import dbfit.util.Direction;\n+import dbfit.util.NameNormaliser;\n+import dbfit.util.Options;\n+import dbfit.util.TypeNormaliserFactory;\n+import fit.TypeAdapter;\n+\n+import java.math.BigDecimal;\n+import java.sql.*;\n+import java.util.*;\n+import java.util.regex.Pattern;\n+\n+import static dbfit.util.Direction.*;\n+import static org.apache.commons.lang3.ObjectUtils.defaultIfNull;\n+\n+@DatabaseEnvironment(name=\"Informix\", driver=\"com.informix.jdbc.IfxDriver\")\n+public class InformixEnvironment extends AbstractDbEnvironment {\n+\n+    public InformixEnvironment(String driverClassName) {\n+        super(driverClassName);\n+        TypeNormaliserFactory.setNormaliser(dbfit.util.NormalisedBigDecimal.class, new InformixBigDecimalNormaliser());\n+    }\n+\n+    protected String parseCommandText(String commandText) {\n+        commandText = commandText.replaceAll(paramNamePattern, \"?\");\n+        return super.parseCommandText(commandText);\n+    }\n+\n+    private static String paramNamePattern = \"[@:]([A-Za-z0-9_]+)\";\n+    private static Pattern paramRegex = Pattern.compile(paramNamePattern);\n+\n+    public Pattern getParameterPattern() {\n+        return paramRegex;\n+    }\n+\n+    protected String getConnectionString(String dataSource) {\n+        return \"jdbc:informix-sqli://\" + dataSource;\n+    }\n+\n+    protected String getConnectionString(String dataSource, String database) {\n+        return \"jdbc:informix-sqli://\" + dataSource + \"/\" + database;\n+    }\n+\n+    private String columnsOrParamtersQueryText(Boolean forProcedureParameters, String objectName) {\n+        String[] qualifiers = NameNormaliser.normaliseName(objectName).split(\"\\\\.\");\n+\n+        String qry = \"SELECT c.\" + (forProcedureParameters ? \"paramname\" : \"colname\")\n+                   + \"           AS object_name\"\n+                   + \"     , CASE (\"\n+                   + \"            CASE WHEN c.\" + (forProcedureParameters ? \"paramtype\" : \"coltype\") + \" >= 256\"\n+                   + \"                 THEN c.\" + (forProcedureParameters ? \"paramtype\" : \"coltype\") + \" - 256\"\n+                   + \"                 ELSE c.\" + (forProcedureParameters ? \"paramtype\" : \"coltype\")\n+                   + \"             END\"\n+                   + \"            )\"\n+                   + \"            WHEN    0 THEN 'CHAR'\"\n+                   + \"            WHEN    1 THEN 'SMALLINT'\"\n+                   + \"            WHEN    2 THEN 'INTEGER'\"\n+                   + \"            WHEN    3 THEN 'FLOAT'\"\n+                   + \"            WHEN    4 THEN 'SMALLFLOAT'\"\n+                   + \"            WHEN    5 THEN 'DECIMAL'\"\n+                   + \"            WHEN    6 THEN 'SERIAL'\"\n+                   + \"            WHEN    7 THEN 'DATE'\"\n+                   + \"            WHEN    8 THEN 'MONEY'\"\n+                   + \"            WHEN    9 THEN 'NULL'\"\n+                   + \"            WHEN   10 THEN 'DATETIME ' || CASE BITAND(c.\" + (forProcedureParameters ? \"paramtype\" : \"coltype\") + \", 240)\"\n+                   + \"                                               WHEN  0 THEN 'YEAR'\"\n+                   + \"                                               WHEN  2 THEN 'MONTH'\"\n+                   + \"                                               WHEN  4 THEN 'DAY'\"\n+                   + \"                                               WHEN  6 THEN 'HOUR'\"\n+                   + \"                                               WHEN  8 THEN 'MINUTE'\"\n+                   + \"                                               WHEN 10 THEN 'SECOND'\"\n+                   + \"                                               WHEN 11 THEN 'FRACTION(1)'\"\n+                   + \"                                               WHEN 12 THEN 'FRACTION(2)'\"\n+                   + \"                                               WHEN 13 THEN 'FRACTION(3)'\"\n+                   + \"                                               WHEN 14 THEN 'FRACTION(4)'\"\n+                   + \"                                               WHEN 15 THEN 'FRACTION(5)'\"\n+                   + \"                                           END\"\n+                   + \"                                       || ' TO '\"\n+                   + \"                                       || CASE BITAND(c.\" + (forProcedureParameters ? \"paramtype\" : \"coltype\") + \", 15)\"\n+                   + \"                                               WHEN  0 THEN 'YEAR'\"\n+                   + \"                                               WHEN  2 THEN 'MONTH'\"\n+                   + \"                                               WHEN  4 THEN 'DAY'\"\n+                   + \"                                               WHEN  6 THEN 'HOUR'\"\n+                   + \"                                               WHEN  8 THEN 'MINUTE'\"\n+                   + \"                                               WHEN 10 THEN 'SECOND'\"\n+                   + \"                                               WHEN 11 THEN 'FRACTION(1)'\"\n+                   + \"                                               WHEN 12 THEN 'FRACTION(2)'\"\n+                   + \"                                               WHEN 13 THEN 'FRACTION(3)'\"\n+                   + \"                                               WHEN 14 THEN 'FRACTION(4)'\"\n+                   + \"                                               WHEN 15 THEN 'FRACTION(5)'\"\n+                   + \"                                           END\"\n+                   + \"            WHEN   11 THEN 'BYTE'\"\n+                   + \"            WHEN   12 THEN 'TEXT'\"\n+                   + \"            WHEN   13 THEN 'VARCHAR'\"\n+                   + \"            WHEN   14 THEN 'INTERVAL'\"\n+                   + \"            WHEN   15 THEN 'NCHAR'\"\n+                   + \"            WHEN   16 THEN 'NVARCHAR'\"\n+                   + \"            WHEN   17 THEN 'INT8'\"\n+                   + \"            WHEN   18 THEN 'SERIAL8'\"\n+                   + \"            WHEN   19 THEN 'SET'\"\n+                   + \"            WHEN   20 THEN 'MULTISET'\"\n+                   + \"            WHEN   21 THEN 'LIST'\"\n+                   + \"            WHEN   22 THEN 'ROW'\"\n+                   + \"            WHEN   23 THEN 'COLLECTION'\"\n+                   + \"            WHEN   24 THEN 'ROWDEF'\"\n+                   + \"            WHEN   40 THEN 'LVARCHAR'\"\n+                   + \"            WHEN   43 THEN 'LVARCHAR'\"\n+                   + \"            WHEN   45 THEN 'BOOLEAN'\"\n+                   + \"            WHEN   52 THEN 'BIGINT'\"\n+                   + \"            WHEN   53 THEN 'BIGSERIAL'\"\n+                   + \"            WHEN 2061 THEN 'IDSSECURITYLABEL'\"\n+                   + \"            WHEN 4118 THEN 'ROW'\"\n+                   + \"        END\"\n+                   + \"           AS data_type\"\n+                   + \"     , \" + (forProcedureParameters ? \"c.paramattr\" : \"1\") // Dummy value for table/view columns.\n+                   + \"           AS direction\"\n+                   + \"     , c.\" + (forProcedureParameters ? \"paramid\" : \"colno\")\n+                   + \"           AS position\"\n+                   + \"  FROM informix.\" + (forProcedureParameters ? \"sysprocedures p\" : \"systables p\")\n+                   + \"     , informix.\" + (forProcedureParameters ? \"sysproccolumns c\" : \"syscolumns c\")\n+                   + \" WHERE p.\" + (forProcedureParameters ? \"procid\" : \"tabid\") + \" = c.\" + (forProcedureParameters ? \"procid\" : \"tabid\")\n+                   + \"   AND \";\n+\n+        if (qualifiers.length == 2) {\n+            qry += \"LOWER(p.owner) = ? AND \";\n+        }\n+        qry += \"LOWER(p.\" + (forProcedureParameters ? \"procname\" : \"tabname\") + \") = ?\";\n+\n+        return qry;\n+    }\n+\n+    public Map<String, DbParameterAccessor> getAllColumns(String tableOrViewName)\n+            throws SQLException {\n+        String[] qualifiers = NameNormaliser.normaliseName(tableOrViewName).split(\"\\\\.\");\n+        return readIntoParams(qualifiers, columnsOrParamtersQueryText(false, tableOrViewName));\n+    }\n+\n+    private Map<String, DbParameterAccessor> readIntoParams(String[] queryParameters, String query) throws SQLException {\n+        try (PreparedStatement dc = currentConnection.prepareStatement(query)) {\n+            for (int i = 0; i < queryParameters.length; i++) {\n+                dc.setString(i + 1, NameNormaliser.normaliseName(queryParameters[i]));\n+            }\n+\n+            ResultSet rs = dc.executeQuery();\n+            Map<String, DbParameterAccessor> allParams = new HashMap<String, DbParameterAccessor>();\n+\n+            while (rs.next()) {\n+                String paramName = defaultIfNull(rs.getString(1), \"\");\n+                String dataType = rs.getString(2);\n+                String direction = rs.getString(3);\n+                int position = rs.getInt(4);\n+                Direction paramDirection = getParameterDirection(direction);\n+                if (paramDirection != RETURN_VALUE && paramName.equals(\"\")) {","path":"dbfit-java/informix/src/main/java/dbfit/environment/InformixEnvironment.java","position":159,"original_position":159,"commit_id":"e9d57c33ecd5b5c790a684f156d6edb09b27012e","original_commit_id":"e9d57c33ecd5b5c790a684f156d6edb09b27012e","user":{"login":"MMatten","id":1895701,"avatar_url":"https://avatars.githubusercontent.com/u/1895701?v=3","gravatar_id":"","url":"https://api.github.com/users/MMatten","html_url":"https://github.com/MMatten","followers_url":"https://api.github.com/users/MMatten/followers","following_url":"https://api.github.com/users/MMatten/following{/other_user}","gists_url":"https://api.github.com/users/MMatten/gists{/gist_id}","starred_url":"https://api.github.com/users/MMatten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MMatten/subscriptions","organizations_url":"https://api.github.com/users/MMatten/orgs","repos_url":"https://api.github.com/users/MMatten/repos","events_url":"https://api.github.com/users/MMatten/events{/privacy}","received_events_url":"https://api.github.com/users/MMatten/received_events","type":"User","site_admin":false},"body":"Sounds good as we don't create a temporary object for `\"\"`.","created_at":"2015-11-07T21:02:39Z","updated_at":"2015-11-07T21:02:39Z","html_url":"https://github.com/dbfit/dbfit/pull/436#discussion_r44217073","pull_request_url":"https://api.github.com/repos/dbfit/dbfit/pulls/436","_links":{"self":{"href":"https://api.github.com/repos/dbfit/dbfit/pulls/comments/44217073"},"html":{"href":"https://github.com/dbfit/dbfit/pull/436#discussion_r44217073"},"pull_request":{"href":"https://api.github.com/repos/dbfit/dbfit/pulls/436"}}},"pull_request":{"url":"https://api.github.com/repos/dbfit/dbfit/pulls/436","id":48685855,"html_url":"https://github.com/dbfit/dbfit/pull/436","diff_url":"https://github.com/dbfit/dbfit/pull/436.diff","patch_url":"https://github.com/dbfit/dbfit/pull/436.patch","issue_url":"https://api.github.com/repos/dbfit/dbfit/issues/436","number":436,"state":"open","locked":false,"title":"Support Informix","user":{"login":"MMatten","id":1895701,"avatar_url":"https://avatars.githubusercontent.com/u/1895701?v=3","gravatar_id":"","url":"https://api.github.com/users/MMatten","html_url":"https://github.com/MMatten","followers_url":"https://api.github.com/users/MMatten/followers","following_url":"https://api.github.com/users/MMatten/following{/other_user}","gists_url":"https://api.github.com/users/MMatten/gists{/gist_id}","starred_url":"https://api.github.com/users/MMatten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MMatten/subscriptions","organizations_url":"https://api.github.com/users/MMatten/orgs","repos_url":"https://api.github.com/users/MMatten/repos","events_url":"https://api.github.com/users/MMatten/events{/privacy}","received_events_url":"https://api.github.com/users/MMatten/received_events","type":"User","site_admin":false},"body":"Support for Informix (using alternate approach of allowing `StatementExecution` sub-classing instead of adding more parameters to existing class methods and more property getters on the `DBEnvironment` interface).","created_at":"2015-10-25T19:39:22Z","updated_at":"2015-11-07T21:02:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"17dceb3fa5db18c680835bd5ff026d3d69850332","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dbfit/dbfit/pulls/436/commits","review_comments_url":"https://api.github.com/repos/dbfit/dbfit/pulls/436/comments","review_comment_url":"https://api.github.com/repos/dbfit/dbfit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dbfit/dbfit/issues/436/comments","statuses_url":"https://api.github.com/repos/dbfit/dbfit/statuses/e9d57c33ecd5b5c790a684f156d6edb09b27012e","head":{"label":"MMatten:support-informix-function-calls","ref":"support-informix-function-calls","sha":"e9d57c33ecd5b5c790a684f156d6edb09b27012e","user":{"login":"MMatten","id":1895701,"avatar_url":"https://avatars.githubusercontent.com/u/1895701?v=3","gravatar_id":"","url":"https://api.github.com/users/MMatten","html_url":"https://github.com/MMatten","followers_url":"https://api.github.com/users/MMatten/followers","following_url":"https://api.github.com/users/MMatten/following{/other_user}","gists_url":"https://api.github.com/users/MMatten/gists{/gist_id}","starred_url":"https://api.github.com/users/MMatten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MMatten/subscriptions","organizations_url":"https://api.github.com/users/MMatten/orgs","repos_url":"https://api.github.com/users/MMatten/repos","events_url":"https://api.github.com/users/MMatten/events{/privacy}","received_events_url":"https://api.github.com/users/MMatten/received_events","type":"User","site_admin":false},"repo":{"id":42365201,"name":"dbfit","full_name":"MMatten/dbfit","owner":{"login":"MMatten","id":1895701,"avatar_url":"https://avatars.githubusercontent.com/u/1895701?v=3","gravatar_id":"","url":"https://api.github.com/users/MMatten","html_url":"https://github.com/MMatten","followers_url":"https://api.github.com/users/MMatten/followers","following_url":"https://api.github.com/users/MMatten/following{/other_user}","gists_url":"https://api.github.com/users/MMatten/gists{/gist_id}","starred_url":"https://api.github.com/users/MMatten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MMatten/subscriptions","organizations_url":"https://api.github.com/users/MMatten/orgs","repos_url":"https://api.github.com/users/MMatten/repos","events_url":"https://api.github.com/users/MMatten/events{/privacy}","received_events_url":"https://api.github.com/users/MMatten/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MMatten/dbfit","description":"DbFit is a database testing framework that supports easy test-driven development of your database code.","fork":true,"url":"https://api.github.com/repos/MMatten/dbfit","forks_url":"https://api.github.com/repos/MMatten/dbfit/forks","keys_url":"https://api.github.com/repos/MMatten/dbfit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MMatten/dbfit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MMatten/dbfit/teams","hooks_url":"https://api.github.com/repos/MMatten/dbfit/hooks","issue_events_url":"https://api.github.com/repos/MMatten/dbfit/issues/events{/number}","events_url":"https://api.github.com/repos/MMatten/dbfit/events","assignees_url":"https://api.github.com/repos/MMatten/dbfit/assignees{/user}","branches_url":"https://api.github.com/repos/MMatten/dbfit/branches{/branch}","tags_url":"https://api.github.com/repos/MMatten/dbfit/tags","blobs_url":"https://api.github.com/repos/MMatten/dbfit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MMatten/dbfit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MMatten/dbfit/git/refs{/sha}","trees_url":"https://api.github.com/repos/MMatten/dbfit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MMatten/dbfit/statuses/{sha}","languages_url":"https://api.github.com/repos/MMatten/dbfit/languages","stargazers_url":"https://api.github.com/repos/MMatten/dbfit/stargazers","contributors_url":"https://api.github.com/repos/MMatten/dbfit/contributors","subscribers_url":"https://api.github.com/repos/MMatten/dbfit/subscribers","subscription_url":"https://api.github.com/repos/MMatten/dbfit/subscription","commits_url":"https://api.github.com/repos/MMatten/dbfit/commits{/sha}","git_commits_url":"https://api.github.com/repos/MMatten/dbfit/git/commits{/sha}","comments_url":"https://api.github.com/repos/MMatten/dbfit/comments{/number}","issue_comment_url":"https://api.github.com/repos/MMatten/dbfit/issues/comments{/number}","contents_url":"https://api.github.com/repos/MMatten/dbfit/contents/{+path}","compare_url":"https://api.github.com/repos/MMatten/dbfit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MMatten/dbfit/merges","archive_url":"https://api.github.com/repos/MMatten/dbfit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MMatten/dbfit/downloads","issues_url":"https://api.github.com/repos/MMatten/dbfit/issues{/number}","pulls_url":"https://api.github.com/repos/MMatten/dbfit/pulls{/number}","milestones_url":"https://api.github.com/repos/MMatten/dbfit/milestones{/number}","notifications_url":"https://api.github.com/repos/MMatten/dbfit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MMatten/dbfit/labels{/name}","releases_url":"https://api.github.com/repos/MMatten/dbfit/releases{/id}","created_at":"2015-09-12T16:58:00Z","updated_at":"2015-09-12T16:58:01Z","pushed_at":"2015-11-07T19:28:27Z","git_url":"git://github.com/MMatten/dbfit.git","ssh_url":"git@github.com:MMatten/dbfit.git","clone_url":"https://github.com/MMatten/dbfit.git","svn_url":"https://github.com/MMatten/dbfit","homepage":"http://dbfit.github.io/dbfit","size":6860,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dbfit:master","ref":"master","sha":"9ea523df822fc598cfad5922962aec6150e40472","user":{"login":"dbfit","id":6273536,"avatar_url":"https://avatars.githubusercontent.com/u/6273536?v=3","gravatar_id":"","url":"https://api.github.com/users/dbfit","html_url":"https://github.com/dbfit","followers_url":"https://api.github.com/users/dbfit/followers","following_url":"https://api.github.com/users/dbfit/following{/other_user}","gists_url":"https://api.github.com/users/dbfit/gists{/gist_id}","starred_url":"https://api.github.com/users/dbfit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbfit/subscriptions","organizations_url":"https://api.github.com/users/dbfit/orgs","repos_url":"https://api.github.com/users/dbfit/repos","events_url":"https://api.github.com/users/dbfit/events{/privacy}","received_events_url":"https://api.github.com/users/dbfit/received_events","type":"Organization","site_admin":false},"repo":{"id":7283919,"name":"dbfit","full_name":"dbfit/dbfit","owner":{"login":"dbfit","id":6273536,"avatar_url":"https://avatars.githubusercontent.com/u/6273536?v=3","gravatar_id":"","url":"https://api.github.com/users/dbfit","html_url":"https://github.com/dbfit","followers_url":"https://api.github.com/users/dbfit/followers","following_url":"https://api.github.com/users/dbfit/following{/other_user}","gists_url":"https://api.github.com/users/dbfit/gists{/gist_id}","starred_url":"https://api.github.com/users/dbfit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbfit/subscriptions","organizations_url":"https://api.github.com/users/dbfit/orgs","repos_url":"https://api.github.com/users/dbfit/repos","events_url":"https://api.github.com/users/dbfit/events{/privacy}","received_events_url":"https://api.github.com/users/dbfit/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dbfit/dbfit","description":"DbFit is a database testing framework that supports easy test-driven development of your database code.","fork":false,"url":"https://api.github.com/repos/dbfit/dbfit","forks_url":"https://api.github.com/repos/dbfit/dbfit/forks","keys_url":"https://api.github.com/repos/dbfit/dbfit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dbfit/dbfit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dbfit/dbfit/teams","hooks_url":"https://api.github.com/repos/dbfit/dbfit/hooks","issue_events_url":"https://api.github.com/repos/dbfit/dbfit/issues/events{/number}","events_url":"https://api.github.com/repos/dbfit/dbfit/events","assignees_url":"https://api.github.com/repos/dbfit/dbfit/assignees{/user}","branches_url":"https://api.github.com/repos/dbfit/dbfit/branches{/branch}","tags_url":"https://api.github.com/repos/dbfit/dbfit/tags","blobs_url":"https://api.github.com/repos/dbfit/dbfit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dbfit/dbfit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dbfit/dbfit/git/refs{/sha}","trees_url":"https://api.github.com/repos/dbfit/dbfit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dbfit/dbfit/statuses/{sha}","languages_url":"https://api.github.com/repos/dbfit/dbfit/languages","stargazers_url":"https://api.github.com/repos/dbfit/dbfit/stargazers","contributors_url":"https://api.github.com/repos/dbfit/dbfit/contributors","subscribers_url":"https://api.github.com/repos/dbfit/dbfit/subscribers","subscription_url":"https://api.github.com/repos/dbfit/dbfit/subscription","commits_url":"https://api.github.com/repos/dbfit/dbfit/commits{/sha}","git_commits_url":"https://api.github.com/repos/dbfit/dbfit/git/commits{/sha}","comments_url":"https://api.github.com/repos/dbfit/dbfit/comments{/number}","issue_comment_url":"https://api.github.com/repos/dbfit/dbfit/issues/comments{/number}","contents_url":"https://api.github.com/repos/dbfit/dbfit/contents/{+path}","compare_url":"https://api.github.com/repos/dbfit/dbfit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dbfit/dbfit/merges","archive_url":"https://api.github.com/repos/dbfit/dbfit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dbfit/dbfit/downloads","issues_url":"https://api.github.com/repos/dbfit/dbfit/issues{/number}","pulls_url":"https://api.github.com/repos/dbfit/dbfit/pulls{/number}","milestones_url":"https://api.github.com/repos/dbfit/dbfit/milestones{/number}","notifications_url":"https://api.github.com/repos/dbfit/dbfit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dbfit/dbfit/labels{/name}","releases_url":"https://api.github.com/repos/dbfit/dbfit/releases{/id}","created_at":"2012-12-22T08:26:13Z","updated_at":"2015-10-17T00:16:56Z","pushed_at":"2015-11-07T19:28:27Z","git_url":"git://github.com/dbfit/dbfit.git","ssh_url":"git@github.com:dbfit/dbfit.git","clone_url":"https://github.com/dbfit/dbfit.git","svn_url":"https://github.com/dbfit/dbfit","homepage":"http://dbfit.github.io/dbfit","size":11258,"stargazers_count":79,"watchers_count":79,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":47,"mirror_url":null,"open_issues_count":78,"forks":47,"open_issues":78,"watchers":79,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dbfit/dbfit/pulls/436"},"html":{"href":"https://github.com/dbfit/dbfit/pull/436"},"issue":{"href":"https://api.github.com/repos/dbfit/dbfit/issues/436"},"comments":{"href":"https://api.github.com/repos/dbfit/dbfit/issues/436/comments"},"review_comments":{"href":"https://api.github.com/repos/dbfit/dbfit/pulls/436/comments"},"review_comment":{"href":"https://api.github.com/repos/dbfit/dbfit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dbfit/dbfit/pulls/436/commits"},"statuses":{"href":"https://api.github.com/repos/dbfit/dbfit/statuses/e9d57c33ecd5b5c790a684f156d6edb09b27012e"}}}}