{"action":"created","comment":{"url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/comments/203886057","pull_request_review_id":138868144,"id":203886057,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMzg4NjA1Nw==","diff_hunk":"@@ -22,172 +17,177 @@\n \n import java.io.IOException;\n import java.util.HashMap;\n+import java.util.Optional;\n \n public final class AppiumParallelMethodTestListener extends Helpers\n         implements ITestListener, IInvokedMethodListener, ISuiteListener {\n \n-    private ReportManager reportManager;\n+    private TestLogger testLogger;\n     private DeviceAllocationManager deviceAllocationManager;\n     private AppiumServerManager appiumServerManager;\n-    private String testDescription = \"\";\n     private AppiumDriverManager appiumDriverManager;\n-    private String atdHost = null;\n-    private String atdPort = null;\n+    private Optional<String> atdHost;\n+    private Optional<String> atdPort;\n \n     public AppiumParallelMethodTestListener() throws Exception {\n         try {\n-            reportManager = new ReportManager();\n+            testLogger = new TestLogger();\n             appiumServerManager = new AppiumServerManager();\n             deviceAllocationManager = DeviceAllocationManager.getInstance();\n             appiumDriverManager = new AppiumDriverManager();\n-            atdHost = CapabilityManager.getInstance()\n-                    .getMongoDbHostAndPort().get(\"atdHost\");\n-            atdPort = CapabilityManager.getInstance()\n-                    .getMongoDbHostAndPort().get(\"atdPort\");\n-\n+            atdHost = Optional.ofNullable(CapabilityManager.getInstance()\n+                    .getMongoDbHostAndPort().get(\"atdHost\"));\n+            atdPort = Optional.ofNullable(CapabilityManager.getInstance()\n+                    .getMongoDbHostAndPort().get(\"atdPort\"));\n         } catch (IOException e) {\n             e.printStackTrace();\n         }\n     }\n \n+    /*\n+     * Starts Appium Server before each test suite\n+     */\n     @Override\n-    public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {\n-        SkipIf skip = getSkipIf(method);\n-        isSkip(skip);\n-\n+    public void onStart(ISuite iSuite) {\n+        try {\n+            appiumServerManager.startAppiumServer();\n+        } catch (Exception e) {\n+            e.printStackTrace();\n+        }\n     }\n \n-    static void isSkip(SkipIf skip) {\n-        if (skip != null) {\n-            String info = skip.platform();\n-            if (AppiumDriverManager.getDriver().getPlatformName().contains(info)) {\n-                System.out.println(\"skipping childTest\");\n-                throw new SkipException(\"Skipped because property was set to :::\" + info);\n+    /*\n+     * Allocates Devices to each test method\n+     * Instantiate Android or IOS Driver Instance\n+     * Starts ADB, Video Logging\n+     * Set Description for each test method with platform and UDID allocated to it.\n+     */\n+    @Override\n+    public void onTestStart(ITestResult iTestResult) {\n+        try {\n+            deviceAllocationManager.allocateDevice(deviceAllocationManager.getNextAvailableDevice());\n+            appiumDriverManager.startAppiumDriverInstance();\n+            testLogger.startLogging(iTestResult.getMethod().getMethodName(), iTestResult.getTestClass()\n+                    .getRealClass().getSimpleName());\n+            // Sets description for each test method with platform and Device UDID allocated to it.\n+            Optional<String> originalDescription = Optional.ofNullable(iTestResult.getMethod().getDescription());\n+            String description = \"Platform: \" + AppiumDeviceManager.getMobilePlatform()\n+                    + \" Device UDID: \" + AppiumDeviceManager.getAppiumDevice().getDevice().getUdid();\n+            Author annotation = iTestResult.getMethod().getConstructorOrMethod().getMethod()\n+                    .getAnnotation(Author.class);\n+            if (annotation != null) {\n+                description += \"\\nAuthor: \" + annotation.name();\n             }\n+            if (originalDescription.isPresent() &&\n+                    !originalDescription.get().contains(AppiumDeviceManager.getAppiumDevice().getDevice().getUdid())) {\n+                iTestResult.getMethod().setDescription(originalDescription.get() + \"\\n\" + description);\n+            } else {\n+                iTestResult.getMethod().setDescription(description);\n+            }\n+            if (atdHost.isPresent() && atdPort.isPresent()) {\n+                String url = \"http://\" + atdHost.get() + \":\" + atdPort.get() + \"/testresults\";\n+                sendResultsToAtdService(iTestResult, \"Started\", url, new HashMap<>());\n+            }\n+        } catch (Exception e) {\n+            e.printStackTrace();\n         }\n     }\n \n-    private SkipIf getSkipIf(IInvokedMethod method) {\n-        return method.getTestMethod()\n-                .getConstructorOrMethod()\n-                .getMethod().getAnnotation(SkipIf.class);\n+    /*\n+    * Skips execution based on platform\n+    */\n+    @Override\n+    public void beforeInvocation(IInvokedMethod iInvokedMethod, ITestResult iTestResult) {\n+        SkipIf annotation = iInvokedMethod.getTestMethod().getConstructorOrMethod().getMethod()\n+                .getAnnotation(SkipIf.class);\n+        if(annotation != null && AppiumDriverManager.getDriver().getPlatformName()\n+                .equalsIgnoreCase(annotation.platform())) {\n+            throw new SkipException(\"Skipped because property was set to :::\" + annotation.platform());\n+        }\n     }\n \n+    /*\n+    * Stops driver after each test method execution\n+    * De-allocates device after each test method execution\n+    * Terminate logs getting captured after each test method execution\n+    */\n     @Override\n-    public void afterInvocation(IInvokedMethod method, ITestResult testResult) {\n-        HashMap<String, String> logs = null;\n-        String methodName = method.getTestMethod().getMethodName();\n+    public void afterInvocation(IInvokedMethod iInvokedMethod, ITestResult iTestResult) {\n         try {\n-            if (testResult.getStatus() == ITestResult.SUCCESS\n-                    || testResult.getStatus() == ITestResult.FAILURE) {\n-                try {\n-                    String className = testResult.getMethod().getRealClass().getSimpleName()\n-                            + \"-------\" + methodName;\n-                    if (getClass().getAnnotation(Description.class) != null) {\n-                        testDescription = getClass().getAnnotation(Description.class).value();\n-                    }\n-                    reportManager.createParentNodeExtent(className, testDescription);\n-                } catch (Exception e) {\n-                    e.printStackTrace();\n-                }\n-                reportManager.setAuthorName(testResult);\n-                logs = reportManager.endLogTestResults(testResult);\n+            HashMap<String, String> logs = testLogger.endLogging(iTestResult\n+                    , AppiumDeviceManager.getAppiumDevice().getDevice().getDeviceModel());\n+            if (atdHost.isPresent() && atdPort.isPresent()) {\n+                String url = \"http://\" + atdHost.get() + \":\" + atdPort.get() + \"/testresults\";\n+                sendResultsToAtdService(iTestResult, \"Completed\", url,logs);\n+            } else {\n+                new FileFilterParser()\n+                        .getScreenShotPaths(AppiumDeviceManager.getAppiumDevice()\n+                                .getDevice().getUdid(),iTestResult);\n             }\n+            deviceAllocationManager.freeDevice();\n+            appiumDriverManager.stopAppiumDriver();\n         } catch (Exception e) {\n             e.printStackTrace();\n-        } finally {\n-            if (atdHost != null && atdPort != null) {\n-                String url = \"http://\" + atdHost + \":\"\n-                        + atdPort + \"/testresults\";\n-                sendResultsToAtdService(testResult,\n-                        \"Completed\", url,logs);\n-            }\n-            ExtentManager.getExtent().flush();\n-            deviceAllocationManager.freeDevice();\n-            try {\n-                appiumDriverManager.stopAppiumDriver();\n-            } catch (Exception e) {\n-                e.printStackTrace();\n-            }\n         }\n     }\n \n+    /*\n+     * Stops Appium Server after each test suite\n+     */\n     @Override\n-    public void onTestStart(ITestResult iTestResult) {\n+    public void onFinish(ISuite iSuite) {\n         try {\n-            System.out.println(Thread.currentThread().getId());\n-            deviceAllocationManager.allocateDevice(deviceAllocationManager\n-                    .getNextAvailableDevice());\n-            appiumDriverManager.startAppiumDriverInstance();\n-            String methodName = iTestResult.getMethod().getMethodName();\n-            reportManager.startLogResults(methodName,\n-                    iTestResult.getTestClass().getRealClass().getSimpleName());\n-            if (atdHost != null && atdPort != null) {\n-                String url = \"http://\" + atdHost + \":\"\n-                        + atdPort + \"/testresults\";\n-                sendResultsToAtdService(iTestResult,\n-                        \"Started\", url, new HashMap<>());\n-            }\n-\n+            appiumServerManager.stopAppiumServer();\n         } catch (Exception e) {\n             e.printStackTrace();\n         }\n     }\n \n+    /*\n+     * Document to make codacy happy\n+     */\n     @Override\n-    public void onTestSuccess(ITestResult result) {\n+    public void onTestSuccess(ITestResult iTestResult) {\n \n     }\n \n+    /*\n+     * Document to make codacy happy\n+     */\n     @Override\n-    public void onTestFailure(ITestResult result) {\n+    public void onTestFailure(ITestResult iTestResult) {","path":"src/main/java/com/appium/manager/AppiumParallelMethodTestListener.java","position":235,"original_position":235,"commit_id":"45b0488bd5eefeba4e767782593c9c7a8e853a6c","original_commit_id":"45b0488bd5eefeba4e767782593c9c7a8e853a6c","user":{"login":"codacy-bot","id":19940114,"node_id":"MDQ6VXNlcjE5OTQwMTE0","avatar_url":"https://avatars1.githubusercontent.com/u/19940114?v=4","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://app.codacy.com/assets/images/favicon.png) Issue found: [Document empty method body](https://app.codacy.com/app/saikrishna321/AppiumTestDistribution/pullRequest?prid=1903940)","created_at":"2018-07-19T21:59:56Z","updated_at":"2018-07-19T21:59:56Z","html_url":"https://github.com/saikrishna321/AppiumTestDistribution/pull/360#discussion_r203886057","pull_request_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/comments/203886057"},"html":{"href":"https://github.com/saikrishna321/AppiumTestDistribution/pull/360#discussion_r203886057"},"pull_request":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360"}}},"pull_request":{"url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360","id":201484658,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAxNDg0NjU4","html_url":"https://github.com/saikrishna321/AppiumTestDistribution/pull/360","diff_url":"https://github.com/saikrishna321/AppiumTestDistribution/pull/360.diff","patch_url":"https://github.com/saikrishna321/AppiumTestDistribution/pull/360.patch","issue_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/360","number":360,"state":"open","locked":false,"title":"Report portal Integration","user":{"login":"SrinivasanTarget","id":8896549,"node_id":"MDQ6VXNlcjg4OTY1NDk=","avatar_url":"https://avatars2.githubusercontent.com/u/8896549?v=4","gravatar_id":"","url":"https://api.github.com/users/SrinivasanTarget","html_url":"https://github.com/SrinivasanTarget","followers_url":"https://api.github.com/users/SrinivasanTarget/followers","following_url":"https://api.github.com/users/SrinivasanTarget/following{/other_user}","gists_url":"https://api.github.com/users/SrinivasanTarget/gists{/gist_id}","starred_url":"https://api.github.com/users/SrinivasanTarget/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SrinivasanTarget/subscriptions","organizations_url":"https://api.github.com/users/SrinivasanTarget/orgs","repos_url":"https://api.github.com/users/SrinivasanTarget/repos","events_url":"https://api.github.com/users/SrinivasanTarget/events{/privacy}","received_events_url":"https://api.github.com/users/SrinivasanTarget/received_events","type":"User","site_admin":false},"body":"https://github.com/saikrishna321/AppiumTestDistribution/issues/350","created_at":"2018-07-15T07:13:16Z","updated_at":"2018-07-19T21:59:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ea10b43d9de52bb1f95fb5457a17a92db6c290dd","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360/commits","review_comments_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360/comments","review_comment_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/comments{/number}","comments_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/360/comments","statuses_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/statuses/45b0488bd5eefeba4e767782593c9c7a8e853a6c","head":{"label":"saikrishna321:ReportPortal","ref":"ReportPortal","sha":"45b0488bd5eefeba4e767782593c9c7a8e853a6c","user":{"login":"saikrishna321","id":4045041,"node_id":"MDQ6VXNlcjQwNDUwNDE=","avatar_url":"https://avatars3.githubusercontent.com/u/4045041?v=4","gravatar_id":"","url":"https://api.github.com/users/saikrishna321","html_url":"https://github.com/saikrishna321","followers_url":"https://api.github.com/users/saikrishna321/followers","following_url":"https://api.github.com/users/saikrishna321/following{/other_user}","gists_url":"https://api.github.com/users/saikrishna321/gists{/gist_id}","starred_url":"https://api.github.com/users/saikrishna321/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saikrishna321/subscriptions","organizations_url":"https://api.github.com/users/saikrishna321/orgs","repos_url":"https://api.github.com/users/saikrishna321/repos","events_url":"https://api.github.com/users/saikrishna321/events{/privacy}","received_events_url":"https://api.github.com/users/saikrishna321/received_events","type":"User","site_admin":false},"repo":{"id":40982931,"node_id":"MDEwOlJlcG9zaXRvcnk0MDk4MjkzMQ==","name":"AppiumTestDistribution","full_name":"saikrishna321/AppiumTestDistribution","owner":{"login":"saikrishna321","id":4045041,"node_id":"MDQ6VXNlcjQwNDUwNDE=","avatar_url":"https://avatars3.githubusercontent.com/u/4045041?v=4","gravatar_id":"","url":"https://api.github.com/users/saikrishna321","html_url":"https://github.com/saikrishna321","followers_url":"https://api.github.com/users/saikrishna321/followers","following_url":"https://api.github.com/users/saikrishna321/following{/other_user}","gists_url":"https://api.github.com/users/saikrishna321/gists{/gist_id}","starred_url":"https://api.github.com/users/saikrishna321/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saikrishna321/subscriptions","organizations_url":"https://api.github.com/users/saikrishna321/orgs","repos_url":"https://api.github.com/users/saikrishna321/repos","events_url":"https://api.github.com/users/saikrishna321/events{/privacy}","received_events_url":"https://api.github.com/users/saikrishna321/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/saikrishna321/AppiumTestDistribution","description":"A tool for running android and iOS appium tests in parallel across devices... U like it STAR it !","fork":false,"url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution","forks_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/forks","keys_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/keys{/key_id}","collaborators_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/teams","hooks_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/hooks","issue_events_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/events{/number}","events_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/events","assignees_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/assignees{/user}","branches_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/branches{/branch}","tags_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/tags","blobs_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/refs{/sha}","trees_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/trees{/sha}","statuses_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/statuses/{sha}","languages_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/languages","stargazers_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/stargazers","contributors_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/contributors","subscribers_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/subscribers","subscription_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/subscription","commits_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/commits{/sha}","git_commits_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/commits{/sha}","comments_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/comments{/number}","issue_comment_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/comments{/number}","contents_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/contents/{+path}","compare_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/compare/{base}...{head}","merges_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/merges","archive_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/downloads","issues_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues{/number}","pulls_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls{/number}","milestones_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/milestones{/number}","notifications_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/labels{/name}","releases_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/releases{/id}","deployments_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/deployments","created_at":"2015-08-18T16:22:15Z","updated_at":"2018-07-19T13:32:57Z","pushed_at":"2018-07-19T21:57:48Z","git_url":"git://github.com/saikrishna321/AppiumTestDistribution.git","ssh_url":"git@github.com:saikrishna321/AppiumTestDistribution.git","clone_url":"https://github.com/saikrishna321/AppiumTestDistribution.git","svn_url":"https://github.com/saikrishna321/AppiumTestDistribution","homepage":"https://saikrishna321.github.io/","size":57160,"stargazers_count":478,"watchers_count":478,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":199,"mirror_url":null,"archived":false,"open_issues_count":59,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":199,"open_issues":59,"watchers":478,"default_branch":"master"}},"base":{"label":"saikrishna321:master","ref":"master","sha":"ef39d1cdd0686bb6050bf9836264580fb0101640","user":{"login":"saikrishna321","id":4045041,"node_id":"MDQ6VXNlcjQwNDUwNDE=","avatar_url":"https://avatars3.githubusercontent.com/u/4045041?v=4","gravatar_id":"","url":"https://api.github.com/users/saikrishna321","html_url":"https://github.com/saikrishna321","followers_url":"https://api.github.com/users/saikrishna321/followers","following_url":"https://api.github.com/users/saikrishna321/following{/other_user}","gists_url":"https://api.github.com/users/saikrishna321/gists{/gist_id}","starred_url":"https://api.github.com/users/saikrishna321/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saikrishna321/subscriptions","organizations_url":"https://api.github.com/users/saikrishna321/orgs","repos_url":"https://api.github.com/users/saikrishna321/repos","events_url":"https://api.github.com/users/saikrishna321/events{/privacy}","received_events_url":"https://api.github.com/users/saikrishna321/received_events","type":"User","site_admin":false},"repo":{"id":40982931,"node_id":"MDEwOlJlcG9zaXRvcnk0MDk4MjkzMQ==","name":"AppiumTestDistribution","full_name":"saikrishna321/AppiumTestDistribution","owner":{"login":"saikrishna321","id":4045041,"node_id":"MDQ6VXNlcjQwNDUwNDE=","avatar_url":"https://avatars3.githubusercontent.com/u/4045041?v=4","gravatar_id":"","url":"https://api.github.com/users/saikrishna321","html_url":"https://github.com/saikrishna321","followers_url":"https://api.github.com/users/saikrishna321/followers","following_url":"https://api.github.com/users/saikrishna321/following{/other_user}","gists_url":"https://api.github.com/users/saikrishna321/gists{/gist_id}","starred_url":"https://api.github.com/users/saikrishna321/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saikrishna321/subscriptions","organizations_url":"https://api.github.com/users/saikrishna321/orgs","repos_url":"https://api.github.com/users/saikrishna321/repos","events_url":"https://api.github.com/users/saikrishna321/events{/privacy}","received_events_url":"https://api.github.com/users/saikrishna321/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/saikrishna321/AppiumTestDistribution","description":"A tool for running android and iOS appium tests in parallel across devices... U like it STAR it !","fork":false,"url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution","forks_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/forks","keys_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/keys{/key_id}","collaborators_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/teams","hooks_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/hooks","issue_events_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/events{/number}","events_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/events","assignees_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/assignees{/user}","branches_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/branches{/branch}","tags_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/tags","blobs_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/refs{/sha}","trees_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/trees{/sha}","statuses_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/statuses/{sha}","languages_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/languages","stargazers_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/stargazers","contributors_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/contributors","subscribers_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/subscribers","subscription_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/subscription","commits_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/commits{/sha}","git_commits_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/git/commits{/sha}","comments_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/comments{/number}","issue_comment_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/comments{/number}","contents_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/contents/{+path}","compare_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/compare/{base}...{head}","merges_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/merges","archive_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/downloads","issues_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues{/number}","pulls_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls{/number}","milestones_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/milestones{/number}","notifications_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/labels{/name}","releases_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/releases{/id}","deployments_url":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/deployments","created_at":"2015-08-18T16:22:15Z","updated_at":"2018-07-19T13:32:57Z","pushed_at":"2018-07-19T21:57:48Z","git_url":"git://github.com/saikrishna321/AppiumTestDistribution.git","ssh_url":"git@github.com:saikrishna321/AppiumTestDistribution.git","clone_url":"https://github.com/saikrishna321/AppiumTestDistribution.git","svn_url":"https://github.com/saikrishna321/AppiumTestDistribution","homepage":"https://saikrishna321.github.io/","size":57160,"stargazers_count":478,"watchers_count":478,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":199,"mirror_url":null,"archived":false,"open_issues_count":59,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":199,"open_issues":59,"watchers":478,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360"},"html":{"href":"https://github.com/saikrishna321/AppiumTestDistribution/pull/360"},"issue":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/360"},"comments":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/issues/360/comments"},"review_comments":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360/comments"},"review_comment":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/pulls/360/commits"},"statuses":{"href":"https://api.github.com/repos/saikrishna321/AppiumTestDistribution/statuses/45b0488bd5eefeba4e767782593c9c7a8e853a6c"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"codacy-bot"}}