{"action":"created","comment":{"url":"https://api.github.com/repos/ipab-slmc/exotica/pulls/comments/244957547","pull_request_review_id":188947767,"id":244957547,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NDk1NzU0Nw==","diff_hunk":"@@ -1,137 +1,132 @@\n-/*\n- *      Author: Vladimir Ivan\n- *\n- * Copyright (c) 2017, University of Edinburgh\n- * All rights reserved.\n- *\n- * Redistribution and use in source and binary forms, with or without\n- * modification, are permitted provided that the following conditions are met:\n- *\n- *  * Redistributions of source code must retain the above copyright notice,\n- *    this list of conditions and the following disclaimer.\n- *  * Redistributions in binary form must reproduce the above copyright\n- *    notice, this list of conditions and the following disclaimer in the\n- *    documentation and/or other materials provided with the distribution.\n- *  * Neither the name of  nor the names of its contributors may be used to\n- *    endorse or promote products derived from this software without specific\n- *    prior written permission.\n- *\n- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n- * POSSIBILITY OF SUCH DAMAGE.\n- *\n- */\n-\n-#ifndef TIME_INDEXED_PROBLEM_H_\n-#define TIME_INDEXED_PROBLEM_H_\n+//\n+// Copyright (c) 2018, University of Edinburgh\n+// All rights reserved.\n+//\n+// Redistribution and use in source and binary forms, with or without\n+// modification, are permitted provided that the following conditions are met:\n+//\n+//  * Redistributions of source code must retain the above copyright notice,\n+//    this list of conditions and the following disclaimer.\n+//  * Redistributions in binary form must reproduce the above copyright\n+//    notice, this list of conditions and the following disclaimer in the\n+//    documentation and/or other materials provided with the distribution.\n+//  * Neither the name of  nor the names of its contributors may be used to\n+//    endorse or promote products derived from this software without specific\n+//    prior written permission.\n+//\n+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n+// POSSIBILITY OF SUCH DAMAGE.\n+//\n+\n+#ifndef EXOTICA_CORE_TIME_INDEXED_PROBLEM_H_\n+#define EXOTICA_CORE_TIME_INDEXED_PROBLEM_H_\n \n #include <exotica_core/planning_problem.h>\n #include <exotica_core/tasks.h>\n \n-#include <exotica_core/TimeIndexedProblemInitializer.h>\n+#include <exotica_core/time_indexed_problem_initializer.h>\n \n namespace exotica\n {\n-/**\n-   * \\brief Arbitrarily constrained time-indexed problem.\n-   */\n class TimeIndexedProblem : public PlanningProblem, public Instantiable<TimeIndexedProblemInitializer>\n {\n public:\n     TimeIndexedProblem();\n     virtual ~TimeIndexedProblem();\n-    virtual void Instantiate(TimeIndexedProblemInitializer& init);\n-    double getDuration();\n+    void Instantiate(TimeIndexedProblemInitializer& init) override;\n+    double GetDuration();\n     void Update(Eigen::VectorXdRefConst x, int t);\n-    bool isValid();\n-    std::vector<Eigen::VectorXd> getInitialTrajectory();\n-    void setInitialTrajectory(const std::vector<Eigen::VectorXd>& q_init_in);\n-    virtual void preupdate();\n-    void setGoal(const std::string& task_name, Eigen::VectorXdRefConst goal, int t = 0);\n-    void setRho(const std::string& task_name, const double rho, int t = 0);\n-    Eigen::VectorXd getGoal(const std::string& task_name, int t = 0);\n-    double getRho(const std::string& task_name, int t = 0);\n-    void setGoalEQ(const std::string& task_name, Eigen::VectorXdRefConst goal, int t = 0);\n-    void setRhoEQ(const std::string& task_name, const double rho, int t = 0);\n-    Eigen::VectorXd getGoalEQ(const std::string& task_name, int t = 0);\n-    double getRhoEQ(const std::string& task_name, int t = 0);\n-    void setGoalNEQ(const std::string& task_name, Eigen::VectorXdRefConst goal, int t = 0);\n-    void setRhoNEQ(const std::string& task_name, const double rho, int t = 0);\n-    Eigen::VectorXd getGoalNEQ(const std::string& task_name, int t = 0);\n-    double getRhoNEQ(const std::string& task_name, int t = 0);\n-    Eigen::MatrixXd getBounds() const;\n-\n-    int getT() const { return T; }\n-    void setT(const int& T_in);\n-\n-    double getTau() const { return tau; }\n-    void setTau(const double& tau_in);\n-\n-    double getScalarTaskCost(int t);\n-    Eigen::VectorXd getScalarTaskJacobian(int t);\n-    double getScalarTransitionCost(int t);\n-    Eigen::VectorXd getScalarTransitionJacobian(int t);\n-\n-    Eigen::VectorXd getEquality(int t);\n-    Eigen::MatrixXd getEqualityJacobian(int t);\n-    Eigen::VectorXd getInequality(int t);\n-    Eigen::MatrixXd getInequalityJacobian(int t);\n-\n+    bool IsValid() override;\n+    std::vector<Eigen::VectorXd> GetInitialTrajectory();\n+    void SetInitialTrajectory(const std::vector<Eigen::VectorXd>& q_init_in);\n+    void PreUpdate() override;\n+    void SetGoal(const std::string& task_name, Eigen::VectorXdRefConst goal, int t = 0);\n+    void SetRho(const std::string& task_name, const double rho, int t = 0);\n+    Eigen::VectorXd GetGoal(const std::string& task_name, int t = 0);\n+    double GetRho(const std::string& task_name, int t = 0);\n+    void SetGoalEQ(const std::string& task_name, Eigen::VectorXdRefConst goal, int t = 0);\n+    void SetRhoEQ(const std::string& task_name, const double rho, int t = 0);\n+    Eigen::VectorXd GetGoalEQ(const std::string& task_name, int t = 0);\n+    double GetRhoEQ(const std::string& task_name, int t = 0);\n+    void SetGoalNEQ(const std::string& task_name, Eigen::VectorXdRefConst goal, int t = 0);\n+    void SetRhoNEQ(const std::string& task_name, const double rho, int t = 0);\n+    Eigen::VectorXd GetGoalNEQ(const std::string& task_name, int t = 0);\n+    double GetRhoNEQ(const std::string& task_name, int t = 0);\n+    Eigen::MatrixXd GetBounds() const;\n+\n+    int GetT() const { return T_; }\n+    void SetT(const int& T_in);\n+\n+    double GetTau() const { return tau_; }\n+    void SetTau(const double& tau_in);\n+\n+    double GetScalarTaskCost(int t);\n+    Eigen::VectorXd GetScalarTaskJacobian(int t);\n+    double GetScalarTransitionCost(int t);\n+    Eigen::VectorXd GetScalarTransitionJacobian(int t);\n+\n+    Eigen::VectorXd GetEquality(int t);\n+    Eigen::MatrixXd GetEqualityJacobian(int t);\n+    Eigen::VectorXd GetInequality(int t);\n+    Eigen::MatrixXd GetInequalityJacobian(int t);\n+\n+    double GetJointVelocityLimit() { return q_dot_max_; }\n+    void SetJointVelocityLimit(const double& qdot_max_in)\n+    {\n+        q_dot_max_ = qdot_max_in;\n+        xxdiff_max_ = q_dot_max_ * tau_;\n+    }\n+    double GetXdiffMax() { return xxdiff_max_; }\n     double ct;  //!< Normalisation of scalar cost and Jacobian over trajectory length\n-    TimeIndexedTask Cost;\n-    TimeIndexedTask Inequality;\n-    TimeIndexedTask Equality;\n+    TimeIndexedTask cost;\n+    TimeIndexedTask inequality;\n+    TimeIndexedTask equality;\n \n-    TaskSpaceVector CostPhi;\n-    TaskSpaceVector InequalityPhi;\n-    TaskSpaceVector EqualityPhi;\n+    TaskSpaceVector cost_phi;\n+    TaskSpaceVector inequality_phi;","path":"exotica_core/include/exotica_core/problems/time_indexed_problem.h","position":175,"original_position":175,"commit_id":"deffa0c7b81f8fdc7f8f812e4d5d71389f03f1c8","original_commit_id":"deffa0c7b81f8fdc7f8f812e4d5d71389f03f1c8","user":{"login":"wxmerkt","id":1664508,"node_id":"MDQ6VXNlcjE2NjQ1MDg=","avatar_url":"https://avatars2.githubusercontent.com/u/1664508?v=4","gravatar_id":"","url":"https://api.github.com/users/wxmerkt","html_url":"https://github.com/wxmerkt","followers_url":"https://api.github.com/users/wxmerkt/followers","following_url":"https://api.github.com/users/wxmerkt/following{/other_user}","gists_url":"https://api.github.com/users/wxmerkt/gists{/gist_id}","starred_url":"https://api.github.com/users/wxmerkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wxmerkt/subscriptions","organizations_url":"https://api.github.com/users/wxmerkt/orgs","repos_url":"https://api.github.com/users/wxmerkt/repos","events_url":"https://api.github.com/users/wxmerkt/events{/privacy}","received_events_url":"https://api.github.com/users/wxmerkt/received_events","type":"User","site_admin":false},"body":"As above","created_at":"2019-01-03T10:24:02Z","updated_at":"2019-01-03T10:39:27Z","html_url":"https://github.com/ipab-slmc/exotica/pull/475#discussion_r244957547","pull_request_url":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/ipab-slmc/exotica/pulls/comments/244957547"},"html":{"href":"https://github.com/ipab-slmc/exotica/pull/475#discussion_r244957547"},"pull_request":{"href":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475"}}},"pull_request":{"url":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475","id":241646363,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQxNjQ2MzYz","html_url":"https://github.com/ipab-slmc/exotica/pull/475","diff_url":"https://github.com/ipab-slmc/exotica/pull/475.diff","patch_url":"https://github.com/ipab-slmc/exotica/pull/475.patch","issue_url":"https://api.github.com/repos/ipab-slmc/exotica/issues/475","number":475,"state":"open","locked":false,"title":"Core renaming","user":{"login":"VladimirIvan","id":4905049,"node_id":"MDQ6VXNlcjQ5MDUwNDk=","avatar_url":"https://avatars0.githubusercontent.com/u/4905049?v=4","gravatar_id":"","url":"https://api.github.com/users/VladimirIvan","html_url":"https://github.com/VladimirIvan","followers_url":"https://api.github.com/users/VladimirIvan/followers","following_url":"https://api.github.com/users/VladimirIvan/following{/other_user}","gists_url":"https://api.github.com/users/VladimirIvan/gists{/gist_id}","starred_url":"https://api.github.com/users/VladimirIvan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VladimirIvan/subscriptions","organizations_url":"https://api.github.com/users/VladimirIvan/orgs","repos_url":"https://api.github.com/users/VladimirIvan/repos","events_url":"https://api.github.com/users/VladimirIvan/events{/privacy}","received_events_url":"https://api.github.com/users/VladimirIvan/received_events","type":"User","site_admin":false},"body":"- Updaed license text.\r\n- Fixed header guards (`PACKAGE_NAME_CLASS_NAME_H`).\r\n- Put `KinematicElement` and `Printable` into `exotica` namespace.\r\n- Changed comments to `//` and doxygen comments to `///`.\r\n- Updated function and private member names names.\r\n- Changed initializer naming:\r\n    - `file_name.in` and generated `file_name.h` have will match the `AddInitializer(file_name)`.\r\n    - The class name no longer has to match the file name. Specify the class name using `class ClassName` inside the `*.in` file. The class name has to match the class that is being initialized (same as before).\r\n    - `include` and `extend` now have to use the file name: `extend <package_name/file_name>`.\r\n    - All member variables of the initializer (in c++) are now lower_case_with_underscores. The names are converted from CamelCased names at compile time. XML and Python dictionaries use the camel cased names.\r\n - A few member names use incorrect convention but only when they derive from a parent class outside of EXOTica.\r\n - Public members like `J`, `JN`, `startJ`, `H` have been renamed to `jacobian`, `length_jacobian`, `start_jacobian`, `hessian`. Private math based symbols were left as they were (`W`, `b`, `B`, ...).\r\n - Tested, checked all examples, tested with SNOPT.\r\n\r\nThis is a big one. I tried to split the initializers from the rest but they affect 80% of the files so you'd have to review the same code twice. I hope this will be faster.","created_at":"2019-01-01T18:49:53Z","updated_at":"2019-01-03T10:39:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7ef20d2d4f245129855f118db657366886dd2b59","assignee":null,"assignees":[],"requested_reviewers":[{"login":"cmower","id":8171456,"node_id":"MDQ6VXNlcjgxNzE0NTY=","avatar_url":"https://avatars3.githubusercontent.com/u/8171456?v=4","gravatar_id":"","url":"https://api.github.com/users/cmower","html_url":"https://github.com/cmower","followers_url":"https://api.github.com/users/cmower/followers","following_url":"https://api.github.com/users/cmower/following{/other_user}","gists_url":"https://api.github.com/users/cmower/gists{/gist_id}","starred_url":"https://api.github.com/users/cmower/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cmower/subscriptions","organizations_url":"https://api.github.com/users/cmower/orgs","repos_url":"https://api.github.com/users/cmower/repos","events_url":"https://api.github.com/users/cmower/events{/privacy}","received_events_url":"https://api.github.com/users/cmower/received_events","type":"User","site_admin":false},{"login":"christian-rauch","id":8226248,"node_id":"MDQ6VXNlcjgyMjYyNDg=","avatar_url":"https://avatars0.githubusercontent.com/u/8226248?v=4","gravatar_id":"","url":"https://api.github.com/users/christian-rauch","html_url":"https://github.com/christian-rauch","followers_url":"https://api.github.com/users/christian-rauch/followers","following_url":"https://api.github.com/users/christian-rauch/following{/other_user}","gists_url":"https://api.github.com/users/christian-rauch/gists{/gist_id}","starred_url":"https://api.github.com/users/christian-rauch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/christian-rauch/subscriptions","organizations_url":"https://api.github.com/users/christian-rauch/orgs","repos_url":"https://api.github.com/users/christian-rauch/repos","events_url":"https://api.github.com/users/christian-rauch/events{/privacy}","received_events_url":"https://api.github.com/users/christian-rauch/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475/commits","review_comments_url":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475/comments","review_comment_url":"https://api.github.com/repos/ipab-slmc/exotica/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ipab-slmc/exotica/issues/475/comments","statuses_url":"https://api.github.com/repos/ipab-slmc/exotica/statuses/deffa0c7b81f8fdc7f8f812e4d5d71389f03f1c8","head":{"label":"ipab-slmc:vi-core-rename","ref":"vi-core-rename","sha":"deffa0c7b81f8fdc7f8f812e4d5d71389f03f1c8","user":{"login":"ipab-slmc","id":10714328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNzE0MzI4","avatar_url":"https://avatars0.githubusercontent.com/u/10714328?v=4","gravatar_id":"","url":"https://api.github.com/users/ipab-slmc","html_url":"https://github.com/ipab-slmc","followers_url":"https://api.github.com/users/ipab-slmc/followers","following_url":"https://api.github.com/users/ipab-slmc/following{/other_user}","gists_url":"https://api.github.com/users/ipab-slmc/gists{/gist_id}","starred_url":"https://api.github.com/users/ipab-slmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipab-slmc/subscriptions","organizations_url":"https://api.github.com/users/ipab-slmc/orgs","repos_url":"https://api.github.com/users/ipab-slmc/repos","events_url":"https://api.github.com/users/ipab-slmc/events{/privacy}","received_events_url":"https://api.github.com/users/ipab-slmc/received_events","type":"Organization","site_admin":false},"repo":{"id":44607894,"node_id":"MDEwOlJlcG9zaXRvcnk0NDYwNzg5NA==","name":"exotica","full_name":"ipab-slmc/exotica","private":false,"owner":{"login":"ipab-slmc","id":10714328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNzE0MzI4","avatar_url":"https://avatars0.githubusercontent.com/u/10714328?v=4","gravatar_id":"","url":"https://api.github.com/users/ipab-slmc","html_url":"https://github.com/ipab-slmc","followers_url":"https://api.github.com/users/ipab-slmc/followers","following_url":"https://api.github.com/users/ipab-slmc/following{/other_user}","gists_url":"https://api.github.com/users/ipab-slmc/gists{/gist_id}","starred_url":"https://api.github.com/users/ipab-slmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipab-slmc/subscriptions","organizations_url":"https://api.github.com/users/ipab-slmc/orgs","repos_url":"https://api.github.com/users/ipab-slmc/repos","events_url":"https://api.github.com/users/ipab-slmc/events{/privacy}","received_events_url":"https://api.github.com/users/ipab-slmc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ipab-slmc/exotica","description":"Extensible Optimization Framework","fork":false,"url":"https://api.github.com/repos/ipab-slmc/exotica","forks_url":"https://api.github.com/repos/ipab-slmc/exotica/forks","keys_url":"https://api.github.com/repos/ipab-slmc/exotica/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ipab-slmc/exotica/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ipab-slmc/exotica/teams","hooks_url":"https://api.github.com/repos/ipab-slmc/exotica/hooks","issue_events_url":"https://api.github.com/repos/ipab-slmc/exotica/issues/events{/number}","events_url":"https://api.github.com/repos/ipab-slmc/exotica/events","assignees_url":"https://api.github.com/repos/ipab-slmc/exotica/assignees{/user}","branches_url":"https://api.github.com/repos/ipab-slmc/exotica/branches{/branch}","tags_url":"https://api.github.com/repos/ipab-slmc/exotica/tags","blobs_url":"https://api.github.com/repos/ipab-slmc/exotica/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ipab-slmc/exotica/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ipab-slmc/exotica/git/refs{/sha}","trees_url":"https://api.github.com/repos/ipab-slmc/exotica/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ipab-slmc/exotica/statuses/{sha}","languages_url":"https://api.github.com/repos/ipab-slmc/exotica/languages","stargazers_url":"https://api.github.com/repos/ipab-slmc/exotica/stargazers","contributors_url":"https://api.github.com/repos/ipab-slmc/exotica/contributors","subscribers_url":"https://api.github.com/repos/ipab-slmc/exotica/subscribers","subscription_url":"https://api.github.com/repos/ipab-slmc/exotica/subscription","commits_url":"https://api.github.com/repos/ipab-slmc/exotica/commits{/sha}","git_commits_url":"https://api.github.com/repos/ipab-slmc/exotica/git/commits{/sha}","comments_url":"https://api.github.com/repos/ipab-slmc/exotica/comments{/number}","issue_comment_url":"https://api.github.com/repos/ipab-slmc/exotica/issues/comments{/number}","contents_url":"https://api.github.com/repos/ipab-slmc/exotica/contents/{+path}","compare_url":"https://api.github.com/repos/ipab-slmc/exotica/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ipab-slmc/exotica/merges","archive_url":"https://api.github.com/repos/ipab-slmc/exotica/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ipab-slmc/exotica/downloads","issues_url":"https://api.github.com/repos/ipab-slmc/exotica/issues{/number}","pulls_url":"https://api.github.com/repos/ipab-slmc/exotica/pulls{/number}","milestones_url":"https://api.github.com/repos/ipab-slmc/exotica/milestones{/number}","notifications_url":"https://api.github.com/repos/ipab-slmc/exotica/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ipab-slmc/exotica/labels{/name}","releases_url":"https://api.github.com/repos/ipab-slmc/exotica/releases{/id}","deployments_url":"https://api.github.com/repos/ipab-slmc/exotica/deployments","created_at":"2015-10-20T13:24:57Z","updated_at":"2019-01-01T16:14:28Z","pushed_at":"2019-01-03T00:40:55Z","git_url":"git://github.com/ipab-slmc/exotica.git","ssh_url":"git@github.com:ipab-slmc/exotica.git","clone_url":"https://github.com/ipab-slmc/exotica.git","svn_url":"https://github.com/ipab-slmc/exotica","homepage":"http://wcms.inf.ed.ac.uk/ipab/slmc/research/EXOTica","size":11510,"stargazers_count":13,"watchers_count":13,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":27,"mirror_url":null,"archived":false,"open_issues_count":32,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":27,"open_issues":32,"watchers":13,"default_branch":"master"}},"base":{"label":"ipab-slmc:master","ref":"master","sha":"bb96e3a8338ef64fe7243c215457ac036f9d57ec","user":{"login":"ipab-slmc","id":10714328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNzE0MzI4","avatar_url":"https://avatars0.githubusercontent.com/u/10714328?v=4","gravatar_id":"","url":"https://api.github.com/users/ipab-slmc","html_url":"https://github.com/ipab-slmc","followers_url":"https://api.github.com/users/ipab-slmc/followers","following_url":"https://api.github.com/users/ipab-slmc/following{/other_user}","gists_url":"https://api.github.com/users/ipab-slmc/gists{/gist_id}","starred_url":"https://api.github.com/users/ipab-slmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipab-slmc/subscriptions","organizations_url":"https://api.github.com/users/ipab-slmc/orgs","repos_url":"https://api.github.com/users/ipab-slmc/repos","events_url":"https://api.github.com/users/ipab-slmc/events{/privacy}","received_events_url":"https://api.github.com/users/ipab-slmc/received_events","type":"Organization","site_admin":false},"repo":{"id":44607894,"node_id":"MDEwOlJlcG9zaXRvcnk0NDYwNzg5NA==","name":"exotica","full_name":"ipab-slmc/exotica","private":false,"owner":{"login":"ipab-slmc","id":10714328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNzE0MzI4","avatar_url":"https://avatars0.githubusercontent.com/u/10714328?v=4","gravatar_id":"","url":"https://api.github.com/users/ipab-slmc","html_url":"https://github.com/ipab-slmc","followers_url":"https://api.github.com/users/ipab-slmc/followers","following_url":"https://api.github.com/users/ipab-slmc/following{/other_user}","gists_url":"https://api.github.com/users/ipab-slmc/gists{/gist_id}","starred_url":"https://api.github.com/users/ipab-slmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipab-slmc/subscriptions","organizations_url":"https://api.github.com/users/ipab-slmc/orgs","repos_url":"https://api.github.com/users/ipab-slmc/repos","events_url":"https://api.github.com/users/ipab-slmc/events{/privacy}","received_events_url":"https://api.github.com/users/ipab-slmc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ipab-slmc/exotica","description":"Extensible Optimization Framework","fork":false,"url":"https://api.github.com/repos/ipab-slmc/exotica","forks_url":"https://api.github.com/repos/ipab-slmc/exotica/forks","keys_url":"https://api.github.com/repos/ipab-slmc/exotica/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ipab-slmc/exotica/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ipab-slmc/exotica/teams","hooks_url":"https://api.github.com/repos/ipab-slmc/exotica/hooks","issue_events_url":"https://api.github.com/repos/ipab-slmc/exotica/issues/events{/number}","events_url":"https://api.github.com/repos/ipab-slmc/exotica/events","assignees_url":"https://api.github.com/repos/ipab-slmc/exotica/assignees{/user}","branches_url":"https://api.github.com/repos/ipab-slmc/exotica/branches{/branch}","tags_url":"https://api.github.com/repos/ipab-slmc/exotica/tags","blobs_url":"https://api.github.com/repos/ipab-slmc/exotica/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ipab-slmc/exotica/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ipab-slmc/exotica/git/refs{/sha}","trees_url":"https://api.github.com/repos/ipab-slmc/exotica/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ipab-slmc/exotica/statuses/{sha}","languages_url":"https://api.github.com/repos/ipab-slmc/exotica/languages","stargazers_url":"https://api.github.com/repos/ipab-slmc/exotica/stargazers","contributors_url":"https://api.github.com/repos/ipab-slmc/exotica/contributors","subscribers_url":"https://api.github.com/repos/ipab-slmc/exotica/subscribers","subscription_url":"https://api.github.com/repos/ipab-slmc/exotica/subscription","commits_url":"https://api.github.com/repos/ipab-slmc/exotica/commits{/sha}","git_commits_url":"https://api.github.com/repos/ipab-slmc/exotica/git/commits{/sha}","comments_url":"https://api.github.com/repos/ipab-slmc/exotica/comments{/number}","issue_comment_url":"https://api.github.com/repos/ipab-slmc/exotica/issues/comments{/number}","contents_url":"https://api.github.com/repos/ipab-slmc/exotica/contents/{+path}","compare_url":"https://api.github.com/repos/ipab-slmc/exotica/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ipab-slmc/exotica/merges","archive_url":"https://api.github.com/repos/ipab-slmc/exotica/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ipab-slmc/exotica/downloads","issues_url":"https://api.github.com/repos/ipab-slmc/exotica/issues{/number}","pulls_url":"https://api.github.com/repos/ipab-slmc/exotica/pulls{/number}","milestones_url":"https://api.github.com/repos/ipab-slmc/exotica/milestones{/number}","notifications_url":"https://api.github.com/repos/ipab-slmc/exotica/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ipab-slmc/exotica/labels{/name}","releases_url":"https://api.github.com/repos/ipab-slmc/exotica/releases{/id}","deployments_url":"https://api.github.com/repos/ipab-slmc/exotica/deployments","created_at":"2015-10-20T13:24:57Z","updated_at":"2019-01-01T16:14:28Z","pushed_at":"2019-01-03T00:40:55Z","git_url":"git://github.com/ipab-slmc/exotica.git","ssh_url":"git@github.com:ipab-slmc/exotica.git","clone_url":"https://github.com/ipab-slmc/exotica.git","svn_url":"https://github.com/ipab-slmc/exotica","homepage":"http://wcms.inf.ed.ac.uk/ipab/slmc/research/EXOTica","size":11510,"stargazers_count":13,"watchers_count":13,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":27,"mirror_url":null,"archived":false,"open_issues_count":32,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":27,"open_issues":32,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475"},"html":{"href":"https://github.com/ipab-slmc/exotica/pull/475"},"issue":{"href":"https://api.github.com/repos/ipab-slmc/exotica/issues/475"},"comments":{"href":"https://api.github.com/repos/ipab-slmc/exotica/issues/475/comments"},"review_comments":{"href":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475/comments"},"review_comment":{"href":"https://api.github.com/repos/ipab-slmc/exotica/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ipab-slmc/exotica/pulls/475/commits"},"statuses":{"href":"https://api.github.com/repos/ipab-slmc/exotica/statuses/deffa0c7b81f8fdc7f8f812e4d5d71389f03f1c8"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"wxmerkt"}}