{"id":25815316,"url":"https://github.com/commonality/readme-inspector","last_synced_at":"2025-02-28T04:19:52.426Z","repository":{"id":31730118,"uuid":"128717040","full_name":"commonality/readme-inspector","owner":"commonality","description":"䷂ Verify the existence—and assess the quality—of README files on GitHub (Enterprise) repositories.","archived":false,"fork":false,"pushed_at":"2025-01-27T05:10:07.000Z","size":5098,"stargazers_count":9,"open_issues_count":55,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-27T06:22:39.468Z","etag":null,"topics":["commonality","compliance","github","github-enterprise","inner-source-readiness","innersource","open-source-readiness","opensource","readme","readme-quality","readme-score","recommended-community-standards"],"latest_commit_sha":null,"homepage":"https://commonality.github.io/readme-inspector/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/commonality.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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}},"created_at":"2018-04-09T05:04:24.000Z","updated_at":"2024-07-21T00:29:49.000Z","dependencies_parsed_at":"2025-01-27T06:21:17.087Z","dependency_job_id":"fd7f3b22-f555-4bbe-a99a-1afc91a3d548","html_url":"https://github.com/commonality/readme-inspector","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonality%2Freadme-inspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonality%2Freadme-inspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonality%2Freadme-inspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commonality%2Freadme-inspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/commonality","download_url":"https://codeload.github.com/commonality/readme-inspector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241092861,"owners_count":19908426,"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":["commonality","compliance","github","github-enterprise","inner-source-readiness","innersource","open-source-readiness","opensource","readme","readme-quality","readme-score","recommended-community-standards"],"created_at":"2025-02-28T04:19:51.812Z","updated_at":"2025-02-28T04:19:52.410Z","avatar_url":"https://github.com/commonality.png","language":"JavaScript","readme":"# readme-inspector [![NPM version][npm-image]][npm-url] [![GitHub release][github-release-image]][github-release-url]\n\n\u003e \u003cimg align=\"middle\" alt=\"markdown\" height=\"50\" width=\"50\"  src=\"https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/markdown.svg\"\u003e Inspect GitHub (Enterprise) repositories for the presence and quality of READMEs.\n\n[![The MIT License][license-image]][license-url]\n[![FOSSA Status][fossa-image]][fossa-url]\n[![NSP Status][nsp-image]][nsp-url]\n[![Known Vulnerabilities][vulnerabilities-image]][vulnerabilities-url]\u003cbr\u003e\n[![Dependency Status][daviddm-image]][daviddm-url]\n[![Development Dependency Status][daviddm-dev-image]][daviddm-dev-url]\u003cbr\u003e\n[![MacOS and Ubuntu build statuses][travis-image]][travis-url]\n[![Windows build status][appveyor-image]][appveyor-url]\n[![Coverage percentage][codacy-coverage-image]][codacy-url]\n[![Codacy code quality][codacy-image]][codacy-url]\n![Maintenance][maintenance-image]\u003cbr\u003e\n[![NPMS score][npms-image]][npms-url]\n[![NPM downloads per month][npm-downloads-month]][npm-url]\n\n## Table of contents\n\n\u003c!-- 🚫 AUTO-GENERATED-CONTENT:START (TOC:excludeText=Table of contents) --\u003e\n- [1. Installation](#1-installation)\n- [2. Configuration](#2-configuration)\n  * [2.1. Setting environment variables](#21-setting-environment-variables)\n- [2. Usage](#2-usage)\n- [3. API](#3-api)\n  * [3.1. `authenticate({token, type, key})`](#31-authenticatetoken-type-key)\n    + [3.1.1. Parameters](#311-parameters)\n    + [3.1.2. Returns `void`](#312-returns-void)\n    + [3.1.3. Example](#313-example)\n  * [3.2. `check({ower, repo, ref})`](#32-checkower-repo-ref)\n    + [3.2.1. Parameters](#321-parameters)\n    + [3.2.2. Returns `Promise`](#322-returns-promise)\n    + [3.2.3. Examples](#323-examples)\n  * [3.3. `getInfo({owner, repo, ref})`](#33-getinfoowner-repo-ref)\n    + [3.3.1. Parameters](#331-parameters)\n    + [3.3.2. Returns `Promise`](#332-returns-promise)\n    + [3.3.3. Examples](#333-examples)\n  * [3.4. `getAppraisal(url)`](#34-getappraisalurl)\n  * [3.5. `ReadmeAppraisal`](#35-readmeappraisal)\n    + [3.5.1. `for(url): Promise`](#351-forurl-promise)\n      - [3.5.1.1. Parameters](#3511-parameters)\n      - [3.5.1.2. Returns `Promise`](#3512-returns-promise)\n      - [3.5.1.3. Examples](#3513-examples)\n- [4. Version](#4-version)\n- [5. Contributing](#5-contributing)\n- [6. License](#6-license)\n\u003c!-- 🚫 AUTO-GENERATED-CONTENT:END --\u003e\n\n## 1. Installation\n\n`readme-inspector` is written in JavaScript (CommonJS) for [Node.js ![External link][octicon-link-external]](https://nodejs.org/) versions 7.6.0 or higher (for `async/await` support).\n\n```bash\n$ npm install --save readme-inspector\n```\n\n## 2. Configuration\n\nThe `commonality/readme-inspector` module combines the mediator, proxy, and factory design patterns to simplify:\n\n* README detection with the `readmeInfo` object, and\n* Quality assessment with the `readmeInfo.appraisal` object.\n\n### 2.1. Setting environment variables\n\n`readme-inspector` invokes Web services to return information. These services use `.env` variables\nthat require configuration:\n\n```properties\n# ENV VARS defaults for readme-inspector:\n\n# ReadmeAppraisal REST API\n# 💼 Modify this if you are using a company hosted installation.\nAPI_ENDPOINT_README_SCORE=\"http://readme-score-api.herokuapp.com/score.json?url=\u0026human_breakdown=false\u0026force=false\"\n\n# Bitbucket REST API v1.0 and v2.0 base url.\n# 💼 Modify this if you're using on-premise,\n#    company-hosted Bitbucket servers.\nBITBUCKET_API_BASE_URL=\"https://api.bitbucket.org\"\n\n## Google Analytics trackingCode\nGA_README_INSPECTOR=\"UA-117338111-1\"\n\n# GitHub REST API v3 baseUrl.\n# 💼 Modify this if you're using GitHub Enterprise, e.g.,\n# GITHUB_API_BASE_URL=\"https://evilcorp.github.com/v3\nGITHUB_API_BASE_URL=\"https://api.github.com\"\n\n# readme-score-api base url.\n# 💼 Modify this if you've installed it behind a company firewall.\nREADME_SCORE_API_BASE_URL=\"http://readme-score-api.herokuapp.com\"\n```\n\n\u003e ![light-bulb][octicon-light-bulb] **To avoid rate-limiting**, you should [create a personal access token ![External link][octicon-link-external]](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) and save your personal access token in an environment variable called `GH_TOKEN`.\n\n---\n\n\u003cdetails\u003e\u003csummary\u003eClick here for detailed \u003csamp\u003e.env\u003c/samp\u003e variable initialization instructions.\u003c/summary\u003e\u003cp\u003e\n\n\u003e [![info][octicon-info] View **dotenv-extended**'s README ![External link][octicon-link-external]](https://github.com/keithmorris/node-dotenv-extended#readme) for detailed `.env` variable set up instructions.\n\n\u003ch4\u003e\u003cimg align=\"bottom\" alt=\"file\" src=\"https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file.svg\"\u003e \u003csamp\u003e.env.schema\u003c/samp\u003e\u003c/h4\u003e\n\nDefines a schema of what variables should be defined in the combination of\n\u003csamp\u003e.env\u003c/samp\u003e and \u003csamp\u003e.env.defaults\u003c/samp\u003e.\n\n\u003c!-- AUTO-GENERATED-CONTENT:START (CODE:src=./.env.schema\u0026syntax=properties) --\u003e\n\u003c!-- The below code snippet is automatically added from ./.env.schema --\u003e\n```properties\n# .env.schema, committed to repo\n\n## See https://github.com/keithmorris/node-dotenv-extended/#readme\n## ⛔️\n## 🚫  DO NOT COMMIT YOUR ACTUAL .env file to version control.\n## 🚫  It should only include environment-specific values such\n## 🚫  as database passwords or API keys.\n## 🚫  Your production database should have a different password\n## 🚫  than your development database.\n\n# ENV VARS required for readme-inspector\n## Add values to these ENV VARs and save to\n## {your-project-root-directory}/.env, e.g.,\n## if your root project directory is\n##\n## $ more-bort-license-plates/\n##\n## then save your .env file to\n##\n## $ more-bort-license-plates/.env\n\n# 🔹 OPTIONAL env vars (set in .env.defaults):\nAPI_ENDPOINT_README_SCORE=\nBITBUCKET_API_BASE_URL=\nGA_README_INSPECTOR=\nGITHUB_API_BASE_URL=\nREADME_SCORE_API_BASE_URL=\n\n# 🔸 RECOMMENDED vars (to extend API rate limits)\nBITBUCKET_ACCESS_TOKEN=\nBITBUCKET_AUTH_PASSWORD=\nBITBUCKET_AUTH_USERNAME=\nGH_TOKEN=\nGITHUB_ACCESS_TOKEN=\n```\n\u003c!-- AUTO-GENERATED-CONTENT:END --\u003e\n\n\u003ch4\u003e\u003cimg align=\"bottom\" alt=\"file\" src=\"https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file.svg\"\u003e \u003csamp\u003e.env.defaults\u003c/samp\u003e\u003c/h4\u003e\n\n\u003csamp\u003e.env.defaults\u003c/samp\u003e provides common configuration defaults across all\nenvironments (commited to source control). This contains overall app\nconfiguration values that would be common across environments. The\n\u003csamp\u003e.env.defaults\u003c/samp\u003e file is loaded first; then the \u003csamp\u003e.env\u003c/samp\u003e\nfile is loaded and will overwrite any values from the \u003csamp\u003e.env.defaults\u003c/samp\u003e\nfile.\n\n\u003c!-- AUTO-GENERATED-CONTENT:START (CODE:src=./.env.defaults\u0026syntax=properties) --\u003e\n\u003c!-- The below code snippet is automatically added from ./.env.defaults --\u003e\n```properties\n# .env.defaults, committed to repo\n\n## See https://github.com/keithmorris/node-dotenv-extended/#readme\n## ⛔️\n## 🚫  DO NOT COMMIT YOUR ACTUAL .env file to version control.\n## 🚫  It should only include environment-specific values such\n## 🚫  as database passwords or API keys.\n## 🚫  Your production database should have a different password\n## 🚫  than your development database.\n\n# ENV VARS defaults for readme-inspector:\n\n# ReadmeAppraisal REST API\n# 💼 Modify this if you are using a company hosted installation.\nAPI_ENDPOINT_README_SCORE=\"http://readme-score-api.herokuapp.com/score.json?url=\u0026human_breakdown=false\u0026force=false\"\n\n# Bitbucket REST API v1.0 and v2.0 base url.\n# 💼 Modify this if you're using on-premise, company-hosted Bitbucket servers.\nBITBUCKET_API_BASE_URL=\"https://api.bitbucket.org\"\n\n## Google Analytics trackingCode\nGA_README_INSPECTOR=\"UA-117338111-1\"\n\n# GitHub REST API v3 baseUrl.\n# 💼 Modify this if you're using GitHub Enterprise.\nGITHUB_API_BASE_URL=\"https://api.github.com\"\n\n# readme-score-api base url.\n# 💼 Modify this if you've installed it behind a company firewall.\nREADME_SCORE_API_BASE_URL=\"http://readme-score-api.herokuapp.com\"\n```\n\u003c!-- AUTO-GENERATED-CONTENT:END --\u003e\n\n\u003ch4\u003e\u003cimg align=\"bottom\" alt=\"file\" src=\"https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file.svg\"\u003e \u003csamp\u003e.env\u003c/samp\u003e\u003c/h4\u003e\n\nThe environment-specific file (not committed to source control).\nThis file will have sensitive information such as usernames, passwords,\napi keys, etc. These would be specific to each environment and **should\nnot be committed to source control**.\n\n\u003c!-- AUTO-GENERATED-CONTENT:START (CODE:src=./.env\u0026syntax=properties) --\u003e\n\u003c!-- The below code snippet is automatically added from ./.env --\u003e\n```properties\n# BITBUCKET_ACCESS_TOKEN=\n# BITBUCKET_API_BASE_URL=\n# BITBUCKET_AUTH_PASSWORD=\n# BITBUCKET_AUTH_USERNAME=\n# GA_README_INSPECTOR=\"UA-117338111-1\"\n# GITHUB_API_BASE_URL=\n# README_SCORE_API_BASE_URL=\nAPI_ENDPOINT_README_SCORE=\"http://readme-score-api.herokuapp.com/score.json?url=\u0026human_breakdown=false\u0026force=false\"\nGH_TOKEN=$(echo $GH_TOKEN)\nGITHUB_ACCESS_TOKEN=$(echo $GH_TOKEN)\n```\n\u003c!-- AUTO-GENERATED-CONTENT:END --\u003e\n\n\u003c/pre\u003e\u003c/details\u003e\n\n---\n\n## 2. Usage\n\n\u003e [![beaker][octicon-beaker] Test `readme-inspector` in your Web browser ![link-external][octicon-link-external]][runkit-readme-inspector-url].\n\n\u003c!-- AUTO-GENERATED-CONTENT:START (CODE:src=./.github/assets/examples/usage.js) --\u003e\n\u003c!-- The below code snippet is automatically added from ./.github/assets/examples/usage.js --\u003e\n```js\n// Load all .env variables before anything else.\n\nconst dotenvExtended = require('dotenv-extended')\nconst envConfig = dotenvExtended.config()\n\n// Import readme-inspector.\n\nconst readmeInspector = require('readme-inspector')\n\n// Recommended: authenticate to avoid rate limts.\n\nreadmeInspector.authenticate({\n  token: envConfig.GH_TOKEN,\n  type: 'oauth'\n})\n\n// Verify that the repository with the slug\n// gregswindle/github-resource-converter\n// 1. Has a README, and\n// 2. Score the README for quality.\n\nconst info = await readmeInspector.check({\n  owner: 'gregswindle',\n  repo:  'github-resource-converter'\n})\n\n// Display the resulting readmeInfo as a\n// JSON string.\n\nconst WHITESPACE = 2\nconsole.log(JSON.stringify(results, null, WHITESPACE))\n// =\u003e\n/*\n{\n  \"appraisal\": {\n    \"breakdown\": {\n      \"cumulativeCodeBlockLength\": 0,\n      \"hasLists\": 0,\n      \"lowCodeBlockPenalty\": 0,\n      \"numberOfCodeBlocks\": 0,\n      \"numberOfGifs\": 0,\n      \"numberOfImages\": 0,\n      \"numberOfNonCodeSections\": 0\n    },\n    \"error\": null,\n    \"score\": 0,\n    \"url\": null\n  },\n  \"error\": null,\n  \"isPresent\": true,\n  \"value\": {\n    \"name\": \"README.md\",\n    \"path\": \"README.md\",\n    \"sha\": \"4769744aad57ff3e9aac2df603795c4d10fcdc31\",\n    \"size\": 36877,\n    \"url\": \"https://api.github.com/repos/commonality/readme-inspector/contents/README.md?ref=master\",\n    \"html_url\": \"https://github.com/commonality/readme-inspector/blob/master/README.md\",\n    \"git_url\": \"https://api.github.com/repos/commonality/readme-inspector/git/blobs/4769744aad57ff3e9aac2df603795c4d10fcdc31\",\n    \"download_url\": \"https://raw.githubusercontent.com/commonality/readme-inspector/master/README.md\",\n    \"type\": \"file\",\n    \"content\": \"{base64-encoding-of-readme-markdown}\",\n    \"encoding\": \"base64\",\n    \"_links\": {\n      \"self\": \"https://api.github.com/repos/commonality/readme-inspector/contents/README.md?ref=master\",\n      \"git\": \"https://api.github.com/repos/commonality/readme-inspector/git/blobs/4769744aad57ff3e9aac2df603795c4d10fcdc31\",\n      \"html\": \"https://github.com/commonality/readme-inspector/blob/master/README.md\"\n    }\n  }\n}\n*/\n```\n\u003c!-- AUTO-GENERATED-CONTENT:END --\u003e\n\n## 3. API\n\n\u003e [![beaker][octicon-beaker] Test `readme-inspector` in your Web browser ![link-external][octicon-link-external]][runkit-readme-inspector-url].\n\u003e\n\u003e [![gear][octicon-gear] View the full API docs for details ![link-external][octicon-link-external]][api-docs-url].\n\nThe `readmeInspector` module detects whether or not a README document exists at the root of a GitHub or GitHub Enterprise repository. If a README exists, it can evaluate the README's quality and provide a numerical score from 0 to 100, where 0 is the lowest quality and 100 is the highest.\n\n### 3.1. `authenticate({token, type, key})`\n\n\u003e ![Info][octicon-info] Most GitHub API calls don't require authentication. Rules of thumb:\n\u003e\n\u003e 1.  If you can see the information by visiting the site without being logged in, you don't have to be authenticated to retrieve the same information through the API.\n\u003e 1.  If you want to change data, you have to be authenticated.\n\u003e\n\u003e Note: authenticate is synchronous because it only sets the credentials for the following requests.\n\u003e\n\u003e octokit/rest.js. (2018). GitHub. Retrieved 21 March 2018, from \u003chttps://github.com/octokit/rest.js#authentication\u003e ![link-external][octicon-link-external]\n\n#### 3.1.1. Parameters\n\n| Name     | Type          | Description                                 |\n| :------- | :------------ | :------------------------------------------ |\n| key      | String        | `type=oauth` Client identifier              |\n| token    | String        | `type=[integration|token]` Unique value     |\n| type     | Enum.\u003cString\u003e | `basic`, `oauth`, `token`, or `integration` |\n| username | String        | `type=basic` Basic authentication username  |\n| password | String        | `type=basic` Basic authentication password  |\n\n#### 3.1.2. Returns `void`\n\n`authenticate` does not return a value.\n\n#### 3.1.3. Example\n\n\u003e ```javascript\n\u003e // Token (https://github.com/settings/tokens)\n\u003e // Load your GH_TOKEN or GITHUB_ACCESS_TOKEN from\n\u003e // environment variables:\n\u003e const dotenvExtended = require('dotenv-extended')\n\u003e const envConfig = dotenvExtended.config()\n\u003e\n\u003e const readmeInspector = require('readme-inspector')\n\u003e\n\u003e readmeInspector.authenticate({\n\u003e   token: envConfig.GH_TOKEN,\n\u003e   type: 'token'\n\u003e })\n\u003e ```\n\n### 3.2. `check({ower, repo, ref})`\n\nA convenience method that\n\n* Attempts to \u003csamp\u003eGET\u003c/samp\u003e a repository's root-level README, and, if found,\n* Scores the README.\n\n![GET][rest-get-img]\n\n```http\n/repos/:owner/:repo/readme\n```\n\nIf a README is found, then the `readme-score-api` is invoked:\n\n![GET][rest-get-img]\n\n```http\n/score.json?url=:owner/:repo\n```\n\n#### 3.2.1. Parameters\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n    \u003cth style=\"width: 30%\"\u003eField\u003c/th\u003e\n      \u003cth style=\"width: 10%\"\u003eType\u003c/th\u003e\n      \u003cth style=\"width: 60%\"\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003csamp\u003eowner\u003c/samp\u003e\u003c/td\u003e\n        \u003ctd\u003e\n          String\n        \u003c/td\u003e\n      \u003ctd\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003csamp\u003erepo\u003c/samp\u003e\u003c/td\u003e\n        \u003ctd\u003e\n          String\n        \u003c/td\u003e\n      \u003ctd\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003csamp\u003eref\u003c/samp\u003e \u003cimg align=\"right\" alt=\"optional\" src=\"https://fakeimg.pl/60x22/757575/FFF/?text=optional\u0026font_size=16\" height=\"22\" width=\"60\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\n          String\n        \u003c/td\u003e\n      \u003ctd\u003eThe name of the commit/branch/tag. Default: the repository’s default branch (usually master).\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n#### 3.2.2. Returns `Promise\u003cReadmeInfo\u003e`\n\n`ReadmeInfo's` interface (as a `NullObject`):\n\n```js\n{\n  'err': null,\n  'isPresent': null,\n  'appraisal': {\n    'breakdown': {\n      'cumulativeCodeBlockLength': 0,\n      'hasLists': 0,\n      'lowCodeBlockPenalty': 0,\n      'numberOfCodeBlocks': 0,\n      'numberOfGifs': 0,\n      'numberOfImages': 0,\n      'numberOfNonCodeSections': 0\n    },\n    'err': null,\n    'score': 0,\n    'url': null\n  },\n  'value': null\n}\n```\n\n#### 3.2.3. Examples\n\n* _async/await:_\n\n  \u003e ```js\n  \u003e const readmeInfo = await readmeInspector.check({\n  \u003e   owner: 'commonality',\n  \u003e   ref: 'GH-1-a-topic-branch',\n  \u003e   repo: 'readme-inspector'\n  \u003e })\n  \u003e ```\n\n* _Promise:_\n\n  \u003e ```js\n  \u003e readmeInspector\n  \u003e   .check({\n  \u003e     owner: 'commonality',\n  \u003e     ref: 'GH-1-a-topic-branch',\n  \u003e     repo: 'readme-inspector'\n  \u003e   })\n  \u003e   .then(readmeInfo =\u003e {})\n  \u003e   .catch(err =\u003e {})\n  \u003e ```\n\n### 3.3. `getInfo({owner, repo, ref})`\n\nRetrieves README information _without_ any `AppraisalData`.\n\n![GET][rest-get-img]\n\n```http\n/repos/:owner/:repo/readme\n```\n\n#### 3.3.1. Parameters\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n    \u003cth style=\"width: 30%\"\u003eField\u003c/th\u003e\n      \u003cth style=\"width: 10%\"\u003eType\u003c/th\u003e\n      \u003cth style=\"width: 60%\"\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003csamp\u003eowner\u003c/samp\u003e\u003c/td\u003e\n        \u003ctd\u003e\n          String\n        \u003c/td\u003e\n      \u003ctd\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003csamp\u003erepo\u003c/samp\u003e\u003c/td\u003e\n        \u003ctd\u003e\n          String\n        \u003c/td\u003e\n      \u003ctd\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003csamp\u003eref\u003c/samp\u003e \u003cimg align=\"right\" alt=\"optional\" src=\"https://fakeimg.pl/60x22/757575/FFF/?text=optional\u0026font_size=16\" height=\"22\" width=\"60\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\n          String\n        \u003c/td\u003e\n      \u003ctd\u003eThe name of the commit/branch/tag. Default: the repository’s default branch (usually master).\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n#### 3.3.2. Returns `Promise\u003cReadmeInfo\u003e`\n\n`ReadmeInfo's` interface (as a `NullObject`):\n\n```js\n{\n  'err': null,\n  'isPresent': null,\n  'appraisal': {\n    'breakdown': {\n      'cumulativeCodeBlockLength': 0,\n      'hasLists': 0,\n      'lowCodeBlockPenalty': 0,\n      'numberOfCodeBlocks': 0,\n      'numberOfGifs': 0,\n      'numberOfImages': 0,\n      'numberOfNonCodeSections': 0\n    },\n    'err': null,\n    'score': 0,\n    'url': null\n  },\n  'value': null\n}\n```\n\n#### 3.3.3. Examples\n\n* _async/await:_\n\n  \u003e ```js\n  \u003e const readmeInfo = await readmeInspector.getInfo({\n  \u003e   owner: 'commonality',\n  \u003e   ref: 'GH-1-a-topic-branch',\n  \u003e   repo: 'readme-inspector'\n  \u003e })\n  \u003e ```\n\n* _Promise:_\n\n  \u003e ```js\n  \u003e readmeInspector\n  \u003e   .getInfo({\n  \u003e     owner: 'commonality',\n  \u003e     ref: 'GH-1-a-topic-branch',\n  \u003e     repo: 'readme-inspector'\n  \u003e   })\n  \u003e   .then(readmeInfo =\u003e readmeInfo)\n  \u003e   .catch(err =\u003e {\n  \u003e     console.error(err)\n  \u003e   })\n  \u003e ```\n\n### 3.4. `getAppraisal(url)`\n\nA convenience wrapper that calls the `ReadmeAppraisal.prototype.for` method.\n\n### 3.5. `ReadmeAppraisal`\n\n`ReadmeAppraisal` is an API proxy for [@clayallsopp ![External link][octicon-link-external]](https://github.com/clayallsopp)'s [`readme-score-api` ![External link][octicon-link-external]](https://github.com/clayallsopp/readme-score-api).\n\n\u003e ![quote][octicon-quote] ScoreMe gives you a numerical score from 0 to 100 for your Github-style README. The intention is to measure complexity, which is a generally correlated with quality.\n\u003e\n\u003e It won't measure if one README is absolutely better than another, but it will give you a good idea if the README is high-quality, needs more work, or somewhere inbetween.\n\u003e\n\u003e ScoreMe. (2018). Clayallsopp.github.io. Retrieved 10 April 2018, from \u003chttp://clayallsopp.github.io/readme-score/\u003e\n\n#### 3.5.1. `for(url): Promise\u003cAppraisalData\u003e`\n\nEvaluate the README at the root of a GitHub repository.\n\n##### 3.5.1.1. Parameters\n\n| Name | Type   | Description                                                      |\n| :--- | :----- | :--------------------------------------------------------------- |\n| url  | String | The URL, or slug of the repository to be evaluated for a README. |\n\n##### 3.5.1.2. Returns `Promise\u003cAppraisalData\u003e`\n\n* `AppraisalData` as a `NullObject` (see \u003csamp\u003e[lib/appraisal-data](lib/appraisal-data.js)\u003c/samp\u003e):\u003cbr\u003e\n\n  \u003e ```js\n  \u003e {\n  \u003e   breakdown: {\n  \u003e     cumulativeCodeBlockLength: 0\n  \u003e     hasLists: 0\n  \u003e     lowCodeBlockPenalty: 0\n  \u003e     numberOfCodeBlocks: 0\n  \u003e     numberOfGifs: 0\n  \u003e     numberOfImages: 0\n  \u003e     numberOfNonCodeSections: 0\n  \u003e   },\n  \u003e   err: null,\n  \u003e   score: 0\n  \u003e   url: null\n  \u003e }\n  \u003e ```\n\n##### 3.5.1.3. Examples\n\n* _URL:_\n\n  \u003e ```js\n  \u003e const { ReadmeAppraisal } = require('readme-inspector')\n  \u003e const readmeAppraisal = new ReadmeAppraisal()\n  \u003e const url = 'https://github.com/gregswindle/github-resource-converter'\n  \u003e\n  \u003e const appraisal = readmeAppraisal.for(url)\n  \u003e /** =\u003e\n  \u003e  * {\n  \u003e  *   breakdown: {\n  \u003e  *    cumulativeCodeBlockLength: 10\n  \u003e  *    hasLists: 10\n  \u003e  *    lowCodeBlockPenalty: 0\n  \u003e  *    numberOfCodeBlocks: 40\n  \u003e  *    numberOfGifs: 0\n  \u003e  *    numberOfImages: 15\n  \u003e  *    numberOfNonCodeSections: 30\n  \u003e  *  },\n  \u003e  *  err: null,\n  \u003e  *  score: 100\n  \u003e  *  url: 'https://github.com/gregswindle/github-resource-converter'\n  \u003e  * }\n  \u003e  */\n  \u003e ```\n\n* _Repository slug:_\n\n  \u003e ```js\n  \u003e const { ReadmeAppraisal } = require('readme-inspector')\n  \u003e const readmeAppraisal = new ReadmeAppraisal()\n  \u003e const url = 'gregswindle/github-resource-converter'\n  \u003e\n  \u003e const appraisal = readmeAppraisal.for(url)\n  \u003e ```\n\n## 4. Version\n\n[![NPM version][npm-image]][npm-url]\n\nView the [Change Log](CHANGELOG.md) and [Releases](https://github.com/commonality/readme-inspector/releases) for details.\n\n## 5. Contributing\n\n[![PRs Welcome][makeapullrequest-image] ![External link][octicon-link-external]][makeapullrequest-url] We welcome contributions with GitHub **issues** and **pull requests**.\n\n---\n\n[![Request a feature][issues-new-feat-image]][issues-new-feat-url]\n[![Report a defect][issues-new-defect-image]][issues-new-defect-url]\n\n[![Read the CONTRIBUTING guidelines][contributing-image]][contributing-url]\n\n---\n\nBefore embarking on a significant change, please follow these guidelines:\n\n1.  **[Create an issue][issues-url]**\u0026mdash;e.g., a [defect (\"bug\") report][issues-new-defect-url] or a [feature request][issues-new-feat-url]\u0026mdash;to propose changes.\n\n    _Exceptions:_\n\n    \u003e If you're working on documentation and fixing something simple like a typo or an easy bug, go ahead and make a pull request.\n\n1.  **[Follow the CONTRIBUTING guidelines][contributing-url].**\n\n    _Why:_\n\n    \u003e Standards and guidelines make communication easier. If you're willing and able to program\u0026mdash;or want to learn how\u0026mdash; following the guidelines will increase the likelihood of having your changes added to `readme-inspector`.\n\n1.  **[Read the Code of Conduct][code-of-conduct-url].**\u003cbr\u003e\n\n1.  **[Make a pull request][pr-url]** when you're ready for other to review your changes (or you get stuck somewhere).\n\n    _Never created a pull request?_\n\n    \u003e No problem: [this free online training ![External link][octicon-link-external]][makeapullrequest-url] covers most of the conventions in the [CONTRIBUTING guidelines][contributing-url].)\n\n## 6. License\n\n[MIT ![link-external][octicon-link-external]][license-url] © [commonality ![link-external][octicon-link-external]](https://github.com/commonality)\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fcommonality%2Freadme-inspector.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fcommonality%2Freadme-inspector?ref=badge_large)\n\n---\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/commonality/readme-inspector.svg)](https://greenkeeper.io/)\n[![Readme ReadmeAppraisal](http://readme-score-api.herokuapp.com/score.svg?url=https://github.com/commonality/readme-inspector)](http://clayallsopp.github.io/readme-score?url=https://github.com/commonality/readme-inspector)\n\n\u003c!-- ⛔️ Do not remove this comment or anything under it ⛔️ --\u003e\n\n\u003c!-- 🔗 link references 🔗 --\u003e\n\n[api-docs-url]: https://commonality.github.io/readme-inspector/api/readme-inspector/2.0.1/ReadmeAppraisal.html\n[bunyan-format-url]: https://github.com/thlorenz/bunyan-format/#readme\n[node-bunyan-url]: https://github.com/trentm/node-bunyan/#readme\n[optional-param-img]: https://fakeimg.pl/60x22/757575/FFF/?text=optional\u0026font_size=16\n[rest-get-img]: https://fakeimg.pl/40x30/0e8a16/FFF/?text=GET\u0026font_size=20\n[runkit-readme-inspector-url]: https://runkit.com/gregswindle/5acc09bde794d70011a136e5\n[toc]: #table-of-contents\n\n\u003c!-- 🔗 ci services 🔗 --\u003e\n\n[appveyor-image]: https://img.shields.io/appveyor/ci/gregswindle/readme-inspector.svg?style=flat-square\u0026logo=appveyor\u0026label=windows%20build\n[appveyor-url]: https://ci.appveyor.com/project/gregswindle/readme-inspector\n[codacy-coverage-image]: https://img.shields.io/codacy/coverage/21f517a2d5bf4304895f40c5cbb596c4.svg?style=flat-square\n[codacy-image]: https://img.shields.io/codacy/grade/21f517a2d5bf4304895f40c5cbb596c4.svg?style=flat-square\n[codacy-url]: https://www.codacy.com/app/greg_7/readme-inspector?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=commonality/readme-inspector\u0026utm_campaign=Badge_Grade\n[coveralls-image]: https://img.shields.io/coveralls/github/commonality/readme-inspector/master.svg\n[coveralls-url]: https://coveralls.io/r/commonality/readme-inspector\n[daviddm-dev-image]: https://david-dm.org/commonality/readme-inspector/dev-status.svg?theme=shields.io\u0026style=flat-square\n[daviddm-dev-url]: https://david-dm.org/commonality/readme-inspector?type=dev\n[daviddm-image]: https://david-dm.org/commonality/readme-inspector.svg?theme=shields.io\u0026style=flat-square\n[daviddm-url]: https://david-dm.org/commonality/readme-inspector\n[fossa-image]: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fcommonality%2Freadme-inspector.svg?type=shield\u0026style=flat-square\n[fossa-url]: https://app.fossa.io/projects/git%2Bgithub.com%2Fcommonality%2Freadme-inspector?ref=badge_shield\n[github-release-image]: https://img.shields.io/github/release/commonality/readme-inspector.svg?style=flat-square\n[github-release-url]: https://github.com/commonality/readme-inspector/releases/latest\n[license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\n[license-url]: http://opensource.org/licenses/MIT\n[maintenance-image]: https://img.shields.io/maintenance/readme-inspector/2018.svg?style=flat-square\n[notice-url]: https://app.fossa.io/reports/07123904-7d26-40a6-b6af-c74e82a53789\n[npm-downloads-month]: https://img.shields.io/npm/dm/readme-inspector.svg?style=social\n[npm-image]: https://img.shields.io/npm/v/readme-inspector.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/readme-inspector\n[npms-image]: https://badges.npms.io/readme-inspector.svg?style=flat-square\n[npms-url]: https://npms.io/search?q=readme-inspector\n[nsp-image]: https://nodesecurity.io/orgs/commonality/projects/a2aa0184-ae94-4307-8b87-f0e12324368a/badge\n[nsp-url]: https://nodesecurity.io/orgs/commonality/projects/a2aa0184-ae94-4307-8b87-f0e12324368a\n[travis-image]: https://img.shields.io/travis/commonality/readme-inspector.svg?branch=master\u0026style=flat-square\u0026label=macOS%20%7C%20ubuntu%20builds\u0026logo=travis\n[travis-url]: https://travis-ci.org/commonality/readme-inspector\n[vulnerabilities-image]: https://snyk.io/test/github/commonality/readme-inspector/badge.svg?style=flat-square\u0026targetFile=package.json\n[vulnerabilities-url]: https://snyk.io/test/github/commonality/readme-inspector?targetFile=package.json\n\n\u003c!-- 🔗 contributing link references 🔗 --\u003e\n\n[code-of-conduct-url]: https://github.com/commonality/readme-inspector/blob/master/.github/CODE_OF_CONDUCT.md\n[contributing-image]: https://img.shields.io/badge/read-CONTRIBUTING%20Guidelines-5F758E.svg?style=for-the-badge\u0026label=read+the\n[contributing-url]: https://github.com/commonality/readme-inspector/blob/master/.github/CONTRIBUTING.md\n[issues-new-defect-image]: https://img.shields.io/badge/report-defect-e99695.svg?style=for-the-badge\u0026label=report+a\n[issues-new-defect-url]: https://github.com/commonality/readme-inspector/issues/new?title=defect%28scope%29%3A+defect-summary\u0026labels=priority%3a+medium%2cstatus%3a+review+needed%2ctype%3a+defect\u0026template=defect-report.md\n[issues-new-feat-image]: https://img.shields.io/badge/request-feature-0052cc.svg?style=for-the-badge\u0026label=request+a\n[issues-new-feat-url]: https://github.com/commonality/readme-inspector/issues/new?title=feat%28scope%29%3A+change-proposal-summary\u0026labels=priority%3a+medium%2cstatus%3a+review+needed%2ctype%3a+feature\u0026template=feature-request.md\n[issues-url]: https://github.com/commonality/readme-inspector/issues\n[makeapullrequest-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n[makeapullrequest-url]: http://makeapullrequest.com\n[pr-url]: https://github.com/commonality/readme-inspector/pulls\n\n\u003c!-- 🔗 octicon img references 🔗 --\u003e\n\n[octicon-alert]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/alert.svg\n[octicon-arrow-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-down.svg\n[octicon-arrow-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-left.svg\n[octicon-arrow-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-right.svg\n[octicon-arrow-small-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-down.svg\n[octicon-arrow-small-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-left.svg\n[octicon-arrow-small-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-right.svg\n[octicon-arrow-small-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-small-up.svg\n[octicon-arrow-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/arrow-up.svg\n[octicon-beaker]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/beaker.svg\n[octicon-bell]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bell.svg\n[octicon-bold]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bold.svg\n[octicon-book]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/book.svg\n[octicon-bookmark]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bookmark.svg\n[octicon-briefcase]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/briefcase.svg\n[octicon-broadcast]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/broadcast.svg\n[octicon-browser]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/browser.svg\n[octicon-bug]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/bug.svg\n[octicon-calendar]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/calendar.svg\n[octicon-check]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/check.svg\n[octicon-checklist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/checklist.svg\n[octicon-chevron-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-down.svg\n[octicon-chevron-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-left.svg\n[octicon-chevron-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-right.svg\n[octicon-chevron-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/chevron-up.svg\n[octicon-circle-slash]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/circle-slash.svg\n[octicon-circuit-board]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/circuit-board.svg\n[octicon-clippy]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/clippy.svg\n[octicon-clock]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/clock.svg\n[octicon-cloud-download]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/cloud-download.svg\n[octicon-cloud-upload]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/cloud-upload.svg\n[octicon-code]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/code.svg\n[octicon-comment-discussion]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/comment-discussion.svg\n[octicon-comment]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/comment.svg\n[octicon-credit-card]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/credit-card.svg\n[octicon-dash]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/dash.svg\n[octicon-dashboard]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/dashboard.svg\n[octicon-database]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/database.svg\n[octicon-desktop-download]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/desktop-download.svg\n[octicon-device-camera-video]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-camera-video.svg\n[octicon-device-camera]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-camera.svg\n[octicon-device-desktop]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-desktop.svg\n[octicon-device-mobile]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/device-mobile.svg\n[octicon-diff-added]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-added.svg\n[octicon-diff-ignored]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-ignored.svg\n[octicon-diff-modified]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-modified.svg\n[octicon-diff-removed]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-removed.svg\n[octicon-diff-renamed]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff-renamed.svg\n[octicon-diff]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/diff.svg\n[octicon-ellipses]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/ellipses.svg\n[octicon-ellipsis]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/ellipsis.svg\n[octicon-eye]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/eye.svg\n[octicon-file-binary]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-binary.svg\n[octicon-file-code]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-code.svg\n[octicon-file-directory]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-directory.svg\n[octicon-file-media]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-media.svg\n[octicon-file-pdf]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-pdf.svg\n[octicon-file-submodule]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-submodule.svg\n[octicon-file-symlink-directory]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-symlink-directory.svg\n[octicon-file-symlink-file]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-symlink-file.svg\n[octicon-file-text]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-text.svg\n[octicon-file-zip]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file-zip.svg\n[octicon-file]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/file.svg\n[octicon-flame]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/flame.svg\n[octicon-fold]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/fold.svg\n[octicon-gear]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gear.svg\n[octicon-gift]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gift.svg\n[octicon-gist-secret]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gist-secret.svg\n[octicon-gist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/gist.svg\n[octicon-git-branch]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-branch.svg\n[octicon-git-commit]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-commit.svg\n[octicon-git-compare]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-compare.svg\n[octicon-git-merge]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-merge.svg\n[octicon-git-pull-request]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/git-pull-request.svg\n[octicon-globe]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/globe.svg\n[octicon-grabber]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/grabber.svg\n[octicon-graph]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/graph.svg\n[octicon-heart]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/heart.svg\n[octicon-history]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/history.svg\n[octicon-home]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/home.svg\n[octicon-horizontal-rule]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/horizontal-rule.svg\n[octicon-hubot]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/hubot.svg\n[octicon-inbox]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/inbox.svg\n[octicon-info]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/info.svg\n[octicon-issue-closed]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/issue-closed.svg\n[octicon-issue-opened]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/issue-opened.svg\n[octicon-issue-reopened]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/issue-reopened.svg\n[octicon-italic]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/italic.svg\n[octicon-jersey]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/jersey.svg\n[octicon-key]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/key.svg\n[octicon-keyboard]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/keyboard.svg\n[octicon-law]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/law.svg\n[octicon-light-bulb]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/light-bulb.svg\n[octicon-link-external]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/link-external.svg\n[octicon-link]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/link.svg\n[octicon-list-ordered]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/list-ordered.svg\n[octicon-list-unordered]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/list-unordered.svg\n[octicon-location]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/location.svg\n[octicon-lock]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/lock.svg\n[octicon-logo-gist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/logo-gist.svg\n[octicon-logo-github]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/logo-github.svg\n[octicon-mail-read]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mail-read.svg\n[octicon-mail-reply]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mail-reply.svg\n[octicon-mail]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mail.svg\n[octicon-mark-github]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mark-github.svg\n[octicon-markdown]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/markdown.svg\n[octicon-megaphone]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/megaphone.svg\n[octicon-mention]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mention.svg\n[octicon-milestone]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/milestone.svg\n[octicon-mirror]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mirror.svg\n[octicon-mortar-board]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mortar-board.svg\n[octicon-mute]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/mute.svg\n[octicon-no-newline]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/no-newline.svg\n[octicon-octoface]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/octoface.svg\n[octicon-organization]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/organization.svg\n[octicon-package]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/package.svg\n[octicon-paintcan]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/paintcan.svg\n[octicon-pencil]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/pencil.svg\n[octicon-person]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/person.svg\n[octicon-pin]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/pin.svg\n[octicon-plug]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/plug.svg\n[octicon-plus-small]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/plus-small.svg\n[octicon-plus]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/plus.svg\n[octicon-primitive-dot]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/primitive-dot.svg\n[octicon-primitive-square]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/primitive-square.svg\n[octicon-pulse]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/pulse.svg\n[octicon-question]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/question.svg\n[octicon-quote]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/quote.svg\n[octicon-radio-tower]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/radio-tower.svg\n[octicon-reply]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/reply.svg\n[octicon-repo-clone]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-clone.svg\n[octicon-repo-force-push]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-force-push.svg\n[octicon-repo-forked]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-forked.svg\n[octicon-repo-pull]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-pull.svg\n[octicon-repo-push]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo-push.svg\n[octicon-repo]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/repo.svg\n[octicon-rocket]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/rocket.svg\n[octicon-rss]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/rss.svg\n[octicon-ruby]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/ruby.svg\n[octicon-search]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/search.svg\n[octicon-server]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/server.svg\n[octicon-settings]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/settings.svg\n[octicon-shield]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/shield.svg\n[octicon-sign-in]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/sign-in.svg\n[octicon-sign-out]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/sign-out.svg\n[octicon-smiley]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/smiley.svg\n[octicon-squirrel]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/squirrel.svg\n[octicon-star]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/star.svg\n[octicon-stop]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/stop.svg\n[octicon-sync]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/sync.svg\n[octicon-tag]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/tag.svg\n[octicon-tasklist]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/tasklist.svg\n[octicon-telescope]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/telescope.svg\n[octicon-terminal]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/terminal.svg\n[octicon-text-size]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/text-size.svg\n[octicon-three-bars]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/three-bars.svg\n[octicon-thumbsdown]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/thumbsdown.svg\n[octicon-thumbsup]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/thumbsup.svg\n[octicon-tools]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/tools.svg\n[octicon-trashcan]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/trashcan.svg\n[octicon-triangle-down]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-down.svg\n[octicon-triangle-left]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-left.svg\n[octicon-triangle-right]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-right.svg\n[octicon-triangle-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/triangle-up.svg\n[octicon-unfold]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/unfold.svg\n[octicon-unmute]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/unmute.svg\n[octicon-unverified]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/unverified.svg\n[octicon-verified]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/verified.svg\n[octicon-versions]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/versions.svg\n[octicon-watch]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/watch.svg\n[octicon-x]: https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/svg/x.svg\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonality%2Freadme-inspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommonality%2Freadme-inspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonality%2Freadme-inspector/lists"}