{"id":37558582,"url":"https://github.com/mobilitydata/gbfs-validator-java","last_synced_at":"2026-04-07T21:01:34.998Z","repository":{"id":37847817,"uuid":"481145119","full_name":"MobilityData/gbfs-validator-java","owner":"MobilityData","description":"Validate GBFS feeds. Intended as Java native alternative to https://github.com/MobilityData/gbfs-validator.","archived":false,"fork":false,"pushed_at":"2026-04-02T04:01:48.000Z","size":607,"stargazers_count":4,"open_issues_count":10,"forks_count":3,"subscribers_count":17,"default_branch":"master","last_synced_at":"2026-04-03T15:31:34.572Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MobilityData.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-13T09:04:22.000Z","updated_at":"2026-02-02T17:07:55.000Z","dependencies_parsed_at":"2022-06-22T21:01:10.195Z","dependency_job_id":"ce8801db-0334-49fb-87bc-ed6782aac3e0","html_url":"https://github.com/MobilityData/gbfs-validator-java","commit_stats":null,"previous_names":[],"tags_count":95,"template":false,"template_full_name":null,"purl":"pkg:github/MobilityData/gbfs-validator-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityData%2Fgbfs-validator-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityData%2Fgbfs-validator-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityData%2Fgbfs-validator-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityData%2Fgbfs-validator-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MobilityData","download_url":"https://codeload.github.com/MobilityData/gbfs-validator-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityData%2Fgbfs-validator-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31528751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T09:03:46.118Z","updated_at":"2026-04-07T21:01:34.992Z","avatar_url":"https://github.com/MobilityData.png","language":"Java","readme":"![Build](https://github.com/entur/gbfs-validator-java/actions/workflows/build.yml/badge.svg?branch=master)\n![Deploy Maven Central](https://github.com/entur/gbfs-validator-java/actions/workflows/deploy.yml/badge.svg)\n[![codecov](https://codecov.io/gh/entur/gbfs-validator-java/graph/badge.svg?token=WP0DSLPSVR)](https://codecov.io/gh/entur/gbfs-validator-java)\n\n# gbfs-validator-java\n\nValidate GBFS feeds. Intended as Java native alternative to https://github.com/MobilityData/gbfs-validator.\n\nUses the official json schema to validate files.\n\n## Usage\n\nCreate an instance of `GbfsValidator`:\n\n    GbfsValidator gbfsValidator = GbfsValidatorFactory.getGbfsJsonValidator();\n\nThe `GbfsValidator` interface has two methods:\n\n### Validate a set of GBFS Files\n\nValidate a set of GBFS files by providing a map of InputStreams, keyed by filename. \nThe input streams maybe come from an HTTP response or from files. This validation\nmethod will apply custom rules (see below), by dynamically patching the static JSON\nschemas using data from the files themselves.\n\n    gbfsValidator.validate(\n      Map.of(\n        \"gbfs\", gbfsInputStream,\n        \"system_information\", systemInformationInputStream\n        ...\n      )\n    );\n\n\n### Validate a single GBFS file\n\nValidate a single GBFS file by providing a filename and an InputStream. This validation\nmethod will not apply any custom rules, but will validate only using the static JSON\nschemas.\n\n\n    gbfsValidator.validate(\n      \"system_information\", systemInformationInputStream\n    ); \n\n### Using the validation results\n\nThe validation methods above will return the `ValidationResult` record. This will contain a summary of the\nvalidation process, as well as a map of validation results per file. See javadocs in `model` for details.\n\n\n## Additional validation rules\n\nThe interface `CustomRuleSchemaPatcher` enables adding additional rules dynamically by schema patching:\n\n    JSONObject addRule(JSONObject rawSchema, Map\u003cString, JSONObject\u003e feeds);\n\nThe raw schema along with a map of the data feeds is passed to this method. The patched schema should be returned.\n\nList of additional rules:\n\n* `NoInvalidReferenceToPricingPlansInVehicleStatus`\n* `NoInvalidReferenceToPricingPlansInVehicleTypes`\n* `NoInvalidReferenceToRegionInStationInformation`\n* `NoInvalidReferenceToStation`\n* `NoInvalidReferenceToVehicleTypesInStationStatus`\n* `NoMissingVehicleTypesAvailableWhenVehicleTypesExists`\n* `NoMissingOrInvalidVehicleTypeIdInVehicleStatusWhenVehicleTypesExist`\n* `NoMissingCurrentRangeMetersInVehicleStatusForMotorizedVehicles`\n* `NoMissingStoreUriInSystemInformation`\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmobilitydata%2Fgbfs-validator-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmobilitydata%2Fgbfs-validator-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmobilitydata%2Fgbfs-validator-java/lists"}