😀
OSS統計データの取得方法
はじめに
OSSなどの統計データを取得するAPIの使い方をまとめた。
API
GitHub
仕様書
実行例
コマンド
curl -s https://api.github.com/repos/octocat/Hello-World | jq
実行結果
{
"id": 1296269,
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"private": false,
"owner": {
"login": "octocat",
"id": 583231,
"node_id": "MDQ6VXNlcjU4MzIzMQ==",
"avatar_url": "https://avatars3.githubusercontent.com/u/583231?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/octocat/Hello-World",
"description": "My first repository on GitHub!",
"fork": false,
"url": "https://api.github.com/repos/octocat/Hello-World",
"forks_url": "https://api.github.com/repos/octocat/Hello-World/forks",
"keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/octocat/Hello-World/teams",
"hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks",
"issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}",
"events_url": "https://api.github.com/repos/octocat/Hello-World/events",
"assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}",
"branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}",
"tags_url": "https://api.github.com/repos/octocat/Hello-World/tags",
"blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}",
"languages_url": "https://api.github.com/repos/octocat/Hello-World/languages",
"stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers",
"contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors",
"subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers",
"subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription",
"commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}",
"compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/octocat/Hello-World/merges",
"archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads",
"issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}",
"pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}",
"milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}",
"notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}",
"releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}",
"deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments",
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2020-03-07T01:15:12Z",
"pushed_at": "2020-02-28T13:21:20Z",
"git_url": "git://github.com/octocat/Hello-World.git",
"ssh_url": "git@github.com:octocat/Hello-World.git",
"clone_url": "https://github.com/octocat/Hello-World.git",
"svn_url": "https://github.com/octocat/Hello-World",
"homepage": "",
"size": 1,
"stargazers_count": 1530,
"watchers_count": 1530,
"language": null,
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"forks_count": 1406,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 380,
"license": null,
"forks": 1406,
"open_issues": 380,
"watchers": 1530,
"default_branch": "master",
"temp_clone_token": null,
"network_count": 1406,
"subscribers_count": 1682
}
Docker
仕様書
実行例
コマンド
curl -s https://hub.docker.com/v2/repositories/jenkins/jenkins/ | jq
実行結果
{
"user": "jenkins",
"name": "jenkins",
"namespace": "jenkins",
"repository_type": "image",
"status": 1,
"description": "The leading open source automation server",
"is_private": false,
"is_automated": false,
"can_edit": false,
"star_count": 1937,
"pull_count": 194630068,
"last_updated": "2020-03-08T02:58:17.921665Z",
"is_migrated": false,
"has_starred": true,
"full_description": "## Jenkins Continuous Integration and Delivery server.\n\nThis is a fully functional Jenkins server, based on the weekly and LTS releases .\n\n![logo](http://jenkins-ci.org/sites/default/files/jenkins_logo.png)\n\n\n* To use the latest LTS: `docker pull jenkins/jenkins:lts`\n* To use the latest weekly: `docker pull jenkins/jenkins`\n* Lighter alpine based image also available\n\n\nRead [documentation](https://github.com/jenkinsci/docker/blob/master/README.md) for usage",
"affiliation": null,
"permissions": {
"read": true,
"write": false,
"admin": false
}
}
npm
仕様書
実行例
コマンド
curl -s http://registry.npmjs.com/jquery/3.4.1
実行結果
{
"name": "jquery",
"title": "jQuery",
"description": "JavaScript library for DOM operations",
"version": "3.4.1",
"main": "dist/jquery.js",
"homepage": "https://jquery.com",
"author": {
"name": "JS Foundation and other contributors",
"url": "https://github.com/jquery/jquery/blob/3.4.1/AUTHORS.txt"
},
"repository": {
"type": "git",
"url": "git+https://github.com/jquery/jquery.git"
},
"keywords": [
"jquery",
"javascript",
"browser",
"library"
],
"bugs": {
"url": "https://github.com/jquery/jquery/issues"
},
"license": "MIT",
"dependencies": {},
"devDependencies": {
"@babel/core": "7.3.3",
"@babel/plugin-transform-for-of": "7.2.0",
"commitplease": "3.2.0",
"core-js": "2.6.5",
"eslint-config-jquery": "1.0.1",
"grunt": "1.0.3",
"grunt-babel": "8.0.0",
"grunt-cli": "1.3.2",
"grunt-compare-size": "0.4.2",
"grunt-contrib-uglify": "3.4.0",
"grunt-contrib-watch": "1.1.0",
"grunt-eslint": "21.0.0",
"grunt-git-authors": "3.2.0",
"grunt-jsonlint": "1.1.0",
"grunt-karma": "3.0.1",
"grunt-newer": "1.3.0",
"grunt-npmcopy": "0.1.0",
"gzip-js": "0.3.2",
"husky": "1.3.1",
"insight": "0.10.1",
"jsdom": "13.2.0",
"karma": "4.0.1",
"karma-browserstack-launcher": "1.4.0",
"karma-chrome-launcher": "2.2.0",
"karma-firefox-launcher": "1.1.0",
"karma-ie-launcher": "1.0.0",
"karma-jsdom-launcher": "7.1.0",
"karma-qunit": "3.0.0",
"load-grunt-tasks": "4.0.0",
"native-promise-only": "0.8.1",
"promises-aplus-tests": "2.1.2",
"q": "1.5.1",
"qunit": "2.9.2",
"raw-body": "2.3.3",
"requirejs": "2.3.6",
"sinon": "2.3.7",
"sizzle": "2.3.4",
"strip-json-comments": "2.0.1",
"testswarm": "1.1.0",
"uglify-js": "3.4.7"
},
"scripts": {
"build": "npm install && grunt",
"start": "grunt watch",
"test:browserless": "grunt && grunt test:slow",
"test:browser": "grunt && grunt karma:main",
"test": "grunt && grunt test:slow && grunt karma:main",
"jenkins": "npm run test:browserless"
},
"commitplease": {
"nohook": true,
"components": [
"Docs",
"Tests",
"Build",
"Support",
"Release",
"Core",
"Ajax",
"Attributes",
"Callbacks",
"CSS",
"Data",
"Deferred",
"Deprecated",
"Dimensions",
"Effects",
"Event",
"Manipulation",
"Offset",
"Queue",
"Selector",
"Serialize",
"Traversing",
"Wrap"
],
"markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)",
"ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])"
},
"husky": {
"hooks": {
"commit-msg": "node node_modules/commitplease",
"pre-commit": "grunt lint:newer qunit_fixture"
}
},
"gitHead": "15bc73803f76bc53b654b9fdbbbc096f56d7c03d",
"_id": "jquery@3.4.1",
"_npmVersion": "6.4.1",
"_nodeVersion": "8.16.0",
"_npmUser": {
"name": "timmywil",
"email": "4timmywil@gmail.com"
},
"dist": {
"integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==",
"shasum": "714f1f8d9dde4bdfa55764ba37ef214630d80ef2",
"tarball": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
"fileCount": 125,
"unpackedSize": 1295318,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyg1rCRA9TVsSAnZWagAAeOEP/2+ykv0pLlPLU8YLeOoS\nUTBRx0TwY8fcGwZfsxB2JERZfrQQM7l1l3aS7Rb5XYmL4rlHrnGq571H2ogF\ntuEPsLjSGbM+3eM6Y1MRCTXn4cp3KXVKU+oBuFrA6gSQkhPB9nYjaf0jUl5L\nVYMjB6CiqB5Pxy0j3hCrT7iMkoxY6b+V/3rN7HqRj1pL1N71QLrVyYv9AiHU\nuXaKlsI4xWg1RDrt4+Ef8xe4n5bwfWxn8hNIBwlldvexknA+FGz/LY42FOl7\n9alWTyfJMmK15ggMD02W8iCLTaUxC4Hz16ZeoGnnOZkPaZCSZEpAHCJSh5BV\n9J7GGhpiEtlQRQQbhRYl2nAb5Z02APUIJ7tQt1JYAtb1WJNJgOjDITvFqpxj\nbOc47BP+7pcWF4rqWviIjWts4mU3w0Yl+ZUaTSB6lOjBSH/ONC4CspyfKlQg\nu1Kcrk8skTT4fDNQcXLTDdXXCssqrU8nRtzKarLjuBvd0Cs0ZPSZqEJQG6OA\nJ7zdqnqwzfRrfbQwWi7OozkjSrnS2mLwFTxiuAsO86AgzwKYZQrMwEV89LXQ\n8cRPhH1jvPgh2RcLraKTuQsSZ2o/h+mrq8lhIDNBVJXmUZKNRSW9GNoD8QEY\na52Ygcu8lCFbtJ1gUvHwOzHaRmNqZb7dwMGV5zbTMSFViGSN1qabM8jNOwl4\nCp1s\r\n=n88a\r\n-----END PGP SIGNATURE-----\r\n"
},
"maintainers": [{
"name": "dmethvin",
"email": "dave.methvin@gmail.com"
},
{
"name": "mgol",
"email": "m.goleb@gmail.com"
},
{
"name": "scott.gonzalez",
"email": "scott.gonzalez@gmail.com"
},
{
"name": "timmywil",
"email": "4timmywil@gmail.com"
}
],
"directories": {},
"_npmOperationalInternal": {
"host": "s3://npm-registry-packages",
"tmp": "tmp/jquery_3.4.1_1556745578228_0.09546423386966585"
},
"_hasShrinkwrap": false
}
npmダウンロード件数
仕様書
実行例
コマンド
curl https://api.npmjs.org/downloads/point/last-year/jquery | jq
実行結果
{
"downloads": 145671916,
"start": "2019-03-07",
"end": "2020-03-05",
"package": "jquery"
}
pip
仕様書
実行例
コマンド
curl -s https://pypi.org/pypi/sampleproject/json | jq
実行結果
{
"info": {
"author": "The Python Packaging Authority",
"author_email": "pypa-dev@googlegroups.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Topic :: Software Development :: Build Tools"
],
"description": "# A sample Python project\n\nA sample project that exists as an aid to the [Python Packaging User\nGuide][packaging guide]'s [Tutorial on Packaging and Distributing\nProjects][distribution tutorial].\n\nThis project does not aim to cover best practices for Python project\ndevelopment as a whole. For example, it does not provide guidance or tool\nrecommendations for version control, documentation, or testing.\n\n[The source for this project is available here][src].\n\nMost of the configuration for a Python project is done in the `setup.py` file,\nan example of which is included in this project. You should edit this file\naccordingly to adapt this sample project to your needs.\n\n----\n\nThis is the README file for the project.\n\nThe file should use UTF-8 encoding and can be written using\n[reStructuredText][rst] or [markdown][md use] with the appropriate [key set][md\nuse]. It will be used to generate the project webpage on PyPI and will be\ndisplayed as the project homepage on common code-hosting services, and should be\nwritten for that purpose.\n\nTypical contents for this file would include an overview of the project, basic\nusage examples, etc. Generally, including the project changelog in here is not a\ngood idea, although a simple “What's New” section for the most recent version\nmay be appropriate.\n\n[packaging guide]: https://packaging.python.org\n[distribution tutorial]: https://packaging.python.org/tutorials/packaging-projects/\n[src]: https://github.com/pypa/sampleproject\n[rst]: http://docutils.sourceforge.net/rst.html\n[md]: https://tools.ietf.org/html/rfc7764#section-3.5 \"CommonMark variant\"\n[md use]: https://packaging.python.org/specifications/core-metadata/#description-content-type-optional\n\n\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/pypa/sampleproject",
"keywords": "sample setuptools development",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "sampleproject",
"package_url": "https://pypi.org/project/sampleproject/",
"platform": "",
"project_url": "https://pypi.org/project/sampleproject/",
"project_urls": {
"Bug Reports": "https://github.com/pypa/sampleproject/issues",
"Funding": "https://donate.pypi.org",
"Homepage": "https://github.com/pypa/sampleproject",
"Say Thanks!": "http://saythanks.io/to/example",
"Source": "https://github.com/pypa/sampleproject/"
},
"release_url": "https://pypi.org/project/sampleproject/1.3.1/",
"requires_dist": [
"peppercorn",
"check-manifest ; extra == 'dev'",
"coverage ; extra == 'test'"
],
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
"summary": "A sample Python project",
"version": "1.3.1"
},
"last_serial": 6077467,
"releases": {
"1.0": [],
"1.2.0": [{
"comment_text": "",
"digests": {
"md5": "bab8eb22e6710eddae3c6c7ac3453bd9",
"sha256": "7a7a8b91086deccc54cac8d631e33f6a0e232ce5775c6be3dc44f86c2154019d"
},
"downloads": -1,
"filename": "sampleproject-1.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "bab8eb22e6710eddae3c6c7ac3453bd9",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 3795,
"upload_time": "2015-06-14T14:38:05",
"upload_time_iso_8601": "2015-06-14T14:38:05.875222Z",
"url": "https://files.pythonhosted.org/packages/30/52/547eb3719d0e872bdd6fe3ab60cef92596f95262e925e1943f68f840df88/sampleproject-1.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d3bd605f932b3fb6e91f49be2d6f9479",
"sha256": "3427a8a5dd0c1e176da48a44efb410875b3973bd9843403a0997e4187c408dc1"
},
"downloads": -1,
"filename": "sampleproject-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "d3bd605f932b3fb6e91f49be2d6f9479",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3148,
"upload_time": "2015-06-14T14:37:56",
"upload_time_iso_8601": "2015-06-14T14:37:56.383366Z",
"url": "https://files.pythonhosted.org/packages/eb/45/79be82bdeafcecb9dca474cad4003e32ef8e4a0dec6abbd4145ccb02abe1/sampleproject-1.2.0.tar.gz"
}
],
"1.3.0": [{
"comment_text": "",
"digests": {
"md5": "de98c6cdd6962d67e7368d2f9d9fa934",
"sha256": "ab855ea282734dd216e8be4a42899a6fa8d2ce8f65b41c6379b69c1f804d6b1c"
},
"downloads": -1,
"filename": "sampleproject-1.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "de98c6cdd6962d67e7368d2f9d9fa934",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 3988,
"upload_time": "2019-05-28T20:23:12",
"upload_time_iso_8601": "2019-05-28T20:23:12.721927Z",
"url": "https://files.pythonhosted.org/packages/a1/fd/3564a5176430eac106c27eff4de50b58fc916f5083782062cea3141acfaa/sampleproject-1.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3dd8fce5e4e2726f343de4385ec8d479",
"sha256": "ee67ab9c8b445767203e7d9523d029287f737c60524a3c0e0c36cc504e0f24d7"
},
"downloads": -1,
"filename": "sampleproject-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "3dd8fce5e4e2726f343de4385ec8d479",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4",
"size": 5913,
"upload_time": "2019-05-28T20:23:13",
"upload_time_iso_8601": "2019-05-28T20:23:13.940627Z",
"url": "https://files.pythonhosted.org/packages/a6/aa/0090d487d204f5de30035c00f6c71b53ec7f613138d8653eebac50f47f45/sampleproject-1.3.0.tar.gz"
}
],
"1.3.1": [{
"comment_text": "",
"digests": {
"md5": "0cf94b45deeeb876f1619d9c27cff120",
"sha256": "26c9172e08244873b0e09c574a229bf2c251c67723a05e08fd3ec0c5ee423796"
},
"downloads": -1,
"filename": "sampleproject-1.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0cf94b45deeeb876f1619d9c27cff120",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
"size": 3991,
"upload_time": "2019-11-04T20:36:25",
"upload_time_iso_8601": "2019-11-04T20:36:25.256613Z",
"url": "https://files.pythonhosted.org/packages/a4/95/7398f8a08a0e83dc39dd4cbada9d22c65bcbb41c36626b2c54a1db83c710/sampleproject-1.3.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "76ddb449e0e9ef3f55b880f566fcb700",
"sha256": "3593ca2f1e057279d70d6144b14472fb28035b1da213dde60906b703d6f82c55"
},
"downloads": -1,
"filename": "sampleproject-1.3.1.tar.gz",
"has_sig": false,
"md5_digest": "76ddb449e0e9ef3f55b880f566fcb700",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
"size": 5920,
"upload_time": "2019-11-04T20:36:26",
"upload_time_iso_8601": "2019-11-04T20:36:26.798325Z",
"url": "https://files.pythonhosted.org/packages/6f/5b/2f3fe94e1c02816fe23c7ceee5292fb186912929e1972eee7fb729fa27af/sampleproject-1.3.1.tar.gz"
}
]
},
"urls": [{
"comment_text": "",
"digests": {
"md5": "0cf94b45deeeb876f1619d9c27cff120",
"sha256": "26c9172e08244873b0e09c574a229bf2c251c67723a05e08fd3ec0c5ee423796"
},
"downloads": -1,
"filename": "sampleproject-1.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0cf94b45deeeb876f1619d9c27cff120",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
"size": 3991,
"upload_time": "2019-11-04T20:36:25",
"upload_time_iso_8601": "2019-11-04T20:36:25.256613Z",
"url": "https://files.pythonhosted.org/packages/a4/95/7398f8a08a0e83dc39dd4cbada9d22c65bcbb41c36626b2c54a1db83c710/sampleproject-1.3.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "76ddb449e0e9ef3f55b880f566fcb700",
"sha256": "3593ca2f1e057279d70d6144b14472fb28035b1da213dde60906b703d6f82c55"
},
"downloads": -1,
"filename": "sampleproject-1.3.1.tar.gz",
"has_sig": false,
"md5_digest": "76ddb449e0e9ef3f55b880f566fcb700",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4",
"size": 5920,
"upload_time": "2019-11-04T20:36:26",
"upload_time_iso_8601": "2019-11-04T20:36:26.798325Z",
"url": "https://files.pythonhosted.org/packages/6f/5b/2f3fe94e1c02816fe23c7ceee5292fb186912929e1972eee7fb729fa27af/sampleproject-1.3.1.tar.gz"
}
]
}
Qiita
仕様書
実行結果
コマンド
curl -s https://qiita.com/api/v2/tags/amqp | jq
実行結果
{
"followers_count": 4,
"icon_url": null,
"id": "amqp",
"items_count": 15
}
Discussion