## File: README.md

# 📊 Metrics [](https://www.producthunt.com/posts/github-metrics?utm_source=badge-featured&utm_medium=badge&utm_source=badge-github-metrics)

[](https://github.com/lowlighter/metrics/actions/workflows/ci.yml)

Generate metrics that can be embedded everywhere, including your GitHub profile readme! Supports users, organizations, and even repositories!



| For user accounts | For organization accounts |
| --- | --- |
|  |  |
| [🧩 Customizable with 47 plugins and 335 options!](/README.md#-plugins) |  |
| [📅 Isometric commit calendar](source/plugins/isocalendar/README.md) | [🈷️ Languages activity](source/plugins/languages/README.md) |
| Full year calendar
        Half year calendar | Indepth analysis (clone and analyze repositories)
        Recently used (analyze recent activity events)
        Default algorithm
        Default algorithm (with details) |
| [✨ Stargazers](source/plugins/stargazers/README.md) | [👨‍💻 Lines of code changed](source/plugins/lines/README.md) |
| Classic charts
        Graph charts
        Worldmap | Repositories and diff history
        Compact display in base plugin |
| [📌 Starred topics](source/plugins/topics/README.md) | [🌟 Recently starred repositories](source/plugins/stars/README.md) |
| With icons
        With labels |  |
| [📜 Repository licenses](source/plugins/licenses/README.md) | [💡 Coding habits and activity](source/plugins/habits/README.md) |
| Permissions, limitations and conditions
        Licenses overview | Recent activity charts
        Mildly interesting facts |
| [🏅 Repository contributors](source/plugins/contributors/README.md) | [🎟️ Follow-up of issues and pull requests](source/plugins/followup/README.md) |
| By contribution types
        By number of contributions | Indepth analysis
        Created on a user's repositories
        Created by a user |
| [🎭 Comment reactions](source/plugins/reactions/README.md) | [🧑‍🤝‍🧑 People](source/plugins/people/README.md) |
|  | Related to a user
        Related to a repository |
| [💝 GitHub Sponsorships](source/plugins/sponsorships/README.md) | [💕 GitHub Sponsors](source/plugins/sponsors/README.md) |
|  | GitHub sponsors card
        GitHub sponsors full introduction |
| [📓 Featured repositories](source/plugins/repositories/README.md) | [💬 Discussions](source/plugins/discussions/README.md) |
| Featured
        Pinned |  |
| [💫 Star lists](source/plugins/starlists/README.md) | [📆 Commit calendar](source/plugins/calendar/README.md) |
| Repositories from star lists
        Languages from star lists | Current year
        Full history |
| [🏆 Achievements](source/plugins/achievements/README.md) | [🎩 Notable contributions](source/plugins/notable/README.md) |
| Compact display
        Detailed display | Indepth analysis
        Contributions in organizations only |
| [📰 Recent activity](source/plugins/activity/README.md) | [🧮 Repositories traffic](source/plugins/traffic/README.md) |
|  |  |
| [♐ Random code snippet](source/plugins/code/README.md) | [🎫 Gists](source/plugins/gists/README.md) |
|  |  |
| [🗂️ GitHub projects](source/plugins/projects/README.md) | [🙋 Introduction](source/plugins/introduction/README.md) |
|  | For a user or an organization
        For a repository |
| [🌇 GitHub Skyline](source/plugins/skyline/README.md) | [⏱️ Google PageSpeed](source/plugins/pagespeed/README.md) |
| GitHub Skyline
        GitHub City | PageSpeed scores
        PageSpeed scores with detailed report
        PageSpeed scores with a website screenshot |
| [🗨️ Stack Overflow](source/plugins/stackoverflow/README.md) | [🌸 Anilist watch list and reading list](source/plugins/anilist/README.md) |
|  | For anime watchers
        For manga readers
        For waifus simp |
| [🎼 Music activity and suggestions](source/plugins/music/README.md) | [✒️ Recent posts](source/plugins/posts/README.md) |
| Random tracks from a playlist
        Recently listened | Latest posts width description and cover image
        Latest posts |
| [🗼 Rss feed](source/plugins/rss/README.md) | [⏰ WakaTime](source/plugins/wakatime/README.md) |
|  |  |
| [🗳️ Leetcode](source/plugins/leetcode/README.md) | [🕹️ Steam](source/plugins/steam/README.md) |
|  | Recently played games
        Profile and detailed game history |
| [🎲 See also community plugins](/source/plugins/community/README.md) |  |
| [🧠 16personalities](source/plugins/community/16personalities/README.md)by [@lowlighter](https://github.com/lowlighter)
      Render example | [♟️ Chess](source/plugins/community/chess/README.md)by [@lowlighter](https://github.com/lowlighter)
      Render example |
| [🪙 Crypto](source/plugins/community/crypto/README.md)by [@dajneem23](https://github.com/dajneem23)
      Render example | [🥠 Fortune](source/plugins/community/fortune/README.md)by [@lowlighter](https://github.com/lowlighter)
      Render example |
| [💉 Nightscout](source/plugins/community/nightscout/README.md)by [@legoandmars](https://github.com/legoandmars)
      Render example | [💩 PoopMap plugin](source/plugins/community/poopmap/README.md)by [@matievisthekat](https://github.com/matievisthekat)
      Render example |
| [📸 Website screenshot](source/plugins/community/screenshot/README.md)by [@lowlighter](https://github.com/lowlighter)
      Render example | [🦑 Splatoon](source/plugins/community/splatoon/README.md)by [@lowlighter](https://github.com/lowlighter)
      Render example |
| [💹 Stock prices](source/plugins/community/stock/README.md)by [@lowlighter](https://github.com/lowlighter)
      Render example |  |
| [🖼️ And even more with 4+ templates!](/README.md#%EF%B8%8F-templates) |  |
| [📗 Classic template](/source/templates/classic/README.md) | [📘 Repository template](/source/templates/repository/README.md) |
|  |  |
| [📙 Terminal template](/source/templates/terminal/README.md) | [📒 Markdown template](/source/templates/markdown/README.md) |
|  |  |
| [📕 See also community templates](/source/templates/community/README.md) |  |
| 🦑 Try it now! |  |
| [📊 Metrics embed](https://metrics.lecoq.io/embed) | [✨ Metrics insights](https://metrics.lecoq.io/insights) |
| Embed metrics images on your profile or blog!
      Use [GitHub actions](https://github.com/marketplace/actions/metrics-embed) for even more features! | Share your metrics with friends and on social medias!
      No configuration needed! |
| Test latest features and patches on `[🧪 Metrics beta](https://beta-metrics.lecoq.io)`! |  |
| **Power user?**
      [Fork this repository](https://github.com/lowlighter/metrics/fork) and edit HTML, CSS, JS and [EJS](https://github.com/mde/ejs) for even more customization! |  |




# 📚 Documentation


> <sup>*⚠️ This is the documentation of **v3.35-beta** (`@master`/`@main` branches) which includes [unreleased features](https://github.com/lowlighter/metrics/compare/latest...master) planned for next release. See documentation for current released version [**v3.34** (`@latest` branch) here](https://github.com/lowlighter/metrics/blob/latest/README.md).* </sup>



## 🦮 Setup

There are several ways to setup metrics, each having its advantages and disadvantages:

* [⚙️ Using GitHub Action on a profile repository *(~10 min)*](/.github/readme/partials/documentation/setup/action.md)
  * ✔️ All features
  * ✔️ High availability (no downtimes)
  * ➖ Configuration can be a bit time-consuming
* [💕 Using the shared instance *(~1 min)*](/.github/readme/partials/documentation/setup/shared.md)
  * ✔️ Easily configurable and previewable
  * ➖ Limited features *(compute-intensive features are disabled)*
* [🏗️ Deploying a web instance *(~20 min)*](/.github/readme/partials/documentation/setup/web.md)
  * ✔️ Create another shared instance
  * ➖ Requires some sysadmin knowledge
* [🐳 Using command line with docker *(~2 min)*](/.github/readme/partials/documentation/setup/docker.md)
  * ✔️ Suited for one-time rendering
* [🔧 Local setup for development *(~20 min)*](/.github/readme/partials/documentation/setup/local.md)

Additional resources for setup:
* [🏦 Configure metrics for organizations](/.github/readme/partials/documentation/organizations.md)
* [🏠 Run metrics on self-hosted runners](/.github/readme/partials/documentation/selfhosted.md)
* [🧰 Template/Plugin compatibility matrix](/.github/readme/partials/documentation/compatibility.md)
## 🖼️ Templates

Templates lets you change general appearance of rendered metrics.


* [📗 Classic template <sub>`classic`</sub>](/source/templates/classic/README.md)
* [📘 Repository template <sub>`repository`</sub>](/source/templates/repository/README.md)
* [📙 Terminal template <sub>`terminal`</sub>](/source/templates/terminal/README.md)
* [📒 Markdown template <sub>`markdown`</sub>](/source/templates/markdown/README.md)
* [📕 Community templates <sub>`community`</sub>](/source/templates/community/README.md)

## 🧩 Plugins

Plugins provide additional content and lets you customize rendered metrics.

**📦 Maintained by core team**

* **Core plugins**
  * [🗃️ Base content <sub>`base`</sub>](/source/plugins/base/README.md)
  * [🧱 Core <sub>`core`</sub>](/source/plugins/core/README.md)
* **GitHub plugins**
  * [🏆 Achievements <sub>`achievements`</sub>](/source/plugins/achievements/README.md)
  * [📰 Recent activity <sub>`activity`</sub>](/source/plugins/activity/README.md)
  * [📆 Commit calendar <sub>`calendar`</sub>](/source/plugins/calendar/README.md)
  * [♐ Random code snippet <sub>`code`</sub>](/source/plugins/code/README.md)
  * [🏅 Repository contributors <sub>`contributors`</sub>](/source/plugins/contributors/README.md)
  * [💬 Discussions <sub>`discussions`</sub>](/source/plugins/discussions/README.md)
  * [🎟️ Follow-up of issues and pull requests <sub>`followup`</sub>](/source/plugins/followup/README.md)
  * [🎫 Gists <sub>`gists`</sub>](/source/plugins/gists/README.md)
  * [💡 Coding habits and activity <sub>`habits`</sub>](/source/plugins/habits/README.md)
  * [🙋 Introduction <sub>`introduction`</sub>](/source/plugins/introduction/README.md)
  * [📅 Isometric commit calendar <sub>`isocalendar`</sub>](/source/plugins/isocalendar/README.md)
  * [🈷️ Languages activity <sub>`languages`</sub>](/source/plugins/languages/README.md)
  * [📜 Repository licenses <sub>`licenses`</sub>](/source/plugins/licenses/README.md)
  * [👨‍💻 Lines of code changed <sub>`lines`</sub>](/source/plugins/lines/README.md)
  * [🎩 Notable contributions <sub>`notable`</sub>](/source/plugins/notable/README.md)
  * [🧑‍🤝‍🧑 People <sub>`people`</sub>](/source/plugins/people/README.md)
  * [🗂️ GitHub projects <sub>`projects`</sub>](/source/plugins/projects/README.md)
  * [🎭 Comment reactions <sub>`reactions`</sub>](/source/plugins/reactions/README.md)
  * [📓 Featured repositories <sub>`repositories`</sub>](/source/plugins/repositories/README.md)
  * [🌇 GitHub Skyline <sub>`skyline`</sub>](/source/plugins/skyline/README.md)
  * [💕 GitHub Sponsors <sub>`sponsors`</sub>](/source/plugins/sponsors/README.md)
  * [💝 GitHub Sponsorships <sub>`sponsorships`</sub>](/source/plugins/sponsorships/README.md)
  * [✨ Stargazers <sub>`stargazers`</sub>](/source/plugins/stargazers/README.md)
  * [💫 Star lists <sub>`starlists`</sub>](/source/plugins/starlists/README.md)
  * [🌟 Recently starred repositories <sub>`stars`</sub>](/source/plugins/stars/README.md)
  * [💭 GitHub Community Support <sub>`support`</sub>](/source/plugins/support/README.md) <sub>`⚠️ deprecated`</sub>
  * [📌 Starred topics <sub>`topics`</sub>](/source/plugins/topics/README.md)
  * [🧮 Repositories traffic <sub>`traffic`</sub>](/source/plugins/traffic/README.md)
* **Social plugins**
  * [🌸 Anilist watch list and reading list <sub>`anilist`</sub>](/source/plugins/anilist/README.md)
  * [🗳️ Leetcode <sub>`leetcode`</sub>](/source/plugins/leetcode/README.md)
  * [🎼 Music activity and suggestions <sub>`music`</sub>](/source/plugins/music/README.md)
  * [⏱️ Google PageSpeed <sub>`pagespeed`</sub>](/source/plugins/pagespeed/README.md)
  * [✒️ Recent posts <sub>`posts`</sub>](/source/plugins/posts/README.md)
  * [🗼 Rss feed <sub>`rss`</sub>](/source/plugins/rss/README.md)
  * [🗨️ Stack Overflow <sub>`stackoverflow`</sub>](/source/plugins/stackoverflow/README.md)
  * [🕹️ Steam <sub>`steam`</sub>](/source/plugins/steam/README.md)
  * [🐤 Latest tweets <sub>`tweets`</sub>](/source/plugins/tweets/README.md) <sub>`⚠️ deprecated`</sub>
  * [⏰ WakaTime <sub>`wakatime`</sub>](/source/plugins/wakatime/README.md)

**🎲 Maintained by community**
* **[Community plugins](/source/plugins/community/README.md)**
  * [🧠 16personalities <sub>`16personalities`</sub>](/source/plugins/community/16personalities/README.md) by [@lowlighter](https://github.com/lowlighter)
  * [♟️ Chess <sub>`chess`</sub>](/source/plugins/community/chess/README.md) by [@lowlighter](https://github.com/lowlighter)
  * [🪙 Crypto <sub>`crypto`</sub>](/source/plugins/community/crypto/README.md) by [@dajneem23](https://github.com/dajneem23)
  * [🥠 Fortune <sub>`fortune`</sub>](/source/plugins/community/fortune/README.md) by [@lowlighter](https://github.com/lowlighter)
  * [💉 Nightscout <sub>`nightscout`</sub>](/source/plugins/community/nightscout/README.md) by [@legoandmars](https://github.com/legoandmars)
  * [💩 PoopMap plugin <sub>`poopmap`</sub>](/source/plugins/community/poopmap/README.md) by [@matievisthekat](https://github.com/matievisthekat)
  * [📸 Website screenshot <sub>`screenshot`</sub>](/source/plugins/community/screenshot/README.md) by [@lowlighter](https://github.com/lowlighter)
  * [🦑 Splatoon <sub>`splatoon`</sub>](/source/plugins/community/splatoon/README.md) by [@lowlighter](https://github.com/lowlighter)
  * [💹 Stock prices <sub>`stock`</sub>](/source/plugins/community/stock/README.md) by [@lowlighter](https://github.com/lowlighter)


## 💪 Contributing

If you are interested in contributing, the following resources may interest you:

* [💪 Contribution guide](/CONTRIBUTING.md)
* [🧬 Architecture](/ARCHITECTURE.md)
* [📜 License](/LICENSE)
* **:octocat: GitHub resources**
  * [📖 GitHub GraphQL API](https://docs.github.com/en/graphql)
  * [📖 GitHub GraphQL Explorer](https://docs.github.com/en/free-pro-team@latest/graphql/overview/explorer)
  * [📖 GitHub Rest API](https://docs.github.com/en/rest)
  * [📖 GitHub Octicons](https://github.com/primer/octicons)

Use [`💬 discussions`](https://github.com/lowlighter/metrics/discussions) for feedback, new features suggestions, bugs reports or to request help for installation.


## 📜 License

```
MIT License
Copyright (c) 2020-present lowlighter
```

---

## File: source/plugins/reactions/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| 🎭 Comment reactions |  |
| This plugin displays overall user reactions on recent issues, comments and discussions. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [GitHub](https://github.com).
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) |
| `👤 Users` |  |
| `🔑 (scopeless)` `read:org (optional)` `read:user (optional)` `read:packages (optional)` `repo (optional)` |  |
|  |  |




## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_reactions` | Enable reactions plugin |
| **type:** `boolean`

**default:** no |  |
| `plugin_reactions_limit` | Display limit (issues and pull requests comments) |
| **type:** `number`
(0 ≤
𝑥
≤ 1000)

**default:** 200 |  |
| `plugin_reactions_limit_issues` | Display limit (issues and pull requests, first comment) |
| **type:** `number`
(0 ≤
𝑥
≤ 1000)

**default:** 100 |  |
| `plugin_reactions_limit_discussions` | Display limit (discussions, first comment) |
| **type:** `number`
(0 ≤
𝑥
≤ 1000)

**default:** 100 |  |
| `plugin_reactions_limit_discussions_comments` | Display limit (discussions comments) |
| **type:** `number`
(0 ≤
𝑥
≤ 1000)

**default:** 100 |  |
| `plugin_reactions_days` | Comments maximum age |
| **type:** `number`
(0 ≤
𝑥)

**zero behaviour:** disable
**default:** 0 |  |
| `plugin_reactions_display` | Display mode

`absolute`: scale percentages using total reactions count
`relative`: scale percentages using highest reaction count |
| **type:** `string`

**default:** absolute
**allowed values:**absoluterelative |  |
| `plugin_reactions_details` | Additional details |
| **type:** `array`
*(comma-separated)*

**allowed values:**countpercentage |  |
| `plugin_reactions_ignored` | Ignored users
Can be used to ignore bots activity |
| ⏩ Inherits `users_ignored`
**type:** `array`
*(comma-separated)* |  |




## ℹ️ Examples workflows


```yaml
name: Comment reactions
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.reactions.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  plugin_reactions: yes
  plugin_reactions_limit: 100
  plugin_reactions_details: percentage

```

---

## File: source/plugins/projects/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| 🗂️ GitHub projects |  |
| This plugin displays progress of profile and repository projects. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [GitHub](https://github.com).
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) [`📘 Repository template`](/source/templates/repository/README.md) |
| `👤 Users` `👥 Organizations` `📓 Repositories` |  |
| `🔑 (scopeless)` `🔑 public_repo` `🔑 read:project` `read:org (optional)` `read:user (optional)` `read:packages (optional)` `repo (optional)` |  |
|  |  |




## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_projects` | Enable projects plugin |
| **type:** `boolean`

**default:** no |  |
| `plugin_projects_limit` | Display limit
Projects defined by [`plugin_projects_repositories`](/source/plugins/projects/README.md#plugin_projects_repositories) are not affected by this option |
| **type:** `number`
(0 ≤
𝑥
≤ 100)

**default:** 4 |  |
| `plugin_projects_repositories` | Featured repositories projects
Use the following syntax for each project `:user/:repo/projects/:project_id`

ℹ️ [GitHub projects (beta)](https://docs.github.com/en/issues/trying-out-the-new-projects-experience/about-projects) needs to use the same syntax as above and repository must specified repository must be linked to given project. |
| ⏯️ Cannot be preset
**type:** `array`
*(comma-separated)* |  |
| `plugin_projects_descriptions` | Projects descriptions |
| **type:** `boolean`

**default:** no |  |




## 🔄 Enabling progress tracking

By default, projects have progress tracking disabled.

To enable it, open the `≡ Menu` from the project page and opt-in to `Track project progress`.



## 👤 Use personal projects

To create a personal project, select the `Projects` tab from your profile:


Fill informations and set visibility to *public*:


## 📓 Use repositories projects

Repositories projects are created from the `Projects` tab of a repository.

To use it with this plugin, retrieve the last section of the project URL (it should match the format `:user/:repository/projects/:project_id`) and add it in the `plugin_projects_repositories`.

Be sure to tick `Track project progress` in project settings to display a progress bar.



*Example: include a project repository*
```yml
- uses: lowlighter/metrics@latest
  with:
    plugin_projects: yes
    plugin_projects_repositories: lowlighter/metrics/projects/1
```

## ℹ️ Examples workflows


```yaml
name: Project from a repository
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.projects.svg
  token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
  base: ""
  plugin_projects: yes
  plugin_projects_repositories: lowlighter/metrics/projects/1
  plugin_projects_descriptions: yes

```

---

## File: source/plugins/posts/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| ✒️ Recent posts |  |
| This plugin displays recent articles from a specified and supported external source. |  |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) [`📒 Markdown template`](/source/templates/markdown/README.md) [`📘 Repository template`](/source/templates/repository/README.md) |
| `👤 Users` `👥 Organizations` `📓 Repositories` |  |
| *No tokens are required for this plugin* |  |
| Latest posts width description and cover image
      Latest posts |  |




## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_posts` | Enable posts plugin |
| **type:** `boolean`

**default:** no |  |
| `plugin_posts_source` | External source

`dev.to`: [dev.to](https://dev.to)
`hashnode`: [hashnode.com](https://hashnode.com) |
| **type:** `string`

**allowed values:**dev.tohashnode |  |
| `plugin_posts_user` | External source username |
| ⏯️ Cannot be preset
**type:** `string`

**default:** `→ User login` |  |
| `plugin_posts_descriptions` | Posts descriptions |
| **type:** `boolean`

**default:** no |  |
| `plugin_posts_covers` | Posts cover images |
| **type:** `boolean`

**default:** no |  |
| `plugin_posts_limit` | Display limit |
| **type:** `number`
(1 ≤
𝑥
≤ 30)

**default:** 4 |  |




## ℹ️ Examples workflows


```yaml
name: Recent posts
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.posts.svg
  token: NOT_NEEDED
  base: ""
  plugin_posts: yes
  plugin_posts_source: dev.to

```
```yaml
name: Recent posts with descriptions and cover images
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.posts.full.svg
  token: NOT_NEEDED
  base: ""
  plugin_posts: yes
  plugin_posts_source: dev.to
  plugin_posts_limit: 2
  plugin_posts_descriptions: yes
  plugin_posts_covers: yes

```

---

## File: source/plugins/people/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| 🧑‍🤝‍🧑 People |  |
| This plugin can display relationships with users, such as followers, sponsors, contributors, stargazers, watchers, members, etc. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [GitHub](https://github.com).
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) [`📘 Repository template`](/source/templates/repository/README.md) |
| `👤 Users` `👥 Organizations` `📓 Repositories` |  |
| `🔑 (scopeless)` `read:org (optional)` `read:user (optional)` `read:packages (optional)` `repo (optional)` |  |
| Related to a user
      Related to a repository |  |




## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_people` | Enable people plugin |
| **type:** `boolean`

**default:** no |  |
| `plugin_people_limit` | Display limit |
| **type:** `number`
(0 ≤
𝑥)

**zero behaviour:** disable
**default:** 24 |  |
| `plugin_people_identicons` | Force identicons pictures
Can be used to mask profile pictures for privacy |
| **type:** `boolean`

**default:** no |  |
| `plugin_people_identicons_hide` | Hide identicons pictures
Can be used to mask users without a personal profile picture.
When used with [`plugin_people_identicons`](/source/plugins/people/README.md#plugin_people_identicons), users without a personal profile picture will still be filtered out, but their picture will be replaced by an identicon instead |
| **type:** `boolean`

**default:** no |  |
| `plugin_people_size` | Profile picture display size |
| **type:** `number`
(8 ≤
𝑥
≤ 64)

**default:** 28 |  |
| `plugin_people_types` | Displayed sections
User and organization accounts support the following values:

`followers`
`following`/`followed`
`sponsoring`/`sponsored`
`sponsors`
`members` (organization only)
`thanks`(to be configured with [`plugin_people_thanks`](/source/plugins/people/README.md#plugin_people_thanks))

Repositories support the following values:

`sponsors` (same as owner sponsors)
`contributors`
`stargazers`
`watchers`
`thanks`(to be configured with [`plugin_people_thanks`](/source/plugins/people/README.md#plugin_people_thanks))

Specified order is honored |
| **type:** `array`
*(comma-separated)*

**default:** followers, following
**allowed values:**followersfollowingfollowedsponsoringmemberssponsoredsponsorscontributorsstargazerswatchersthanks |  |
| `plugin_people_thanks` | Special thanks
Can be used to thank specific users |
| ⏯️ Cannot be preset
**type:** `array`
*(comma-separated)* |  |
| `plugin_people_sponsors_custom` | Custom sponsors
This list can be used to add users from unsupported GitHub sponsors sources.
The option [`plugin_people_types`](/source/plugins/people/README.md#plugin_people_types) must contain the `sponsors` section in order for this setting to be effective |
| ⏯️ Cannot be preset
**type:** `array`
*(comma-separated)* |  |
| `plugin_people_shuffle` | Shuffle data
Can be used to create varied outputs
This will fetch additional data (10 times [`plugin_people_limit`](/source/plugins/people/README.md#plugin_people_limit)) to ensure output is always different |
| **type:** `boolean`

**default:** no |  |




## ℹ️ Examples workflows


```yaml
name: Followers
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.people.followers.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  plugin_people: yes
  plugin_people_types: followers

```
```yaml
name: Contributors and sponsors
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.people.repository.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  template: repository
  repo: metrics
  plugin_people: yes
  plugin_people_types: contributors, stargazers, watchers, sponsors

```

---

## File: source/plugins/pagespeed/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| ⏱️ Google PageSpeed |  |
| This plugin displays performance statistics of a website.
It uses [Google&#39;s PageSpeed API](https://developers.google.com/speed/docs/insights/v5/get-started) (same as [web.dev](https://web.dev)), see [performance scoring](https://web.dev/performance-scoring/) and [score calculator](https://googlechrome.github.io/lighthouse/scorecalc/) for more informations about results. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [Google PageSpeed](https://pagespeed.web.dev/).
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) [`📘 Repository template`](/source/templates/repository/README.md) [`📙 Terminal template`](/source/templates/terminal/README.md) |
| `👤 Users` `👥 Organizations` `📓 Repositories` |  |
| `🗝️ plugin_pagespeed_token` |  |
| PageSpeed scores
      PageSpeed scores with detailed report
      PageSpeed scores with a website screenshot |  |




## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_pagespeed` | Enable pagespeed plugin |
| **type:** `boolean`

**default:** no |  |
| `plugin_pagespeed_token` | PageSpeed token

⚠️ While not mandatory, it is strongly advised pass a token to avoid triggering the rate limiter. See [PageSpeed documentation](https://developers.google.com/speed/docs/insights/v5/get-started) for more informations. |
| 🔐 Token
🌐 Web instances must configure `settings.json`:

*metrics.api.google.pagespeed*

**type:** `token` |  |
| `plugin_pagespeed_url` | Audited website |
| ⏯️ Cannot be preset
**type:** `string`

**default:** `→ User attached website` |  |
| `plugin_pagespeed_detailed` | Detailed results
The following additional stats will be displayed:

First Contentful Paint
Speed Index
Largest Contentful Paint
Time to Interactive
Total Blocking Time
Cumulative Layout Shift |
| **type:** `boolean`

**default:** no |  |
| `plugin_pagespeed_screenshot` | Website screenshot
Significantly increase filesize |
| **type:** `boolean`

**default:** no |  |
| `plugin_pagespeed_pwa` | PWA Status |
| **type:** `boolean`

**default:** no |  |




## ℹ️ Examples workflows


```yaml
name: Succinct report
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.pagespeed.svg
  token: NOT_NEEDED
  base: ""
  plugin_pagespeed: yes
  plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
  plugin_pagespeed_url: https://lecoq.io

```
```yaml
name: Detailed report
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.pagespeed.detailed.svg
  token: NOT_NEEDED
  base: ""
  plugin_pagespeed: yes
  plugin_pagespeed_detailed: yes
  plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
  plugin_pagespeed_url: https://lecoq.io

```
```yaml
name: Screenshot
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.pagespeed.screenshot.svg
  token: NOT_NEEDED
  base: ""
  plugin_pagespeed: yes
  plugin_pagespeed_screenshot: yes
  plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
  plugin_pagespeed_url: https://lecoq.io

```
```yaml
name: Succinct report with PWA
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.pagespeed.svg
  token: NOT_NEEDED
  base: ""
  plugin_pagespeed: yes
  plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
  plugin_pagespeed_url: https://lecoq.io
  plugin_pagespeed_pwa: yes

```

---

## File: source/plugins/notable/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| 🎩 Notable contributions |  |
| This plugin displays badges for notable contributions on repositories. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [GitHub](https://github.com).
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) |
| `👤 Users` |  |
| `🔑 (scopeless)` `read:org (optional)` `read:user (optional)` `read:packages (optional)` `repo (optional)` |  |
| Indepth analysis
      Contributions in organizations only |  |




## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_notable` | Enable notable plugin |
| **type:** `boolean`

**default:** no |  |
| `plugin_notable_filter` | Query filter
Based on [GitHub search syntax](https://docs.github.com/en/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax).
Supported fields are `stars`, `forks` and `watchers`
If [`plugin_notable_indepth`](/source/plugins/notable/README.md#plugin_notable_indepth) is enabled, `commits`, `commits.user`, `commits.user%` and `maintainer` fields are also supported.
Some repositories may not be able to reported advanced stats and in the case the default behaviour will be to bypass filtering |
| **type:** `string` |  |
| `plugin_notable_skipped` | Skipped repositories |
| ⏩ Inherits `repositories_skipped`
**type:** `array`
*(newline-separated)* |  |
| `plugin_notable_from` | Repository owner account type filter

`all`: no filtering
`organization`: only organization accounts repositories
`user`: only user accounts repositories |
| **type:** `string`

**default:** organization
**allowed values:**allorganizationuser |  |
| `plugin_notable_repositories` | Repository name
Repositories hosted by user account will always have their full handle displayed |
| **type:** `boolean`

**default:** no |  |
| `plugin_notable_indepth` | Indepth mode |
| 🌐 Web instances must configure `settings.json`:

*metrics.api.github.overuse*

**type:** `boolean`

**default:** no |  |
| `plugin_notable_types` | Contribution types filter
Use a combination of below values to include repositories where:

`commit`: a commit on default branch was made
`pull_request`: a pull request was opened
`issue`: an issue was opened |
| **type:** `array`
*(comma-separated)*

**default:** commit
**allowed values:**commitpull_requestissue |  |
| `plugin_notable_self` | Include own repositories |
| **type:** `boolean`

**default:** no |  |




## 🔎 `indepth` mode

The `plugin_notable_indepth` option collects additional stats about your contributions, such as:
- Total number of commits within a repository or organization.

For each of the above, a badge is awarded. Its color and progress depends of the associated value.

## ℹ️ Examples workflows


```yaml
name: Contributions
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.notable.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  plugin_notable: yes

```
```yaml
name: Indepth analysis
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.notable.indepth.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  plugin_notable: yes
  plugin_notable_indepth: yes
  plugin_notable_repositories: yes

```

---

## File: source/plugins/music/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| 🎼 Music activity and suggestions |  |
| This plugin can display top and recently listened music tracks or titles from a random playlist.
Different music providers are supported. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with any of the supported provider.
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) |
| `👤 Users` `👥 Organizations` |  |
| `🗝️ plugin_music_token` |  |
| Random tracks from a playlist
      Recently listened |  |




#### ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_music` | Enable music plugin |
| 🌐 Web instances must configure `settings.json`:

*metrics.run.puppeteer.scrapping*

**type:** `boolean`

**default:** no |  |
| `plugin_music_provider` | Music provider

`apple`: Apple Music
`spotify`: Spotify
`lastfm`: Last.fm
`youtube`: YouTube Music

This setting is optional when using [`plugin_music_mode: playlist`](/source/plugins/music/README.md#plugin_music_mode) (provider will be auto-detected from [`plugin_music_playlist`](/source/plugins/music/README.md#plugin_music_playlist) URL) |
| **type:** `string`

**allowed values:**applespotifylastfmyoutube |  |
| `plugin_music_token` | Music provider token
Below is the expected token format for each provider:

`apple`: *(not supported)*
`spotify`: &quot;client_id, client_secret, refresh_token&quot;
`lastfm`: &quot;api_key&quot;
`youtube`: &quot;cookie&quot; |
| 🔐 Token
🌐 Web instances must configure `settings.json`:

*metrics.api.music.any*

**type:** `token` |  |
| `plugin_music_user` | Music provider username |
| ⏯️ Cannot be preset
**type:** `string`

**default:** `→ User login` |  |
| `plugin_music_mode` | Display mode

`playlist`: display random tracks from an URL playlist
`recent`: display recently listened tracks
`top`: display top listened artists/tracks

If [`plugin_music_playlist`](/source/plugins/music/README.md#plugin_music_playlist) is specified, the default value is `playlist`, else it is `recent` |
| **type:** `string`

**allowed values:**playlistrecenttop |  |
| `plugin_music_playlist` | Playlist URL
It must be from an &quot;embed url&quot; (i.e. music player iframes that can be integrated in other websites) |
| ⏯️ Cannot be preset
**type:** `string` |  |
| `plugin_music_limit` | Display limit |
| **type:** `number`
(1 ≤
𝑥
≤ 100)

**default:** 4 |  |
| `plugin_music_played_at` | Recently played - Last played timestamp |
| **type:** `boolean`

**default:** no |  |
| `plugin_music_time_range` | Top tracks - Time range

`short`: 4 weeks
`medium`: 6 months
`long`: several years |
| **type:** `string`

**default:** short
**allowed values:**shortmediumlong |  |
| `plugin_music_top_type` | Top tracks - Display type

`tracks`: display track
`artists`: display artists |
| **type:** `string`

**default:** tracks
**allowed values:**tracksartists |  |




## 🎺 Configuring music provider

Select a music provider below for additional instructions.

## 🎙️ Spotify

### 🗝️ Obtaining a token

Spotify does not have *personal tokens*, so it makes the process a bit longer because it is required to follow the [authorization workflow](https://developer.spotify.com/documentation/general/guides/authorization-guide/)... Follow the instructions below for a *TL;DR* to obtain a `refresh_token`.

Sign in to the [developer dashboard](https://developer.spotify.com/dashboard/) and create a new app.
Keep your `client_id` and `client_secret` and let this tab open for now.



Open the settings and add a new *Redirect url*. Normally it is used to setup callbacks for apps, but just put `https://localhost` instead (it is mandatory as per the [authorization guide](https://developer.spotify.com/documentation/general/guides/authorization-guide/), even if not used).

Forge the authorization url with your `client_id` and the encoded `redirect_uri` you whitelisted, and access it from your browser:

```
https://accounts.spotify.com/authorize?client_id=********&response_type=code&scope=user-read-recently-played%20user-top-read&redirect_uri=https%3A%2F%2Flocalhost
```

When prompted, authorize application.



Once redirected to `redirect_uri`, extract the generated authorization `code` from your url bar.



Go back to developer dashboard tab, and open the web console of your browser to paste the following JavaScript code, with your own `client_id`, `client_secret`, authorization `code` and `redirect_uri`.

```js
(async () => {
  console.log(await (await fetch("https://accounts.spotify.com/api/token", {
    method:"POST",
    headers:{"Content-Type":"application/x-www-form-urlencoded"},
    body:new URLSearchParams({
      grant_type:"authorization_code",
      redirect_uri:"https://localhost",
      client_id:"********",
      client_secret:"********",
      code:"********",
    })
  })).json())
})()
```

It should return a JSON response with the following content:
```json
{
  "access_token":"********",
  "expires_in": 3600,
  "scope":"user-read-recently-played user-top-read",
  "token_type":"Bearer",
  "refresh_token":"********"
}
```

Register your `client_id`, `client_secret` and `refresh_token` in secrets to finish setup.

### 🔗 Get an embed playlist url for `plugin_music_playlist`

Connect to [spotify.com](https://www.spotify.com) and select the playlist you want to share.
From `...` menu, select `Share` and `Copy embed code`.



Extract the source link from the code pasted in your clipboard:
```html

```

## 🍎 Apple Music

### 🗝️ Obtaining a token

*(Not available)*

> 😥 Unfortunately I wasn't able to find a workaround to avoid paying the $99 fee for the developer program, even using workarounds like *smart playlists*, *shortcuts* and other stuff. However if you really want this feature, you could [sponsor me](github.com/sponsors/lowlighter) and I could eventually invest in a developer account with enough money, implement it and also eventually offer service on the shared instance

### 🔗 Get an embed playlist url for `plugin_music_playlist`

Connect to [music.apple.com](https://music.apple.com/) and select the playlist you want to share.
From `...` menu, select `Share` and `Copy embed code`.



Extract the source link from the code pasted in your clipboard:
```html

```

## ⏯️ Youtube Music

### 🗝️ Obtaining a token

Login to [YouTube Music](https://music.youtube.com) on any modern browser.

Open the developer tools (Ctrl-Shift-I) and select the “Network” tab



Find an authenticated POST request. The simplest way is to filter by /browse using the search bar of the developer tools. If you don’t see the request, try scrolling down a bit or clicking on the library button in the top bar.

Click on the Name of any matching request. In the “Headers” tab, scroll to the “Cookie” and copy this by right-clicking on it and selecting “Copy value”.



### 🔗 Get an embed playlist url for `plugin_music_playlist`

Extract the *playlist* URL of the playlist you want to share.

Connect to [music.youtube.com](https://music.youtube.com) and select the playlist you want to share.

Extract the source link from the code pasted in your clipboard:
```
https://music.youtube.com/playlist?list=********
```

## 📻 Last.fm

### 🗝️ Obtaining a token

[Create an API account](https://www.last.fm/api/account/create) or [use an existing one](https://www.last.fm/api/accounts) to obtain a Last.fm API key.

### 🔗 Get an embed playlist url for `plugin_music_playlist`

*(Not available)*

## ℹ️ Examples workflows


```yaml
name: Apple Music - Random track from playlist
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.music.playlist.svg
  token: NOT_NEEDED
  base: ""
  plugin_music: yes
  plugin_music_playlist: https://embed.music.apple.com/fr/playlist/usr-share/pl.u-V9D7m8Etjmjd0D
  plugin_music_limit: 2

```
```yaml
name: Spotify - Random track from playlist
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.music.playlist.spotify.svg
  token: NOT_NEEDED
  base: ""
  plugin_music: yes
  plugin_music_playlist: https://open.spotify.com/embed/playlist/3nfA87oeJw4LFVcUDjRcqi

```
```yaml
name: Spotify - Recently listed
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.music.recent.svg
  token: NOT_NEEDED
  base: ""
  plugin_music: yes
  plugin_music_provider: spotify
  plugin_music_mode: recent
  plugin_music_token: ${{ secrets.SPOTIFY_TOKENS }}
  plugin_music_limit: 2

```
```yaml
name: Spotify - Top tracks
uses: lowlighter/metrics@latest
with:
  token: NOT_NEEDED
  base: ""
  plugin_music: yes
  plugin_music_mode: top
  plugin_music_provider: spotify
  plugin_music_token: ${{ secrets.SPOTIFY_TOKENS }}
  plugin_music_time_range: short
  plugin_music_top_type: tracks

```
```yaml
name: Spotify - Top artists
uses: lowlighter/metrics@latest
with:
  token: NOT_NEEDED
  base: ""
  plugin_music: yes
  plugin_music_mode: top
  plugin_music_provider: spotify
  plugin_music_token: ${{ secrets.SPOTIFY_TOKENS }}
  plugin_music_time_range: long
  plugin_music_top_type: artists

```
```yaml
name: Youtube Music - Random track from playlist
uses: lowlighter/metrics@latest
with:
  token: NOT_NEEDED
  base: ""
  plugin_music: yes
  plugin_music_playlist: >-
    https://music.youtube.com/playlist?list=OLAK5uy_kU_uxp9TUOl9zVdw77xith8o9AknVwz9U

```
```yaml
name: Youtube Music - Recently listed
uses: lowlighter/metrics@latest
with:
  token: NOT_NEEDED
  base: ""
  plugin_music_token: ${{ secrets.YOUTUBE_MUSIC_TOKENS }}
  plugin_music: yes
  plugin_music_mode: recent
  plugin_music_provider: youtube

```
```yaml
name: Last.fm  - Recently listed
uses: lowlighter/metrics@latest
with:
  token: NOT_NEEDED
  base: ""
  plugin_music_token: ${{ secrets.LASTFM_TOKEN }}
  plugin_music: yes
  plugin_music_provider: lastfm
  plugin_music_user: RJ

```

---

## File: source/plugins/lines/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| 👨‍💻 Lines of code changed |  |
| This plugin displays the number of lines of code added and removed across repositories. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [GitHub](https://github.com).
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| Supported features[→ Full specification](metadata.yml) | [`📗 Classic template`](/source/templates/classic/README.md) [`📘 Repository template`](/source/templates/repository/README.md) [`📙 Terminal template`](/source/templates/terminal/README.md) |
| `👤 Users` `👥 Organizations` `📓 Repositories` |  |
| `🔑 (scopeless)` `read:org (optional)` `read:user (optional)` `read:packages (optional)` `repo (optional)` |  |
| Repositories and diff history
      Compact display in base plugin |  |




## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_lines` | Enable lines plugin |
| **type:** `boolean`

**default:** no |  |
| `plugin_lines_skipped` | Skipped repositories |
| ⏩ Inherits `repositories_skipped`
**type:** `array`
*(newline-separated)* |  |
| `plugin_lines_sections` | Displayed sections

`base` will display the total lines added and removed in `base.repositories` section
`repositories` will display repositories with the most lines added and removed
`history` will display a graph displaying lines added and removed over time


ℹ️ `base` requires at least [`base: repositories`](/source/plugins/base/README.md#base) to be set |
| **type:** `array`
*(comma-separated)*

**default:** base
**allowed values:**baserepositorieshistory |  |
| `plugin_lines_repositories_limit` | Display limit |
| **type:** `number`
(0 ≤
𝑥)

**default:** 4 |  |
| `plugin_lines_history_limit` | Years to display
Will display the last `n` years, relative to current year |
| **type:** `number`

**zero behaviour:** disable
**default:** 1 |  |
| `plugin_lines_delay` | Delay before performing a second query
When non-zero, will perform a second query after specified delay (in seconds).
The GitHub endpoint used may return inaccurate results on first query (these values seems to be cached on the fly),
after returning correct results upon performing another query.
Using this option may mitigate the occurrence of weird values. |
| **type:** `number`
(0 ≤
𝑥)

**zero behaviour:** disable
**default:** 0 |  |




## ℹ️ Examples workflows


```yaml
name: Compact display in base plugin
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.lines.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: repositories
  plugin_lines: yes
  plugin_lines_delay: 30

```
```yaml
name: Repositories and diff history
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.lines.history.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  plugin_lines: yes
  plugin_lines_delay: 30
  plugin_lines_sections: repositories, history
  plugin_lines_repositories_limit: 2
  plugin_lines_history_limit: 1
  repositories_skipped: |
    @use.patterns
    */*
    +lowlighter/metrics

```

---

## File: source/plugins/licenses/README.md

| [← Back to plugins index](/README.md#-plugins) |  |
| --- | --- |
| 📜 Repository licenses |  |
| This plugin display repository license informations like permissions, limitations and conditions along with additional stats about dependencies. |  |
| ⚠️ Disclaimer | This plugin is not affiliated, associated, authorized, endorsed by, or in any way officially connected with [GitHub](https://github.com).
All product and company names are trademarks™ or registered® trademarks of their respective holders. |
| ℹ Additional notes | ⚠️ This is **NOT** legal advice, use at your own risk


💣 This plugin **SHOULD NOT** be enabled on web instances, since it allows raw command injection.
This could result in compromised server! |
| Supported features[→ Full specification](metadata.yml) | [`📘 Repository template`](/source/templates/repository/README.md) |
| `📓 Repositories` |  |
| `🔑 (scopeless)` `read:org (optional)` `read:user (optional)` `read:packages (optional)` `repo (optional)` |  |
| Permissions, limitations and conditions
      Licenses overview |  |




## 🔎 Licenses analysis

Use to `plugin_licenses_setup` command to setup project dependencies.

*Example: setup a NodeJS project using `npm ci`*
```yml
- name: Licenses and permissions
  with:
    repo: metrics
    plugin_licenses: yes
    plugin_licenses_setup: npm ci
```

Dependencies will be analyzed by [GitHub licensed](https://github.com/github/licensed) and compared against GitHub known licenses.

> ⚠️ This is **NOT** legal advice, use at your own risk

> 💣 This plugin **SHOULD NOT** be enabled on web instances, since it allows raw command injection.
> This could result in compromised server!


## ➡️ Available options




| Option | Description |
| --- | --- |
| `plugin_licenses` | Enable licenses plugin |
| 🌐 Web instances must configure `settings.json`:

*metrics.cpu.overuse*
*metrics.run.tempdir*
*metrics.run.git*
*metrics.run.licensed*
*metrics.run.user.cmd*

**type:** `boolean`

**default:** no |  |
| `plugin_licenses_setup` | Setup command

ℹ️ Depending on the project, this may not be required.
The example command is intended for NodeJs projects that use `npm` to install their dependencies. |
| **type:** `string` |  |
| `plugin_licenses_ratio` | Used licenses ratio |
| **type:** `boolean`

**default:** no |  |
| `plugin_licenses_legal` | Permissions, limitations and conditions about used licenses |
| **type:** `boolean`

**default:** yes |  |




## ℹ️ Examples workflows


```yaml
name: Licenses and permissions
with:
  filename: metrics.plugin.licenses.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  template: repository
  repo: metrics
  plugin_licenses: yes
  plugin_licenses_setup: bash -c '[[ -f package.json ]] && npm ci || true'

```
```yaml
name: Licenses with open-source ratio graphs
uses: lowlighter/metrics@latest
with:
  filename: metrics.plugin.licenses.ratio.svg
  token: ${{ secrets.METRICS_TOKEN }}
  base: ""
  template: repository
  repo: metrics
  plugin_licenses: yes
  plugin_licenses_setup: bash -c '[[ -f package.json ]] && npm ci || true'
  plugin_licenses_legal: no
  plugin_licenses_ratio: yes

```