Skip to content

Import EU Feeds#1371

Merged
ianktc merged 9 commits intomainfrom
import/eu-apr-22
Apr 23, 2026
Merged

Import EU Feeds#1371
ianktc merged 9 commits intomainfrom
import/eu-apr-22

Conversation

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds and updates GTFS schedule + GTFS-RT catalog entries for several EU providers, including deprecations and URL fixes.

Changes:

  • Added new GTFS schedule source JSON entries for PL/LT/IT/DE providers.
  • Added new GTFS-RT (vehicle positions / trip updates) source JSON entries for IT/HU providers.
  • Deprecated an older Kutno feed entry and redirected it to the new source; updated Metro de Madrid download URL to HTTPS.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
catalogs/sources/gtfs/schedule/pl-mazowieckie-kutno-mzk-kutno-gtfs-3125.json New Kutno schedule feed definition (replacement target for deprecated entry).
catalogs/sources/gtfs/schedule/pl-mazowieckie-kutno-mzk-kutno-gtfs-2846.json Marks old Kutno feed deprecated and adds redirect metadata.
catalogs/sources/gtfs/schedule/pl-koleje-slaskie-gtfs-3122.json New Koleje Śląskie schedule feed definition.
catalogs/sources/gtfs/schedule/lt-vsI-zaliasis-regionas-gtfs-3121.json New Lithuanian schedule feed definition.
catalogs/sources/gtfs/schedule/it-metropolitana-di-catania-ferrovia-circumetnea-gtfs-3124.json New Catania metro schedule feed definition (inactive).
catalogs/sources/gtfs/schedule/es-madrid-metro-de-madrid-gtfs-794.json Switches direct download URL from HTTP to HTTPS.
catalogs/sources/gtfs/schedule/de-optima-express-gtfs-3123.json New Optima Express schedule feed definition.
catalogs/sources/gtfs/realtime/it-federico-autolinee-rt-vp-3118.json New Autolinee Federico GTFS-RT vehicle positions feed definition.
catalogs/sources/gtfs/realtime/hu-tukebusz-gtfs-rt-vp-3120.json New Tükebusz GTFS-RT vehicle positions feed definition.
catalogs/sources/gtfs/realtime/hu-tukebusz-gtfs-rt-tu-3119.json New Tükebusz GTFS-RT trip updates feed definition.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"provider": "Metropolitana di Catania - Ferrovia Circumetnea",
"name": "Ferrovia Circumetnea",
"status": "inactive",
"is_official": "True",
Copy link

Copilot AI Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"is_official" is encoded as a string ("True") rather than a JSON boolean. This can break schema validation and downstream consumers expecting a boolean; change it to true (without quotes).

Suggested change
"is_official": "True",
"is_official": true,

Copilot uses AI. Check for mistakes.
"maximum_latitude": "51.209250",
"minimum_longitude": "18.226595",
"maximum_longitude": "20.015326",
"extracted_on": "2026-04-22T19:12:54.475596"
Copy link

Copilot AI Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"extracted_on" is missing an explicit timezone designator (e.g., 'Z' or '+00:00'). This makes the timestamp ambiguous and can lead to inconsistent parsing; please serialize timestamps in a consistent ISO-8601 format with timezone (and apply the same normalization to the other newly added files that omit the timezone).

Suggested change
"extracted_on": "2026-04-22T19:12:54.475596"
"extracted_on": "2026-04-22T19:12:54.475596Z"

Copilot uses AI. Check for mistakes.
Comment on lines +9 to +16
"municipality": "Kutno",
"bounding_box": {
"minimum_latitude": null,
"maximum_latitude": null,
"minimum_longitude": null,
"maximum_longitude": null,
"extracted_on": "2026-04-22T18:44:40+00:00"
}
Copy link

Copilot AI Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bounding box coordinates are present but set to null. If the catalog schema (or consumers) expects numeric coordinates, null values can fail validation or crash parsing. Prefer either (a) providing actual numeric bounds, or (b) omitting the bounding_box (or individual keys) entirely when unknown, depending on the catalog’s schema conventions.

Suggested change
"municipality": "Kutno",
"bounding_box": {
"minimum_latitude": null,
"maximum_latitude": null,
"minimum_longitude": null,
"maximum_longitude": null,
"extracted_on": "2026-04-22T18:44:40+00:00"
}
"municipality": "Kutno"

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +26
"id": "3125",
"comment": " "
Copy link

Copilot AI Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The redirect "id" is a string while mdb_source_id values are numeric elsewhere, and the redirect "comment" is effectively empty (single space). To avoid type mismatches and unclear metadata, store id as a number and either remove the comment field or provide a meaningful explanation (e.g., 'Replaced by new endpoint').

Suggested change
"id": "3125",
"comment": " "
"id": 3125,
"comment": "Replaced by new endpoint"

Copilot uses AI. Check for mistakes.
"mdb_source_id": 3122,
"data_type": "gtfs",
"provider": "Koleje Śląskie",
"name": "railway",
Copy link

Copilot AI Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "name" field value ("railway") looks like a mode/category rather than a dataset name, and it’s inconsistent with other entries in this PR where "name" is a proper feed/network name (e.g., "Ferrovia Circumetnea"). If "name" is intended to be a human-readable dataset name, update it to the feed/network’s name (or drop the field if optional) and use the appropriate field for mode/category if one exists in the catalog schema.

Suggested change
"name": "railway",
"name": "Koleje Śląskie",

Copilot uses AI. Check for mistakes.
],
"provider": "Tükebusz",
"urls": {
"direct_download": "http://menobusz.tukebusz.hu:30080/mobilapp/GTFS/RTx_positions.x",
Copy link

Copilot AI Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This GTFS-RT endpoint uses plain HTTP, which allows tampering/mitm of realtime data in transit. If an HTTPS endpoint is available, prefer it; if HTTP is the only option, consider adding/using an authenticated proxy over HTTPS (where supported by the ingestion system) to protect data integrity.

Suggested change
"direct_download": "http://menobusz.tukebusz.hu:30080/mobilapp/GTFS/RTx_positions.x",
"direct_download": "https://menobusz.tukebusz.hu:30080/mobilapp/GTFS/RTx_positions.x",

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

none available

"authentication_type": 0
}
}

Copy link

Copilot AI Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There appears to be an extra trailing blank line at end-of-file. It’s minor, but keeping these JSON files consistently formatted reduces noisy diffs and helps automated formatting/validation tools.

Suggested change

Copilot uses AI. Check for mistakes.
@ianktc
Copy link
Copy Markdown
Contributor Author

ianktc commented Apr 22, 2026

Hi @jcpitre I used the same prompts that you did for reviewing this PR in Copilot CLI. Everything lgtm, we can refine the prompts as we move forward with more PRs too. Could you approve when you have the chance?

copilot-session-0d65522f-439c-42ef-bed5-7b8c278ca668.html

Comment thread catalogs/sources/gtfs/realtime/hu-tukebusz-gtfs-rt-tu-3119.json
@ianktc ianktc requested a review from jcpitre April 23, 2026 15:48
@ianktc ianktc merged commit 134c6d7 into main Apr 23, 2026
10 checks passed
@ianktc ianktc deleted the import/eu-apr-22 branch April 23, 2026 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants