Files
metrics/README.md
2021-11-12 23:21:16 -05:00

1284 lines
64 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📊 Metrics [<img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=280144&theme=dark" alt="" align="right" width="190" height="41">](https://www.producthunt.com/posts/github-metrics?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-github-metrics)
[![Build, test, analyze and publish](https://github.com/lowlighter/metrics/actions/workflows/workflow.yml/badge.svg)](https://github.com/lowlighter/metrics/actions/workflows/workflow.yml) [![Metrics (examples)](https://github.com/lowlighter/lowlighter/actions/workflows/metrics.yml/badge.svg)](https://github.com/lowlighter/lowlighter/actions/workflows/metrics.yml)
Generate your metrics that you can embed everywhere, including your GitHub profile readme! It works for both user and organization accounts, and even for repositories!
> <sup>*⚠️ This is the documentation of **v3.16-beta** (`@master` branch) which includes [unreleased features](https://github.com/lowlighter/metrics/compare/latest...master), see documentation of [**v3.15** (`@latest` branch) here](https://github.com/lowlighter/metrics/blob/latest/README.md).*</sup>
<table>
<tr>
<th align="center">For user accounts</th>
<th align="center">For organization accounts</th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.classic.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.organization.svg">
<img width="900" height="1" alt="">
</td>
</tr>
</table>
And you can customize these heavily with plugins, templates and hundreds of options!
<table>
<tr>
<th colspan="2" align="center">
<a href="source/plugins/README.md">🧩 36 plugins</a>
</th>
</tr>
<tr>
<th><a href="source/plugins/isocalendar/README.md">📅 Isometric commit calendar</a></th>
<th><a href="source/plugins/languages/README.md">🈷️ Most used languages</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>Full year isometric calendar</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.isocalendar.fullyear.svg">
</details>
<details><summary>Half year isometric calendar</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.isocalendar.fullyear.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>Indepth analysis (clone and analyze repositories)</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.languages.indepth.svg">
</details>
<details open><summary>Recently used (analyze recent activity events)</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.languages.recent.svg">
</details>
<details><summary>Default algorithm</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.languages.svg">
</details>
<details><summary>Default algorithm (with details)</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.languages.details.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/topics/README.md">📌 Starred topics</a></th>
<th><a href="source/plugins/stars/README.md">🌟 Recently starred repositories</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>With icons</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.topics.icons.svg">
</details>
<details open><summary>With labels</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.topics.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.stars.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/licenses/README.md">📜 Repository licenses</a></th>
<th><a href="source/plugins/habits/README.md">💡 Coding habits</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>Permissions, limitations and conditions</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.licenses.svg">
</details>
<details open><summary>Licenses overview</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.licenses.ratio.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>Recent activity charts</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.habits.charts.svg">
</details>
<details open><summary>Midly interesting facts</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.habits.facts.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/contributors/README.md">🏅 Repository contributors</a></th>
<th><a href="source/plugins/followup/README.md">🎟️ Follow-up of issues and pull requests</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>By contribution types</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.contributors.categories.svg">
</details>
<details><summary>By number of contributions</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.contributors.contributions.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>Indepth analysis</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.followup.indepth.svg">
</details>
<details><summary>Created on an user's repositories</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.followup.svg">
</details>
<details><summary>Created by an user</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.followup.user.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/reactions/README.md">🎭 Comment reactions</a></th>
<th><a href="source/plugins/people/README.md">🧑‍🤝‍🧑 People plugin</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.reactions.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>Related to an user</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.people.followers.svg">
</details>
<details><summary>Related to a repository</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.people.repository.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/stargazers/README.md">✨ Stargazers over last weeks</a></th>
<th><a href="source/plugins/projects/README.md">🗂️ Active projects</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.stargazers.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.projects.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/code/README.md">♐ Code snippet of the day</a></th>
<th><a href="source/plugins/activity/README.md">📰 Recent activity</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.code.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.activity.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/achievements/README.md">🏆 Achievements</a></th>
<th><a href="source/plugins/notable/README.md">🎩 Notable contributions</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>Compact display</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.achievements.compact.svg">
</details>
<details><summary>Detailed display</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.achievements.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>Indepth analysis</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.notable.indepth.svg">
</details>
<details><summary>Contributions in organizations only</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.notable.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/discussions/README.md">💬 Discussions</a></th>
<th><a href="source/plugins/support/README.md">💭 GitHub Community Support</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.discussions.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.support.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/lines/README.md">👨‍💻 Lines of code changed</a></th>
<th><a href="source/plugins/traffic/README.md">🧮 Repositories traffic</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.lines.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.traffic.svg">
</td>
</tr>
<tr>
<th><a href="source/plugins/repositories/README.md">📓 Repositories</a></th>
<th><a href="source/plugins/gists/README.md">🎫 Gists</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.repositories.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.gists.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/introduction/README.md">🙋 Introduction</a></th>
<th><a href="source/plugins/sponsors/README.md">💕 GitHub Sponsors</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>For an user or an organization</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.introduction.svg">
</details>
<details><summary>For a repository</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.introduction.repository.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>GitHub sponsors card</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.sponsors.svg">
</details>
<details><summary>GitHub sponsors full introduction</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.sponsors.full.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/skyline/README.md">🌇 GitHub Skyline 3D calendar</a></th>
<th><a href="source/plugins/pagespeed/README.md">⏱️ Website performances</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.skyline.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>PageSpeed scores</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.svg">
</details>
<details><summary>PageSpeed scores with detailed report</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.detailed.svg">
</details>
<details><summary>PageSpeed scores with a website screenshot</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.screenshot.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/music/README.md">🎼 Music plugin</a></th>
<th><a href="source/plugins/tweets/README.md">🐤 Latest tweets</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>Random tracks from a playlist</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.playlist.svg">
</details>
<details open><summary>Recently listened</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.recent.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<details open><summary>Latest tweets</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.tweets.svg">
</details>
<details><summary>Latest tweets with attachments</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.tweets.attachments.svg">
</details>
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/anilist/README.md">🌸 Anilist watch list and reading list</a></th>
<th><a href="source/plugins/stackoverflow/README.md">🗨️ Stackoverflow plugin</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>For anime watchers</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.anilist.svg">
</details>
<details><summary>For manga readers</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.anilist.manga.svg">
</details>
<details open><summary>Favorites characters</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.anilist.characters.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.stackoverflow.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/posts/README.md">✒️ Recent posts</a></th>
<th><a href="source/plugins/rss/README.md">🗼 Rss feed</a></th>
</tr>
<tr>
<td align="center">
<details open><summary>Latest posts</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.posts.svg">
</details>
<details><summary>Latest posts width description and cover image</summary>
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.posts.full.svg">
</details>
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.rss.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/wakatime/README.md">⏰ WakaTime plugin</a></th>
<th><a href="source/plugins/stock/README.md">💹 Stock prices</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.wakatime.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.stock.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/plugins/screenshot/README.md">📸 Website screenshot</a></th>
<th><a href="source/plugins/nightscout/README.md">💉 Nightscout</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.screenshot.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/legoandmars/legoandmars/blob/master/metrics.plugin.nightscout.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th colspan="2" align="center">
<a href="https://github.com/lowlighter/metrics/projects/1">More to come soon!</a>
</th>
</tr>
</table>
<table>
<tr>
<th colspan="2" align="center">
<a href="source/templates/README.md">🖼️ 4+ templates</a>
</th>
</tr>
<tr>
<th><a href="source/templates/classic/README.md">📗 Classic template</a></th>
<th><a href="source/templates/repository/README.md">📘 Repository template</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.classic.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.repository.svg">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th><a href="source/templates/terminal/README.md">📙 Terminal template</a></th>
<th><a href="source/templates/markdown/README.md">📒 Markdown template</a></th>
</tr>
<tr>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.terminal.svg">
<img width="900" height="1" alt="">
</td>
<td align="center">
<img alt="" width="400" src="https://github.com/lowlighter/lowlighter/blob/master/metrics.markdown.png">
<img width="900" height="1" alt="">
</td>
</tr>
<tr>
<th colspan="2"><a href="source/templates/community/README.md">📕 Community templates</a></th>
</tr>
<tr>
<td align="center" colspan="2">See <a href="/source/templates/community/README.md">documentation</a> 🌍</td>
</tr>
</table>
## 🦑 Interested to get your own?
For a fully-featured experience you should use **metrics** as a [GitHub Action](https://github.com/marketplace/actions/metrics-embed), but you can also try it now at [metrics.lecoq.io](https://metrics.lecoq.io/) with your GitHub username!
Choose `📊 Metrics embed` if you want to customize your GitHub profile and `✨ Metrics insights` to get a quick overview of your GitHub statistics:
<table>
<tr>
<th><a href="https://metrics.lecoq.io">📊 Metrics embed</a></th>
<th><a href="https://metrics.lecoq.io/about">✨ Metrics insights</a></th>
</tr>
<tr>
<td align="center">
Embed metrics images on your profile readme or blog!<br>
Use GitHub actions for even more features!<br>
<img src="/.github/readme/imgs/features_embed.gif" width="441">
</td>
<td align="center">
Share your metrics with friends and on social medias!<br>
No configuration needed!<br>
<img src="/.github/readme/imgs/features_insights.gif" width="441">
</td>
</tr>
</table>
### 🐙 Features
* Create infographics from **36 plugins**, **4 templates** and **218 options**
* Even more **customization** with [community templates](source/templates/community) or by [forking this repository](https://github.com/lowlighter/metrics/network/members) and editing HTML/CSS/EJS
* Support **users**, **organizations** and even **repositories**
* Transparent by default so it'll blend well whether light or dark mode is used
* Save your metrics as **images** (SVG, PNG or JPEG), **markdown**, **PDF** or **JSON**
* Upload them to GitHub through commits, pull requests and gists, or handle renders yourself
* Works either as [GitHub action](https://github.com/marketplace/actions/metrics-embed) or as [web instance](https://metrics.lecoq.io)
# 📜 How to use?
## ⚙️ Using GitHub Action on your profile repository (~5 min setup)
Setup a GitHub Action which runs periodically and pushes your generated metrics image to your repository.
See all supported options in [action.yml](/action.yml).
Assuming your username is `my-github-user`, you can then embed rendered metrics in your readme like below:
```markdown
<!-- If you're using "master" as default branch -->
![Metrics](https://github.com/my-github-user/my-github-user/blob/master/github-metrics.svg)
<!-- If you're using "main" as default branch -->
![Metrics](https://github.com/my-github-user/my-github-user/blob/main/github-metrics.svg)
```
<details>
<summary><b>💬 How to setup?</b> <i>(click to expand)</i></summary>
<!-- -->
### 0. Setup your personal repository
Create a repository with the same name as your GitHub login (if it's not already done).
![Setup personal repository](/.github/readme/imgs/setup_personal_repository.png)
Its `README.md` will be displayed on your user profile:
![GitHub Profile Example](/.github/readme/imgs/example_github_profile.png)
### 1. Create a GitHub personal token
From the `Developer settings` of your account settings, select `Personal access tokens` to create a new token.
No additional scopes are needed for basic metrics, but you may have to grant additional scope depending on what features you're planning to use:
- `public_repo` scope for some plugins
- `read:org` scope for all organizations related metrics
- `repo` scope for all private repositories related metrics
- `read:user` scope may also be required for some private repositories related metrics
![Setup a GitHub personal token](/.github/readme/imgs/setup_personal_token.png)
A scope-less token can still display private contributions by enabling `Include private contributions on my profile` in your account settings:
![Enable "Include private contributions on my profile`"](/.github/readme/imgs/setup_private_contributions.png)
If a plugin has not enough scopes to operate (and `plugins_errors_fatal` isn't enabled), it'll be reported in the rendering like below:
![Plugin error example](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.error.svg)
### 2. Put your GitHub personal token in your repository secrets
Go to the `Settings` of your repository to create a new secret and paste your freshly generated GitHub token there.
![Setup a repository secret](/.github/readme/imgs/setup_repository_secret.png)
### 3. Create a GitHub Action workflow in your repository
Create a new workflow from the `Actions` tab of your repository and paste the following:
```yaml
name: Metrics
on:
# Schedule updates (each hour)
schedule: [{cron: "0 * * * *"}]
# Lines below let you run workflow manually and on each commit (optional)
workflow_dispatch:
push: {branches: ["master", "main"]}
jobs:
github-metrics:
runs-on: ubuntu-latest
steps:
# See action.yml for all options
- uses: lowlighter/metrics@latest
with:
# Your GitHub token
token: ${{ secrets.METRICS_TOKEN }}
```
See all supported options in [action.yml](/action.yml).
Rendered metrics will be committed to your repository on each run.
![Action update example](/.github/readme/imgs/example_action_update.png)
#### Choosing between `@latest`, `@master` or a fork
If you wish to use new features as they're being released, you can switch from `@latest` to `@master`.
As the latter is used as a development branch, jobs may fail from time to time (although we try to mitigate this).
For convenience, it is possible to use `@main` instead of `@master`.
When using a token with additional permissions, it is advised to fork this repository and use it instead to minimize security risks:
```yaml
- uses: my-github-username/metrics@master
# If you make changes on your fork, be sure not leave @latest as tag!
```
In this case, please consider watching new releases to stay up-to-date and enjoy latest features!
`@latest` will be updated on each release. Metrics doesn't introduce breaking changes **from an user point of view** (i.e. your workflows will always be valid) so you can follow release cycles without worrying.
#### Examples workflows
Metrics displayed on this page are rendered from this [workflow](https://github.com/lowlighter/lowlighter/blob/master/.github/workflows/metrics.yml) so you can check it out for some code examples about plugins usage.
You can also take a look at this [user workflow](https://github.com/lowlighter/lowlighter/blob/master/.github/workflows/personal.yml) if you want.
### 4. Embed link into your README.md
Update your README.md to embed your metrics:
```markdown
<!-- If you're using "master" as default branch -->
![Metrics](https://github.com/my-github-user/my-github-user/blob/master/github-metrics.svg)
<!-- If you're using "main" as default branch -->
![Metrics](https://github.com/my-github-user/my-github-user/blob/main/github-metrics.svg)
<!-- If you're using the "columns" display mode -->
<img src="https://github.com/my-github-user/my-github-user/blob/master/github-metrics.svg" alt="Metrics" width="100%">
```
</details>
## 💕 Using the shared instance (~1 min setup, but with limitations)
For convenience, you can use the shared instance available at [metrics.lecoq.io](https://metrics.lecoq.io) without any additional setup.
```markdown
![Metrics](https://metrics.lecoq.io/my-github-user)
```
This is mostly intended for previews, to enjoy all features consider using GitHub Action instead.
Availability is not guaranteed.
<details>
<summary><b>💬 Fair use</b> <i>(click to expand)</i></summary>
<!-- -->
To ensure service availability, shared instance has a few limitations:
* Images are cached for 1 hour
* Rendered metrics **won't be updated** during this time window when queried
* You can manually update rendering again your metrics on [metrics.lecoq.io](https://metrics.lecoq.io)
* A rate limiter is enabled to prevent denial of service (it doesn't affect already cached metrics)
* Some plugins may not be available
Service is provided free of charge, so please be gentle with it 🙂
</details>
## 🏗️ Deploying your own web instance (~15 min setup, depending on your sysadmin knowledge)
Setup a metrics instance on your server if you don't want to use GitHub Actions and [metrics.lecoq.io](https://metrics.lecoq.io).
See all supported options in [settings.example.json](/settings.example.json).
Assuming your username is `my-github-user`, you can then embed rendered metrics in your readme like below:
```markdown
![Metrics](https://my-personal-domain.com/my-github-user)
```
<details>
<summary><b>💬 How to setup?</b> <i>(click to expand)</i></summary>
<!-- -->
### 0. Prepare your server
You'll need a server with a recent version [NodeJS](https://nodejs.org) (see used version in [Dockerfile](/Dockerfile#L1-L2)).
### 1. Create a GitHub personal token
From the `Developer settings` of your account settings, select `Personal access tokens` to create a new token.
No additional scopes are needed.
![Setup a GitHub personal token](/.github/readme/imgs/setup_personal_token.png)
### 2. Install dependencies
Clone repository, install dependencies and copy configuration example to `settings.json`:
```shell
git clone https://github.com/lowlighter/metrics.git
cd metrics/
npm install --only=prod
cp settings.example.json settings.json
```
### 3. Configure your instance and start it
Edit `settings.json` to configure your instance.
```javascript
{
//GitHub API token
"token":"GITHUB_TOKEN",
//Other options...
}
```
See all supported options in [settings.example.json](/settings.example.json).
If you plan to make your web instance public, it is advised to restrict its access thanks to rate limiter and access list.
Once you've finished configuring metrics, start your instance:
```shell
npm start
```
Access your server with provided port in `setting.json` from your browser to ensure everything is working.
### 4. Embed link into your README.md
Edit your repository readme and add your metrics image from your server domain:
```markdown
![Metrics](https://my-personal-domain.com/my-github-user)
```
### 6. (optional) Setup your instance as a service
To ensure that your instance will restart if it reboots or crashes, you should set it up as a service.
This is described below for Linux-like systems which support *systemd*.
Create a new service file `/etc/systemd/system/github_metrics.service` and paste the following after editing paths inside:
```ini
[Unit]
Description=Metrics
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/path/to/metrics
ExecStart=/usr/bin/node /path/to/metrics/index.mjs
[Install]
WantedBy=multi-user.target
```
Reload services, enable it, start it and check if it is up and running:
```shell
systemctl daemon-reload
systemctl enable github_metrics
systemctl start github_metrics
systemctl status github_metrics
```
</details>
<details>
<summary><b>🔗 HTTP parameters</b> <i>(click to expand)</i></summary>
<!-- -->
Most of options from [action.yml](/action.yml) are actually supported by web instance, though syntax is slightly different.
All underscores (`_`) must be replaced by dots (`.`) and `plugin_` prefixes must be dropped.
For example, to configure pagespeed plugin you'd use the following:
```
https://my-personal-domain.com/my-github-user?pagespeed=1&pagespeed.detailed=1&pagespeed.url=https%3A%2F%2Fexample.com
```
Note that url parameters must be [encoded](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent).
As for `base` content, which is enabled by default, sections are available through "`base.<section>`".
For example, to display only `repositories` section, use:
```
https://my-personal-domain.com/my-github-user?base=0&base.repositories=1
```
</details>
# 📚 Documentation
### 🧰 Plugin compatibility matrix
<table>
<tr>
<th nowrap="nowrap">Template/Plugin</th>
<th nowrap="nowrap" align="center" title="🗃️ Base content">🗃️</th>
<th nowrap="nowrap" align="center" title="📅 Isometric commit calendar">📅</th>
<th nowrap="nowrap" align="center" title="🈷️ Most used languages">🈷️</th>
<th nowrap="nowrap" align="center" title="📌 Starred topics">📌</th>
<th nowrap="nowrap" align="center" title="🌟 Recently starred repositories">🌟</th>
<th nowrap="nowrap" align="center" title="📜 Repository licenses">📜</th>
<th nowrap="nowrap" align="center" title="💡 Coding habits">💡</th>
<th nowrap="nowrap" align="center" title="🏅 Repository contributors">🏅</th>
<th nowrap="nowrap" align="center" title="🎟️ Follow-up of issues and pull requests">🎟️</th>
<th nowrap="nowrap" align="center" title="🎭 Comment reactions">🎭</th>
<th nowrap="nowrap" align="center" title="🧑‍🤝‍🧑 People plugin">🧑‍🤝‍🧑</th>
<th nowrap="nowrap" align="center" title="✨ Stargazers over last weeks">✨</th>
<th nowrap="nowrap" align="center" title="🗂️ Active projects">🗂️</th>
<th nowrap="nowrap" align="center" title="♐ Code snippet of the day">♐</th>
<th nowrap="nowrap" align="center" title="📰 Recent activity">📰</th>
<th nowrap="nowrap" align="center" title="🏆 Achievements">🏆</th>
<th nowrap="nowrap" align="center" title="🎩 Notable contributions">🎩</th>
<th nowrap="nowrap" align="center" title="💬 Discussions">💬</th>
<th nowrap="nowrap" align="center" title="💭 GitHub Community Support">💭</th>
<th nowrap="nowrap" align="center" title="👨‍💻 Lines of code changed">👨‍💻</th>
<th nowrap="nowrap" align="center" title="🧮 Repositories traffic">🧮</th>
<th nowrap="nowrap" align="center" title="📓 Repositories">📓</th>
<th nowrap="nowrap" align="center" title="🎫 Gists">🎫</th>
<th nowrap="nowrap" align="center" title="🙋 Introduction">🙋</th>
<th nowrap="nowrap" align="center" title="💕 GitHub Sponsors">💕</th>
<th nowrap="nowrap" align="center" title="🌇 GitHub Skyline 3D calendar">🌇</th>
<th nowrap="nowrap" align="center" title="⏱️ Website performances">⏱️</th>
<th nowrap="nowrap" align="center" title="🎼 Music plugin">🎼</th>
<th nowrap="nowrap" align="center" title="🐤 Latest tweets">🐤</th>
<th nowrap="nowrap" align="center" title="🌸 Anilist watch list and reading list">🌸</th>
<th nowrap="nowrap" align="center" title="🗨️ Stackoverflow plugin">🗨️</th>
<th nowrap="nowrap" align="center" title="✒️ Recent posts">✒️</th>
<th nowrap="nowrap" align="center" title="🗼 Rss feed">🗼</th>
<th nowrap="nowrap" align="center" title="⏰ WakaTime plugin">⏰</th>
<th nowrap="nowrap" align="center" title="💹 Stock prices">💹</th>
<th nowrap="nowrap" align="center" title="📸 Website screenshot">📸</th>
<th nowrap="nowrap" align="center" title="💉 Nightscout">💉</th>
</tr>
<tr>
<td nowrap="nowrap">📗 Classic template</td>
<td nowrap="nowrap" align="center" data-plugin="base">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="isocalendar">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="languages">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="topics">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stars">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="licenses">❌</td>
<td nowrap="nowrap" align="center" data-plugin="habits">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="contributors">❌</td>
<td nowrap="nowrap" align="center" data-plugin="followup">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="reactions">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="people">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stargazers">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="projects">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="code">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="activity">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="achievements">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="notable">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="discussions">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="support">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="lines">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="traffic">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="repositories">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="gists">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="introduction">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="sponsors">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="skyline">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="pagespeed">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="music">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="tweets">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="anilist">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stackoverflow">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="posts">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="rss">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="wakatime">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stock">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="screenshot">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="nightscout">✔️</td>
</tr>
<tr>
<td nowrap="nowrap">📘 Repository template</td>
<td nowrap="nowrap" align="center" data-plugin="base">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="isocalendar">❌</td>
<td nowrap="nowrap" align="center" data-plugin="languages">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="topics">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stars">❌</td>
<td nowrap="nowrap" align="center" data-plugin="licenses">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="habits">❌</td>
<td nowrap="nowrap" align="center" data-plugin="contributors">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="followup">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="reactions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="people">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stargazers">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="projects">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="code">❌</td>
<td nowrap="nowrap" align="center" data-plugin="activity">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="achievements">❌</td>
<td nowrap="nowrap" align="center" data-plugin="notable">❌</td>
<td nowrap="nowrap" align="center" data-plugin="discussions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="support">❌</td>
<td nowrap="nowrap" align="center" data-plugin="lines">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="traffic">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="repositories">❌</td>
<td nowrap="nowrap" align="center" data-plugin="gists">❌</td>
<td nowrap="nowrap" align="center" data-plugin="introduction">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="sponsors">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="skyline">❌</td>
<td nowrap="nowrap" align="center" data-plugin="pagespeed">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="music">❌</td>
<td nowrap="nowrap" align="center" data-plugin="tweets">❌</td>
<td nowrap="nowrap" align="center" data-plugin="anilist">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stackoverflow">❌</td>
<td nowrap="nowrap" align="center" data-plugin="posts">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="rss">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="wakatime">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stock">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="screenshot">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="nightscout">❌</td>
</tr>
<tr>
<td nowrap="nowrap">📙 Terminal template</td>
<td nowrap="nowrap" align="center" data-plugin="base">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="isocalendar">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="languages">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="topics">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stars">❌</td>
<td nowrap="nowrap" align="center" data-plugin="licenses">❌</td>
<td nowrap="nowrap" align="center" data-plugin="habits">❌</td>
<td nowrap="nowrap" align="center" data-plugin="contributors">❌</td>
<td nowrap="nowrap" align="center" data-plugin="followup">❌</td>
<td nowrap="nowrap" align="center" data-plugin="reactions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="people">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stargazers">❌</td>
<td nowrap="nowrap" align="center" data-plugin="projects">❌</td>
<td nowrap="nowrap" align="center" data-plugin="code">❌</td>
<td nowrap="nowrap" align="center" data-plugin="activity">❌</td>
<td nowrap="nowrap" align="center" data-plugin="achievements">❌</td>
<td nowrap="nowrap" align="center" data-plugin="notable">❌</td>
<td nowrap="nowrap" align="center" data-plugin="discussions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="support">❌</td>
<td nowrap="nowrap" align="center" data-plugin="lines">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="traffic">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="repositories">❌</td>
<td nowrap="nowrap" align="center" data-plugin="gists">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="introduction">❌</td>
<td nowrap="nowrap" align="center" data-plugin="sponsors">❌</td>
<td nowrap="nowrap" align="center" data-plugin="skyline">❌</td>
<td nowrap="nowrap" align="center" data-plugin="pagespeed">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="music">❌</td>
<td nowrap="nowrap" align="center" data-plugin="tweets">❌</td>
<td nowrap="nowrap" align="center" data-plugin="anilist">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stackoverflow">❌</td>
<td nowrap="nowrap" align="center" data-plugin="posts">❌</td>
<td nowrap="nowrap" align="center" data-plugin="rss">❌</td>
<td nowrap="nowrap" align="center" data-plugin="wakatime">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stock">❌</td>
<td nowrap="nowrap" align="center" data-plugin="screenshot">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="nightscout">❌</td>
</tr>
<tr>
<td nowrap="nowrap">📒 Markdown template</td>
<td nowrap="nowrap" align="center" data-plugin="base">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="isocalendar">✓</td>
<td nowrap="nowrap" align="center" data-plugin="languages">✓</td>
<td nowrap="nowrap" align="center" data-plugin="topics">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stars">✓</td>
<td nowrap="nowrap" align="center" data-plugin="licenses">✓</td>
<td nowrap="nowrap" align="center" data-plugin="habits">✓</td>
<td nowrap="nowrap" align="center" data-plugin="contributors">✓</td>
<td nowrap="nowrap" align="center" data-plugin="followup">✓</td>
<td nowrap="nowrap" align="center" data-plugin="reactions">✓</td>
<td nowrap="nowrap" align="center" data-plugin="people">✓</td>
<td nowrap="nowrap" align="center" data-plugin="stargazers">✓</td>
<td nowrap="nowrap" align="center" data-plugin="projects">✓</td>
<td nowrap="nowrap" align="center" data-plugin="code">✓</td>
<td nowrap="nowrap" align="center" data-plugin="activity">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="achievements">✓</td>
<td nowrap="nowrap" align="center" data-plugin="notable">✓</td>
<td nowrap="nowrap" align="center" data-plugin="discussions">✓</td>
<td nowrap="nowrap" align="center" data-plugin="support">✓</td>
<td nowrap="nowrap" align="center" data-plugin="lines">✓</td>
<td nowrap="nowrap" align="center" data-plugin="traffic">✓</td>
<td nowrap="nowrap" align="center" data-plugin="repositories">✓</td>
<td nowrap="nowrap" align="center" data-plugin="gists">✓</td>
<td nowrap="nowrap" align="center" data-plugin="introduction">✓</td>
<td nowrap="nowrap" align="center" data-plugin="sponsors">✓</td>
<td nowrap="nowrap" align="center" data-plugin="skyline">✓</td>
<td nowrap="nowrap" align="center" data-plugin="pagespeed">✓</td>
<td nowrap="nowrap" align="center" data-plugin="music">✓</td>
<td nowrap="nowrap" align="center" data-plugin="tweets">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="anilist">✓</td>
<td nowrap="nowrap" align="center" data-plugin="stackoverflow">✓</td>
<td nowrap="nowrap" align="center" data-plugin="posts">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="rss">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="wakatime">✓</td>
<td nowrap="nowrap" align="center" data-plugin="stock">✓</td>
<td nowrap="nowrap" align="center" data-plugin="screenshot">✓</td>
<td nowrap="nowrap" align="center" data-plugin="nightscout">✓</td>
</tr>
<tr>
<td colspan="38"></td>
</tr>
<tr>
<th nowrap="nowrap">Mode/Plugin</th>
<th nowrap="nowrap" align="center" title="🗃️ Base content">🗃️</th>
<th nowrap="nowrap" align="center" title="📅 Isometric commit calendar">📅</th>
<th nowrap="nowrap" align="center" title="🈷️ Most used languages">🈷️</th>
<th nowrap="nowrap" align="center" title="📌 Starred topics">📌</th>
<th nowrap="nowrap" align="center" title="🌟 Recently starred repositories">🌟</th>
<th nowrap="nowrap" align="center" title="📜 Repository licenses">📜</th>
<th nowrap="nowrap" align="center" title="💡 Coding habits">💡</th>
<th nowrap="nowrap" align="center" title="🏅 Repository contributors">🏅</th>
<th nowrap="nowrap" align="center" title="🎟️ Follow-up of issues and pull requests">🎟️</th>
<th nowrap="nowrap" align="center" title="🎭 Comment reactions">🎭</th>
<th nowrap="nowrap" align="center" title="🧑‍🤝‍🧑 People plugin">🧑‍🤝‍🧑</th>
<th nowrap="nowrap" align="center" title="✨ Stargazers over last weeks">✨</th>
<th nowrap="nowrap" align="center" title="🗂️ Active projects">🗂️</th>
<th nowrap="nowrap" align="center" title="♐ Code snippet of the day">♐</th>
<th nowrap="nowrap" align="center" title="📰 Recent activity">📰</th>
<th nowrap="nowrap" align="center" title="🏆 Achievements">🏆</th>
<th nowrap="nowrap" align="center" title="🎩 Notable contributions">🎩</th>
<th nowrap="nowrap" align="center" title="💬 Discussions">💬</th>
<th nowrap="nowrap" align="center" title="💭 GitHub Community Support">💭</th>
<th nowrap="nowrap" align="center" title="👨‍💻 Lines of code changed">👨‍💻</th>
<th nowrap="nowrap" align="center" title="🧮 Repositories traffic">🧮</th>
<th nowrap="nowrap" align="center" title="📓 Repositories">📓</th>
<th nowrap="nowrap" align="center" title="🎫 Gists">🎫</th>
<th nowrap="nowrap" align="center" title="🙋 Introduction">🙋</th>
<th nowrap="nowrap" align="center" title="💕 GitHub Sponsors">💕</th>
<th nowrap="nowrap" align="center" title="🌇 GitHub Skyline 3D calendar">🌇</th>
<th nowrap="nowrap" align="center" title="⏱️ Website performances">⏱️</th>
<th nowrap="nowrap" align="center" title="🎼 Music plugin">🎼</th>
<th nowrap="nowrap" align="center" title="🐤 Latest tweets">🐤</th>
<th nowrap="nowrap" align="center" title="🌸 Anilist watch list and reading list">🌸</th>
<th nowrap="nowrap" align="center" title="🗨️ Stackoverflow plugin">🗨️</th>
<th nowrap="nowrap" align="center" title="✒️ Recent posts">✒️</th>
<th nowrap="nowrap" align="center" title="🗼 Rss feed">🗼</th>
<th nowrap="nowrap" align="center" title="⏰ WakaTime plugin">⏰</th>
<th nowrap="nowrap" align="center" title="💹 Stock prices">💹</th>
<th nowrap="nowrap" align="center" title="📸 Website screenshot">📸</th>
<th nowrap="nowrap" align="center" title="💉 Nightscout">💉</th>
</tr>
<tr>
<td nowrap="nowrap">👤 User</td>
<td nowrap="nowrap" align="center" data-plugin="base">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="isocalendar">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="languages">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="topics">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stars">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="licenses">❌</td>
<td nowrap="nowrap" align="center" data-plugin="habits">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="contributors">❌</td>
<td nowrap="nowrap" align="center" data-plugin="followup">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="reactions">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="people">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stargazers">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="projects">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="code">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="activity">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="achievements">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="notable">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="discussions">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="support">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="lines">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="traffic">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="repositories">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="gists">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="introduction">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="sponsors">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="skyline">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="pagespeed">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="music">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="tweets">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="anilist">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stackoverflow">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="posts">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="rss">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="wakatime">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stock">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="screenshot">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="nightscout">✔️</td>
</tr>
<tr>
<td nowrap="nowrap">👥 Organization</td>
<td nowrap="nowrap" align="center" data-plugin="base">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="isocalendar">❌</td>
<td nowrap="nowrap" align="center" data-plugin="languages">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="topics">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stars">❌</td>
<td nowrap="nowrap" align="center" data-plugin="licenses">❌</td>
<td nowrap="nowrap" align="center" data-plugin="habits">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="contributors">❌</td>
<td nowrap="nowrap" align="center" data-plugin="followup">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="reactions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="people">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stargazers">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="projects">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="code">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="activity">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="achievements">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="notable">❌</td>
<td nowrap="nowrap" align="center" data-plugin="discussions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="support">❌</td>
<td nowrap="nowrap" align="center" data-plugin="lines">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="traffic">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="repositories">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="gists">❌</td>
<td nowrap="nowrap" align="center" data-plugin="introduction">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="sponsors">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="skyline">❌</td>
<td nowrap="nowrap" align="center" data-plugin="pagespeed">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="music">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="tweets">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="anilist">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stackoverflow">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="posts">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="rss">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="wakatime">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stock">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="screenshot">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="nightscout">❌</td>
</tr>
<tr>
<td nowrap="nowrap">📓 Repository</td>
<td nowrap="nowrap" align="center" data-plugin="base">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="isocalendar">❌</td>
<td nowrap="nowrap" align="center" data-plugin="languages">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="topics">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stars">❌</td>
<td nowrap="nowrap" align="center" data-plugin="licenses">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="habits">❌</td>
<td nowrap="nowrap" align="center" data-plugin="contributors">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="followup">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="reactions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="people">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="stargazers">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="projects">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="code">❌</td>
<td nowrap="nowrap" align="center" data-plugin="activity">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="achievements">❌</td>
<td nowrap="nowrap" align="center" data-plugin="notable">❌</td>
<td nowrap="nowrap" align="center" data-plugin="discussions">❌</td>
<td nowrap="nowrap" align="center" data-plugin="support">❌</td>
<td nowrap="nowrap" align="center" data-plugin="lines">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="traffic">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="repositories">❌</td>
<td nowrap="nowrap" align="center" data-plugin="gists">❌</td>
<td nowrap="nowrap" align="center" data-plugin="introduction">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="sponsors">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="skyline">❌</td>
<td nowrap="nowrap" align="center" data-plugin="pagespeed">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="music">❌</td>
<td nowrap="nowrap" align="center" data-plugin="tweets">❌</td>
<td nowrap="nowrap" align="center" data-plugin="anilist">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stackoverflow">❌</td>
<td nowrap="nowrap" align="center" data-plugin="posts">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="rss">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="wakatime">❌</td>
<td nowrap="nowrap" align="center" data-plugin="stock">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="screenshot">✔️</td>
<td nowrap="nowrap" align="center" data-plugin="nightscout">❌</td>
</tr>
</table>
*Note: **markdown template** can actually render any kind of SVG metrics using [`embed` function](https://github.com/lowlighter/metrics/blob/master/source/templates/markdown/example.md#embedding-svg-metrics)*
## 🖼️ Templates
Templates lets you change general appearance of rendered metrics.
See their respective documentation for more informations about how to setup them:
* [📗 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)
* [📕 Community templates](/source/templates/community/README.md)
## 🧩 Plugins
Plugins are features which provide additional content and lets you customize your rendered metrics.
See their respective documentation for more informations about how to setup them:
* **Core**
* [🗃️ Base content](/source/plugins/base/README.md)
* [🧱 Core](/source/plugins/core/README.md)
* **Github**
* [🏆 Achievements](/source/plugins/achievements/README.md)
* [📰 Recent activity](/source/plugins/activity/README.md)
* [♐ Code snippet of the day](/source/plugins/code/README.md)
* [🏅 Repository contributors](/source/plugins/contributors/README.md)
* [💬 Discussions](/source/plugins/discussions/README.md)
* [🎟️ Follow-up of issues and pull requests](/source/plugins/followup/README.md)
* [🎫 Gists](/source/plugins/gists/README.md)
* [💡 Coding habits](/source/plugins/habits/README.md)
* [🙋 Introduction](/source/plugins/introduction/README.md)
* [📅 Isometric commit calendar](/source/plugins/isocalendar/README.md)
* [🈷️ Most used languages](/source/plugins/languages/README.md)
* [📜 Repository licenses](/source/plugins/licenses/README.md)
* [👨‍💻 Lines of code changed](/source/plugins/lines/README.md)
* [🎩 Notable contributions](/source/plugins/notable/README.md)
* [🧑‍🤝‍🧑 People plugin](/source/plugins/people/README.md)
* [🗂️ Active projects](/source/plugins/projects/README.md)
* [🎭 Comment reactions](/source/plugins/reactions/README.md)
* [📓 Repositories](/source/plugins/repositories/README.md)
* [🌇 GitHub Skyline 3D calendar](/source/plugins/skyline/README.md)
* [💕 GitHub Sponsors](/source/plugins/sponsors/README.md)
* [✨ Stargazers over last weeks](/source/plugins/stargazers/README.md)
* [🌟 Recently starred repositories](/source/plugins/stars/README.md)
* [💭 GitHub Community Support](/source/plugins/support/README.md)
* [📌 Starred topics](/source/plugins/topics/README.md)
* [🧮 Repositories traffic](/source/plugins/traffic/README.md)
* **Social**
* [🌸 Anilist watch list and reading list](/source/plugins/anilist/README.md)
* [🎼 Music plugin](/source/plugins/music/README.md)
* [⏱️ Website performances](/source/plugins/pagespeed/README.md)
* [✒️ Recent posts](/source/plugins/posts/README.md)
* [🗼 Rss feed](/source/plugins/rss/README.md)
* [🗨️ Stackoverflow plugin](/source/plugins/stackoverflow/README.md)
* [🐤 Latest tweets](/source/plugins/tweets/README.md)
* [⏰ WakaTime plugin](/source/plugins/wakatime/README.md)
* **Other**
* [💉 Nightscout](/source/plugins/nightscout/README.md)
* [📸 Website screenshot](/source/plugins/screenshot/README.md)
* [💹 Stock prices](/source/plugins/stock/README.md)
### 🏦 Organizations metrics
While metrics targets mainly user accounts, it's possible to render metrics for organization accounts.
![Metrics (organization account)](https://github.com/lowlighter/lowlighter/blob/master/metrics.organization.svg)
<details>
<summary><b>💬 Metrics for organizations</b> <i>(click to expand)</i></summary>
<!-- -->
Setup is the same as for user accounts, though you'll need to add `read:org` scope, **whether you're member of target organization or not**.
![Add read:org scope to personal token](/.github/readme/imgs/setup_token_org_read_scope.png)
You'll also need to set `user` option with your organization name.
If you're encounting errors and your organization is using single sign-on, try to [authorize your personal token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on).
Most of plugins supported by user accounts will work with organization accounts, but note that rendering metrics for organizations consume way more APIs requests.
To support private repositories, add full `repo` scope to your personal token.
#### Example workflow
```yaml
- uses: lowlighter/metrics@latest
with:
# ... other options
token: ${{ secrets.METRICS_TOKEN }} # A personal token from an user account with read:org scope
user: organization-name # Organization name
```
</details>
<details>
<summary><b>💬 Organizations memberships for user accounts</b> <i>(click to expand)</i></summary>
<!-- -->
Only public memberships can be displayed by metrics by default.
You can manage your membership visibility in the `People` tab of your organization:
![Publish organization membership](/.github/readme/imgs/setup_public_membership_org.png)
For organization memberships, add `read:org` scope to your personal token.
![Add read:org scope to personal token](/.github/readme/imgs/setup_token_org_read_scope.png)
</details>
## 💪 Customizing and contributing
Metrics is built to be easily customizable.
Fork this repository, switch used action from `lowlighter/metrics@latest` to your fork and start coding!
See [ARCHITECTURE.md](/ARCHITECTURE.md) for more informations about how code is structured.
To report a bug fill an [issue](https://github.com/lowlighter/metrics/issues) describing it.
To suggest new features or requesting help to setup metrics, check out [discussions](https://github.com/lowlighter/metrics/discussions).
If you want to contribute, submit a [pull request](https://github.com/lowlighter/metrics/pulls).
Be sure to read [CONTRIBUTING.md](/CONTRIBUTING.md) for more information about this.
## 📜 License
```
MIT License
Copyright (c) 2020-present lowlighter
```
![License details](https://github.com/lowlighter/lowlighter/blob/master/metrics.licenses.svg)
See full license in [LICENSE.md](/LICENSE.md)
![Sponsors](https://github.com/lowlighter/lowlighter/blob/master/metrics.sponsors.svg)
![Contributors](https://github.com/lowlighter/lowlighter/blob/master/metrics.contributors.svg)
[`♥️ Become a sponsor`](https://github.com/sponsors/lowlighter)
## 📖 Useful references
* [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)
* See [GitHub Logos and Usage](https://github.com/logos) for more information.
### ✨ Inspirations
* [anuraghazra/github-readme-stats](https://github.com/anuraghazra/github-readme-stats)
* [jstrieb/github-stats](https://github.com/jstrieb/github-stats)
* [ankurparihar/readme-pagespeed-insights](https://github.com/ankurparihar/readme-pagespeed-insights)
* [jasonlong/isometric-contributions](https://github.com/jasonlong/isometric-contributions)
* [jamesgeorge007/github-activity-readme](https://github.com/jamesgeorge007/github-activity-readme)
* [vvo/sourcekarma](https://github.com/vvo/sourcekarma)
* [ryo-ma/github-profile-trophy](https://github.com/ryo-ma/github-profile-trophy)
* [teoxoy/profile-readme-stats](https://github.com/teoxoy/profile-readme-stats)