{"action":"created","comment":{"url":"https://api.github.com/repos/CanalTP/navitia/pulls/comments/41002784","id":41002784,"diff_hunk":"@@ -312,104 +309,30 @@ void Data::complete(){\n \n void Data::clean() {\n     auto logger = log4cplus::Logger::getInstance(\"log\");\n-\n     std::set<std::string> toErase;\n+    int erase_emptiness = 0, erase_no_circulation = 0, erase_invalid_stoptimes = 0;\n \n-    typedef std::vector<ed::types::VehicleJourney *> vjs;\n-    std::unordered_map<std::string, vjs> journey_pattern_vj;\n-    for(auto it = vehicle_journeys.begin(); it != vehicle_journeys.end(); ++it) {\n-        journey_pattern_vj[(*it)->journey_pattern->uri].push_back((*it));\n-    }\n-\n-    int erase_overlap = 0, erase_emptiness = 0, erase_no_circulation = 0, erase_invalid_stoptimes = 0;\n-\n-    for(auto it1 = journey_pattern_vj.begin(); it1 != journey_pattern_vj.end(); ++it1) {\n-\n-        for(auto vj1 = it1->second.begin(); vj1 != it1->second.end(); ++vj1) {\n-            if (vj_to_erase.count(*vj1)) {\n-                toErase.insert((*vj1)->uri);\n-                continue;\n-            }\n-            if((*vj1)->stop_time_list.empty()) {\n-                toErase.insert((*vj1)->uri);\n-                ++erase_emptiness;\n-                continue;\n-            }\n-            if((*vj1)->validity_pattern->days.none() && (*vj1)->adapted_validity_pattern->days.none()) {\n-                toErase.insert((*vj1)->uri);\n-                ++erase_no_circulation;\n-                continue;\n-            }\n-            for(auto vj2 = (vj1+1); vj2 != it1->second.end(); ++vj2) {\n-                if(((*vj1)->validity_pattern->days & (*vj2)->validity_pattern->days).any()  &&\n-                        (*vj1)->stop_time_list.size() > 0 && (*vj2)->stop_time_list.size() > 0) {\n-                    ed::types::VehicleJourney *vjs1, *vjs2;\n-                    if((*vj1)->stop_time_list.front()->departure_time <= (*vj2)->stop_time_list.front()->departure_time) {\n-                        vjs1 = *vj1;\n-                        vjs2 = *vj2;\n-                    }\n-                    else {\n-                        vjs1 = *vj2;\n-                        vjs2 = *vj1;\n-                    }\n-\n-                    using ed::types::StopTime;\n-\n-                    const bool same_itl = boost::equal((*vj1)->stop_time_list, (*vj2)->stop_time_list,\n-                                                         [](const StopTime* st1, const StopTime* st2) {\n-                                                             return st1->local_traffic_zone == st2->local_traffic_zone;\n-                                                         });\n-                    if (!same_itl){\n-                        LOG4CPLUS_WARN(logger, \"Data::clean(): are equal with different local trafic zone: \"\n-                                       << (*vj1)->uri << \" and \" << (*vj2)->uri);\n-                        continue;\n-\n-                    }\n-\n-                    const bool are_equal =\n-                        (*vj1)->validity_pattern->days != (*vj2)->validity_pattern->days\n-                        && boost::equal((*vj1)->stop_time_list, (*vj2)->stop_time_list,\n-                                     [](const StopTime* st1, const StopTime* st2) {\n-                                         return st1->departure_time == st2->departure_time\n-                                         && st1->arrival_time == st2->arrival_time;\n-                                     });\n-                    if (are_equal) {\n-                        LOG4CPLUS_WARN(logger, \"Data::clean(): are equal with different overlapping vp: \"\n-                                       << (*vj1)->uri << \" and \" << (*vj2)->uri);\n-                        continue;\n-                    }\n-\n-                    for(auto rp = (*vj1)->journey_pattern->journey_pattern_point_list.begin(); rp != (*vj1)->journey_pattern->journey_pattern_point_list.end();++rp) {\n-                        if(vjs1->stop_time_list.at((*rp)->order)->departure_time >= vjs2->stop_time_list.at((*rp)->order)->departure_time ||\n-                           vjs1->stop_time_list.at((*rp)->order)->arrival_time >= vjs2->stop_time_list.at((*rp)->order)->arrival_time) {\n-                            toErase.insert((*vj2)->uri);\n-                            LOG4CPLUS_WARN(logger, \"Data::clean(): overlap: \"\n-                                           << (*vj1)->uri << \":\"\n-                                           << (*vj1)->stop_time_list.front()->departure_time << \"->\"\n-                                           << (*vj1)->stop_time_list.at((*rp)->order)->departure_time\n-                                           << \"->\"\n-                                           << (*vj1)->stop_time_list.at((*rp)->order)->arrival_time\n-                                           << \" and \"\n-                                           << (*vj2)->uri << \":\"\n-                                           << (*vj2)->stop_time_list.front()->departure_time << \"->\"\n-                                           << (*vj2)->stop_time_list.at((*rp)->order)->departure_time\n-                                           << \"->\"\n-                                           << (*vj2)->stop_time_list.at((*rp)->order)->arrival_time\n-                                );\n-\n-                            ++erase_overlap;\n-                            break;\n-                        }\n-                    }\n-                }\n-            }\n-            // we check that no stop times are negatives\n-            for (const auto st: (*vj1)->stop_time_list) {\n-                if (st->departure_time < 0 || st->arrival_time < 0) {\n-                    toErase.insert((*vj1)->uri);\n-                    ++erase_invalid_stoptimes;\n-                    break;\n-                }\n+    for (auto* vj: vehicle_journeys) {\n+        if (vj_to_erase.count(vj)) {","path":"source/ed/data.cpp","position":155,"original_position":155,"commit_id":"7e419a32db01116cd18973ccfa493e6a46285cb5","original_commit_id":"e397b710165062d2329316d829992478c96af503","user":{"login":"TeXitoi","id":5787066,"avatar_url":"https://avatars.githubusercontent.com/u/5787066?v=3","gravatar_id":"","url":"https://api.github.com/users/TeXitoi","html_url":"https://github.com/TeXitoi","followers_url":"https://api.github.com/users/TeXitoi/followers","following_url":"https://api.github.com/users/TeXitoi/following{/other_user}","gists_url":"https://api.github.com/users/TeXitoi/gists{/gist_id}","starred_url":"https://api.github.com/users/TeXitoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TeXitoi/subscriptions","organizations_url":"https://api.github.com/users/TeXitoi/orgs","repos_url":"https://api.github.com/users/TeXitoi/repos","events_url":"https://api.github.com/users/TeXitoi/events{/privacy}","received_events_url":"https://api.github.com/users/TeXitoi/received_events","type":"User","site_admin":false},"body":"set::count is the way to check if an object is in a set.","created_at":"2015-10-02T09:02:29Z","updated_at":"2015-10-02T09:02:29Z","html_url":"https://github.com/CanalTP/navitia/pull/1171#discussion_r41002784","pull_request_url":"https://api.github.com/repos/CanalTP/navitia/pulls/1171","_links":{"self":{"href":"https://api.github.com/repos/CanalTP/navitia/pulls/comments/41002784"},"html":{"href":"https://github.com/CanalTP/navitia/pull/1171#discussion_r41002784"},"pull_request":{"href":"https://api.github.com/repos/CanalTP/navitia/pulls/1171"}}},"pull_request":{"url":"https://api.github.com/repos/CanalTP/navitia/pulls/1171","id":45051127,"html_url":"https://github.com/CanalTP/navitia/pull/1171","diff_url":"https://github.com/CanalTP/navitia/pull/1171.diff","patch_url":"https://github.com/CanalTP/navitia/pull/1171.patch","issue_url":"https://api.github.com/repos/CanalTP/navitia/issues/1171","number":1171,"state":"open","locked":false,"title":"all: raptor manage its journey patterns","user":{"login":"TeXitoi","id":5787066,"avatar_url":"https://avatars.githubusercontent.com/u/5787066?v=3","gravatar_id":"","url":"https://api.github.com/users/TeXitoi","html_url":"https://github.com/TeXitoi","followers_url":"https://api.github.com/users/TeXitoi/followers","following_url":"https://api.github.com/users/TeXitoi/following{/other_user}","gists_url":"https://api.github.com/users/TeXitoi/gists{/gist_id}","starred_url":"https://api.github.com/users/TeXitoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TeXitoi/subscriptions","organizations_url":"https://api.github.com/users/TeXitoi/orgs","repos_url":"https://api.github.com/users/TeXitoi/repos","events_url":"https://api.github.com/users/TeXitoi/events{/privacy}","received_events_url":"https://api.github.com/users/TeXitoi/received_events","type":"User","site_admin":false},"body":"A big refactor that'll help creating vj.\r\n\r\n\r\nBenchmark:\r\n\r\nTL;DR\r\nData cleaning much shorter.\r\nData completion much shorter on stif (no jp creation) much longer on fr-pdl (shapes in vj, not in jp anymore).\r\ned2nav file reading longer (shapes too).\r\nBit more jp/vj/st (not filtering when overlapping, creating new jp instead).\r\nA bit better on journeys, a bit worse on data.nav load.\r\nSome contained variations on pt_ref (the new pt_ref is more compact in RAM for jp, and no more link between phys_mode and jp).\r\n\r\nDetails\r\nOn stif (from customer)\r\n\r\nItem | new | old | diff | %diff\r\n------|-------|-----|------|--------\r\nmemory (virt/res, Mo) | 2055 / 1791 | 2036 / 1774 | +19 / +17 | +0.93% / +0.96%\r\njourney_patterns | 12261 | 12217 | +44 | +0.36%\r\nvehicle_journeys | 325423 | 325025 | +398 | +0.12%\r\nstop_times | 7361655 | 7357011 | +4644 | +0.06%\r\nbenchmark (algo/load, s) | 65.5+65.6+65.5 / 19.2+18.9+19.4 | 67.1+67.5+67.3 / 16.9+17.2+17.0 | -1.8 / +2.1 | -2.6% / +12.5%\r\nphysical_mode:Bus/stop_areas (median, ms) | 681 | 707 | -26 | -3.6%\r\nphysical_mode:Bus/routes (median, ms) | 60 | 57 | +3 | +5.2%\r\ns_a:SA:8775860/lines (median, ms) | 66 | 65 | +1 | -1.5%\r\nnetwork:442/stop_points (median, ms) | 23 | 25 | -2 | -8%\r\ns_a:SA:8775860/stop_schedules (median, ms, x50) | 4110 | 4113 | -3 | -0.07%\r\ns_a:SA:59261/stop_schedules (median, ms) | 188 | 186 | +2 | +1.1%\r\nline:100100057:57/route_schedules | 1593 | 1590 | +3 | +0.2%\r\n\r\nItem | new | old\r\n------|-------|-----\r\nfusio2ed (ms) | lecture_fichiers:138778 completion_données:1350 netoyage_données:372 tri_données:5354 Destination_routes:24 | lecture_fichiers:129311 completion_données:29570 netoyage_données:6444 trie_données:6060 Destination_routes:10\r\ned2nav (ms) | Building_admins:57898 Sorting_data:166 Building_autocomplete:75802 File_reading:112159 | Building_admins: 58052 Sorting_data:540 Building_autocomplete:77877 File_reading:94142\r\n\r\nOn fr-pdl (from prod)\r\n\r\nItem | new | old\r\n------|-------|-----\r\nmemory (virt/res, Mo) | 1576 / 1321 | 1578 / 1321\r\njourney_patterns | 11731 | 11529\r\nvehicle_journeys | 181886 | 180897\r\nstop_times | 3512142 | 3490565\r\nbenchmark (algo/load, s) | 33.2+33.2+33.1 / 13.3+13.5+13.5 | 35+35.1+35.1 / 12.6+12.6+12.8\r\nfusio2ed (ms) | lecture_fichiers:39679 completion_données:69511 netoyage_données:152 tri_données:2101 Destination_routes:18 | lecture_fichiers:39456 completion_données:8106 netoyage_données:2072 tri_données:2057 Destination_routes:9\r\ned2nav (ms) | Building_admins:30051 Sorting_data:89 Building_autocomplete:68606 File_reading:90566 | Building_admins:29651 Sorting_data:251 Building_autocomplete:69386 File_reading:65518","created_at":"2015-09-15T13:48:13Z","updated_at":"2015-10-02T09:02:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"66a8be95bbda0c1062b0dc0edcdfbf20a5f4b8c1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/CanalTP/navitia/pulls/1171/commits","review_comments_url":"https://api.github.com/repos/CanalTP/navitia/pulls/1171/comments","review_comment_url":"https://api.github.com/repos/CanalTP/navitia/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CanalTP/navitia/issues/1171/comments","statuses_url":"https://api.github.com/repos/CanalTP/navitia/statuses/7e419a32db01116cd18973ccfa493e6a46285cb5","head":{"label":"TeXitoi:jp_refactor","ref":"jp_refactor","sha":"7e419a32db01116cd18973ccfa493e6a46285cb5","user":{"login":"TeXitoi","id":5787066,"avatar_url":"https://avatars.githubusercontent.com/u/5787066?v=3","gravatar_id":"","url":"https://api.github.com/users/TeXitoi","html_url":"https://github.com/TeXitoi","followers_url":"https://api.github.com/users/TeXitoi/followers","following_url":"https://api.github.com/users/TeXitoi/following{/other_user}","gists_url":"https://api.github.com/users/TeXitoi/gists{/gist_id}","starred_url":"https://api.github.com/users/TeXitoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TeXitoi/subscriptions","organizations_url":"https://api.github.com/users/TeXitoi/orgs","repos_url":"https://api.github.com/users/TeXitoi/repos","events_url":"https://api.github.com/users/TeXitoi/events{/privacy}","received_events_url":"https://api.github.com/users/TeXitoi/received_events","type":"User","site_admin":false},"repo":{"id":23435249,"name":"navitia","full_name":"TeXitoi/navitia","owner":{"login":"TeXitoi","id":5787066,"avatar_url":"https://avatars.githubusercontent.com/u/5787066?v=3","gravatar_id":"","url":"https://api.github.com/users/TeXitoi","html_url":"https://github.com/TeXitoi","followers_url":"https://api.github.com/users/TeXitoi/followers","following_url":"https://api.github.com/users/TeXitoi/following{/other_user}","gists_url":"https://api.github.com/users/TeXitoi/gists{/gist_id}","starred_url":"https://api.github.com/users/TeXitoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TeXitoi/subscriptions","organizations_url":"https://api.github.com/users/TeXitoi/orgs","repos_url":"https://api.github.com/users/TeXitoi/repos","events_url":"https://api.github.com/users/TeXitoi/events{/privacy}","received_events_url":"https://api.github.com/users/TeXitoi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/TeXitoi/navitia","description":"The REST API to build cool stuff with public transport","fork":true,"url":"https://api.github.com/repos/TeXitoi/navitia","forks_url":"https://api.github.com/repos/TeXitoi/navitia/forks","keys_url":"https://api.github.com/repos/TeXitoi/navitia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TeXitoi/navitia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TeXitoi/navitia/teams","hooks_url":"https://api.github.com/repos/TeXitoi/navitia/hooks","issue_events_url":"https://api.github.com/repos/TeXitoi/navitia/issues/events{/number}","events_url":"https://api.github.com/repos/TeXitoi/navitia/events","assignees_url":"https://api.github.com/repos/TeXitoi/navitia/assignees{/user}","branches_url":"https://api.github.com/repos/TeXitoi/navitia/branches{/branch}","tags_url":"https://api.github.com/repos/TeXitoi/navitia/tags","blobs_url":"https://api.github.com/repos/TeXitoi/navitia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TeXitoi/navitia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TeXitoi/navitia/git/refs{/sha}","trees_url":"https://api.github.com/repos/TeXitoi/navitia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TeXitoi/navitia/statuses/{sha}","languages_url":"https://api.github.com/repos/TeXitoi/navitia/languages","stargazers_url":"https://api.github.com/repos/TeXitoi/navitia/stargazers","contributors_url":"https://api.github.com/repos/TeXitoi/navitia/contributors","subscribers_url":"https://api.github.com/repos/TeXitoi/navitia/subscribers","subscription_url":"https://api.github.com/repos/TeXitoi/navitia/subscription","commits_url":"https://api.github.com/repos/TeXitoi/navitia/commits{/sha}","git_commits_url":"https://api.github.com/repos/TeXitoi/navitia/git/commits{/sha}","comments_url":"https://api.github.com/repos/TeXitoi/navitia/comments{/number}","issue_comment_url":"https://api.github.com/repos/TeXitoi/navitia/issues/comments{/number}","contents_url":"https://api.github.com/repos/TeXitoi/navitia/contents/{+path}","compare_url":"https://api.github.com/repos/TeXitoi/navitia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TeXitoi/navitia/merges","archive_url":"https://api.github.com/repos/TeXitoi/navitia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TeXitoi/navitia/downloads","issues_url":"https://api.github.com/repos/TeXitoi/navitia/issues{/number}","pulls_url":"https://api.github.com/repos/TeXitoi/navitia/pulls{/number}","milestones_url":"https://api.github.com/repos/TeXitoi/navitia/milestones{/number}","notifications_url":"https://api.github.com/repos/TeXitoi/navitia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TeXitoi/navitia/labels{/name}","releases_url":"https://api.github.com/repos/TeXitoi/navitia/releases{/id}","created_at":"2014-08-28T16:35:05Z","updated_at":"2014-09-09T14:32:07Z","pushed_at":"2015-10-02T08:54:03Z","git_url":"git://github.com/TeXitoi/navitia.git","ssh_url":"git@github.com:TeXitoi/navitia.git","clone_url":"https://github.com/TeXitoi/navitia.git","svn_url":"https://github.com/TeXitoi/navitia","homepage":"http://www.navitia.io","size":26507,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"dev"}},"base":{"label":"CanalTP:dev","ref":"dev","sha":"76e4d01f120e8c4ff3d3ad2e0e8e2654cc351526","user":{"login":"CanalTP","id":2743985,"avatar_url":"https://avatars.githubusercontent.com/u/2743985?v=3","gravatar_id":"","url":"https://api.github.com/users/CanalTP","html_url":"https://github.com/CanalTP","followers_url":"https://api.github.com/users/CanalTP/followers","following_url":"https://api.github.com/users/CanalTP/following{/other_user}","gists_url":"https://api.github.com/users/CanalTP/gists{/gist_id}","starred_url":"https://api.github.com/users/CanalTP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanalTP/subscriptions","organizations_url":"https://api.github.com/users/CanalTP/orgs","repos_url":"https://api.github.com/users/CanalTP/repos","events_url":"https://api.github.com/users/CanalTP/events{/privacy}","received_events_url":"https://api.github.com/users/CanalTP/received_events","type":"Organization","site_admin":false},"repo":{"id":10797333,"name":"navitia","full_name":"CanalTP/navitia","owner":{"login":"CanalTP","id":2743985,"avatar_url":"https://avatars.githubusercontent.com/u/2743985?v=3","gravatar_id":"","url":"https://api.github.com/users/CanalTP","html_url":"https://github.com/CanalTP","followers_url":"https://api.github.com/users/CanalTP/followers","following_url":"https://api.github.com/users/CanalTP/following{/other_user}","gists_url":"https://api.github.com/users/CanalTP/gists{/gist_id}","starred_url":"https://api.github.com/users/CanalTP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanalTP/subscriptions","organizations_url":"https://api.github.com/users/CanalTP/orgs","repos_url":"https://api.github.com/users/CanalTP/repos","events_url":"https://api.github.com/users/CanalTP/events{/privacy}","received_events_url":"https://api.github.com/users/CanalTP/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CanalTP/navitia","description":"The REST API to build cool stuff with public transport","fork":false,"url":"https://api.github.com/repos/CanalTP/navitia","forks_url":"https://api.github.com/repos/CanalTP/navitia/forks","keys_url":"https://api.github.com/repos/CanalTP/navitia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CanalTP/navitia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CanalTP/navitia/teams","hooks_url":"https://api.github.com/repos/CanalTP/navitia/hooks","issue_events_url":"https://api.github.com/repos/CanalTP/navitia/issues/events{/number}","events_url":"https://api.github.com/repos/CanalTP/navitia/events","assignees_url":"https://api.github.com/repos/CanalTP/navitia/assignees{/user}","branches_url":"https://api.github.com/repos/CanalTP/navitia/branches{/branch}","tags_url":"https://api.github.com/repos/CanalTP/navitia/tags","blobs_url":"https://api.github.com/repos/CanalTP/navitia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CanalTP/navitia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CanalTP/navitia/git/refs{/sha}","trees_url":"https://api.github.com/repos/CanalTP/navitia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CanalTP/navitia/statuses/{sha}","languages_url":"https://api.github.com/repos/CanalTP/navitia/languages","stargazers_url":"https://api.github.com/repos/CanalTP/navitia/stargazers","contributors_url":"https://api.github.com/repos/CanalTP/navitia/contributors","subscribers_url":"https://api.github.com/repos/CanalTP/navitia/subscribers","subscription_url":"https://api.github.com/repos/CanalTP/navitia/subscription","commits_url":"https://api.github.com/repos/CanalTP/navitia/commits{/sha}","git_commits_url":"https://api.github.com/repos/CanalTP/navitia/git/commits{/sha}","comments_url":"https://api.github.com/repos/CanalTP/navitia/comments{/number}","issue_comment_url":"https://api.github.com/repos/CanalTP/navitia/issues/comments{/number}","contents_url":"https://api.github.com/repos/CanalTP/navitia/contents/{+path}","compare_url":"https://api.github.com/repos/CanalTP/navitia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CanalTP/navitia/merges","archive_url":"https://api.github.com/repos/CanalTP/navitia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CanalTP/navitia/downloads","issues_url":"https://api.github.com/repos/CanalTP/navitia/issues{/number}","pulls_url":"https://api.github.com/repos/CanalTP/navitia/pulls{/number}","milestones_url":"https://api.github.com/repos/CanalTP/navitia/milestones{/number}","notifications_url":"https://api.github.com/repos/CanalTP/navitia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CanalTP/navitia/labels{/name}","releases_url":"https://api.github.com/repos/CanalTP/navitia/releases{/id}","created_at":"2013-06-19T15:34:30Z","updated_at":"2015-09-20T12:44:27Z","pushed_at":"2015-10-02T08:54:04Z","git_url":"git://github.com/CanalTP/navitia.git","ssh_url":"git@github.com:CanalTP/navitia.git","clone_url":"https://github.com/CanalTP/navitia.git","svn_url":"https://github.com/CanalTP/navitia","homepage":"http://www.navitia.io","size":36163,"stargazers_count":125,"watchers_count":125,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":40,"mirror_url":null,"open_issues_count":25,"forks":40,"open_issues":25,"watchers":125,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/CanalTP/navitia/pulls/1171"},"html":{"href":"https://github.com/CanalTP/navitia/pull/1171"},"issue":{"href":"https://api.github.com/repos/CanalTP/navitia/issues/1171"},"comments":{"href":"https://api.github.com/repos/CanalTP/navitia/issues/1171/comments"},"review_comments":{"href":"https://api.github.com/repos/CanalTP/navitia/pulls/1171/comments"},"review_comment":{"href":"https://api.github.com/repos/CanalTP/navitia/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CanalTP/navitia/pulls/1171/commits"},"statuses":{"href":"https://api.github.com/repos/CanalTP/navitia/statuses/7e419a32db01116cd18973ccfa493e6a46285cb5"}}}}