{"action":"created","comment":{"url":"https://api.github.com/repos/codice/ddf/pulls/comments/237102310","pull_request_review_id":179318674,"id":237102310,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNzEwMjMxMA==","diff_hunk":"@@ -0,0 +1,78 @@\n+/**\n+ * Copyright (c) Codice Foundation\n+ *\n+ * <p>This is free software: you can redistribute it and/or modify it under the terms of the GNU\n+ * Lesser General Public License as published by the Free Software Foundation, either version 3 of\n+ * the License, or any later version.\n+ *\n+ * <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n+ * GNU Lesser General Public License for more details. A copy of the GNU Lesser General Public\n+ * License is distributed along with this program and can be found at\n+ * <http://www.gnu.org/licenses/lgpl.html>.\n+ */\n+package org.codice.ddf.catalog.content.monitor;\n+\n+import com.google.common.collect.ImmutableSet;\n+import com.google.gson.Gson;\n+import com.google.gson.reflect.TypeToken;\n+import java.io.File;\n+import java.io.FileReader;\n+import java.io.IOException;\n+import java.nio.file.Path;\n+import java.nio.file.Paths;\n+import java.util.Collections;\n+import java.util.HashSet;\n+import java.util.List;\n+import java.util.Set;\n+import org.apache.commons.io.FilenameUtils;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+public class InputTransformerIds {\n+\n+  private static final Logger LOGGER = LoggerFactory.getLogger(InputTransformerIds.class);\n+\n+  private Path transformerFolder;\n+\n+  public InputTransformerIds() {\n+    this(Paths.get(\"etc\", \"transformers\"));\n+  }\n+\n+  /** @param path path of directory containing {@link InputTransformerIds} json files */\n+  public InputTransformerIds(Path path) {\n+    transformerFolder = path;\n+  }\n+\n+  public Set<String> getIds() {\n+    File[] transformerFiles = transformerFolder.toFile().listFiles();\n+    if (transformerFiles == null || transformerFiles.length == 0) {\n+      LOGGER.debug(\"No Input Transformer json files found in {}\", transformerFolder);\n+      return Collections.emptySet();\n+    }\n+\n+    Set<String> allTransformerIds = new HashSet<>();\n+    Gson gson = new Gson();\n+    for (File transformerFile : transformerFiles) {\n+      if (!FilenameUtils.getExtension(transformerFile.toString()).equals(\"json\")) {\n+        LOGGER.debug(\"Skipping non-json file {}\", transformerFile);\n+        continue;\n+      }\n+\n+      try (FileReader reader = new FileReader(transformerFile)) {\n+\n+        List<String> filesTransformerIds =\n+            gson.fromJson(reader, new TypeToken<List<String>>() {}.getType());\n+\n+        allTransformerIds.addAll(filesTransformerIds);\n+      } catch (IOException e) {\n+        LOGGER.debug(","path":"catalog/core/catalog-core-directorymonitor/src/main/java/org/codice/ddf/catalog/content/monitor/InputTransformerIds.java","position":73,"original_position":69,"commit_id":"4311ef7bfe1587f1aab9261a4f129a05d5309935","original_commit_id":"6b619c2eb3e39a26b52dfc6aa9cfebdd9f266b7d","user":{"login":"paouelle","id":10549555,"node_id":"MDQ6VXNlcjEwNTQ5NTU1","avatar_url":"https://avatars0.githubusercontent.com/u/10549555?v=4","gravatar_id":"","url":"https://api.github.com/users/paouelle","html_url":"https://github.com/paouelle","followers_url":"https://api.github.com/users/paouelle/followers","following_url":"https://api.github.com/users/paouelle/following{/other_user}","gists_url":"https://api.github.com/users/paouelle/gists{/gist_id}","starred_url":"https://api.github.com/users/paouelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paouelle/subscriptions","organizations_url":"https://api.github.com/users/paouelle/orgs","repos_url":"https://api.github.com/users/paouelle/repos","events_url":"https://api.github.com/users/paouelle/events{/privacy}","received_events_url":"https://api.github.com/users/paouelle/received_events","type":"User","site_admin":false},"body":"I agree with passing constants with blueprint but I am not a fan of setters either. My preference would be another constructor that calls this one with hardcoded constants to be used by blueprint. The current constructor can then be annotated with `@VisibleForTesting`. \r\n\r\nI am a proponent of marking things final if they are not supposed to be modified during the life of an object. It simplifies review by making it clear it won't be modified, it simplifies concurrency since it is set at construction time, and more.","created_at":"2018-11-28T14:21:24Z","updated_at":"2018-11-28T14:21:24Z","html_url":"https://github.com/codice/ddf/pull/4041#discussion_r237102310","pull_request_url":"https://api.github.com/repos/codice/ddf/pulls/4041","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments/237102310"},"html":{"href":"https://github.com/codice/ddf/pull/4041#discussion_r237102310"},"pull_request":{"href":"https://api.github.com/repos/codice/ddf/pulls/4041"}},"in_reply_to_id":236697437},"pull_request":{"url":"https://api.github.com/repos/codice/ddf/pulls/4041","id":230920195,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMwOTIwMTk1","html_url":"https://github.com/codice/ddf/pull/4041","diff_url":"https://github.com/codice/ddf/pull/4041.diff","patch_url":"https://github.com/codice/ddf/pull/4041.patch","issue_url":"https://api.github.com/repos/codice/ddf/issues/4041","number":4041,"state":"open","locked":false,"title":"[2.13.x] DDF-4320 Fix CDM ingesting too soon on system start","user":{"login":"peterhuffer","id":17572782,"node_id":"MDQ6VXNlcjE3NTcyNzgy","avatar_url":"https://avatars3.githubusercontent.com/u/17572782?v=4","gravatar_id":"","url":"https://api.github.com/users/peterhuffer","html_url":"https://github.com/peterhuffer","followers_url":"https://api.github.com/users/peterhuffer/followers","following_url":"https://api.github.com/users/peterhuffer/following{/other_user}","gists_url":"https://api.github.com/users/peterhuffer/gists{/gist_id}","starred_url":"https://api.github.com/users/peterhuffer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterhuffer/subscriptions","organizations_url":"https://api.github.com/users/peterhuffer/orgs","repos_url":"https://api.github.com/users/peterhuffer/repos","events_url":"https://api.github.com/users/peterhuffer/events{/privacy}","received_events_url":"https://api.github.com/users/peterhuffer/received_events","type":"User","site_admin":false},"body":"#### What does this PR do?\r\n- Defines a json file specifying InputTransformer IDs started by default in DDF\r\n- CDM routes will wait to be started until InputTransformer services satisfy those IDs, or until the wait timeout is exceeded.\r\n- Cleans up a few dependencies \r\n\r\n#### Who is reviewing it? \r\n@emmberk @kcover @brendan-hofmann @pvargas @mdang8 \r\n\r\n#### Select relevant component teams:  \r\n@codice/io \r\n\r\n#### Ask 2 committers to review/merge the PR and tag them here.\r\n@clockard\r\n@tbatie \r\n\r\n#### How should this be tested?\r\nSet `log:set TRACE org.codice.ddf.catalog.content.monitor` for detailed logs.\r\nVerify the following scenarios. \r\n- Start a normal CDM (move/delete/inplace) and verify it begins ingesting\r\n- Start a normal CDM (move/delete/inplace) and verify it begins ingesting on a directory with a large amount of products. Restart the distribution while ingesting and verify it does not start ingesting until all InputTransformers are available (view logs).\r\n- Edit the `ddf-default-input-transformers.json` file to include an ID that doesn't exist, or turn off a bundle providing an InputTransformer already listed. Startup a CDM and verify it times out while waiting and continues ingesting as normal.\r\n- Edit the `ddf-default-input-transformers.json` file to include an ID that doesn't exist, or turn off a bundle providing an InputTransformer already listed. Startup a CDM and then immediately delete it while it is waiting for InputTransformers, verify the CDM does *not* begin ingesting.\r\n- Test WebDav according to https://codice.atlassian.net/browse/DDF-3372\r\n\r\n#### Any background context you want to provide?\r\n\r\n#### What are the relevant tickets?\r\n[DDF-4320](https://codice.atlassian.net/browse/DDF-4320)\r\n\r\n#### Screenshots\r\n\r\n#### Checklist:\r\n- [x] Documentation Updated\r\n- [x] Update / Add Unit Tests\r\n- [x] Update / Add Integration Tests\r\n\r\n#### Notes on Review Process\r\nPlease see [Notes on Review Process](https://codice.atlassian.net/wiki/spaces/DDF/pages/71946981/Pull+Request+Guidelines) for further guidance on requirements for merging and abbreviated reviews. \r\n\r\n#### Review Comment Legend:\r\n- ✏️ (Pencil) This comment is a nitpick or style suggestion, no action required for approval. This comment should provide a suggestion either as an in line code snippet or a gist. \r\n- ❓ (Question Mark) This comment is to gain a clearer understanding of design or code choices, clarification is required but action may not be necessary for approval.\r\n- ❗ (Exclamation Mark) This comment is critical and requires clarification or action before approval.\r\n","created_at":"2018-11-14T17:30:22Z","updated_at":"2018-11-28T14:21:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c76b4e5b87fc06b38eeca20b347b65d787219ba6","assignee":{"login":"clockard","id":5248090,"node_id":"MDQ6VXNlcjUyNDgwOTA=","avatar_url":"https://avatars1.githubusercontent.com/u/5248090?v=4","gravatar_id":"","url":"https://api.github.com/users/clockard","html_url":"https://github.com/clockard","followers_url":"https://api.github.com/users/clockard/followers","following_url":"https://api.github.com/users/clockard/following{/other_user}","gists_url":"https://api.github.com/users/clockard/gists{/gist_id}","starred_url":"https://api.github.com/users/clockard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clockard/subscriptions","organizations_url":"https://api.github.com/users/clockard/orgs","repos_url":"https://api.github.com/users/clockard/repos","events_url":"https://api.github.com/users/clockard/events{/privacy}","received_events_url":"https://api.github.com/users/clockard/received_events","type":"User","site_admin":false},"assignees":[{"login":"clockard","id":5248090,"node_id":"MDQ6VXNlcjUyNDgwOTA=","avatar_url":"https://avatars1.githubusercontent.com/u/5248090?v=4","gravatar_id":"","url":"https://api.github.com/users/clockard","html_url":"https://github.com/clockard","followers_url":"https://api.github.com/users/clockard/followers","following_url":"https://api.github.com/users/clockard/following{/other_user}","gists_url":"https://api.github.com/users/clockard/gists{/gist_id}","starred_url":"https://api.github.com/users/clockard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clockard/subscriptions","organizations_url":"https://api.github.com/users/clockard/orgs","repos_url":"https://api.github.com/users/clockard/repos","events_url":"https://api.github.com/users/clockard/events{/privacy}","received_events_url":"https://api.github.com/users/clockard/received_events","type":"User","site_admin":false},{"login":"tbatie","id":9013620,"node_id":"MDQ6VXNlcjkwMTM2MjA=","avatar_url":"https://avatars3.githubusercontent.com/u/9013620?v=4","gravatar_id":"","url":"https://api.github.com/users/tbatie","html_url":"https://github.com/tbatie","followers_url":"https://api.github.com/users/tbatie/followers","following_url":"https://api.github.com/users/tbatie/following{/other_user}","gists_url":"https://api.github.com/users/tbatie/gists{/gist_id}","starred_url":"https://api.github.com/users/tbatie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tbatie/subscriptions","organizations_url":"https://api.github.com/users/tbatie/orgs","repos_url":"https://api.github.com/users/tbatie/repos","events_url":"https://api.github.com/users/tbatie/events{/privacy}","received_events_url":"https://api.github.com/users/tbatie/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"stustison","id":4391679,"node_id":"MDQ6VXNlcjQzOTE2Nzk=","avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1120956553,"node_id":"MDU6TGFiZWwxMTIwOTU2NTUz","url":"https://api.github.com/repos/codice/ddf/labels/%F0%9F%8F%AC%20Release%20Branch","name":"🏬 Release Branch","color":"bfeeee","default":false}],"milestone":{"url":"https://api.github.com/repos/codice/ddf/milestones/25","html_url":"https://github.com/codice/ddf/milestone/25","labels_url":"https://api.github.com/repos/codice/ddf/milestones/25/labels","id":3765774,"node_id":"MDk6TWlsZXN0b25lMzc2NTc3NA==","number":25,"title":"2.13.4","description":"","creator":{"login":"clockard","id":5248090,"node_id":"MDQ6VXNlcjUyNDgwOTA=","avatar_url":"https://avatars1.githubusercontent.com/u/5248090?v=4","gravatar_id":"","url":"https://api.github.com/users/clockard","html_url":"https://github.com/clockard","followers_url":"https://api.github.com/users/clockard/followers","following_url":"https://api.github.com/users/clockard/following{/other_user}","gists_url":"https://api.github.com/users/clockard/gists{/gist_id}","starred_url":"https://api.github.com/users/clockard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clockard/subscriptions","organizations_url":"https://api.github.com/users/clockard/orgs","repos_url":"https://api.github.com/users/clockard/repos","events_url":"https://api.github.com/users/clockard/events{/privacy}","received_events_url":"https://api.github.com/users/clockard/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":20,"state":"open","created_at":"2018-10-24T15:59:57Z","updated_at":"2018-11-27T22:50:39Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/codice/ddf/pulls/4041/commits","review_comments_url":"https://api.github.com/repos/codice/ddf/pulls/4041/comments","review_comment_url":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/codice/ddf/issues/4041/comments","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/4311ef7bfe1587f1aab9261a4f129a05d5309935","head":{"label":"peterhuffer:DDF-4320.2.13.x","ref":"DDF-4320.2.13.x","sha":"4311ef7bfe1587f1aab9261a4f129a05d5309935","user":{"login":"peterhuffer","id":17572782,"node_id":"MDQ6VXNlcjE3NTcyNzgy","avatar_url":"https://avatars3.githubusercontent.com/u/17572782?v=4","gravatar_id":"","url":"https://api.github.com/users/peterhuffer","html_url":"https://github.com/peterhuffer","followers_url":"https://api.github.com/users/peterhuffer/followers","following_url":"https://api.github.com/users/peterhuffer/following{/other_user}","gists_url":"https://api.github.com/users/peterhuffer/gists{/gist_id}","starred_url":"https://api.github.com/users/peterhuffer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterhuffer/subscriptions","organizations_url":"https://api.github.com/users/peterhuffer/orgs","repos_url":"https://api.github.com/users/peterhuffer/repos","events_url":"https://api.github.com/users/peterhuffer/events{/privacy}","received_events_url":"https://api.github.com/users/peterhuffer/received_events","type":"User","site_admin":false},"repo":{"id":53069510,"node_id":"MDEwOlJlcG9zaXRvcnk1MzA2OTUxMA==","name":"ddf","full_name":"peterhuffer/ddf","private":false,"owner":{"login":"peterhuffer","id":17572782,"node_id":"MDQ6VXNlcjE3NTcyNzgy","avatar_url":"https://avatars3.githubusercontent.com/u/17572782?v=4","gravatar_id":"","url":"https://api.github.com/users/peterhuffer","html_url":"https://github.com/peterhuffer","followers_url":"https://api.github.com/users/peterhuffer/followers","following_url":"https://api.github.com/users/peterhuffer/following{/other_user}","gists_url":"https://api.github.com/users/peterhuffer/gists{/gist_id}","starred_url":"https://api.github.com/users/peterhuffer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterhuffer/subscriptions","organizations_url":"https://api.github.com/users/peterhuffer/orgs","repos_url":"https://api.github.com/users/peterhuffer/repos","events_url":"https://api.github.com/users/peterhuffer/events{/privacy}","received_events_url":"https://api.github.com/users/peterhuffer/received_events","type":"User","site_admin":false},"html_url":"https://github.com/peterhuffer/ddf","description":"The Distributed Data Framework - Federated Open Geospatial Consortium (OGC) filter powered metadata catalog with SAML Web SSO secured container","fork":true,"url":"https://api.github.com/repos/peterhuffer/ddf","forks_url":"https://api.github.com/repos/peterhuffer/ddf/forks","keys_url":"https://api.github.com/repos/peterhuffer/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/peterhuffer/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/peterhuffer/ddf/teams","hooks_url":"https://api.github.com/repos/peterhuffer/ddf/hooks","issue_events_url":"https://api.github.com/repos/peterhuffer/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/peterhuffer/ddf/events","assignees_url":"https://api.github.com/repos/peterhuffer/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/peterhuffer/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/peterhuffer/ddf/tags","blobs_url":"https://api.github.com/repos/peterhuffer/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/peterhuffer/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/peterhuffer/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/peterhuffer/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/peterhuffer/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/peterhuffer/ddf/languages","stargazers_url":"https://api.github.com/repos/peterhuffer/ddf/stargazers","contributors_url":"https://api.github.com/repos/peterhuffer/ddf/contributors","subscribers_url":"https://api.github.com/repos/peterhuffer/ddf/subscribers","subscription_url":"https://api.github.com/repos/peterhuffer/ddf/subscription","commits_url":"https://api.github.com/repos/peterhuffer/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/peterhuffer/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/peterhuffer/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/peterhuffer/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/peterhuffer/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/peterhuffer/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/peterhuffer/ddf/merges","archive_url":"https://api.github.com/repos/peterhuffer/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/peterhuffer/ddf/downloads","issues_url":"https://api.github.com/repos/peterhuffer/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/peterhuffer/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/peterhuffer/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/peterhuffer/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/peterhuffer/ddf/labels{/name}","releases_url":"https://api.github.com/repos/peterhuffer/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/peterhuffer/ddf/deployments","created_at":"2016-03-03T17:28:01Z","updated_at":"2018-10-10T16:19:35Z","pushed_at":"2018-11-27T20:20:31Z","git_url":"git://github.com/peterhuffer/ddf.git","ssh_url":"git@github.com:peterhuffer/ddf.git","clone_url":"https://github.com/peterhuffer/ddf.git","svn_url":"https://github.com/peterhuffer/ddf","homepage":"","size":214525,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"codice:2.13.x","ref":"2.13.x","sha":"d8720b7ae4cabce3ba89b8ffa5023cfedde813dd","user":{"login":"codice","id":2386734,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzODY3MzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"repo":{"id":15173563,"node_id":"MDEwOlJlcG9zaXRvcnkxNTE3MzU2Mw==","name":"ddf","full_name":"codice/ddf","private":false,"owner":{"login":"codice","id":2386734,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzODY3MzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/codice/ddf","description":"DDF Distributed Data Framework - an open source, modular integration framework.","fork":false,"url":"https://api.github.com/repos/codice/ddf","forks_url":"https://api.github.com/repos/codice/ddf/forks","keys_url":"https://api.github.com/repos/codice/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/codice/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/codice/ddf/teams","hooks_url":"https://api.github.com/repos/codice/ddf/hooks","issue_events_url":"https://api.github.com/repos/codice/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/codice/ddf/events","assignees_url":"https://api.github.com/repos/codice/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/codice/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/codice/ddf/tags","blobs_url":"https://api.github.com/repos/codice/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/codice/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/codice/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/codice/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/codice/ddf/languages","stargazers_url":"https://api.github.com/repos/codice/ddf/stargazers","contributors_url":"https://api.github.com/repos/codice/ddf/contributors","subscribers_url":"https://api.github.com/repos/codice/ddf/subscribers","subscription_url":"https://api.github.com/repos/codice/ddf/subscription","commits_url":"https://api.github.com/repos/codice/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/codice/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/codice/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/codice/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/codice/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/codice/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/codice/ddf/merges","archive_url":"https://api.github.com/repos/codice/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/codice/ddf/downloads","issues_url":"https://api.github.com/repos/codice/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/codice/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/codice/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/codice/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/codice/ddf/labels{/name}","releases_url":"https://api.github.com/repos/codice/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/codice/ddf/deployments","created_at":"2013-12-13T20:38:28Z","updated_at":"2018-11-28T00:45:56Z","pushed_at":"2018-11-28T13:20:30Z","git_url":"git://github.com/codice/ddf.git","ssh_url":"git@github.com:codice/ddf.git","clone_url":"https://github.com/codice/ddf.git","svn_url":"https://github.com/codice/ddf","homepage":"http://ddf.codice.org","size":414423,"stargazers_count":92,"watchers_count":92,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":157,"mirror_url":null,"archived":false,"open_issues_count":25,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":157,"open_issues":25,"watchers":92,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/4041"},"html":{"href":"https://github.com/codice/ddf/pull/4041"},"issue":{"href":"https://api.github.com/repos/codice/ddf/issues/4041"},"comments":{"href":"https://api.github.com/repos/codice/ddf/issues/4041/comments"},"review_comments":{"href":"https://api.github.com/repos/codice/ddf/pulls/4041/comments"},"review_comment":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/codice/ddf/pulls/4041/commits"},"statuses":{"href":"https://api.github.com/repos/codice/ddf/statuses/4311ef7bfe1587f1aab9261a4f129a05d5309935"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"paouelle"}}