{"action":"created","comment":{"url":"https://api.github.com/repos/CloudSlang/score-actions/pulls/comments/63177401","id":63177401,"diff_hunk":"@@ -0,0 +1,397 @@\n+package io.cloudslang.content.services;\n+\n+import io.cloudslang.content.entities.EncoderDecoder;\n+import io.cloudslang.content.entities.WSManRequestInputs;\n+import io.cloudslang.content.httpclient.HttpClientInputs;\n+import io.cloudslang.content.httpclient.ScoreHttpClient;\n+import io.cloudslang.content.utils.Constants;\n+import io.cloudslang.content.utils.ResourceLoader;\n+import io.cloudslang.content.utils.WSManUtils;\n+import io.cloudslang.content.utils.XMLUtils;\n+import org.apache.commons.io.Charsets;\n+import org.apache.commons.lang3.StringUtils;\n+import org.apache.http.client.methods.HttpPost;\n+import org.xml.sax.SAXException;\n+\n+import javax.xml.parsers.ParserConfigurationException;\n+import javax.xml.transform.TransformerException;\n+import javax.xml.xpath.XPathExpressionException;\n+import java.io.IOException;\n+import java.net.MalformedURLException;\n+import java.net.URISyntaxException;\n+import java.net.URL;\n+import java.util.HashMap;\n+import java.util.Map;\n+import java.util.UUID;\n+import java.util.concurrent.TimeoutException;\n+\n+import static io.cloudslang.content.utils.Constants.OutputNames.RETURN_RESULT;\n+\n+/**\n+ * Created by giloan on 3/27/2016.\n+ */\n+public class WSManRemoteShellService {\n+\n+    private static final String SERVICE_ADDRESS_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_SERVICE_NETWORK_ADDRESS\";\n+    private static final String SHELL_ID_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_SHELL_ID\";\n+    private static final String MESSAGE_ID_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_MESSAGE_ID\";\n+    private static final String COMMAND_ID_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_COMMAND_ID\";\n+    private static final String COMMAND_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_COMMAND\";\n+    private static final String MAX_ENVELOPE_SIZE_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_MAX_ENVELOPE_SIZE\";\n+    private static final String OPERATION_TIMEOUT_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_OPERATION_TIMEOUT\";\n+    private static final String WINRM_LOCALE_PLACEHOLDER_NAME = \"$PLACEHOLDER_FOR_LOCALE\";\n+\n+    private static final String CREATE_RESPONSE_SHELL_ID_XPATH = \"/Envelope/Body/ResourceCreated/ReferenceParameters/SelectorSet/Selector[@Name='ShellId']/text()\";\n+    private static final String COMMAND_RESULT_COMMAND_ID_XPATH = \"/Envelope/Body/CommandResponse/CommandId\";\n+    private static final String RECEIVE_RESPONSE_XPATH = \"/Envelope/Body/ReceiveResponse/Stream[%d]/text()\";\n+    private static final String CREATE_RESPONSE_ACTION = \"http://schemas.xmlsoap.org/ws/2004/09/transfer/CreateResponse\";\n+\n+    private static final String COMMAND_RESPONSE_ACTION = \"http://schemas.microsoft.com/wbem/wsman/1/windows/shell/CommandResponse\";\n+    private static final String RECEIVE_RESPONSE_ACTION = \"http://schemas.microsoft.com/wbem/wsman/1/windows/shell/ReceiveResponse\";\n+    private static final String DELETE_RESPONSE_ACTION = \"http://schemas.xmlsoap.org/ws/2004/09/transfer/DeleteResponse\";\n+    private static final String CONTENT_TYPE_HEADER = \"Content-Type:application/soap+xml;charset=UTF-8\";\n+\n+    private static final String BASIC_AUTH_TYPE = \"Basic\";\n+    private static final String WSMAN_RESOURCE_URI = \"/wsman\";\n+    private static final String NEW_LINE_SEPARATOR = \"\\\\n\";\n+    private static final String UUID_LABEL = \"uuid:\";\n+    private static final String PLACEHOLDER_NOT_FOUND = \"Resource does not contain the expected placeholder name: \";\n+    private static final String CREATE_SHELL_REQUEST_XML = \"templates/CreateShell.xml\";\n+    private static final String EXECUTE_COMMAND_REQUEST_XML = \"templates/ExecuteCommand.xml\";\n+    private static final String RECEIVE_REQUEST_XML = \"templates/Receive.xml\";\n+    private static final String DELETE_SHELL_REQUEST_XML = \"templates/DeleteShell.xml\";\n+    private static final String UNEXPECTED_SERVICE_RESPONSE = \"Unexpected service response: \";\n+    private static final String SHELL_ID = \"shellId\";\n+    private static final String COMMAND_ID = \"commandId\";\n+    private static final String EXECUTION_TIMED_OUT = \"The script execution timed out!\";\n+    private static final String COMMAND_ID_NOT_RETRIEVED = \"The command id could not be retrieved.\";\n+    private static final String SHELL_ID_NOT_RETRIEVED = \"The shell id could not be retrieved.\";\n+\n+    private long commandExecutionStartTime;\n+\n+    /**\n+     * Executes a command on a remote shell by communicating with the WinRM server from the remote host.\n+     * Method creates a shell, runs a command on the shell, waits for the command execution to finnish, retrieves the result then deletes the shell.\n+     *\n+     * @param wsManRequestInputs\n+     * @return a map with the result of the command and the exit code of the command execution.\n+     * @throws RuntimeException\n+     * @throws IOException\n+     * @throws InterruptedException\n+     * @throws ParserConfigurationException\n+     * @throws TransformerException\n+     * @throws XPathExpressionException\n+     * @throws TimeoutException\n+     * @throws URISyntaxException\n+     * @throws SAXException\n+     */\n+    public Map<String, String> runCommand(WSManRequestInputs wsManRequestInputs) throws RuntimeException, IOException, InterruptedException, ParserConfigurationException, TransformerException, XPathExpressionException, TimeoutException, URISyntaxException, SAXException {\n+        ScoreHttpClient scoreHttpClient = new ScoreHttpClient();\n+        HttpClientInputs httpClientInputs = new HttpClientInputs();\n+        URL url = buildURL(wsManRequestInputs, WSMAN_RESOURCE_URI);\n+        httpClientInputs = setCommonHttpInputs(httpClientInputs, url, wsManRequestInputs);\n+        String shellId = createShell(scoreHttpClient, httpClientInputs, CREATE_SHELL_REQUEST_XML, url.toString(), wsManRequestInputs);\n+        WSManUtils.validateUUID(shellId, SHELL_ID);\n+        String commandStr = \"PowerShell\" + \" \" + \"-NonInteractive\" + \" \" + \"-EncodedCommand\" + \" \" + EncoderDecoder.encodeStringInBase64(wsManRequestInputs.getScript(), Charsets.UTF_16LE);\n+        String commandId = executeCommand(scoreHttpClient, httpClientInputs, EXECUTE_COMMAND_REQUEST_XML, url.toString(), shellId, wsManRequestInputs, commandStr);\n+        WSManUtils.validateUUID(commandId, COMMAND_ID);\n+        Map<String, String> scriptResults = receiveCommandResult(scoreHttpClient, httpClientInputs, RECEIVE_REQUEST_XML, url.toString(), shellId, commandId, wsManRequestInputs);\n+        deleteShell(scoreHttpClient, httpClientInputs, DELETE_SHELL_REQUEST_XML, url.toString(), shellId, wsManRequestInputs);\n+        return scriptResults;\n+    }\n+\n+    /**\n+     * Configures the HttpClientInputs object with the most common http parameters.\n+     *\n+     * @param httpClientInputs\n+     * @param url\n+     * @param wsManRequestInputs\n+     * @return the configured HttpClientInputs object.\n+     * @throws MalformedURLException\n+     */\n+    private static HttpClientInputs setCommonHttpInputs(HttpClientInputs httpClientInputs, URL url, WSManRequestInputs wsManRequestInputs) throws MalformedURLException {\n+        httpClientInputs.setUrl(url.toString());\n+        httpClientInputs.setAuthType(BASIC_AUTH_TYPE);\n+        httpClientInputs.setUsername(wsManRequestInputs.getUsername());\n+        httpClientInputs.setPassword(wsManRequestInputs.getPassword());\n+        httpClientInputs.setTrustAllRoots(wsManRequestInputs.getTrustAllRoots());\n+        httpClientInputs.setX509HostnameVerifier(wsManRequestInputs.getX509HostnameVerifier());\n+        httpClientInputs.setProxyHost(wsManRequestInputs.getProxyHost());\n+        httpClientInputs.setProxyPort(wsManRequestInputs.getProxyPort());\n+        httpClientInputs.setProxyUsername(wsManRequestInputs.getProxyUsername());\n+        httpClientInputs.setProxyPassword(wsManRequestInputs.getProxyPassword());\n+        httpClientInputs.setKeystore(wsManRequestInputs.getKeystore());\n+        httpClientInputs.setKeystorePassword(wsManRequestInputs.getKeystorePassword());\n+        httpClientInputs.setTrustKeystore(wsManRequestInputs.getTrustKeystore());\n+        httpClientInputs.setTrustPassword(wsManRequestInputs.getTrustPassword());\n+        String headers = httpClientInputs.getHeaders();\n+        if (StringUtils.isEmpty(headers)) {\n+            httpClientInputs.setHeaders(CONTENT_TYPE_HEADER);\n+        } else {\n+            httpClientInputs.setHeaders(headers + NEW_LINE_SEPARATOR + CONTENT_TYPE_HEADER);\n+        }\n+        httpClientInputs.setMethod(HttpPost.METHOD_NAME);\n+        return httpClientInputs;\n+    }\n+\n+    /**\n+     * This method executes a request with the given ScoreHttpClient, HttpClientInputs and body.\n+     *\n+     * @param scoreHttpClient\n+     * @param httpClientInputs\n+     * @param requestMessage\n+     * @return the result of the request execution.\n+     */\n+    private Map<String, String> executeRequest(ScoreHttpClient scoreHttpClient, HttpClientInputs httpClientInputs, String requestMessage) {\n+        httpClientInputs.setBody(requestMessage);\n+        return scoreHttpClient.execute(httpClientInputs);\n+    }\n+\n+    /**\n+     * Creates a shell on the remote server and returns the shell id.\n+     *\n+     * @param scoreHttpClient\n+     * @param httpClientInputs\n+     * @param resourceName\n+     * @param url\n+     * @param wsManRequestInputs\n+     * @return the id of the created shell.\n+     * @throws RuntimeException\n+     * @throws IOException\n+     * @throws URISyntaxException\n+     * @throws TransformerException\n+     * @throws XPathExpressionException\n+     * @throws SAXException\n+     * @throws ParserConfigurationException\n+     */\n+    private String createShell(ScoreHttpClient scoreHttpClient, HttpClientInputs httpClientInputs, String resourceName, String url,\n+                               WSManRequestInputs wsManRequestInputs) throws RuntimeException, IOException, URISyntaxException,\n+            TransformerException, XPathExpressionException, SAXException, ParserConfigurationException {\n+        String document = ResourceLoader.loadAsString(resourceName);\n+        document = createCreateShellRequestBody(document, url, String.valueOf(wsManRequestInputs.getMaxEnvelopeSize()),\n+                wsManRequestInputs.getWinrmLocale(), String.valueOf(wsManRequestInputs.getOperationTimeout()));\n+        Map<String, String> createShellResult = executeRequest(scoreHttpClient, httpClientInputs, document);","path":"score-powershell/src/main/java/io/cloudslang/content/services/WSManRemoteShellService.java","position":173,"original_position":173,"commit_id":"777eed92575ccd15a5fb1a3302f98f36a9ea31b0","original_commit_id":"777eed92575ccd15a5fb1a3302f98f36a9ea31b0","user":{"login":"gituser173","id":12094982,"avatar_url":"https://avatars.githubusercontent.com/u/12094982?v=3","gravatar_id":"","url":"https://api.github.com/users/gituser173","html_url":"https://github.com/gituser173","followers_url":"https://api.github.com/users/gituser173/followers","following_url":"https://api.github.com/users/gituser173/following{/other_user}","gists_url":"https://api.github.com/users/gituser173/gists{/gist_id}","starred_url":"https://api.github.com/users/gituser173/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gituser173/subscriptions","organizations_url":"https://api.github.com/users/gituser173/orgs","repos_url":"https://api.github.com/users/gituser173/repos","events_url":"https://api.github.com/users/gituser173/events{/privacy}","received_events_url":"https://api.github.com/users/gituser173/received_events","type":"User","site_admin":false},"body":"the code below this comment seems to be duplicated in the executeCommand method, maybe you could extract it in a new method","created_at":"2016-05-13T12:55:57Z","updated_at":"2016-05-13T12:55:57Z","html_url":"https://github.com/CloudSlang/score-actions/pull/112#discussion_r63177401","pull_request_url":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112","_links":{"self":{"href":"https://api.github.com/repos/CloudSlang/score-actions/pulls/comments/63177401"},"html":{"href":"https://github.com/CloudSlang/score-actions/pull/112#discussion_r63177401"},"pull_request":{"href":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112"}}},"pull_request":{"url":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112","id":69474466,"html_url":"https://github.com/CloudSlang/score-actions/pull/112","diff_url":"https://github.com/CloudSlang/score-actions/pull/112.diff","patch_url":"https://github.com/CloudSlang/score-actions/pull/112.patch","issue_url":"https://api.github.com/repos/CloudSlang/score-actions/issues/112","number":112,"state":"open","locked":false,"title":"Cross platform powershell client.","user":{"login":"george-giloan","id":9443835,"avatar_url":"https://avatars.githubusercontent.com/u/9443835?v=3","gravatar_id":"","url":"https://api.github.com/users/george-giloan","html_url":"https://github.com/george-giloan","followers_url":"https://api.github.com/users/george-giloan/followers","following_url":"https://api.github.com/users/george-giloan/following{/other_user}","gists_url":"https://api.github.com/users/george-giloan/gists{/gist_id}","starred_url":"https://api.github.com/users/george-giloan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/george-giloan/subscriptions","organizations_url":"https://api.github.com/users/george-giloan/orgs","repos_url":"https://api.github.com/users/george-giloan/repos","events_url":"https://api.github.com/users/george-giloan/events{/privacy}","received_events_url":"https://api.github.com/users/george-giloan/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-05-10T09:28:12Z","updated_at":"2016-05-13T12:55:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"851478e92ee52cbda4f09cebf705b3f64b786319","assignee":{"login":"gituser173","id":12094982,"avatar_url":"https://avatars.githubusercontent.com/u/12094982?v=3","gravatar_id":"","url":"https://api.github.com/users/gituser173","html_url":"https://github.com/gituser173","followers_url":"https://api.github.com/users/gituser173/followers","following_url":"https://api.github.com/users/gituser173/following{/other_user}","gists_url":"https://api.github.com/users/gituser173/gists{/gist_id}","starred_url":"https://api.github.com/users/gituser173/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gituser173/subscriptions","organizations_url":"https://api.github.com/users/gituser173/orgs","repos_url":"https://api.github.com/users/gituser173/repos","events_url":"https://api.github.com/users/gituser173/events{/privacy}","received_events_url":"https://api.github.com/users/gituser173/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112/commits","review_comments_url":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112/comments","review_comment_url":"https://api.github.com/repos/CloudSlang/score-actions/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CloudSlang/score-actions/issues/112/comments","statuses_url":"https://api.github.com/repos/CloudSlang/score-actions/statuses/777eed92575ccd15a5fb1a3302f98f36a9ea31b0","head":{"label":"george-giloan:master","ref":"master","sha":"777eed92575ccd15a5fb1a3302f98f36a9ea31b0","user":{"login":"george-giloan","id":9443835,"avatar_url":"https://avatars.githubusercontent.com/u/9443835?v=3","gravatar_id":"","url":"https://api.github.com/users/george-giloan","html_url":"https://github.com/george-giloan","followers_url":"https://api.github.com/users/george-giloan/followers","following_url":"https://api.github.com/users/george-giloan/following{/other_user}","gists_url":"https://api.github.com/users/george-giloan/gists{/gist_id}","starred_url":"https://api.github.com/users/george-giloan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/george-giloan/subscriptions","organizations_url":"https://api.github.com/users/george-giloan/orgs","repos_url":"https://api.github.com/users/george-giloan/repos","events_url":"https://api.github.com/users/george-giloan/events{/privacy}","received_events_url":"https://api.github.com/users/george-giloan/received_events","type":"User","site_admin":false},"repo":{"id":55390211,"name":"score-actions","full_name":"george-giloan/score-actions","owner":{"login":"george-giloan","id":9443835,"avatar_url":"https://avatars.githubusercontent.com/u/9443835?v=3","gravatar_id":"","url":"https://api.github.com/users/george-giloan","html_url":"https://github.com/george-giloan","followers_url":"https://api.github.com/users/george-giloan/followers","following_url":"https://api.github.com/users/george-giloan/following{/other_user}","gists_url":"https://api.github.com/users/george-giloan/gists{/gist_id}","starred_url":"https://api.github.com/users/george-giloan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/george-giloan/subscriptions","organizations_url":"https://api.github.com/users/george-giloan/orgs","repos_url":"https://api.github.com/users/george-giloan/repos","events_url":"https://api.github.com/users/george-giloan/events{/privacy}","received_events_url":"https://api.github.com/users/george-giloan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/george-giloan/score-actions","description":"CloudSlang Content Java Actions","fork":true,"url":"https://api.github.com/repos/george-giloan/score-actions","forks_url":"https://api.github.com/repos/george-giloan/score-actions/forks","keys_url":"https://api.github.com/repos/george-giloan/score-actions/keys{/key_id}","collaborators_url":"https://api.github.com/repos/george-giloan/score-actions/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/george-giloan/score-actions/teams","hooks_url":"https://api.github.com/repos/george-giloan/score-actions/hooks","issue_events_url":"https://api.github.com/repos/george-giloan/score-actions/issues/events{/number}","events_url":"https://api.github.com/repos/george-giloan/score-actions/events","assignees_url":"https://api.github.com/repos/george-giloan/score-actions/assignees{/user}","branches_url":"https://api.github.com/repos/george-giloan/score-actions/branches{/branch}","tags_url":"https://api.github.com/repos/george-giloan/score-actions/tags","blobs_url":"https://api.github.com/repos/george-giloan/score-actions/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/george-giloan/score-actions/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/george-giloan/score-actions/git/refs{/sha}","trees_url":"https://api.github.com/repos/george-giloan/score-actions/git/trees{/sha}","statuses_url":"https://api.github.com/repos/george-giloan/score-actions/statuses/{sha}","languages_url":"https://api.github.com/repos/george-giloan/score-actions/languages","stargazers_url":"https://api.github.com/repos/george-giloan/score-actions/stargazers","contributors_url":"https://api.github.com/repos/george-giloan/score-actions/contributors","subscribers_url":"https://api.github.com/repos/george-giloan/score-actions/subscribers","subscription_url":"https://api.github.com/repos/george-giloan/score-actions/subscription","commits_url":"https://api.github.com/repos/george-giloan/score-actions/commits{/sha}","git_commits_url":"https://api.github.com/repos/george-giloan/score-actions/git/commits{/sha}","comments_url":"https://api.github.com/repos/george-giloan/score-actions/comments{/number}","issue_comment_url":"https://api.github.com/repos/george-giloan/score-actions/issues/comments{/number}","contents_url":"https://api.github.com/repos/george-giloan/score-actions/contents/{+path}","compare_url":"https://api.github.com/repos/george-giloan/score-actions/compare/{base}...{head}","merges_url":"https://api.github.com/repos/george-giloan/score-actions/merges","archive_url":"https://api.github.com/repos/george-giloan/score-actions/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/george-giloan/score-actions/downloads","issues_url":"https://api.github.com/repos/george-giloan/score-actions/issues{/number}","pulls_url":"https://api.github.com/repos/george-giloan/score-actions/pulls{/number}","milestones_url":"https://api.github.com/repos/george-giloan/score-actions/milestones{/number}","notifications_url":"https://api.github.com/repos/george-giloan/score-actions/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/george-giloan/score-actions/labels{/name}","releases_url":"https://api.github.com/repos/george-giloan/score-actions/releases{/id}","deployments_url":"https://api.github.com/repos/george-giloan/score-actions/deployments","created_at":"2016-04-04T06:40:15Z","updated_at":"2016-04-04T06:40:17Z","pushed_at":"2016-05-13T09:18:27Z","git_url":"git://github.com/george-giloan/score-actions.git","ssh_url":"git@github.com:george-giloan/score-actions.git","clone_url":"https://github.com/george-giloan/score-actions.git","svn_url":"https://github.com/george-giloan/score-actions","homepage":"","size":1718,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"CloudSlang:master","ref":"master","sha":"1a7284d0b73b7ebc6b73e708227b85a8fdd9ca2a","user":{"login":"CloudSlang","id":10261505,"avatar_url":"https://avatars.githubusercontent.com/u/10261505?v=3","gravatar_id":"","url":"https://api.github.com/users/CloudSlang","html_url":"https://github.com/CloudSlang","followers_url":"https://api.github.com/users/CloudSlang/followers","following_url":"https://api.github.com/users/CloudSlang/following{/other_user}","gists_url":"https://api.github.com/users/CloudSlang/gists{/gist_id}","starred_url":"https://api.github.com/users/CloudSlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CloudSlang/subscriptions","organizations_url":"https://api.github.com/users/CloudSlang/orgs","repos_url":"https://api.github.com/users/CloudSlang/repos","events_url":"https://api.github.com/users/CloudSlang/events{/privacy}","received_events_url":"https://api.github.com/users/CloudSlang/received_events","type":"Organization","site_admin":false},"repo":{"id":28305374,"name":"score-actions","full_name":"CloudSlang/score-actions","owner":{"login":"CloudSlang","id":10261505,"avatar_url":"https://avatars.githubusercontent.com/u/10261505?v=3","gravatar_id":"","url":"https://api.github.com/users/CloudSlang","html_url":"https://github.com/CloudSlang","followers_url":"https://api.github.com/users/CloudSlang/followers","following_url":"https://api.github.com/users/CloudSlang/following{/other_user}","gists_url":"https://api.github.com/users/CloudSlang/gists{/gist_id}","starred_url":"https://api.github.com/users/CloudSlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CloudSlang/subscriptions","organizations_url":"https://api.github.com/users/CloudSlang/orgs","repos_url":"https://api.github.com/users/CloudSlang/repos","events_url":"https://api.github.com/users/CloudSlang/events{/privacy}","received_events_url":"https://api.github.com/users/CloudSlang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CloudSlang/score-actions","description":"CloudSlang Content Java Actions","fork":false,"url":"https://api.github.com/repos/CloudSlang/score-actions","forks_url":"https://api.github.com/repos/CloudSlang/score-actions/forks","keys_url":"https://api.github.com/repos/CloudSlang/score-actions/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CloudSlang/score-actions/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CloudSlang/score-actions/teams","hooks_url":"https://api.github.com/repos/CloudSlang/score-actions/hooks","issue_events_url":"https://api.github.com/repos/CloudSlang/score-actions/issues/events{/number}","events_url":"https://api.github.com/repos/CloudSlang/score-actions/events","assignees_url":"https://api.github.com/repos/CloudSlang/score-actions/assignees{/user}","branches_url":"https://api.github.com/repos/CloudSlang/score-actions/branches{/branch}","tags_url":"https://api.github.com/repos/CloudSlang/score-actions/tags","blobs_url":"https://api.github.com/repos/CloudSlang/score-actions/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CloudSlang/score-actions/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CloudSlang/score-actions/git/refs{/sha}","trees_url":"https://api.github.com/repos/CloudSlang/score-actions/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CloudSlang/score-actions/statuses/{sha}","languages_url":"https://api.github.com/repos/CloudSlang/score-actions/languages","stargazers_url":"https://api.github.com/repos/CloudSlang/score-actions/stargazers","contributors_url":"https://api.github.com/repos/CloudSlang/score-actions/contributors","subscribers_url":"https://api.github.com/repos/CloudSlang/score-actions/subscribers","subscription_url":"https://api.github.com/repos/CloudSlang/score-actions/subscription","commits_url":"https://api.github.com/repos/CloudSlang/score-actions/commits{/sha}","git_commits_url":"https://api.github.com/repos/CloudSlang/score-actions/git/commits{/sha}","comments_url":"https://api.github.com/repos/CloudSlang/score-actions/comments{/number}","issue_comment_url":"https://api.github.com/repos/CloudSlang/score-actions/issues/comments{/number}","contents_url":"https://api.github.com/repos/CloudSlang/score-actions/contents/{+path}","compare_url":"https://api.github.com/repos/CloudSlang/score-actions/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CloudSlang/score-actions/merges","archive_url":"https://api.github.com/repos/CloudSlang/score-actions/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CloudSlang/score-actions/downloads","issues_url":"https://api.github.com/repos/CloudSlang/score-actions/issues{/number}","pulls_url":"https://api.github.com/repos/CloudSlang/score-actions/pulls{/number}","milestones_url":"https://api.github.com/repos/CloudSlang/score-actions/milestones{/number}","notifications_url":"https://api.github.com/repos/CloudSlang/score-actions/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CloudSlang/score-actions/labels{/name}","releases_url":"https://api.github.com/repos/CloudSlang/score-actions/releases{/id}","deployments_url":"https://api.github.com/repos/CloudSlang/score-actions/deployments","created_at":"2014-12-21T16:30:37Z","updated_at":"2016-05-09T14:29:25Z","pushed_at":"2016-05-13T09:18:28Z","git_url":"git://github.com/CloudSlang/score-actions.git","ssh_url":"git@github.com:CloudSlang/score-actions.git","clone_url":"https://github.com/CloudSlang/score-actions.git","svn_url":"https://github.com/CloudSlang/score-actions","homepage":"","size":2594,"stargazers_count":25,"watchers_count":25,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"open_issues_count":5,"forks":22,"open_issues":5,"watchers":25,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112"},"html":{"href":"https://github.com/CloudSlang/score-actions/pull/112"},"issue":{"href":"https://api.github.com/repos/CloudSlang/score-actions/issues/112"},"comments":{"href":"https://api.github.com/repos/CloudSlang/score-actions/issues/112/comments"},"review_comments":{"href":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112/comments"},"review_comment":{"href":"https://api.github.com/repos/CloudSlang/score-actions/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CloudSlang/score-actions/pulls/112/commits"},"statuses":{"href":"https://api.github.com/repos/CloudSlang/score-actions/statuses/777eed92575ccd15a5fb1a3302f98f36a9ea31b0"}}}}