{"id":13683219,"url":"https://github.com/metacpan/metacpan-api","last_synced_at":"2025-05-15T14:02:10.502Z","repository":{"id":1152143,"uuid":"1036718","full_name":"metacpan/metacpan-api","owner":"metacpan","description":"A free, open API for everything you want to know about CPAN","archived":false,"fork":false,"pushed_at":"2025-05-03T15:29:05.000Z","size":6160,"stargazers_count":295,"open_issues_count":124,"forks_count":194,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-05-11T09:36:31.197Z","etag":null,"topics":["cpan","hacktoberfest","metacpan","perl"],"latest_commit_sha":null,"homepage":"http://www.metacpan.org/","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/metacpan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2010-10-30T04:43:00.000Z","updated_at":"2025-05-03T15:29:08.000Z","dependencies_parsed_at":"2023-02-09T22:45:16.570Z","dependency_job_id":"f89525fc-d9a1-4e52-8499-b7f3cf40c720","html_url":"https://github.com/metacpan/metacpan-api","commit_stats":{"total_commits":2941,"total_committers":90,"mean_commits":32.67777777777778,"dds":0.7500850051003061,"last_synced_commit":"2633bba9964d785d1952a1c077127c363d96c6b4"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacpan%2Fmetacpan-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacpan%2Fmetacpan-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacpan%2Fmetacpan-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacpan%2Fmetacpan-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metacpan","download_url":"https://codeload.github.com/metacpan/metacpan-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254355321,"owners_count":22057352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cpan","hacktoberfest","metacpan","perl"],"created_at":"2024-08-02T13:02:04.396Z","updated_at":"2025-05-15T14:02:10.479Z","avatar_url":"https://github.com/metacpan.png","language":"Perl","funding_links":[],"categories":["Perl"],"sub_categories":[],"readme":"# A Web Service for the CPAN\n\n[![CircleCI](https://circleci.com/gh/metacpan/metacpan-api.svg?style=svg)](https://circleci.com/gh/metacpan/metacpan-api)\n\nMetaCPAN aims to provide a free, open web service which provides metadata for\nCPAN modules.\n\n## REST API\n\nMetaCPAN is based on Elasticsearch, so it provides a RESTful interface as well\nas the option to create complex queries. [The `docs/`\ndirectory](https://github.com/metacpan/metacpan-api/blob/master/docs/API-docs.md)\nprovides a good starting point for REST access to MetaCPAN.\n\n## Expanding Your Author Info\n\nMetaCPAN allows authors to add custom metadata about themselves to the index.\n[Log in to MetaCPAN](https://metacpan.org/account/profile) to add more\ninformation about yourself.\n\n## Installing Your Own MetaCPAN\n\nIf you want to run MetaCPAN locally, we encourage you to start with\n[metacpan-docker](https://github.com/metacpan/metacpan-docker). However, you\nmay still find some info here:\n\n## Troubleshooting Elasticsearch\n\nYou can restart Elasticsearch (ES) manually if you need to troubleshoot.\n\n```sh\nsudo service elasticsearch restart\n```\n\nIf you are unable to access [[http://localhost:9200]] (give it a few seconds)\nyou should kill the Elasticsearch process and run it in foreground to see the\ndebug output\n\n```sh\nsudo service elasticsearch stop\ncd /opt/elasticsearch\nsudo bin/elasticsearch -f\n```\n\nIf you get a \"Can't start up: not enough memory\" error when trying to start\nElasticsearch, you likely need to update your JRE.  On Ubuntu:\n\n```sh\n# fixes \"not enough memory\" errors\nsudo apt-get install openjdk-6-jre\n```\n\n(Note: If you intend to try indexing a full MiniCPAN, you may find that\nElasticsearch wants to use more open filehandles than your system allows by\ndefault. [This script](https://gist.github.com/3230962) can be used to start ES\nwith the appropriate ulimit adjustment).\n\n## Run the test suite\n\nThe test suite accesses Elasticsearch on port 9900. The developer VM should\nhave a dedicated test instance running in the background already, but if you\nwant to run it manually:\n\n```sh\ncd /opt/elasticsearch\nsudo bin/elasticsearch -f -Des.http.port=9900 -Des.cluster.name=testing\n```\n\nThen run the test suite:\n\n```sh\ncd /home/metacpan/metacpan-api\n./bin/prove t\n```\n\nThe test suite has to pass all tests.\n\n## Create the ElasticSearch Index\n\n```sh\n./bin/run bin/metacpan mapping --delete\n```\n\n`--delete` will drop all indices first to clear the index from test data.\n\n## Begin Indexing Your Modules\n\n```sh\n./bin/run bin/metacpan release /path/to/cpan/authors/id/\n```\n\nYou should note that you can index either your CPAN mirror or a minicpan\nmirror.  You can even index just parts of a mirror:\n\n```sh\n./bin/run bin/metacpan release /path/to/cpan/authors/id/{A,B}\n```\n\n## Tag the Latest Releases\n\n```sh\n./bin/run bin/metacpan latest --cpan /path/to/cpan/\n```\n\n## Index Author Data\n\n```sh\n./bin/run bin/metacpan author --cpan /path/to/cpan/\n```\n\nNote that minicpan doesn't provide the 00whois.xml file which is used to\ngenerate the index; you will have to download it manually (it is in the\nauthors/ directory) in order to index authors.\n\n```bash\nwget -O /path/to/cpan/authors/00whois.xml cpan.cpantesters.org/authors/00whois.xml\n```\n\nIt also doesn't include author.json files, so that data will also be missing\nunless you get it from somewhere else.\n\n## Set Up Proxy in Front of ElasticSearch\n\nStart API server on port 5000\n\n```sh\n./bin/run plackup -p 5000 -r\n```\n\nThis will start a single-threaded test server. If you need extra performance,\nuse `Starman` instead.\n\n## Notes\n\nFor a full list of options:\n\n```sh\n./bin/run bin/metacpan release --help\n```\n\n## Contributing\n\nIf you'd like to get involved, find us at #metacpan on irc.perl.org or open an\nissue on GitHub and let us know what you'd like to start working on.\n\n## IRC\n\nYou can find us at #metacpan on irc.perl.org\nAccess it via [web interface](https://chat.mibbit.com/?channel=%23metacpan\u0026server=irc.perl.org).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetacpan%2Fmetacpan-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetacpan%2Fmetacpan-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetacpan%2Fmetacpan-api/lists"}