{"id":13467965,"url":"https://github.com/dwyl/repo-badges","last_synced_at":"2025-05-13T22:03:20.797Z","repository":{"id":21624224,"uuid":"24944719","full_name":"dwyl/repo-badges","owner":"dwyl","description":":star: Use repo badges (build passing, coverage, etc) in your readme/markdown file to signal code quality in a project.","archived":false,"fork":false,"pushed_at":"2024-12-30T16:09:04.000Z","size":165,"stargazers_count":2924,"open_issues_count":12,"forks_count":1224,"subscribers_count":80,"default_branch":"main","last_synced_at":"2025-04-29T13:44:42.126Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dwyl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2014-10-08T14:34:05.000Z","updated_at":"2025-04-25T16:33:00.000Z","dependencies_parsed_at":"2025-01-28T15:46:08.792Z","dependency_job_id":"8c02c552-c5fc-4f9a-8c8a-5bfbf9920f40","html_url":"https://github.com/dwyl/repo-badges","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwyl%2Frepo-badges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwyl%2Frepo-badges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwyl%2Frepo-badges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwyl%2Frepo-badges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dwyl","download_url":"https://codeload.github.com/dwyl/repo-badges/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036811,"owners_count":22003653,"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":[],"created_at":"2024-07-31T15:01:03.291Z","updated_at":"2025-05-13T22:03:20.778Z","avatar_url":"https://github.com/dwyl.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Code Repository Badges \n![build passing](https://raw.githubusercontent.com/dwyl/repo-badges/master/highresPNGs/build-passing.png)\n\n\u003c/div\u003e\n\n## Why? [![start with why](https://img.shields.io/badge/start%20with-why%3F-brightgreen.svg?style=flat)](https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action)\n\nAs people who are ***passionate*** about writing ***great code*** we **display** \"***badges***\" in our code repositories to ***signal*** to *fellow\ndevelopers* that we set ourselves ***high standards***\u003csup\u003e1\u003c/sup\u003e for the code we write, think of them as the software-equivalent of the brand on your jeans or other ***reliable product***.\n\n\n## What?\n\nWe use the following badges (*listed in order of importance*):\n\n+ **Documentation** - [![Inline docs](https://inch-ci.org/github/dwyl/hapi-auth-jwt2.svg?branch=master)](https://inch-ci.org/github/dwyl/hapi-auth-jwt2) _Many_ developers do not _prioritize documentation_ in their (_technical_) projects, \ninstead people focus on solving the _~~problem~~_ _challenge_ e.g. by writing some code,\nand `if` it works, they add a `TODO` to \"improve the docs\" ...\nIt may _initially_ be _counter-intuitive_ to think of Documentation as being\nthe _highest priority_ or _first_ activity in a technical\nproject but there are _several_ reasons why it is:\n  + Clearly setting out _your own_ understanding of \"the challenge\"\n  and then formulating a **Question** to be answered is the _basis_ for\n  [`\"The Scientific Method\"`](https://en.wikipedia.org/wiki/Scientific_method).\n  Without it you are like a blind-folded camel in the desert;\n  unlikely to go _straight_ to the oasis!\n  + Describing your \"success factors\" or \"acceptance criteria\" _before_ you start so you _know_ when you've achieved your goal!\n  + Communicating with **current collaborators** what problem you are/were trying to solve.\n  + Making it _immediately_ clear to everyone if you have _succeeded_ in solving the challenge\n  + Saves time in the _short-run_ because you are _immediately_ focused on the challenge\n  and don't _waste_ time on distractions.\n\n+ ***Security*** - [![Known Vulnerabilities](https://snyk.io/test/github/dwyl/hapi-auth-jwt2/badge.svg?targetFile=package.json)](https://snyk.io/test/github/dwyl/hapi-auth-jwt2?targetFile=package.json) -\nSnyk Dependency Security Vulnerability Checking for your project:\nhttps://snyk.io/\nis a ***free*** service provided by the lovely people at Snyk\nthat checks if any of your `dependencies` have a security vulnerability.\nThis _badge_ is a great way to ***reassure\npeople using your app/site that security is being checked***.\n\u003e Top tip: Guy Podjarny [@guypod](https://github.com/guypod) the founder of Snyk\nhosts \"***The Secure Developer***\" Podcast. \u003cbr /\u003e\nIt's a \"***must***\" for _all_ devs!\nSubscribe if you aren't already:\nhttps://www.heavybit.com/library/podcasts/the-secure-developer\n\n+ **Continuous Integration** - [![Build Status](https://travis-ci.org/dwyl/esta.svg?branch=master)](https://travis-ci.org/dwyl/esta) - \"*build passing*\" indicates that the project's **tests** all **pass** as expected. If you see that the build for a project is \"*broken*\" it means the software does *not* work as advertised! This is a clear sign that you should not be using it (*until it gets fixed!*) ... check the repo's issues to see if it's a known problem, if not, *report it*!  \nWe use [***Travis CI***](https://travis-ci.org/) for our CI.  We wrote a little how-to/tutorial to help you (and your team) get started: [https://github.com/dwyl/**learn-travis**](https://github.com/dwyl/learn-travis)\n\n+ **Test/Code Coverage** - [![codecov.io Code Coverage](https://img.shields.io/codecov/c/github/dwyl/hapi-auth-jwt2.svg?maxAge=2592000)](https://codecov.io/github/dwyl/hapi-auth-jwt2?branch=master) - coverage is the measure of how much of the code in a project is tested. Anything ***below 100% coverage*** means the module/library has ***potential bugs*** which are unknown to the authors/users. We avoid using modules with less than 100% coverage and encourage others to *question* why the authors did not put in the time to test their code... ***ALL our code is tested***. *we cannot guarantee every line is \"bug-free\", (and always welcome people reporting any issues!) however we are meticulous about testing our work and always add regression/edge test cases where bugs are discovered!*\n\n+ **CodeClimate** - [![Code Climate](https://codeclimate.com/github/dwyl/esta/badges/gpa.svg)](https://codeclimate.com/github/dwyl/esta) - is the code quality score for a project measured on a number of factors including **Complexity/Simplicity, Readability, Maintainability, Repetition and Line-count-per-file** . The \u003cb\u003e\u003ci\u003emax\u003c/b\u003e\u003c/i\u003eimum ***score*** is **4.0** and we *obviously* strive to achieve this level in all our work.   [https://github.com/dwyl/**learn-codeclimate**](https://github.com/dwyl/learn-codeclimate)\n\n+ **JavaScript the** _**`goodparts`**_ (_code style/linting_) - [![JavaScript Style Guide: Good Parts](https://img.shields.io/badge/code%20style-goodparts-brightgreen.svg?style=flat)](https://github.com/dwyl/goodparts \"JavaScript The Good Parts\") ... \"Third Party\" Code analysis services like CodeClimate (_above_) are _really_ useful to have an \"_objective_\" (_impartial_) measure for the complexity/maintainability of your codebase, however you may want to take code-style/readability to the _next_ level by using a specific style across all your projects ...\nHaving _harmony_ in your codebase is _really_ useful/practical because it reduces the \"_thinking time_\". People working on the project need in order to _understand_ (_and thus maintain/extend_) existing code. There are a _few_ JavaScript \"style guides\" which help you \u0026 your team write consistent JS.\nWe like [`goodparts`](https://github.com/dwyl/goodparts) because of [_these reasons_](https://github.com/dwyl/goodparts#why),\n_however_ we _encourage_ you to make up your own mind as to which style to use (_preferably based on sound reasoning not fashion_...)\n\n+ **Dependencies** - [![Dependency Status](https://david-dm.org/dwyl/esta.svg)](https://david-dm.org/dwyl/esta) - knowing your module/project has (and works with) the latest versions of all its dependencies is a good way to signal that any bug-fixes/performance improvements/security patches etc in the *component* modules/libraries are considered in by the authors.\nWe use https://david-dm.org/ to track our dependencies. david-dm is lovingly maintained by [**@alanshaw**](https://github.com/alanshaw) of [**TableFlip**](https://tableflip.io/) (a fellow \u003cb\u003e\u003ci\u003edwyl\u003c/b\u003e\u003c/i\u003eer!) and is a *great* resource for the node.js community!\n\n+ **devDependencies** - [![devDependencies Status](https://david-dm.org/dwyl/hapi-auth-jwt2/dev-status.svg)](https://david-dm.org/dwyl/hapi-auth-jwt2?type=dev) - your devDependencies are the modules used in testing/building your project. These do not *need* to be the *latest* versions because you will typically not install your devDependencies on your production server (so there aren't security vulnerabilities in *production* of having out-of-date devDependencies...) however, ***we encourage*** use of ***latest*** devDependencies because it means better stability in the build (fewer bugs in our tools!) and it makes it *easier* for ***new people joining the project*** because when they `npm install` they know everything is the *latest* version.\n\n+ **NPM Module _Version_** - [![NPM Version](https://badge.fury.io/js/esta.svg?style=flat)](https://npmjs.org/package/esta) this is a simple *convenience* to signal to fellow developers which version is the latest for your module. (*saves them having to look at the package.json*) If you want to include one in your readme, go to: https://badge.fury.io/for/js and type in your npm package name.\n\n+ **NPM Module _Download Stats_** - [![NPM Download Stats](https://nodei.co/npm/decache.png?downloads=true)](https://www.npmjs.com/package/decache) - while this can be seen as a \"_vanity metric_\" it _can_ also be _useful_ to know if your project is actually being _used_ by people in the community to know if you need keep supporting it.\n\n## How?\n\n\u003c!--\n## Documentation ![Inch-CI](https://inch-ci.org/assets/badge-example-b71f9e833318f66f64b3f23877113051.svg)\n\nWhile including a badge from \"Inch-CI\" in _no way_ \"_guarantees_\" that your project\nis \"_comprehensively_\" documented it serves to remind you (_and your team_)\nthat documentation (i.e. _communication_) is a _priority_ and _signals_\nto others if you have the solution to _their_ \"challenge\".\n\n\u003e Visit: https://inch-ci.org/learn_more and paste your GitHub\nusername (_or organisation name_) and _repository_ name into the form then click `Evaluate`.\n\nThen you can copy the badge directly from the resulting page. e.g:\n\n```md\n[![Inline docs](https://inch-ci.org/github/{ORG-or-USERNAME}/{REPO-NAME}.svg?branch=master)](https://inch-ci.org/github/{ORG-or-USERNAME}/{REPO-NAME})\n```\n--\u003e\n\n## Build Passing [![Build Status](https://travis-ci.org/dwyl/esta.svg?branch=master)](https://travis-ci.org/)\n\n### GitHub Actions/Workflows\n\nIf you are using GitHub Actions/Workflows \nhttps://github.com/features/actions\nto run your Continuous Integration (CI),\nthen you can include a badge in your project's `README.md`:\nhttps://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge\n\nRegular badge template:\n```\n![example workflow](https://github.com/\u003cOWNER\u003e/\u003cREPOSITORY\u003e/actions/workflows/\u003cWORKFLOW_FILE\u003e/badge.svg)\n```\ne.g:\n```\n![GitHub CI](https://github.com/dwyl/auth_plug/actions/workflows/ci.yml/badge.svg)\n```\n\n![GitHub CI](https://github.com/dwyl/auth_plug/actions/workflows/ci.yml/badge.svg)\n\nCustom badge via Shields.io: https://shields.io/category/build\n![image](https://user-images.githubusercontent.com/194400/137601498-5a5496dc-f610-4931-8fa6-45e9ef9cd051.png)\n\nExample:\n```\n![GitHub Workflow Status](https://img.shields.io/github/workflow/status/dwyl/auth_plug/Elixir%20CI?label=build\u0026style=flat-square)\n```\n![GitHub Workflow Status](https://img.shields.io/github/workflow/status/dwyl/auth_plug/Elixir%20CI?label=build\u0026style=flat-square)\n\n\u003cbr /\u003e\n\n### Travis-CI\n\nYou'll need to setup your project on [**Travis-CI**](https://github.com/dwyl/learn-travis) and write **unit tests** (*preferably TDD!*) for this to work ... if you're stuck ask us how!\n\n\n```md\n[![Build Status](https://travis-ci.org/{ORG-or-USERNAME}/{REPO-NAME}.png?branch=master)](https://travis-ci.org/{ORG-or-USERNAME}/{REPO-NAME})\n```\n\n### CodeClimate\n\nSetup your repository by adding it on code climate then copy the badge markdown from them!\n\nFor more detailed instructions see: https://github.com/dwyl/learn-codeclimate\n\n### Coverage\n\nThe new kid on the block for Test Coverage is \"CodeCov\": https://codecov.io/#features  \nWe *love* their features *especially the fact that they check*\n***coverage for pull requests***! see: https://github.com/dwyl/learn-istanbul#tracking-coverage-as-a-service  \n\nTo setup **codecov** simply add the following lines to your\n`.travis.yml` file:\n\n```sh\nbefore_install:\n  - pip install --user codecov\nafter_success:\n  - codecov --file coverage/lcov.info --disable search\n```\n\nAnd remember to output a [coverage report](https://github.com/nelsonic/hits/blob/7867e0d1abe9d3a5246e39ad53abdbde35ded01a/package.json#L11) in your tests using istanbul,\nby adding it to your `test` script in your [package.json](https://github.com/nelsonic/hits/blob/7867e0d1abe9d3a5246e39ad53abdbde35ded01a/package.json#L11)\nso that travis can send the coverage report to codecov\ne.g:\n```sh\n\"scripts\": {\n  \"test\": \"./node_modules/.bin/istanbul cover ./node_modules/tape/bin/tape ./test/*.js\"\n}\n```\nIf you are new to test coverage using istanbul check out:\n[**learn-istanbul**](https://github.com/dwyl/learn-istanbul)\n\nWorking example:\n[hits/**.travis.yml**](https://github.com/nelsonic/hits/blob/master/.travis.yml)\n\n\u003e Note: you can still use CodeClimate for Coverage if you prefer,\u003cbr /\u003e\nwe're *excited* that there is more *choice* in the JS testing space!\n\n### `goodparts` JavaScript Code Style [![JavaScript Style Guide: Good Parts](https://img.shields.io/badge/code%20style-goodparts-brightgreen.svg?style=flat)](https://github.com/dwyl/goodparts \"JavaScript The Good Parts\")\n\nOnce you have installed `goodparts` and used it to `lint` your code,\nsee: https://github.com/dwyl/goodparts#how you can include a _badge_ in your repo to inform others of your choice of code style.\n\n```markdown\n[![JavaScript Style Guide: Good Parts](https://img.shields.io/badge/code%20style-goodparts-brightgreen.svg?style=flat)](https://github.com/dwyl/goodparts \"JavaScript The Good Parts\")\n```\n\u003e See: https://github.com/dwyl/goodparts\n\n\n### Why? [![start with why](https://img.shields.io/badge/start%20with-why%3F-brightgreen.svg?style=flat)](https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action)\n\n```code\n## Why? [![start with why](https://img.shields.io/badge/start%20with-why%3F-brightgreen.svg?style=flat)](https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action)\n```\n\n### Node.js Version your Project/Module Supports: [![NPM version](https://badge.fury.io/js/esta.svg)](https://badge.fury.io/js/esta)\n\n```md\n[![Node version](https://img.shields.io/node/v/[NPM-MODULE-NAME].svg?style=flat)](https://nodejs.org/download/)\n```\n\n### NPM Download Statistics\n\nTo show download stats for your NPM package, use https://nodei.co/ e.g:\n\n[![NPM Download Stats](https://nodei.co/npm/hapi-auth-jwt2.png?downloads=true\u0026downloadRank=true\u0026stars=true)](https://www.npmjs.com/package/hapi-auth-jwt2)\n\nIf you want the image to be _clickable_ use the following Markdown:\n\n```markdown\n[![https://nodei.co/npm/YOUR-MODULE-NAME.png?downloads=true\u0026downloadRank=true\u0026stars=true](https://nodei.co/npm/YOUR-MODULE-NAME.png?downloads=true\u0026downloadRank=true\u0026stars=true)](https://www.npmjs.com/package/YOUR-MODULE-NAME)\n```\n\n### Contributing [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)\n\nIf you want to _encourage_ people to contribute to your project, by reminding them that you _welcome_ their input use this badge!\n\n```code\n## Contributing [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)\n\n```\n\n### Gitter (*Chat for Developers*!)\n\n[![Join the chat at https://gitter.im/dwyl/chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dwyl/chat?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n```md\n[![Join the chat at https://gitter.im/{ORG-or-USERNAME}/{REPO-NAME}](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dwyl/?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n```\n#### _dwyl_ chat button:\n\nIf you are working on a project in the `dwyl` organisation and want\nto include the button to let people join our _public_ chat channel,\ncopy paste this markdown _snippet_ into the `README.md`\nof the project you are working on:\n\n```md\n[![Join the chat at https://gitter.im/dwyl/chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dwyl/chat?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n```\n\n### (GitHub Repo) Hit Counter [![HitCount](https://hits.dwyl.com/dwyl/repo-badges.svg)](https://hits.dwyl.com/dwyl/repo-badges)\n\nEver wanted to know how many people have viewed your GitHub Repo?\u003cbr /\u003e\nWe did ...\nSo we wrote a tiny script that counts views! :open_mouth:\n\nVisit: https://hits.dwyl.com to get your \"Hit Count\" badge.\n\nTemplate:\n```md\n[![HitCount](https://hits.dwyl.com/{username}/{project-name}.svg)](https://hits.dwyl.com/{username}/{project-name})\n```\nExample:\n```\n[![HitCount](https://hits.dwyl.com/dwyl/start-here.svg)](https://hits.dwyl.com/dwyl/start-here)\n```\n\n\n\u003e _Yes, we **know** that for some people,\n\"hits\" = \"**How Idiots Track Success**\" ...\nbut, in the absence of better analytics,\npage views are a good metric to be aware of!_ :chart_with_upwards_trend:\n\n\n### Snyk _Proactive_ Security Vulnerability Detection\n\nSee: \n[snyk-security-scanning.md](https://github.com/dwyl/repo-badges/blob/main/snyk-security-scanning.md)\n\n# Thank _You_!\n\nHelp spread the **Code Quality** ***Love***! :heart:\u003cbr /\u003e\nPlease :star: this repo and share it with others by ***re-tweeting***:\n\n[![repo-bages-please-retweet](https://i.imgur.com/OuqTKlV.png)](https://twitter.com/nelsonic/status/602379561507135488)\n\n\n\n\u003cbr /\u003e\n\n### Others\n\nIf you need to adapt any of the images or *create your own*: https://shields.io\n\n## *Extra* High-resolution\n\nWe needed ***High-resolution versions*** of the coding badges for a presentation about testing so we made **PNG**s from the SVGs ...\n\nThese are in the folders in this repo in case they are useful to someone else.\n\n\n\u003csup\u003e1\u003c/sup\u003eOther repositories that do *not* have these badges are not *necessarily* \"***worse***\" or have \"***low standards***\", they simply are **not** making them ***explicit*** .\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwyl%2Frepo-badges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdwyl%2Frepo-badges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwyl%2Frepo-badges/lists"}