{"action":"created","comment":{"url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/comments/112388964","pull_request_review_id":33698309,"id":112388964,"diff_hunk":"@@ -0,0 +1,197 @@\n+/*\n+ *  This file is part of ***  M y C o R e  ***\n+ *  See http://www.mycore.de/ for details.\n+ *\n+ *  This program is free software; you can use it, redistribute it\n+ *  and / or modify it under the terms of the GNU General Public License\n+ *  (GPL) as published by the Free Software Foundation; either version 2\n+ *  of the License or (at your option) any later version.\n+ *\n+ *  This program is distributed in the hope that it will be useful, but\n+ *  WITHOUT ANY WARRANTY; without even the implied warranty of\n+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ *  GNU General Public License for more details.\n+ *\n+ *  You should have received a copy of the GNU General Public License\n+ *  along with this program, in a file called gpl.txt or license.txt.\n+ *  If not, write to the Free Software Foundation Inc.,\n+ *  59 Temple Place - Suite 330, Boston, MA  02111-1307 USA\n+ *\n+ */\n+\n+/*\n+ *  This file is part of ***  M y C o R e  ***\n+ *  See http://www.mycore.de/ for details.\n+ *\n+ *  This program is free software; you can use it, redistribute it\n+ *  and / or modify it under the terms of the GNU General Public License\n+ *  (GPL) as published by the Free Software Foundation; either version 2\n+ *  of the License or (at your option) any later version.\n+ *\n+ *  This program is distributed in the hope that it will be useful, but\n+ *  WITHOUT ANY WARRANTY; without even the implied warranty of\n+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ *  GNU General Public License for more details.\n+ *\n+ *  You should have received a copy of the GNU General Public License\n+ *  along with this program, in a file called gpl.txt or license.txt.\n+ *  If not, write to the Free Software Foundation Inc.,\n+ *  59 Temple Place - Suite 330, Boston, MA  02111-1307 USA\n+ *\n+ */\n+\n+package org.mycore.sass;\n+\n+import io.bit3.jsass.CompilationException;\n+import io.bit3.jsass.Options;\n+import io.bit3.jsass.Output;\n+import io.bit3.jsass.context.FileContext;\n+import io.bit3.jsass.context.StringContext;\n+import io.bit3.jsass.importer.Import;\n+import io.bit3.jsass.importer.Importer;\n+import io.bit3.jsass.Compiler;\n+\n+import java.io.IOException;\n+import java.io.StringReader;\n+import java.io.StringWriter;\n+import java.security.NoSuchAlgorithmException;\n+import java.util.Collection;\n+import java.util.Date;\n+import java.util.List;\n+import java.util.Map;\n+import java.util.Optional;\n+import java.util.concurrent.ConcurrentHashMap;\n+\n+import org.apache.logging.log4j.LogManager;\n+import org.apache.logging.log4j.Logger;\n+import org.mycore.common.MCRUtils;\n+import org.mycore.common.config.MCRConfiguration;\n+\n+import com.yahoo.platform.yui.compressor.CssCompressor;\n+\n+/**\n+ * Compiles .scss to .css or .min.css using different sources ({@link Importer}s)\n+ *\n+ * @author Sebastian Hofmann (mcrshofm)\n+ * @see MCRServletContextResourceImporter\n+ */\n+public class MCRSassCompilerManager {\n+\n+    private static final String DEVELOPER_MODE_CONFIG_KEY = \"MCR.SASS.DeveloperMode\";\n+    private static final String LINE_BREAK_CONFIG_KEY = \"MCR.SASS.Compress.LineBreak\";\n+    private static final Logger LOGGER = LogManager.getLogger();\n+    private static final MCRConfiguration MCR_CONFIGURATION = MCRConfiguration.instance();\n+\n+    private Map<String, String> fileCompiledContentMap = new ConcurrentHashMap<>();\n+    private Map<String, Date> fileLastCompileDateMap = new ConcurrentHashMap<>();\n+    private Map<String, String> fileMD5Map = new ConcurrentHashMap<>();\n+\n+    public static MCRSassCompilerManager getInstance() {\n+        return MIR_SASS_COMPILER_MANAGER_HOLDER.instance;\n+    }\n+\n+    /**\n+     * Gets the compiled(&amp;compressed) CSS\n+     *\n+     * @param file     the path to a .scss file. File should end with .css or .min.css (The compiler will look for the .scss file, then compiles and decides to minify or not).\n+     * @param importer a additional list of importers\n+     * @return Optional with the compiled css as string. Empty optional if the fileName is not valid.\n+     * @throws CompilationException if {@link Compiler#compile(FileContext)} throws\n+     */\n+    public synchronized Optional<String> getCSSFile(String file, List<Importer> importer) throws CompilationException, IOException {\n+        if (!isDeveloperMode() && fileCompiledContentMap.containsKey(file)) {\n+            return Optional.of(fileCompiledContentMap.get(file));\n+        } else {\n+            return Optional.ofNullable(compile(file, importer));\n+        }\n+    }\n+\n+    /**\n+     * @param name the name of file\n+     * @return the time when the specific file was compiled last time.\n+     */\n+    public Optional<Date> getLastCompiled(String name) {\n+        return Optional.ofNullable(fileLastCompileDateMap.get(name));\n+    }\n+\n+    /**\n+     * @param name the name of file\n+     * @return the md5 hash of the last compiled specific file.\n+     */\n+    public Optional<String> getLastMD5(String name) {\n+        return Optional.ofNullable(fileMD5Map.get(name));\n+    }\n+\n+    /**\n+     * Just compiles a file and fills all maps.\n+     *\n+     * @param name the name of the file (with .min.css or .css ending)\n+     * @return the compiled css\n+     * @throws CompilationException\n+     */\n+    private String compile(String name, List<Importer> importer) throws CompilationException, IOException {\n+        Options options = new Options();\n+        Collection<Importer> importerList = options.getImporters();\n+        importer.forEach(importerList::add);\n+\n+        String realFileName = name.replace(\".min.css\", \".scss\").replace(\".css\", \".scss\");\n+\n+        Optional<Import> importedStartStylesheet = importer.stream()\n+                .map(i -> i.apply(realFileName, null))\n+                .filter(i -> i != null)\n+                .map(i -> i.stream().findFirst())\n+                .filter(Optional::isPresent)\n+                .map(Optional::get)\n+                .findFirst();\n+        if (!importedStartStylesheet.isPresent()) {\n+            return null;\n+        }\n+\n+        Import firstImport = importedStartStylesheet.get();\n+\n+        StringContext context = new StringContext(firstImport.getContents(), firstImport.getAbsoluteUri(), firstImport.getAbsoluteUri(), options);\n+        Compiler compiler = new Compiler();\n+        Output output = compiler.compile(context);\n+\n+        if (output.getErrorStatus() != 0) {\n+            LOGGER.error(output.getErrorMessage());\n+            throw new CompilationException(output.getErrorStatus(), output.getErrorMessage());\n+        }\n+\n+        String css = output.getCss();\n+        boolean compress = name.endsWith(\".min.css\");\n+        if (compress) {\n+            try {\n+                CssCompressor cssCompressor = new CssCompressor(new StringReader(css));\n+                int lineBreaks = MCR_CONFIGURATION.getInt(LINE_BREAK_CONFIG_KEY, 7999);\n+                StringWriter out = new StringWriter(css.length());\n+                cssCompressor.compress(out, lineBreaks);\n+                css = out.toString();\n+            } catch (IOException e) {\n+                throw new RuntimeException(\"Read from StringReader produces IOException! (this should not happen)\", e);","path":"mycore-sass/src/main/java/org/mycore/sass/MCRSassCompilerManager.java","position":171,"original_position":171,"commit_id":"2d76ff1c2920f2e70fb0ecde8a1be892ce2066f8","original_commit_id":"2d76ff1c2920f2e70fb0ecde8a1be892ce2066f8","user":{"login":"codacy-bot","id":19940114,"avatar_url":"https://avatars2.githubusercontent.com/u/19940114?v=3","gravatar_id":"","url":"https://api.github.com/users/codacy-bot","html_url":"https://github.com/codacy-bot","followers_url":"https://api.github.com/users/codacy-bot/followers","following_url":"https://api.github.com/users/codacy-bot/following{/other_user}","gists_url":"https://api.github.com/users/codacy-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/codacy-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codacy-bot/subscriptions","organizations_url":"https://api.github.com/users/codacy-bot/orgs","repos_url":"https://api.github.com/users/codacy-bot/repos","events_url":"https://api.github.com/users/codacy-bot/events{/privacy}","received_events_url":"https://api.github.com/users/codacy-bot/received_events","type":"User","site_admin":false},"body":"![Codacy](https://www.codacy.com/assets/images/favicon.png) Issue found: [Avoid throwing raw exception types.](https://www.codacy.com/app/MyCoRe/mycore/pullRequest?prid=615476)","created_at":"2017-04-20T08:00:37Z","updated_at":"2017-04-20T08:00:37Z","html_url":"https://github.com/MyCoRe-Org/mycore/pull/224#discussion_r112388964","pull_request_url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224","_links":{"self":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/comments/112388964"},"html":{"href":"https://github.com/MyCoRe-Org/mycore/pull/224#discussion_r112388964"},"pull_request":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224"}}},"pull_request":{"url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224","id":116711050,"html_url":"https://github.com/MyCoRe-Org/mycore/pull/224","diff_url":"https://github.com/MyCoRe-Org/mycore/pull/224.diff","patch_url":"https://github.com/MyCoRe-Org/mycore/pull/224.patch","issue_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/224","number":224,"state":"open","locked":false,"title":"MCR-1580 move sass compiler from MIR to MyCoRe","user":{"login":"paschty","id":7668803,"avatar_url":"https://avatars0.githubusercontent.com/u/7668803?v=3","gravatar_id":"","url":"https://api.github.com/users/paschty","html_url":"https://github.com/paschty","followers_url":"https://api.github.com/users/paschty/followers","following_url":"https://api.github.com/users/paschty/following{/other_user}","gists_url":"https://api.github.com/users/paschty/gists{/gist_id}","starred_url":"https://api.github.com/users/paschty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paschty/subscriptions","organizations_url":"https://api.github.com/users/paschty/orgs","repos_url":"https://api.github.com/users/paschty/repos","events_url":"https://api.github.com/users/paschty/events{/privacy}","received_events_url":"https://api.github.com/users/paschty/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-04-20T07:56:34Z","updated_at":"2017-04-20T08:00:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"aa56841117efd16d61d1c71db3b44d051f10e033","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224/commits","review_comments_url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224/comments","review_comment_url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/comments{/number}","comments_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/224/comments","statuses_url":"https://api.github.com/repos/MyCoRe-Org/mycore/statuses/2d76ff1c2920f2e70fb0ecde8a1be892ce2066f8","head":{"label":"MyCoRe-Org:issues/MCR-1580-Move_SASS_compiler_from_MIR_to_MyCoRe","ref":"issues/MCR-1580-Move_SASS_compiler_from_MIR_to_MyCoRe","sha":"2d76ff1c2920f2e70fb0ecde8a1be892ce2066f8","user":{"login":"MyCoRe-Org","id":20062922,"avatar_url":"https://avatars3.githubusercontent.com/u/20062922?v=3","gravatar_id":"","url":"https://api.github.com/users/MyCoRe-Org","html_url":"https://github.com/MyCoRe-Org","followers_url":"https://api.github.com/users/MyCoRe-Org/followers","following_url":"https://api.github.com/users/MyCoRe-Org/following{/other_user}","gists_url":"https://api.github.com/users/MyCoRe-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/MyCoRe-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MyCoRe-Org/subscriptions","organizations_url":"https://api.github.com/users/MyCoRe-Org/orgs","repos_url":"https://api.github.com/users/MyCoRe-Org/repos","events_url":"https://api.github.com/users/MyCoRe-Org/events{/privacy}","received_events_url":"https://api.github.com/users/MyCoRe-Org/received_events","type":"Organization","site_admin":false},"repo":{"id":70219747,"name":"mycore","full_name":"MyCoRe-Org/mycore","owner":{"login":"MyCoRe-Org","id":20062922,"avatar_url":"https://avatars3.githubusercontent.com/u/20062922?v=3","gravatar_id":"","url":"https://api.github.com/users/MyCoRe-Org","html_url":"https://github.com/MyCoRe-Org","followers_url":"https://api.github.com/users/MyCoRe-Org/followers","following_url":"https://api.github.com/users/MyCoRe-Org/following{/other_user}","gists_url":"https://api.github.com/users/MyCoRe-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/MyCoRe-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MyCoRe-Org/subscriptions","organizations_url":"https://api.github.com/users/MyCoRe-Org/orgs","repos_url":"https://api.github.com/users/MyCoRe-Org/repos","events_url":"https://api.github.com/users/MyCoRe-Org/events{/privacy}","received_events_url":"https://api.github.com/users/MyCoRe-Org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/MyCoRe-Org/mycore","description":"MyCoRe (acronym for My Content Repository) is an open source repository software framework for building disciplinary or institutional repositories, digital archives, digital libraries, and scientific journals.","fork":false,"url":"https://api.github.com/repos/MyCoRe-Org/mycore","forks_url":"https://api.github.com/repos/MyCoRe-Org/mycore/forks","keys_url":"https://api.github.com/repos/MyCoRe-Org/mycore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MyCoRe-Org/mycore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MyCoRe-Org/mycore/teams","hooks_url":"https://api.github.com/repos/MyCoRe-Org/mycore/hooks","issue_events_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/events{/number}","events_url":"https://api.github.com/repos/MyCoRe-Org/mycore/events","assignees_url":"https://api.github.com/repos/MyCoRe-Org/mycore/assignees{/user}","branches_url":"https://api.github.com/repos/MyCoRe-Org/mycore/branches{/branch}","tags_url":"https://api.github.com/repos/MyCoRe-Org/mycore/tags","blobs_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/refs{/sha}","trees_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MyCoRe-Org/mycore/statuses/{sha}","languages_url":"https://api.github.com/repos/MyCoRe-Org/mycore/languages","stargazers_url":"https://api.github.com/repos/MyCoRe-Org/mycore/stargazers","contributors_url":"https://api.github.com/repos/MyCoRe-Org/mycore/contributors","subscribers_url":"https://api.github.com/repos/MyCoRe-Org/mycore/subscribers","subscription_url":"https://api.github.com/repos/MyCoRe-Org/mycore/subscription","commits_url":"https://api.github.com/repos/MyCoRe-Org/mycore/commits{/sha}","git_commits_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/commits{/sha}","comments_url":"https://api.github.com/repos/MyCoRe-Org/mycore/comments{/number}","issue_comment_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/comments{/number}","contents_url":"https://api.github.com/repos/MyCoRe-Org/mycore/contents/{+path}","compare_url":"https://api.github.com/repos/MyCoRe-Org/mycore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MyCoRe-Org/mycore/merges","archive_url":"https://api.github.com/repos/MyCoRe-Org/mycore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MyCoRe-Org/mycore/downloads","issues_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues{/number}","pulls_url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls{/number}","milestones_url":"https://api.github.com/repos/MyCoRe-Org/mycore/milestones{/number}","notifications_url":"https://api.github.com/repos/MyCoRe-Org/mycore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MyCoRe-Org/mycore/labels{/name}","releases_url":"https://api.github.com/repos/MyCoRe-Org/mycore/releases{/id}","deployments_url":"https://api.github.com/repos/MyCoRe-Org/mycore/deployments","created_at":"2016-10-07T06:02:02Z","updated_at":"2017-03-30T15:29:08Z","pushed_at":"2017-04-20T07:56:34Z","git_url":"git://github.com/MyCoRe-Org/mycore.git","ssh_url":"git@github.com:MyCoRe-Org/mycore.git","clone_url":"https://github.com/MyCoRe-Org/mycore.git","svn_url":"https://github.com/MyCoRe-Org/mycore","homepage":null,"size":226004,"stargazers_count":9,"watchers_count":9,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":2,"forks":2,"open_issues":2,"watchers":9,"default_branch":"master"}},"base":{"label":"MyCoRe-Org:master","ref":"master","sha":"f402de20b57d2c78cd3820b1a18146c9a0b2c09a","user":{"login":"MyCoRe-Org","id":20062922,"avatar_url":"https://avatars3.githubusercontent.com/u/20062922?v=3","gravatar_id":"","url":"https://api.github.com/users/MyCoRe-Org","html_url":"https://github.com/MyCoRe-Org","followers_url":"https://api.github.com/users/MyCoRe-Org/followers","following_url":"https://api.github.com/users/MyCoRe-Org/following{/other_user}","gists_url":"https://api.github.com/users/MyCoRe-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/MyCoRe-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MyCoRe-Org/subscriptions","organizations_url":"https://api.github.com/users/MyCoRe-Org/orgs","repos_url":"https://api.github.com/users/MyCoRe-Org/repos","events_url":"https://api.github.com/users/MyCoRe-Org/events{/privacy}","received_events_url":"https://api.github.com/users/MyCoRe-Org/received_events","type":"Organization","site_admin":false},"repo":{"id":70219747,"name":"mycore","full_name":"MyCoRe-Org/mycore","owner":{"login":"MyCoRe-Org","id":20062922,"avatar_url":"https://avatars3.githubusercontent.com/u/20062922?v=3","gravatar_id":"","url":"https://api.github.com/users/MyCoRe-Org","html_url":"https://github.com/MyCoRe-Org","followers_url":"https://api.github.com/users/MyCoRe-Org/followers","following_url":"https://api.github.com/users/MyCoRe-Org/following{/other_user}","gists_url":"https://api.github.com/users/MyCoRe-Org/gists{/gist_id}","starred_url":"https://api.github.com/users/MyCoRe-Org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MyCoRe-Org/subscriptions","organizations_url":"https://api.github.com/users/MyCoRe-Org/orgs","repos_url":"https://api.github.com/users/MyCoRe-Org/repos","events_url":"https://api.github.com/users/MyCoRe-Org/events{/privacy}","received_events_url":"https://api.github.com/users/MyCoRe-Org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/MyCoRe-Org/mycore","description":"MyCoRe (acronym for My Content Repository) is an open source repository software framework for building disciplinary or institutional repositories, digital archives, digital libraries, and scientific journals.","fork":false,"url":"https://api.github.com/repos/MyCoRe-Org/mycore","forks_url":"https://api.github.com/repos/MyCoRe-Org/mycore/forks","keys_url":"https://api.github.com/repos/MyCoRe-Org/mycore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MyCoRe-Org/mycore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MyCoRe-Org/mycore/teams","hooks_url":"https://api.github.com/repos/MyCoRe-Org/mycore/hooks","issue_events_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/events{/number}","events_url":"https://api.github.com/repos/MyCoRe-Org/mycore/events","assignees_url":"https://api.github.com/repos/MyCoRe-Org/mycore/assignees{/user}","branches_url":"https://api.github.com/repos/MyCoRe-Org/mycore/branches{/branch}","tags_url":"https://api.github.com/repos/MyCoRe-Org/mycore/tags","blobs_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/refs{/sha}","trees_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MyCoRe-Org/mycore/statuses/{sha}","languages_url":"https://api.github.com/repos/MyCoRe-Org/mycore/languages","stargazers_url":"https://api.github.com/repos/MyCoRe-Org/mycore/stargazers","contributors_url":"https://api.github.com/repos/MyCoRe-Org/mycore/contributors","subscribers_url":"https://api.github.com/repos/MyCoRe-Org/mycore/subscribers","subscription_url":"https://api.github.com/repos/MyCoRe-Org/mycore/subscription","commits_url":"https://api.github.com/repos/MyCoRe-Org/mycore/commits{/sha}","git_commits_url":"https://api.github.com/repos/MyCoRe-Org/mycore/git/commits{/sha}","comments_url":"https://api.github.com/repos/MyCoRe-Org/mycore/comments{/number}","issue_comment_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/comments{/number}","contents_url":"https://api.github.com/repos/MyCoRe-Org/mycore/contents/{+path}","compare_url":"https://api.github.com/repos/MyCoRe-Org/mycore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MyCoRe-Org/mycore/merges","archive_url":"https://api.github.com/repos/MyCoRe-Org/mycore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MyCoRe-Org/mycore/downloads","issues_url":"https://api.github.com/repos/MyCoRe-Org/mycore/issues{/number}","pulls_url":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls{/number}","milestones_url":"https://api.github.com/repos/MyCoRe-Org/mycore/milestones{/number}","notifications_url":"https://api.github.com/repos/MyCoRe-Org/mycore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MyCoRe-Org/mycore/labels{/name}","releases_url":"https://api.github.com/repos/MyCoRe-Org/mycore/releases{/id}","deployments_url":"https://api.github.com/repos/MyCoRe-Org/mycore/deployments","created_at":"2016-10-07T06:02:02Z","updated_at":"2017-03-30T15:29:08Z","pushed_at":"2017-04-20T07:56:34Z","git_url":"git://github.com/MyCoRe-Org/mycore.git","ssh_url":"git@github.com:MyCoRe-Org/mycore.git","clone_url":"https://github.com/MyCoRe-Org/mycore.git","svn_url":"https://github.com/MyCoRe-Org/mycore","homepage":null,"size":226004,"stargazers_count":9,"watchers_count":9,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":2,"forks":2,"open_issues":2,"watchers":9,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224"},"html":{"href":"https://github.com/MyCoRe-Org/mycore/pull/224"},"issue":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/224"},"comments":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/issues/224/comments"},"review_comments":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224/comments"},"review_comment":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/pulls/224/commits"},"statuses":{"href":"https://api.github.com/repos/MyCoRe-Org/mycore/statuses/2d76ff1c2920f2e70fb0ecde8a1be892ce2066f8"}}}}
{"actor":{"display_login":"codacy-bot"}}