{"action":"created","comment":{"url":"https://api.github.com/repos/kaaproject/kaa/pulls/comments/67203864","id":67203864,"diff_hunk":"@@ -4,302 +4,231 @@ title: Linux\n permalink: /:path/\n sort_idx: 10\n ---\n+{% assign root_url = page.url | split: '/'%}\n+{% capture root_url  %} /{{root_url[1]}}/{{root_url[2]}}/{% endcapture %}\n \n-Use the following instructions to build endpoint SDKs in Java, C, and C++ for Linux.\n+* TOC\n+{:toc}\n \n-<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n-<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n-\n-\n-- [Java endpoint SDK](#java-endpoint-sdk)\n-- [C endpoint SDK](#c-endpoint-sdk)\n-    - [Install build utils and dependencies](#install-build-utils-and-dependencies)\n-    - [Compile C endpoint SDK](#compile-c-endpoint-sdk)\n-    - [Configure C endpoint SDK](#configure-c-endpoint-sdk)\n-- [C++ endpoint SDK](#c-endpoint-sdk-1)\n-    - [Install build utils and dependencies](#install-build-utils-and-dependencies)\n-    - [Compile C++ endpoint SDK](#compile-c-endpoint-sdk-1)\n-    - [Configure C++ endpoint SDK](#configure-c-endpoint-sdk-1)\n-- [Quick way to build C/C++ endpoint SDK](#quick-way-to-build-c-c-endpoint-sdk)\n-\n-<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n+This page describes Kaa C++ SDK build process on Linux system.\n \n **Verified against:**\n \n **Host OS:** Ubuntu 14.04 LTS Desktop 64-bit.\n \n-# Java endpoint SDK\n-\n-<!-- TODO: Fix this link when Administration-UI-guide#AdministrationUIguide-GeneratingSDK are updated -->\n-To build the Java endpoint SDK, [generate](Administration-UI-guide#AdministrationUIguide-GeneratingSDK) the Java endpoint SDK in Admin UI and download the generated .jar file.\n-\n-# C endpoint SDK\n-\n-## Install build utils and dependencies\n-\n-Before building the C endpoint SDK, install the following components on your machine:\n-\n-1. Install compilers:\n-    1. For automatic installation, execute the following commands:\n-\n-       ~~~ shel\n-       $ sudo apt-get install gcc\n-       ~~~\n+## Installing prerequisites\n \n-    2. For manual installation of version 4.8, refer to the following example:\n+**NOTE:** Instead of manually installing all required components and libraries, you can follow [the quick way to build C/C++ endpoint SDK](#quick-way-to-build).\n+(Only applicable for x86\\_64 platform build.)\n \n-       ~~~ shell\n-       $ sudo apt-get install python-software-properties\n-       $ sudo add-apt-repository ppa:ubuntu-toolchain-r/test\n-       $ sudo apt-get update\n-       $ sudo apt-get install gcc-4.8\n-       $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50\n-       ~~~\n-\n-2. Install CMake utility:\n-    1. For automatic installation, execute the following commands (tested on Ubuntu 14.04):\n+Before building the C++ endpoint SDK, install the following components on your machine:\n \n-       ~~~ shell\n-       $ sudo apt-get install cmake\n-       ~~~\n+1. Install g++, [CMake](https://cmake.org/download/), [Boost](http://www.boost.org/users/download/) and (optionally) [SQLite3](https://sqlite.org/download.html):\n \n-    2. For manual installation, refer to the following example:\n+   ```\n+   sudo apt-get install g++ cmake libboost1.55-all-dev libsqlite3-0 libsqlite3-dev\n+   ```\n \n-       ~~~ shell\n-       $ wget http://www.cmake.org/files/v3.3/cmake-3.3.0-rc2.tar.gz\n-       $ tar -zxf cmake-3.3.0-rc2.tar.gz\n-       $ cd cmake-3.3.0-rc2/\n-       $ ./configure\n-       $ sudo make install\n-       ~~~\n+4. Install the [AvroC++](http://avro.apache.org/docs/1.7.6/api/cpp/html/index.html) library manually:\n \n-3. Install OpenSSL:\n+   ```\n+   wget http://archive.apache.org/dist/avro/avro-1.7.5/cpp/avro-cpp-1.7.5.tar.gz\n+   tar -zxf avro-cpp-1.7.7.tar.gz\n+   cd avro-cpp-1.7.5/\n+   cmake -G \"Unix Makefiles\"\n+   sudo make install\n+   ```\n \n-   ~~~\n-   $ sudo apt-get install libssl-dev\n-   ~~~\n+5. Install the [Botan](http://botan.randombit.net/) 1.11 library. The stock 1.10 version is not recommended for C++11 projects,\n+so the newer 1.11 version is used in Kaa C++ SDK.\n+To install, proceed as follows:\n \n-4. Install CUnit:\n+   ```\n+   wget https://github.com/randombit/botan/archive/1.11.28.tar.gz\n+   tar -zxf 1.11.28.tar.gz\n+   cd botan-1.11.28/\n+   ./configure.py\n+   sudo make install\n+   sudo ln -s /usr/local/include/botan-1.11/botan /usr/local/include/botan\n+   ```\n \n-   ~~~\n-   $ sudo apt-get install libcunit1-dev\n-   ~~~\n+6. Install the [SQLite](https://www.sqlite.org/index.html) library by executing the following command:\n \n-## Compile C endpoint SDK\n+    ```\n+    sudo apt-get install libsqlite3-0 libsqlite3-dev\n+    ```\n+## Compiling SDK\n \n-To build the C endpoint SDK, do the following:\n+To build the C++ endpoint SDK, do the following:\n \n-<!-- TODO: Fix this link when Administration-UI-guide#AdministrationUIguide-GeneratingSDK are updated -->\n-1. [Generate ](Administration-UI-guide#AdministrationUIguide-GeneratingSDK)the C endpoint SDK in Admin UI.\n-2. Download and untar the Kaa C SDK archive.\n+<!-- TODO: KAA-700 -->\n+1. [Generate]({{root_url}}Administration-UI-guide#AdministrationUIguide-GeneratingSDK) the C++ endpoint SDK in Admin UI.\n+2. Download and untar the Kaa C++ SDK archive.\n \n-   ~~~ bash\n-   $ tar xfv kaa-c-ep-sdk.tar.gz\n-   ~~~\n+   ``` bash\n+   $ tar xfv kaa-cpp-ep-sdk.tar.gz\n+   ```\n \n 3. Run the following commands.\n \n-   ~~~ bash\n-   $ mkdir build\n-   $ cd build\n-   $ cmake ..\n-   $ make\n-   $ make install\n-   ~~~\n-\n-## Configure C endpoint SDK\n-\n-To configure the C endpoint SDK build, you can optionally specify the following parameters for the **cmake** command.\n+   ```\n+   mkdir build\n+   cd build\n+   cmake ..\n+   make\n+   ```\n \n+There are a lot of parameters which can be passed to cmake in order to customize build. [This]({{root_url}}Programming-guide/Using-Kaa-endpoint-SDKs/C++/) page gives a detailed description.\n \n-{% include csv-table.html csv_path='cmake-c-options.csv' table_id='table-c-cmake-options' width='100%' %}\n+## Quick way to build SDK\n \n+### Bulid in Docker container\n+If you want to quickly build the endpoint SDK or build and run Kaa C/C++ demo applications, you can use a [docker](https://www.docker.com/) container with all necessary environment preinstalled.\n+**NOTE:** docker natively supports only amd64 architecture.\n \n-**\\* NOTE:**\n+1. Follow [docker installation guide](http://docs.docker.com/index.html) depends on your OS.\n+2. Download the docker container.\n \n-Before running the **cmake** command with the KAA\\_PLATFORM parameter for a platform other than supported, do the following:\n+   ```\n+   docker pull kaaproject/demo_c_cpp_environment\n+   ```\n \n-1. Create a folder in $KAA\\_HOME/listfiles/platform/ and name it using \\[a-zA-z\\_-\\] symbols. You will be able to use the folder name as a value for the KAA\\_PLATFORM parameter.\n-2. Put the CMakeLists.txt file into the created folder. This file may contain specific compilation/linking flags, platform-dependent source files, third-party library dependencies, that is all information necessary for building the C endpoint SDK for this platform.\n-3. Optionally, specify the following parameters in the CMakeLists.txt file.\n-  * KAA\\_INCLUDE\\_PATHS - full path(s) to folder(s) containing additional header files\n-  * KAA\\_SOURCE\\_FILES - full path(s) to additional source files\n-  * KAA\\_THIRDPARTY\\_LIBRARIES - third-party libraries (the name of the library, for example, ssl, crypto)\n+3. Get inside container and compile what you need: SDK, demo applications, etc.\n \n-The following example illustrates the build procedure for the debug build with the INFO log level and disabled EVENTS feature.\n+   ```\n+   docker run -it kaaproject/demo_c_cpp_environment bash\n+   ```\n \n-~~~\n-mkdir build\n-cd build\n-cmake -DKAA_DEBUG_ENABLED=1 -DKAA_MAX_LOG_LEVEL=4 -DKAA_WITHOUT_EVENTS=1 ..\n-make\n-make install\n-~~~\n+    **NOTE:**\n+    To mount a host directory to the container's filesystem, add the following flag to the previous command: -v FOLDER\\_WITH\\_DEMO:FOLDER\\_INSIDE\\_CONTAINER\n+    For example, the following command will build a demo project and direct you to the container's shell, where you can test immediately:\n \n-# C++ endpoint SDK\n+   ```\n+   docker run -v FOLDER_WITH_DEMO:/opt/demo\n+     -it kaaproject/demo_c_cpp_environment bash -c 'cd /opt/demo/ &&\n+     chmod +x build.sh && ./build.sh clean build && bash'\n+   ```\n \n-## Install build utils and dependencies\n+4. After the compilation, launch the demo binary located at `/opt/demo/build/` in the container's filesystem.\n+**NOTE:**\n+If you would like to run a compiled binary on some other host, you should have all third-party libraries like boost, etc. preinstalled.\n \n-Before building the C++ endpoint SDK, install the following components on your machine:\n+### Build in nix shell\n+[Nix](https://hnixos.org/nix) is a package manager which is used to manage Kaa C and C++ SDKs build environment for CI purposes. You can use it to quickly build Kaa C++ SDK.\n+Just install Nix on your system and issue the following command from the [root folder](https://github.com/kaaproject/kaa/tree/master/client/client-multi/client-cpp) of Kaa C++ SDK:\n \n-1. Install compilers:\n-    1. For automatic installation, execute the following commands:\n+```\n+nix-shell --pure --run true\n+```\n \n-       ~~~ shell\n-       $ sudo apt-get install g++\n-       ~~~\n+Nix will download and compile SDK dependencies and eventually build the SDK itself.\n \n-    2. For manual installation of version 4.8, refer to the following example:\n+## Minimal example\n+This section describes apllication development with Kaa C++ SDK.\n \n-       ~~~ shell\n-       $ sudo apt-get install python-software-properties\n-       $ sudo add-apt-repository ppa:ubuntu-toolchain-r/test\n-       $ sudo apt-get update\n-       $ sudo apt-get install g++-4.8\n-       $ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50\n-       ~~~\n+### Directory structure\n \n-2. Install CMake utility:\n-    1. For automatic installation, execute the following commands (tested on Ubuntu 14.04):\n+The recommended (but not obligatory) directory structure for applications using Kaa C++ SDK is as follows:\n \n-       ~~~ shell\n-       $ sudo apt-get install cmake\n-       ~~~\n+```\n+CMakeLists.txt\n+src/\n+    KaaDemo.cpp\n+kaa/\n+```\n \n-    2. For manual installation, refer to the following example:\n+* `CMakeLists.txt` describes your application to CMake build system (see below)\n+* `src/KaaDemo.cpp` is the actual application source code\n+* `kaa/` is a directory where the Kaa SDK should be placed.\n+<!-- TODO: KAA-700 -->\n+Download generated SDK archive from [AdministrationUI](TODO) and unpack it to `kaa/` directory.\n \n-       ~~~ shell\n-       $ wget http://www.cmake.org/files/v3.3/cmake-3.3.0-rc2.tar.gz\n-       $ tar -zxf cmake-3.3.0-rc2.tar.gz\n-       $ cd cmake-3.3.0-rc2/\n-       $ ./configure\n-       $ sudo make install\n-       ~~~\n \n-3. Install the [**Boost** ](http://www.boost.org/users/download/)libraries:\n-    1. For automatic installation, execute the following commands:\n+### Build system overview\n+Kaa C++ SDK uses CMake as a build system. Although you are not limited to any particular build system,\n+it is recommended to use CMake, which allows you to tightly integrate your applications with Kaa C++ SDK.\n \n-       ~~~ shell\n-       $ sudo apt-get install libboost1.55-all-dev\n-       ~~~\n+The step-by-step explanation of CMakeLists.txt follows.\n \n-    2. For manual installation, refer to the following example:\n+Firstly, the minimum required CMake  version is specified:\n \n-       ~~~\n-       $ sudo apt-get install libbz2-dev libbz2-1.0 zlib1g zlib1g-dev\n-       $ wget http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.gz\n-       $ tar -zxf boost_1_58_0.tar.gz\n-       $ cd boost_1_58_0/\n-       $ ./bootstrap.sh\n-       $ sudo ./b2 install\n-       ~~~\n+```CMake\n+cmake_minimum_required(VERSION 3.0.2)\n+```\n \n-4. Install the [**AvroC++**](http://avro.apache.org/docs/1.7.6/api/cpp/html/index.html) library manually:\n+Next, we tell CMake about our project and enable C++11 standard:\n \n-   ~~~\n-   $ wget http://archive.apache.org/dist/avro/avro-1.7.5/cpp/avro-cpp-1.7.5.tar.gz\n-   $ tar -zxf avro-cpp-1.7.7.tar.gz\n-   $ cd avro-cpp-1.7.5/\n-   $ cmake -G \"Unix Makefiles\"\n-   $ sudo make install\n-   ~~~\n+```CMake\n+project(kaa-demo CXX)\n \n-5. Install the [**Botan**](http://botan.randombit.net/) library by executing the following command:\n+set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -std=c++11\")\n+```\n \n-   ~~~\n-   $ wget https://github.com/randombit/botan/archive/1.11.28.tar.gz\n-   $ tar -zxf 1.11.28.tar.gz\n-   $ cd botan-1.11.28/\n-   $ ./configure.py\n-   $ sudo make install\n-   $ sudo ln -s /usr/local/include/botan-1.11/botan /usr/local/include/botan\n-   ~~~\n+Here we add kaa-demo executable and specify the source file, `src/KaaDemo.cpp`:\n+```CMake\n+add_executable(kaa-demo src/KaaDemo.cpp)\n+```\n \n-6. Install the **[SQLite](https://www.sqlite.org/index.html)** library by executing the following command:\n-    1. For automatic installation, execute the following commands (tested on Ubuntu 14.04):\n+We also add Kaa SDK subdirectory and specify Kaa SDK as a dependency for our application.\n+As a result, the SDK will be built prior to building the application.\n \n-       ~~~\n-       $ sudo apt-get install libsqlite3-0 libsqlite3-dev\n-       ~~~\n+```CMake\n+add_subdirectory(kaa)\n \n-    2. For manual installation, refer to the following example:\n+target_link_libraries(kaa-demo kaacpp)\n+```\n \n-       ~~~\n-       $ wget https://www.sqlite.org/2015/sqlite-autoconf-3081002.tar.gz\n-       $ tar -zxf sqlite-autoconf-3081002.tar.gz\n-       $ cd sqlite-autoconf-3081002/\n-       $ ./configure\n-       $ sudo make install\n-       ~~~\n+### Code\n \n-**NOTE:** Instead of manually installing all required components and libraries, you can follow [the quick way to build C/C++ endpoint SDK](#Linux-Quickway).  (only applicable for x86\\_64 platform build)\n+The code for this demo is simple and straightforward. It just initializes and starts Kaa client,\n+which involves connecting to Kaa server. After the `kaaClient->start();` line, Kaa client is up and running in dedicated thread.\n+Finally, the Endpoint access token is printed to `stdout` and Kaa client stops it's execution.\n \n-## Compile C++ endpoint SDK\n+```c++\n+#include <iostream>\n \n-To build the C++ endpoint SDK, do the following:\n+#include <kaa/Kaa.hpp>\n+#include <kaa/IKaaClient.hpp>\n \n-<!-- TODO: Fix this link when Administration-UI-guide#AdministrationUIguide-GeneratingSDK are updated -->\n-1. [Generate](Administration-UI-guide#AdministrationUIguide-GeneratingSDK) the C++ endpoint SDK in Admin UI.\n-2. Download and untar the Kaa C++ SDK archive.\n+using namespace kaa;\n \n-   ~~~ bash\n-   $ tar xfv kaa-cpp-ep-sdk.tar.gz\n-   ~~~\n+int main()\n+{\n+    /*\n+     * Initialize the Kaa endpoint.\n+     */\n+    auto kaaClient = Kaa::newClient();\n \n-3. Run the following commands.\n+    /*\n+     * Run the Kaa endpoint.\n+     */\n+    kaaClient->start();\n \n-   ~~~\n-   mkdir build\n-   cd build\n-   cmake ..\n-   make\n-   make install\n-   ~~~\n+    /*\n+     * Print access token\n+     */\n+    std::cout << \"Endpoint access token: \" << kaaClient->getEndpointAccessToken() << std::endl;\n \n-## Configure C++ endpoint SDK\n+    /*\n+     * Stop the Kaa endpoint.\n+     */\n+    kaaClient->stop();\n \n-To configure the C++ endpoint SDK build, you can optionally specify the following parameters for the **cmake** command.\n+    return 0;\n+}\n+```\n \n-{% include csv-table.html csv_path='cmake-cpp-options.csv' table_id='table-cpp-cmake-options' width='100%' %}\n+### Buliding\n \n-The following example illustrates the build procedure for the debug build, with the INFO log level and disabled EVENTS feature and specified path to the folder Kaa will be installed in:\n+To build the example, proceed as follows:\n \n-~~~\n+```\n mkdir build\n cd build\n-cmake -DCMAKE_INSTALL_PREFIX='/home/username/kaa' -DKAA_DEBUG_ENABLED=1 -DKAA_MAX_LOG_LEVEL=4 -DKAA_WITHOUT_EVENTS=1 ..\n+cmake -DKAA_MAX_LOG_LEVEL=3 ..\n make\n-make install\n-~~~\n+```\n \n-# Quick way to build C/C++ endpoint SDK\n-\n-If you want to quickly build the endpoint SDK or build and run Kaa C/C++ demo applications, you can use a [docker](https://www.docker.com/) container with all necessary environment preinstalled.\n-**NOTE:** docker natively supports only amd64 architecture.\n-\n-1. Follow [docker installation guide](http://docs.docker.com/index.html) depends on your OS.\n-2. Download the docker container.\n-\n-   ~~~\n-   docker pull kaaproject/demo_c_cpp_environment\n-   ~~~\n-\n-3. Get inside container and compile what you need: SDK, demo applications, etc.\n-\n-   ~~~\n-   docker run -it kaaproject/demo_c_cpp_environment bash\n-   ~~~\n-\n-    **NOTE:**\n-    To mount a host directory to the container's filesystem, add the following flag to the previous command: -v FOLDER\\_WITH\\_DEMO:FOLDER\\_INSIDE\\_CONTAINER\n-    For example, the following command will build a demo project and direct you to the container's shell, where you can test immediately:\n-\n-   ~~~\n-   docker run -v FOLDER_WITH_DEMO:/opt/demo\n-     -it kaaproject/demo_c_cpp_environment bash -c 'cd /opt/demo/ &&\n-     chmod +x build.sh && ./build.sh clean build && bash'\n-   ~~~\n-\n-4. After the compilation, launch the demo binary located at /opt/demo/build/ in the container's filesystem.\n-**NOTE:**\n-If you would like to run a compiled binary on some other host, you should have all third-party libraries like boost, etc. preinstalled.\n+First, we generate `Makefile` in `build/` directory with CMake, then we invoke `make` to actually build the application.\n+We pass `KAA_MAX_LOG_LEVEL=3` option to avoid messing up application ouptu with Kaa SDK info-level messages.","path":"doc/Programming-guide/Using-Kaa-endpoint-SDKs/C++/SDK-Linux/index.md","position":459,"original_position":459,"commit_id":"66222d6fa2733426f9d11991891fad947e7a57c9","original_commit_id":"66222d6fa2733426f9d11991891fad947e7a57c9","user":{"login":"RostakaGmfun","id":5872727,"avatar_url":"https://avatars.githubusercontent.com/u/5872727?v=3","gravatar_id":"","url":"https://api.github.com/users/RostakaGmfun","html_url":"https://github.com/RostakaGmfun","followers_url":"https://api.github.com/users/RostakaGmfun/followers","following_url":"https://api.github.com/users/RostakaGmfun/following{/other_user}","gists_url":"https://api.github.com/users/RostakaGmfun/gists{/gist_id}","starred_url":"https://api.github.com/users/RostakaGmfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RostakaGmfun/subscriptions","organizations_url":"https://api.github.com/users/RostakaGmfun/orgs","repos_url":"https://api.github.com/users/RostakaGmfun/repos","events_url":"https://api.github.com/users/RostakaGmfun/events{/privacy}","received_events_url":"https://api.github.com/users/RostakaGmfun/received_events","type":"User","site_admin":false},"body":"`output`","created_at":"2016-06-15T17:10:55Z","updated_at":"2016-06-15T17:10:55Z","html_url":"https://github.com/kaaproject/kaa/pull/753#discussion_r67203864","pull_request_url":"https://api.github.com/repos/kaaproject/kaa/pulls/753","_links":{"self":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/comments/67203864"},"html":{"href":"https://github.com/kaaproject/kaa/pull/753#discussion_r67203864"},"pull_request":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/753"}}},"pull_request":{"url":"https://api.github.com/repos/kaaproject/kaa/pulls/753","id":73727273,"html_url":"https://github.com/kaaproject/kaa/pull/753","diff_url":"https://github.com/kaaproject/kaa/pull/753.diff","patch_url":"https://github.com/kaaproject/kaa/pull/753.patch","issue_url":"https://api.github.com/repos/kaaproject/kaa/issues/753","number":753,"state":"open","locked":false,"title":"KAA-1148: Add Linux subpage for C++ SDK","user":{"login":"RostakaGmfun","id":5872727,"avatar_url":"https://avatars.githubusercontent.com/u/5872727?v=3","gravatar_id":"","url":"https://api.github.com/users/RostakaGmfun","html_url":"https://github.com/RostakaGmfun","followers_url":"https://api.github.com/users/RostakaGmfun/followers","following_url":"https://api.github.com/users/RostakaGmfun/following{/other_user}","gists_url":"https://api.github.com/users/RostakaGmfun/gists{/gist_id}","starred_url":"https://api.github.com/users/RostakaGmfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RostakaGmfun/subscriptions","organizations_url":"https://api.github.com/users/RostakaGmfun/orgs","repos_url":"https://api.github.com/users/RostakaGmfun/repos","events_url":"https://api.github.com/users/RostakaGmfun/events{/privacy}","received_events_url":"https://api.github.com/users/RostakaGmfun/received_events","type":"User","site_admin":false},"body":"/cc @rasendubi @forGGe ","created_at":"2016-06-14T12:02:53Z","updated_at":"2016-06-15T17:10:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"91c5e4bd7c6e4abfaae13f51885548120883ee49","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/kaaproject/kaa/pulls/753/commits","review_comments_url":"https://api.github.com/repos/kaaproject/kaa/pulls/753/comments","review_comment_url":"https://api.github.com/repos/kaaproject/kaa/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kaaproject/kaa/issues/753/comments","statuses_url":"https://api.github.com/repos/kaaproject/kaa/statuses/66222d6fa2733426f9d11991891fad947e7a57c9","head":{"label":"RostakaGmfun:KAA-1148","ref":"KAA-1148","sha":"66222d6fa2733426f9d11991891fad947e7a57c9","user":{"login":"RostakaGmfun","id":5872727,"avatar_url":"https://avatars.githubusercontent.com/u/5872727?v=3","gravatar_id":"","url":"https://api.github.com/users/RostakaGmfun","html_url":"https://github.com/RostakaGmfun","followers_url":"https://api.github.com/users/RostakaGmfun/followers","following_url":"https://api.github.com/users/RostakaGmfun/following{/other_user}","gists_url":"https://api.github.com/users/RostakaGmfun/gists{/gist_id}","starred_url":"https://api.github.com/users/RostakaGmfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RostakaGmfun/subscriptions","organizations_url":"https://api.github.com/users/RostakaGmfun/orgs","repos_url":"https://api.github.com/users/RostakaGmfun/repos","events_url":"https://api.github.com/users/RostakaGmfun/events{/privacy}","received_events_url":"https://api.github.com/users/RostakaGmfun/received_events","type":"User","site_admin":false},"repo":{"id":55242302,"name":"kaa","full_name":"RostakaGmfun/kaa","owner":{"login":"RostakaGmfun","id":5872727,"avatar_url":"https://avatars.githubusercontent.com/u/5872727?v=3","gravatar_id":"","url":"https://api.github.com/users/RostakaGmfun","html_url":"https://github.com/RostakaGmfun","followers_url":"https://api.github.com/users/RostakaGmfun/followers","following_url":"https://api.github.com/users/RostakaGmfun/following{/other_user}","gists_url":"https://api.github.com/users/RostakaGmfun/gists{/gist_id}","starred_url":"https://api.github.com/users/RostakaGmfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RostakaGmfun/subscriptions","organizations_url":"https://api.github.com/users/RostakaGmfun/orgs","repos_url":"https://api.github.com/users/RostakaGmfun/repos","events_url":"https://api.github.com/users/RostakaGmfun/events{/privacy}","received_events_url":"https://api.github.com/users/RostakaGmfun/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/RostakaGmfun/kaa","description":"Kaa open-source middleware platform for building, managing, and integrating connected products with the Internet of Everything.","fork":true,"url":"https://api.github.com/repos/RostakaGmfun/kaa","forks_url":"https://api.github.com/repos/RostakaGmfun/kaa/forks","keys_url":"https://api.github.com/repos/RostakaGmfun/kaa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RostakaGmfun/kaa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RostakaGmfun/kaa/teams","hooks_url":"https://api.github.com/repos/RostakaGmfun/kaa/hooks","issue_events_url":"https://api.github.com/repos/RostakaGmfun/kaa/issues/events{/number}","events_url":"https://api.github.com/repos/RostakaGmfun/kaa/events","assignees_url":"https://api.github.com/repos/RostakaGmfun/kaa/assignees{/user}","branches_url":"https://api.github.com/repos/RostakaGmfun/kaa/branches{/branch}","tags_url":"https://api.github.com/repos/RostakaGmfun/kaa/tags","blobs_url":"https://api.github.com/repos/RostakaGmfun/kaa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RostakaGmfun/kaa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RostakaGmfun/kaa/git/refs{/sha}","trees_url":"https://api.github.com/repos/RostakaGmfun/kaa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RostakaGmfun/kaa/statuses/{sha}","languages_url":"https://api.github.com/repos/RostakaGmfun/kaa/languages","stargazers_url":"https://api.github.com/repos/RostakaGmfun/kaa/stargazers","contributors_url":"https://api.github.com/repos/RostakaGmfun/kaa/contributors","subscribers_url":"https://api.github.com/repos/RostakaGmfun/kaa/subscribers","subscription_url":"https://api.github.com/repos/RostakaGmfun/kaa/subscription","commits_url":"https://api.github.com/repos/RostakaGmfun/kaa/commits{/sha}","git_commits_url":"https://api.github.com/repos/RostakaGmfun/kaa/git/commits{/sha}","comments_url":"https://api.github.com/repos/RostakaGmfun/kaa/comments{/number}","issue_comment_url":"https://api.github.com/repos/RostakaGmfun/kaa/issues/comments{/number}","contents_url":"https://api.github.com/repos/RostakaGmfun/kaa/contents/{+path}","compare_url":"https://api.github.com/repos/RostakaGmfun/kaa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RostakaGmfun/kaa/merges","archive_url":"https://api.github.com/repos/RostakaGmfun/kaa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RostakaGmfun/kaa/downloads","issues_url":"https://api.github.com/repos/RostakaGmfun/kaa/issues{/number}","pulls_url":"https://api.github.com/repos/RostakaGmfun/kaa/pulls{/number}","milestones_url":"https://api.github.com/repos/RostakaGmfun/kaa/milestones{/number}","notifications_url":"https://api.github.com/repos/RostakaGmfun/kaa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RostakaGmfun/kaa/labels{/name}","releases_url":"https://api.github.com/repos/RostakaGmfun/kaa/releases{/id}","deployments_url":"https://api.github.com/repos/RostakaGmfun/kaa/deployments","created_at":"2016-04-01T15:28:29Z","updated_at":"2016-04-01T15:28:38Z","pushed_at":"2016-06-15T14:16:57Z","git_url":"git://github.com/RostakaGmfun/kaa.git","ssh_url":"git@github.com:RostakaGmfun/kaa.git","clone_url":"https://github.com/RostakaGmfun/kaa.git","svn_url":"https://github.com/RostakaGmfun/kaa","homepage":"http://www.kaaproject.org","size":125841,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"kaaproject:develop","ref":"develop","sha":"058a67bbd45df30abd6a6c46ac55ccec1110dc1c","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}","deployments_url":"https://api.github.com/repos/kaaproject/kaa/deployments","created_at":"2014-03-17T18:48:31Z","updated_at":"2016-06-15T13:26:37Z","pushed_at":"2016-06-15T16:59:51Z","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":141494,"stargazers_count":290,"watchers_count":290,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":111,"mirror_url":null,"open_issues_count":22,"forks":111,"open_issues":22,"watchers":290,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/753"},"html":{"href":"https://github.com/kaaproject/kaa/pull/753"},"issue":{"href":"https://api.github.com/repos/kaaproject/kaa/issues/753"},"comments":{"href":"https://api.github.com/repos/kaaproject/kaa/issues/753/comments"},"review_comments":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/753/comments"},"review_comment":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kaaproject/kaa/pulls/753/commits"},"statuses":{"href":"https://api.github.com/repos/kaaproject/kaa/statuses/66222d6fa2733426f9d11991891fad947e7a57c9"}}}}
{"actor":{"display_login":"RostakaGmfun"}}