{"id":38170832,"url":"https://github.com/clarin-eric/centre-registry","last_synced_at":"2026-04-07T15:01:21.980Z","repository":{"id":30898561,"uuid":"34456331","full_name":"clarin-eric/Centre-Registry","owner":"clarin-eric","description":"The CLARIN Centre Registry.","archived":false,"fork":false,"pushed_at":"2026-04-02T13:04:55.000Z","size":2603,"stargazers_count":6,"open_issues_count":21,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-04-03T08:33:43.557Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://centres.clarin.eu","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clarin-eric.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2015-04-23T12:58:53.000Z","updated_at":"2026-02-16T15:08:16.000Z","dependencies_parsed_at":"2024-04-22T15:48:16.021Z","dependency_job_id":"5891c4be-5c31-4dac-a614-a4ac9a21c063","html_url":"https://github.com/clarin-eric/Centre-Registry","commit_stats":null,"previous_names":[],"tags_count":107,"template":false,"template_full_name":null,"purl":"pkg:github/clarin-eric/Centre-Registry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2FCentre-Registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2FCentre-Registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2FCentre-Registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2FCentre-Registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clarin-eric","download_url":"https://codeload.github.com/clarin-eric/Centre-Registry/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarin-eric%2FCentre-Registry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31516839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","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-16T23:25:52.546Z","updated_at":"2026-04-07T15:01:21.969Z","avatar_url":"https://github.com/clarin-eric.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GH Actions Status](https://github.com/clarin-eric/Centre-Registry/actions/workflows/app_test.yml/badge.svg)](https://github.com/clarin-eric/Centre-Registry/actions/workflows/app_test.yml)\n[![Sauce Test Status](https://saucelabs.com/buildstatus/centre-registry)](https://app.saucelabs.com/u/centre-registry)\n# The Centre Registry\nThe Centre Registry is a Django web application and service that serves as administrative registry for CLARIN, documented on [the CLARIN Trac](https://trac.clarin.eu/wiki/Centre%20Registry).\n\n## JSON API\n`api/KML/`\nGives a KML file (Keyhole Markup) with geographical information about all Centres, for use in\nmapping applications.\n\n`api/KML/[N[N[N[N[N[N]]]]]`.\nGives a KML file (Keyhole Markup) with geographical information about Centres of any type N, for\nuse in mapping applications. For example: `api/KML/EBC`\n\n`api/model/M`, where M is one of the models in the administration interface `CentreType`,\n`Centre`, `Contact`, `Consortium`, `FCSEndpoint`, `URLReference`, `Organisation`,\n`OAIPMHEndpoint`, `OAIPMHEndpointSet`, `SAMLIdentityFederation`, `SAMLServiceProvider`:\nGives a JSON representation of all data belonging to that model in the database.\n\n`api/all_centres_full`, for all Centres of any type with fully expanded relations into values\n\n## XML API\n`restxml/`: gives a list of centres including the centre ID in XML.\n\n`restxml/n`, where n is a centre ID: Gives detailed information about a centre in XML that is validated with this schema: ​http://catalog.clarin.eu/ds/ComponentRegistry/rest/registry/profiles/clarin.eu:cr1:p_1320657629667/xsd\n\n### Notes on XML API\nSome services (WebLicht?) may depend on optional string-type properties of OAI-PMH endpoints that have been exported since the first API versions:\n\n    `WebServiceType` is the semantic indication of the kind of webservices offered.\n    `WebServicesSet` is just a name for the OAI-PMH set that contains the relevant web service metadata descriptions. It could be anything, so a harvester should be able to deal with arbitrary set names. \n\n## Development\n### Make migrations\nDjango wants to detect modifications made to the data model of apps:\n```sh\n'Centre-Registry-config/manage.py' makemigrations\n```\nWhen you change an existing field, be careful to only change one property per `makemigrations` run (e.g, first change the field identifier, then the  `verbose_name` string).\n\n### Show migrations\nTo show migrations previously made, and whether they have been carried out or not:\n```sh\n'Centre-Registry-config/manage.py' showmigrations\n```\n\n### Migrate\nAfter making migrations, you will still need to apply them:\n```sh\n'Centre-Registry-config/manage.py' migrate\n```\n**Always generate new a fixture after migrating.** If you do not, your fixture will not correspond to the actual data model, and testing runs will fail outright.\n\n### Generate fixtures\nFor testing, you will need a sample of the data that obeys the data model. To generate such a *fixture*, run this:\n```sh\n'Centre-Registry-config/manage.py' dumpdata \\\n    --format=json --indent 4 \\\n    --natural-primary --natural-foreign \\\n    --exclude=auth --exclude=sessions --exclude=admin --exclude=contenttypes \\\n    --no-color --traceback -o \\\n    'centre-registry-app/centre_registry/fixtures/test_data.json'\n```\nWhen you change an existing field of some class in your data model, be careful to make only this single change per `makemigrations` run (e.g, first change the field identifier, then the  `verbose_name` value), otherwise `makemigrations` will go awry.\n\n### Test\n#### From an IDE\nWithin your IDE such as IntelliJ IDEA, your project should have a Django 'facet' detected automatically. If so, you should have the complete testing 'run configuration' available.\n#### From the command line\nFirst make sure that `centre-registry-app` and `Centre-Registry-config` are installed. Then run the test modules `centre_registry.test_api` and `centre_registry.test_ui` like so:\n```sh\n'Centre-Registry-config/manage.py' test centre_registry\n```\nOr more selectively:\n```sh\n'Centre-Registry-config/manage.py' test centre_registry.{test_api,test_ui}\n```\n\n# Continuous Integration\n\nThe API and the UI are both tested by the continuous integration system.\n\nAfter each commit (or PR), GitHub Actions will:\n- build the project.\n- execute the API tests.\n- connect to Sauce Labs and run the UI (Selenium-based) tests targeting multiple browsers.\n\nCurrent overall status of GitHub Actions build and tests:\n[![GH Actions Status](https://github.com/clarin-eric/Centre-Registry/actions/workflows/app_test.yml/badge.svg)](https://github.com/clarin-eric/Centre-Registry/actions/workflows/app_test.yml)\n\nIn the last stage of the build and test process, the continuous integration system will run all UI tests for multiple browser and operating system combinations.\n\nCurrent status of UI tests:\n[![Sauce Test Status](https://saucelabs.com/buildstatus/centre-registry)](https://app.saucelabs.com/u/centre-registry)\n\nTest results breakdown per browser and operating system:\n\n[![Build Status](https://app.saucelabs.com/browser-matrix/centre-registry.svg)](https://saucelabs.com/u/centre-registry)\n\n#### Big Thanks\n\nAutomated cross-browser testing platform and open source ❤️ provided by [Sauce Labs][homepage]\n\n[homepage]: https://saucelabs.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarin-eric%2Fcentre-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclarin-eric%2Fcentre-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarin-eric%2Fcentre-registry/lists"}