{"action":"created","comment":{"url":"https://api.github.com/repos/kaaproject/kaa/pulls/comments/25606473","id":25606473,"diff_hunk":"@@ -0,0 +1,300 @@\n+/*\n+ * Copyright 2014-2015 CyberVision, Inc.\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *      http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package org.kaaproject.kaa.demo.cellmonitor;\n+\n+import org.kaaproject.kaa.client.AndroidKaaPlatformContext;\n+import org.kaaproject.kaa.client.Kaa;\n+import org.kaaproject.kaa.client.KaaClient;\n+import org.kaaproject.kaa.client.KaaClientPlatformContext;\n+import org.kaaproject.kaa.client.SimpleKaaClientStateListener;\n+import org.kaaproject.kaa.client.logging.LogFailoverCommand;\n+import org.kaaproject.kaa.client.logging.LogStorageStatus;\n+import org.kaaproject.kaa.client.logging.LogUploadStrategy;\n+import org.kaaproject.kaa.client.logging.LogUploadStrategyDecision;\n+import org.kaaproject.kaa.common.endpoint.gen.LogDeliveryErrorCode;\n+import org.kaaproject.kaa.demo.cellmonitor.event.CellLocationChanged;\n+import org.kaaproject.kaa.demo.cellmonitor.event.GpsLocationChanged;\n+import org.kaaproject.kaa.demo.cellmonitor.event.LogSent;\n+import org.kaaproject.kaa.demo.cellmonitor.event.SignalStrengthChanged;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+import android.app.Application;\n+import android.content.Context;\n+import android.location.Criteria;\n+import android.location.Location;\n+import android.location.LocationListener;\n+import android.location.LocationManager;\n+import android.os.Bundle;\n+import android.telephony.CellLocation;\n+import android.telephony.PhoneStateListener;\n+import android.telephony.SignalStrength;\n+import android.telephony.TelephonyManager;\n+import android.telephony.gsm.GsmCellLocation;\n+import de.greenrobot.event.EventBus;\n+\n+public class CellMonitorApplication extends Application {\n+    \n+    private static final Logger LOG = LoggerFactory\n+            .getLogger(CellMonitorApplication.class);\n+\n+    private EventBus mEventBus;\n+    private TelephonyManager mTelephonyManager;\n+    private CellMonitorPhoneStateListener mCellMonitorPhoneStateListener;\n+    private CellLocation mCellLocation;\n+    private SignalStrength mSignalStrength;\n+    \n+    private LocationManager mLocationManager;\n+    private GpsLocationListener mGpsLocationListener;\n+    private Location mGpsLocation;\n+    \n+    private int mSentLogCount = 0;\n+    private long mLastLogTime = 0;\n+    \n+    private KaaClient mClient;\n+    private boolean mKaaStarted = false;\n+    \n+    @Override\n+    public void onCreate() {\n+        super.onCreate();\n+        mEventBus = new EventBus();\n+        mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);\n+        mCellMonitorPhoneStateListener = new CellMonitorPhoneStateListener();\n+        \n+        mLocationManager = (LocationManager)  getSystemService(LOCATION_SERVICE);\n+        Criteria criteria = new Criteria();\n+        String bestProvider = mLocationManager.getBestProvider(criteria, false);        \n+        mGpsLocation = mLocationManager.getLastKnownLocation(bestProvider);\n+        mGpsLocationListener = new GpsLocationListener();\n+        \n+        /*\n+         * Initialize Kaa client using android context.\n+         */\n+        KaaClientPlatformContext kaaClientContext = new AndroidKaaPlatformContext(\n+                this);\n+        mClient = Kaa.newClient(kaaClientContext,\n+                new SimpleKaaClientStateListener() {\n+\n+            /*\n+             * Implement onStarted callback to get notified when Kaa\n+             * client is operational. \n+             */\n+            @Override\n+            public void onStarted() {\n+                mKaaStarted = true;\n+                LOG.info(\"Kaa client started\");\n+            }\n+        });\n+        \n+        /*\n+         * Define log upload strategy used by Kaa client for logs delivery\n+         */\n+        mClient.setLogUploadStrategy(new LogUploadStrategy() {\n+            \n+            @Override\n+            public void onTimeout(LogFailoverCommand logFailoverCommand) {\n+                LOG.error(\"Unable to send logs within defined timeout!\");\n+            }\n+            \n+            @Override\n+            public void onFailure(LogFailoverCommand logFailoverCommand, LogDeliveryErrorCode logDeliveryErrorCode) {\n+                LOG.error(\"Unable to send logs, error code: \" + logDeliveryErrorCode);\n+                logFailoverCommand.retryLogUpload(10);\n+            }\n+            \n+            @Override\n+            public LogUploadStrategyDecision isUploadNeeded(LogStorageStatus logStorageStatus) {\n+                return logStorageStatus.getRecordCount() > 0 ? \n+                        LogUploadStrategyDecision.UPLOAD : LogUploadStrategyDecision.NOOP;\n+            }\n+            \n+            @Override\n+            public int getTimeout() {\n+                return 100;\n+            }\n+            \n+            @Override\n+            public long getBatchSize() {\n+                return 8 * 1024;\n+            }\n+        });\n+        \n+        /*\n+         * Start Kaa client workflow.\n+         */\n+        mClient.start();\n+        \n+    }\n+    \n+    public void pause() {\n+        mTelephonyManager.listen(mCellMonitorPhoneStateListener,\n+                PhoneStateListener.LISTEN_NONE);\n+        mLocationManager.removeUpdates(mGpsLocationListener);\n+        \n+        /*\n+         * Suspend Kaa client. Release all network connections and application\n+         * resources. Suspend all Kaa client tasks.\n+         */\n+        mClient.pause();\n+    }\n+    \n+    public void resume() {\n+        mTelephonyManager.listen(mCellMonitorPhoneStateListener,\n+                PhoneStateListener.LISTEN_CELL_LOCATION\n+                        | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);\n+        Criteria criteria = new Criteria();\n+        String bestProvider = mLocationManager.getBestProvider(criteria, false);        \n+        mLocationManager.requestLocationUpdates(bestProvider, 0, 0, mGpsLocationListener);\n+        \n+        /*\n+         * Resume Kaa client. Restore Kaa client workflow. Resume all Kaa client\n+         * tasks.\n+         */\n+        mClient.resume();\n+    }\n+    \n+    @Override\n+    public void onTerminate() {\n+        super.onTerminate();\n+\n+        /*\n+         * Stop Kaa client. Release all network connections and application\n+         * resources. Shutdown all Kaa client tasks.\n+         */\n+        mClient.stop();\n+        mKaaStarted = false;\n+    }\n+    \n+    private void sendLog() {\n+        if (mKaaStarted) {\n+            \n+            mSentLogCount++;\n+            mLastLogTime = System.currentTimeMillis();\n+\n+            /*\n+             * Create instance of cell monitor log record and populate with latest values\n+             */\n+            CellMonitorLog cellMonitorLog = new CellMonitorLog();\n+            cellMonitorLog.setLogTime(mLastLogTime);\n+            cellMonitorLog.setNetworkOperatorCode(Integer.valueOf(mTelephonyManager.getNetworkOperator()));\n+            cellMonitorLog.setNetworkOperatorName(mTelephonyManager.getNetworkOperatorName());\n+            \n+            int cid = -1;\n+            int lac = -1;\n+            \n+            if (mCellLocation != null && mCellLocation instanceof GsmCellLocation) {\n+                GsmCellLocation gsmCellLocation = (GsmCellLocation)mCellLocation;\n+                cid = gsmCellLocation.getCid();\n+                lac = gsmCellLocation.getLac();\n+            }\n+            \n+            cellMonitorLog.setGsmCellId(cid);\n+            cellMonitorLog.setGsmLac(lac);\n+            \n+            int gsmSignalStrength = -1;","path":"examples/cellmonitor/source/src/org/kaaproject/kaa/demo/cellmonitor/CellMonitorApplication.java","position":208,"original_position":208,"commit_id":"2351b9f5f0056aa635fe8c0befeca558777a0a19","original_commit_id":"2351b9f5f0056aa635fe8c0befeca558777a0a19","user":{"login":"Shpigor","id":1051854,"avatar_url":"https://avatars.githubusercontent.com/u/1051854?v=3","gravatar_id":"","url":"https://api.github.com/users/Shpigor","html_url":"https://github.com/Shpigor","followers_url":"https://api.github.com/users/Shpigor/followers","following_url":"https://api.github.com/users/Shpigor/following{/other_user}","gists_url":"https://api.github.com/users/Shpigor/gists{/gist_id}","starred_url":"https://api.github.com/users/Shpigor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shpigor/subscriptions","organizations_url":"https://api.github.com/users/Shpigor/orgs","repos_url":"https://api.github.com/users/Shpigor/repos","events_url":"https://api.github.com/users/Shpigor/events{/privacy}","received_events_url":"https://api.github.com/users/Shpigor/received_events","type":"User","site_admin":false},"body":"Magic number?","created_at":"2015-03-02T15:32:22Z","updated_at":"2015-03-02T15:32:22Z","html_url":"https://github.com/kaaproject/kaa/pull/124#discussion_r25606473","pull_request_url":"https://api.github.com/repos/kaaproject/kaa/pulls/124","_links":{"self":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/comments/25606473"},"html":{"href":"https://github.com/kaaproject/kaa/pull/124#discussion_r25606473"},"pull_request":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/124"}}},"pull_request":{"url":"https://api.github.com/repos/kaaproject/kaa/pulls/124","id":30289798,"html_url":"https://github.com/kaaproject/kaa/pull/124","diff_url":"https://github.com/kaaproject/kaa/pull/124.diff","patch_url":"https://github.com/kaaproject/kaa/pull/124.patch","issue_url":"https://api.github.com/repos/kaaproject/kaa/issues/124","number":124,"state":"open","locked":false,"title":"KAA-399: Add 'Cell monitor' android demo application for data collection API","user":{"login":"ikulikov","id":8308069,"avatar_url":"https://avatars.githubusercontent.com/u/8308069?v=3","gravatar_id":"","url":"https://api.github.com/users/ikulikov","html_url":"https://github.com/ikulikov","followers_url":"https://api.github.com/users/ikulikov/followers","following_url":"https://api.github.com/users/ikulikov/following{/other_user}","gists_url":"https://api.github.com/users/ikulikov/gists{/gist_id}","starred_url":"https://api.github.com/users/ikulikov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ikulikov/subscriptions","organizations_url":"https://api.github.com/users/ikulikov/orgs","repos_url":"https://api.github.com/users/ikulikov/repos","events_url":"https://api.github.com/users/ikulikov/events{/privacy}","received_events_url":"https://api.github.com/users/ikulikov/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-03-02T15:03:29Z","updated_at":"2015-03-02T15:32:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f72f4de032da1393485c148490b806b733bef9c4","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/kaaproject/kaa/pulls/124/commits","review_comments_url":"https://api.github.com/repos/kaaproject/kaa/pulls/124/comments","review_comment_url":"https://api.github.com/repos/kaaproject/kaa/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kaaproject/kaa/issues/124/comments","statuses_url":"https://api.github.com/repos/kaaproject/kaa/statuses/2351b9f5f0056aa635fe8c0befeca558777a0a19","head":{"label":"kaaproject:feature/KAA-399","ref":"feature/KAA-399","sha":"2351b9f5f0056aa635fe8c0befeca558777a0a19","user":{"login":"kaaproject","id":6984613,"avatar_url":"https://avatars.githubusercontent.com/u/6984613?v=3","gravatar_id":"","url":"https://api.github.com/users/kaaproject","html_url":"https://github.com/kaaproject","followers_url":"https://api.github.com/users/kaaproject/followers","following_url":"https://api.github.com/users/kaaproject/following{/other_user}","gists_url":"https://api.github.com/users/kaaproject/gists{/gist_id}","starred_url":"https://api.github.com/users/kaaproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaaproject/subscriptions","organizations_url":"https://api.github.com/users/kaaproject/orgs","repos_url":"https://api.github.com/users/kaaproject/repos","events_url":"https://api.github.com/users/kaaproject/events{/privacy}","received_events_url":"https://api.github.com/users/kaaproject/received_events","type":"Organization","site_admin":false},"repo":{"id":17839346,"name":"kaa","full_name":"kaaproject/kaa","owner":{"login":"kaaproject","id":6984613,"avatar_url":"https://avatars.githubusercontent.com/u/6984613?v=3","gravatar_id":"","url":"https://api.github.com/users/kaaproject","html_url":"https://github.com/kaaproject","followers_url":"https://api.github.com/users/kaaproject/followers","following_url":"https://api.github.com/users/kaaproject/following{/other_user}","gists_url":"https://api.github.com/users/kaaproject/gists{/gist_id}","starred_url":"https://api.github.com/users/kaaproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaaproject/subscriptions","organizations_url":"https://api.github.com/users/kaaproject/orgs","repos_url":"https://api.github.com/users/kaaproject/repos","events_url":"https://api.github.com/users/kaaproject/events{/privacy}","received_events_url":"https://api.github.com/users/kaaproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kaaproject/kaa","description":"Kaa open-source middleware platform for building, managing, and integrating connected products with the Internet of Everything.","fork":false,"url":"https://api.github.com/repos/kaaproject/kaa","forks_url":"https://api.github.com/repos/kaaproject/kaa/forks","keys_url":"https://api.github.com/repos/kaaproject/kaa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kaaproject/kaa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kaaproject/kaa/teams","hooks_url":"https://api.github.com/repos/kaaproject/kaa/hooks","issue_events_url":"https://api.github.com/repos/kaaproject/kaa/issues/events{/number}","events_url":"https://api.github.com/repos/kaaproject/kaa/events","assignees_url":"https://api.github.com/repos/kaaproject/kaa/assignees{/user}","branches_url":"https://api.github.com/repos/kaaproject/kaa/branches{/branch}","tags_url":"https://api.github.com/repos/kaaproject/kaa/tags","blobs_url":"https://api.github.com/repos/kaaproject/kaa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kaaproject/kaa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kaaproject/kaa/git/refs{/sha}","trees_url":"https://api.github.com/repos/kaaproject/kaa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kaaproject/kaa/statuses/{sha}","languages_url":"https://api.github.com/repos/kaaproject/kaa/languages","stargazers_url":"https://api.github.com/repos/kaaproject/kaa/stargazers","contributors_url":"https://api.github.com/repos/kaaproject/kaa/contributors","subscribers_url":"https://api.github.com/repos/kaaproject/kaa/subscribers","subscription_url":"https://api.github.com/repos/kaaproject/kaa/subscription","commits_url":"https://api.github.com/repos/kaaproject/kaa/commits{/sha}","git_commits_url":"https://api.github.com/repos/kaaproject/kaa/git/commits{/sha}","comments_url":"https://api.github.com/repos/kaaproject/kaa/comments{/number}","issue_comment_url":"https://api.github.com/repos/kaaproject/kaa/issues/comments{/number}","contents_url":"https://api.github.com/repos/kaaproject/kaa/contents/{+path}","compare_url":"https://api.github.com/repos/kaaproject/kaa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kaaproject/kaa/merges","archive_url":"https://api.github.com/repos/kaaproject/kaa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kaaproject/kaa/downloads","issues_url":"https://api.github.com/repos/kaaproject/kaa/issues{/number}","pulls_url":"https://api.github.com/repos/kaaproject/kaa/pulls{/number}","milestones_url":"https://api.github.com/repos/kaaproject/kaa/milestones{/number}","notifications_url":"https://api.github.com/repos/kaaproject/kaa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kaaproject/kaa/labels{/name}","releases_url":"https://api.github.com/repos/kaaproject/kaa/releases{/id}","created_at":"2014-03-17T18:48:31Z","updated_at":"2015-03-02T14:52:09Z","pushed_at":"2015-03-02T15:02:49Z","git_url":"git://github.com/kaaproject/kaa.git","ssh_url":"git@github.com:kaaproject/kaa.git","clone_url":"https://github.com/kaaproject/kaa.git","svn_url":"https://github.com/kaaproject/kaa","homepage":"http://www.kaaproject.org","size":77780,"stargazers_count":78,"watchers_count":78,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":6,"mirror_url":null,"open_issues_count":7,"forks":6,"open_issues":7,"watchers":78,"default_branch":"master"}},"base":{"label":"kaaproject:master","ref":"master","sha":"77bb917460f4878e1ed18ee800c9674110355374","user":{"login":"kaaproject","id":6984613,"avatar_url":"https://avatars.githubusercontent.com/u/6984613?v=3","gravatar_id":"","url":"https://api.github.com/users/kaaproject","html_url":"https://github.com/kaaproject","followers_url":"https://api.github.com/users/kaaproject/followers","following_url":"https://api.github.com/users/kaaproject/following{/other_user}","gists_url":"https://api.github.com/users/kaaproject/gists{/gist_id}","starred_url":"https://api.github.com/users/kaaproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaaproject/subscriptions","organizations_url":"https://api.github.com/users/kaaproject/orgs","repos_url":"https://api.github.com/users/kaaproject/repos","events_url":"https://api.github.com/users/kaaproject/events{/privacy}","received_events_url":"https://api.github.com/users/kaaproject/received_events","type":"Organization","site_admin":false},"repo":{"id":17839346,"name":"kaa","full_name":"kaaproject/kaa","owner":{"login":"kaaproject","id":6984613,"avatar_url":"https://avatars.githubusercontent.com/u/6984613?v=3","gravatar_id":"","url":"https://api.github.com/users/kaaproject","html_url":"https://github.com/kaaproject","followers_url":"https://api.github.com/users/kaaproject/followers","following_url":"https://api.github.com/users/kaaproject/following{/other_user}","gists_url":"https://api.github.com/users/kaaproject/gists{/gist_id}","starred_url":"https://api.github.com/users/kaaproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaaproject/subscriptions","organizations_url":"https://api.github.com/users/kaaproject/orgs","repos_url":"https://api.github.com/users/kaaproject/repos","events_url":"https://api.github.com/users/kaaproject/events{/privacy}","received_events_url":"https://api.github.com/users/kaaproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kaaproject/kaa","description":"Kaa open-source middleware platform for building, managing, and integrating connected products with the Internet of Everything.","fork":false,"url":"https://api.github.com/repos/kaaproject/kaa","forks_url":"https://api.github.com/repos/kaaproject/kaa/forks","keys_url":"https://api.github.com/repos/kaaproject/kaa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kaaproject/kaa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kaaproject/kaa/teams","hooks_url":"https://api.github.com/repos/kaaproject/kaa/hooks","issue_events_url":"https://api.github.com/repos/kaaproject/kaa/issues/events{/number}","events_url":"https://api.github.com/repos/kaaproject/kaa/events","assignees_url":"https://api.github.com/repos/kaaproject/kaa/assignees{/user}","branches_url":"https://api.github.com/repos/kaaproject/kaa/branches{/branch}","tags_url":"https://api.github.com/repos/kaaproject/kaa/tags","blobs_url":"https://api.github.com/repos/kaaproject/kaa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kaaproject/kaa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kaaproject/kaa/git/refs{/sha}","trees_url":"https://api.github.com/repos/kaaproject/kaa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kaaproject/kaa/statuses/{sha}","languages_url":"https://api.github.com/repos/kaaproject/kaa/languages","stargazers_url":"https://api.github.com/repos/kaaproject/kaa/stargazers","contributors_url":"https://api.github.com/repos/kaaproject/kaa/contributors","subscribers_url":"https://api.github.com/repos/kaaproject/kaa/subscribers","subscription_url":"https://api.github.com/repos/kaaproject/kaa/subscription","commits_url":"https://api.github.com/repos/kaaproject/kaa/commits{/sha}","git_commits_url":"https://api.github.com/repos/kaaproject/kaa/git/commits{/sha}","comments_url":"https://api.github.com/repos/kaaproject/kaa/comments{/number}","issue_comment_url":"https://api.github.com/repos/kaaproject/kaa/issues/comments{/number}","contents_url":"https://api.github.com/repos/kaaproject/kaa/contents/{+path}","compare_url":"https://api.github.com/repos/kaaproject/kaa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kaaproject/kaa/merges","archive_url":"https://api.github.com/repos/kaaproject/kaa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kaaproject/kaa/downloads","issues_url":"https://api.github.com/repos/kaaproject/kaa/issues{/number}","pulls_url":"https://api.github.com/repos/kaaproject/kaa/pulls{/number}","milestones_url":"https://api.github.com/repos/kaaproject/kaa/milestones{/number}","notifications_url":"https://api.github.com/repos/kaaproject/kaa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kaaproject/kaa/labels{/name}","releases_url":"https://api.github.com/repos/kaaproject/kaa/releases{/id}","created_at":"2014-03-17T18:48:31Z","updated_at":"2015-03-02T14:52:09Z","pushed_at":"2015-03-02T15:02:49Z","git_url":"git://github.com/kaaproject/kaa.git","ssh_url":"git@github.com:kaaproject/kaa.git","clone_url":"https://github.com/kaaproject/kaa.git","svn_url":"https://github.com/kaaproject/kaa","homepage":"http://www.kaaproject.org","size":77780,"stargazers_count":78,"watchers_count":78,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":6,"mirror_url":null,"open_issues_count":7,"forks":6,"open_issues":7,"watchers":78,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/124"},"html":{"href":"https://github.com/kaaproject/kaa/pull/124"},"issue":{"href":"https://api.github.com/repos/kaaproject/kaa/issues/124"},"comments":{"href":"https://api.github.com/repos/kaaproject/kaa/issues/124/comments"},"review_comments":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/124/comments"},"review_comment":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/124/commits"},"statuses":{"href":"https://api.github.com/repos/kaaproject/kaa/statuses/2351b9f5f0056aa635fe8c0befeca558777a0a19"}}}}