Skip to content

Releases: lowlighter/metrics

Version 3.34

13 Sep 02:39
Compare
Choose a tag to compare

📦 New features

  • 👨‍💻 Lines of code changed
    • Add plugin_lines_delay option to mitigate empty results on first query #1530
      • (Use this option to automatically perform a second request if you encounter zeroed-diffs values)

🧰 Fixes and documentation

chore: upgrade dependencies
docs(steam): correct plugin_steam_user example (#1413, @CCXXXI)
fix(community/template): quickstart
fix(plugins/achievements): update total data acquisition method (#1487, @TonyCrane)
fix(plugins/achievements): find pre-2007 activity (#1493, @LucasLarson)
fix(plugins/achievements): fix progress of rank A (#1430, @TonyCrane)
fix(app/utils): don't die on undefined file type buffer
fix(app/utils): pie graph when less than 3 values
fix(plugin/achievements): use graphql first for initial setup and fix regex

🪦 Deprecations

🐤 Latest tweetstweets has been deprecated as Twitter removed the ability to fetch tweets from their free API as part of their new pricing policy. This plugin will no longer maintained.

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.33

28 Mar 07:50
Compare
Choose a tag to compare

📦 New features

  • 🕹️ Steam✨ new!
    • Use plugin_steam, plugin_steam_token and plugin_steam_user to display data about your Steam account and games ! (#1400)
    • Use plugin_steam_sections to select which section should be displayed between your player profile, most-played games and recently-played games
    • Use plugin_steam_games_ignored, plugin_steam_games_limit, plugin_steam_recent_games_limit and plugin_steam_playtime_threshold to control which games should be displayed
    • Use plugin_steam_achievements_limit to control how many achievements should be displayed per game entry
    • Example: Recently played games
    • Example: Profile and detailed game history
  • 🗳️ Leetcode
    • Use plugin_leetcode_ignored_skills to filter out skills or entire skills categories
  • ✨ Stargazers
    • Use plugin_stargazers_days to select the displayed time range rather than being limited to 14 days
      • Set plugin_stargazers_days: 0 to cover entire account or repository history
    • Changed charts renderer from chartist to D3
      • 🪦 Deprecated plugin_stargazers_charts_type: chartist by plugin_stargazers_charts_type: graph
  • 💡 Coding habits and activity
    • Changed charts renderer from chartist to D3
      • 🪦 Deprecated plugin_habits_charts_type: chartist by plugin_habits_charts_type: graph

🎲 Community plugins

  • 🧠 16personalities✨ new!
    • Use plugin_16personalities and plugin_16personalities_url to display a 16personalities profile (#1402)
    • Use plugin_16personalities_sections to select which section should be displayed between your personality, profile and traits report
    • Use plugin_16personalities_scores to control whether to display score for each trait
  • 🦑 Splatoon
    • Upgrade s3si to v2
    • Add icons from weapons, specials and stages from Fresh season
  • 💹 Stock prices

🧰 Fixes and documentation

fix(app/metrics/utils): support base64 svg
chore(deps): bump minimatch from 6.0.4 to 6.1.6 (#1389, @RJid)
fix(ci): missing cache path and code formatter
fix(plugins/traffic): display scope errors
chore(deps): migrate from chartist to d3

🎉 Celebrating 10000 stars!

Thanks again for all of your feedbacks, support and contributions, and I hope you'll continue using Metrics in the future 😎 !

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.32

18 Jan 10:28
Compare
Choose a tag to compare

📦 New features

  • 💝 GitHub sponsorships✨ new!
    • Use plugin_sponsorships, plugin_sponsorships_sections and plugin_sponsorships_size to display the amount you funded into open source software through GitHub sponsors ! (#1358)
    • Also display people and organization you're sponsoring or sponsored in the past !
  • 🦑 Miscelleanous
    • Add support for --winter debug flag to force winter mode on calendars (#1341)

🧰 Fixes and documentation

fix(plugins/stargazers): bad scale on worldmap when not enough values
docs: add an example for preventing GitHub from auto linking to the image (#1339, @xxchan)
fix(deps): remove dependency on d3-node since it is unmaintained (#1329)
fix(deps): switch from twemoji-parser to @twemoji/parser fork since main repo is unmaintained (#1355)
fix(plugins/lines): add support for organization history (#1356)

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.31

22 Dec 05:03
Compare
Choose a tag to compare

📦 New features

  • 🦑 Miscelleanous
    • Add new debug_flags debug flags for puppeteer (#1317)
  • 🌐 Web instances
    • If insights is used with missing extras features permissions, warnings will be displayed on resulting page

🎲 Community plugins

  • 📸 Website screenshot
    • Add plugin_screenshot_mode to choose between image or text output (#1324)

🧰 Fixes and documentation

fix(app/metrics): SVGs broken on markdown templates (#1315)
fix(plugins/music): spotify playlist mode due to UI changes
fix(plugins/community/stock): undefined quoteType

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.30

13 Dec 07:34
Compare
Choose a tag to compare

📦 New features

  • 🦑 Miscelleanous
    • The action will throw an error when trying to use GitHub fine-grained personal access tokens as token as it's not possible to use them to authenticate to GitHub GraphQL API yet
      • If fine-grained PATs can be used for authenticating to GraphQL API in the future, support for them will be considered

🎲 Community plugins

  • 🦑 Splatoon ✨ new!
    • Configure plugin_splatoon_token to display your Splatnet 3 data ! (#1287, #1303)
    • Enable plugin_splatoon_statink and set plugin_splatoon_statink_token for stat.ink integration
    • Display your player nameplate, last versus matches and last salmon-run shifts using plugin_splatoon_sections !
      • Use plugin_splatoon_versus_limit or plugin_splatoon_salmon_limit to configure the number of matches displayed
  • ♟️ Chess
    • fix: black pawn represented as emoji instead of unicode
  • 📸 Website screenshot
    • Add plugin_screenshot_viewport to configure screenshot viewport (#1288)
    • Add plugin_screenshot_wait to delay screenshot (#1288)
    • fix: wait for idle network and dom loaded

🧰 Fixes and documentation

docs: improve community plugins
docs: improve references
fix(app/action): mishandled config_output (#1293, #1295)
fix(app/web): unsupported plugins display notice

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.29

20 Nov 10:03
Compare
Choose a tag to compare

📦 New features

  • 💫 Star lists
    • Add plugin_starlists_languages_ignored to ignore specified languages (#1224, @TonyCrane)
    • Add plugin_starlists_languages_aliases to alias specified languages with other names (#1224, @TonyCrane)
  • 🈷️ Languages activity
    • Refactor of indepth mode for better maintainability, performances and accuracy (#1118)
      • See #1258 for more informations
    • Add plugin_languages_indepth_custom to specify custom repositories, branches or git rev-list expressions (#1118)
    • Add plugin_languages_analysis_timeout_repositories to limit analysis timeout on a per-repository basis (#1118)
    • Repository templates now support the recently used section (#1118)
  • 🦑 Miscelleanous
  • 🌐 Web instances

🧰 Fixes and documentation

fix(plugins/starlist): unbroken loop for star lists with a single page (#1224, @TonyCrane)
docs(plugins/core): fix output_action description (#1225, @tobealive)
fix(app/metrics): irrevelant warnings for embed function (#1244)
fix(templates/repositories): set repositoriesContributedTo to empty
fix(plugins/languages): EISDIR: illegal operation on a directory
chore(deps): make specialized deps optional (#1259)
fix(docs): example for github_api_graphql
fix(docs): license setup command clarification
fix(metrics/insights): bad GitHub Linguist link (#1277, @mastondzn)
fix(metrics/insights): link from GitHub Linguist to LinguistJS (#1282, @Nixinova)

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.28 — 🥳 2y of metrics!

08 Sep 21:45
Compare
Choose a tag to compare

📦 New features

  • 🗳️ Leetcode ✨ new!
    • Display your stats from your LeetCode account ! #1213
    • Use plugin_leetcode_user to link it to your username
    • Use plugin_leetcode_sections to display number of solved problems, tagged skills and recent submissions
      • Use plugin_leetcode_limit_skills and plugin_leetcode_limit_recent to limit displayed content
  • 📓 Featured repositories
    • Add plugin_repositories_forks to choose whether to display forked repositories in starred/random repositories sections
  • 🎩 Notable contributions
    • Add plugin_notable_self to choose whether to include own repositories or not
  • 💡 Coding habits and activity
    • Add plugin_habits_skipped to support skipping repositories (this inherits from repositories_skipped)
  • 🦑 Miscelleanous
    • embed function now displays warnings for possible misconfigurations
  • 🌐 Web instances
    • Passed options can be prefixed by plugin. to disambiguate some options with name collision
    • Improved errors messages when a plugin or an option is disabled on a web instance

🎲 Community plugins

  • ♟️ Chess ✨ new!
    • Showcase your last chess game with this plugin ! #1215
      • Chessboard is animated and will replay the whole match !
      • (Support currently limited to lichess.org as plugin_chess_platform)

🧰 Fixes and documentation

  • fix(app/web): oauth color for light mode
  • fix(app/web): remove debug log
  • fix(app/web): add disclaimer about using localstorage
  • feat(ci): add check-spelling (@jsoref, #1189)
  • fix(tests): faker deprecations
  • fix(app/insights): display issues for small screen
  • fix(app/web): clean session token when expired
  • fix(plugins/tweets): handle non text/html attachments

🎉 Celebrating 2 years of metrics!

Thanks to all past contributors!

Thanks again for your feedbacks and support, and I hope you'll continue using Metrics in the future 😎 !

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.27

15 Aug 02:08
Compare
Choose a tag to compare

📣 You can now use beta-metrics.lecoq.io to test upcoming releases of metrics.lecoq.io!

📣 You can now login through GitHub OAuth on metrics.lecoq.io to use your own read-only token (revokable anytime) and access more API intensive features that aren't enabled on the web instance by default!

📦 New features

  • 💕 GitHub Sponsors
    • Add plugin_sponsors_title to set a custom sponsors section title (#1128, @Lissy93)
  • 💡 Coding habits
    • Add plugin_habits_languages_threshold to hide languages below a certain usage threshold (#1138)
  • ✨ Stargazers
    • (This plugin was renamed from "Stargazers over last weeks" to "Stargazers" in the documentation)
    • Add plugin_stargazers_worldmap to display a worldmap of stargazers's origins! (#1137)
      • Add plugin_stargazers_charts to toggle charts display
      • Add plugin_stargazers_worldmap_token to set Google Maps Geocoding API
        • (other Geocoding services may be supported at a later date #1162)
      • Add plugin_stargazers_worldmap_sample to set how many stargazers should be sampled
  • 🌇 GitHub Skyline 3D calendar
  • 👨‍💻 Lines of code changed
    • Add plugin_lines_sections to choose whether to display a single line in base plugin, or display repositories with most lines added/removed, or a diff history
    • Add plugin_lines_repositories_limit to limit displayed repositories for repositories section
    • Add plugin_lines_history_limit to limit the number of years displayed by diff history graph
  • 🗂️ GitHub projects
  • 📓 Featured repositories
    • Add plugin_repositories_starred to display your most starred repositories #1179
    • Add plugin_repositories_random to randomly display some of your repositories #1179
    • Add plugin_repositories_order to choose how to display featured, pinned, starred and random repositories #1179
    • Add plugin_repositories_affiliations to control which repositories are fetched by plugin_repositories_starred and plugin_repositories_random #1179
  • 🦑 Miscelleanous
  • 🌐 Web instances
    • UI changes (#1171)
      • Clicking in the header bar now redirect to web instance root rather than this repository
      • Display more clearly deprecated plugins, unsupported options and overall plugin options
      • Display remaining search requests
    • Add support for signing in with GitHub OAuth (#1171)
      • Signing in lets users use their own GitHub token rather than the configured shared token
        • Users can also customize which scopes they'd like to provide
      • Additional extras features permissions can be granted to logged users through conf.settings.extras.logged
    • New permissions were added for each external API
      • metrics.api.music.any
      • metrics.api.google.pagespeed
      • metrics.api.twitter.tweets
      • metrics.api.yahoo.finance
    • New permission added for D3 support
      • metrics.npm.optional.d3
    • ⚠️ If you deployed a web server with a previous version, you may need to reconfigure extras.features with some of the permissions listed above to keep some plugins working

🧰 Fixes and documentation

fix(app/web): lookbehind replace to support Safari for metrics insights
fix(app): allow missing setting 'includes' (#1156, @jayvdb)
fix(docs): expandable json default option value
fix(docs): all plugins now display a non-affiliation disclaimer in their documentation
fix(app/web): improved 404 error handling due to collision with :login and :login/:repository routes
fix(docs): lot of misspelling (#1180, @jsoref)
fix(plugins/wakatime): plugin_wakatime_days not correctly supported

🪦 Deprecations

💭 GitHub Community Support support has been deprecated since the platform has been decomissioned and migrated to GitHub Discussions

🎉 Celebrating 8000 stars!

Thanks a lot for support 🥳 !
Stay tuned for even more features and stats!

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.26

11 Jul 20:50
Compare
Choose a tag to compare

ℹ️ This release is mostly focused on Web instances.
If you only use metrics through GitHub Actions, you can ignore this version.

🎉 Thanks to all my sponsors, metrics.lecoq.io has been migrated on a more powerful server and should be able to handle more requests!

📦 New features

  • 🌐 Web instances
    • Home page has been redesigned to better guide users through the different features of metrics
      • 📊 Metrics embed is now accessible through /embed/
        • Action and markdown tabs can now be displayed without entering an username
      • ✨ Metrics insights is now accessible through /insights/
      • Backwards compatibility with previous endpoints has been kept
        • /:login and /:login/:repository will still generate embed metrics
        • /about/ will redirect towards /insights/
    • Add support for new options in settings.json
      • outputs can be used to restrict which output formats can be used with config.output
      • modes can be used to separately enable or disable embed and insights modes
      • control.token can be used to configure a token which can be used by external services to perform action on instance
        • /.control/stop can be used to stop instance (useful to redeploy or restart it)
      • Add more granularity to extras.features to enable advanced plugin features
        • The following permissions are currently supported:
          • metrics.setup.community.templates: Allow community templates download
          • metrics.setup.community.presets: Allow community presets usage
          • metrics.api.github.overuse: Allow GitHub API intensive requests
          • metrics.cpu.overuse: Allow CPU intensive requests
          • metrics.run.tempdir: Allow access to temporary directory (including I/O)
          • metrics.run.git: Allow to run git
          • metrics.run.licensed: Allow to run licensed
          • metrics.run.user.cmd: Allow to run ANY command by user (USE WITH CAUTION! May result in token leaks by malicious users)
          • metrics.run.puppeteer.scrapping: Allow to run puppeteer to scrape data
          • metrics.run.puppeteer.user.css: Allow to run CSS by user during puppeteer render
          • metrics.run.puppeteer.user.js: Allow to run JavaScript by user during puppeteer render
          • metrics.npm.optional.chartist: Allow use of chartist
          • metrics.npm.optional.gifencoder: Allow use of gifencoder
          • metrics.npm.optional.libxmljs2: Allow use of libxmljs2
        • ⚠️ If you deployed a web server with a previous version, you may need to reconfigure extras.features with some of the permissions listed above to keep some plugins working

        • The following settings has been deprecated:
          • extras.presets should now use extras.features with metrics.setup.community.presets
          • extras.js should now use extras.features with metrics.run.puppeteer.user.js
          • extras.css should now use extras.features with metrics.run.puppeteer.user.css
      • Settings display on startup has been improved

🧰 Fixes and documentation

  • fix(app/web): force faker to be uncached for users who used a previous version of web instance
  • fix(deps): libxmljs2 is now an optional dependency
  • docs(plugins,templates): clarification, fix typos and style
  • fix(plugins): improved error handling and messages

🔐 Security fixes

The following editions fix security issues that were reported by dependabot from unmaintained or outdated dependencies:

  • fix(deps): migrated from jimp to sharp
  • fix(deps): node-chartist is now an optional dependency
    • ⚠️ This dependency is still subject to CVE-2021-20066, but there are currently no replacement for this one which is why it now requires metrics.npm.optional.chartist permissions and is optional

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter

Version 3.25

01 Jul 18:54
Compare
Choose a tag to compare

📦 New features

  • 📆 Repositories
    • Add plugin_repositories_pinned to display pinned repositories (#1100)
  • ⏱️ Website performances
  • 🎟️ Follow-up of issues and pull requests
    • Add plugin_followup_archived to toggle archived repositories issues and pull request count (#1101, @JayantGoel001)
  • 💡 Coding habits
    • Add plugin_habits_languages_limit to limit number of displayed languages
  • ✨ Metrics insights
    • Results are now responsively displayed once a plugin is completed rather than waiting for complete metrics data (#1098)
    • Updated configuration to include new data from calendar, topics, stars, reactions, sponsors and repositories plugins (#1098)
    • Improved formatting from activity comments to support blockquotes, code blocks and additional references (#1098)

🧰 Fixes and documentation

  • fix(deps): dynamically import gifencoder
  • fix(plugins/topics): don't filter iconless topics when limit is disabled
  • fix(plugins/posts): "dev.to" lowercase username (#1101, @JayantGoel001)
  • fix(plugins/base): repositories count (#1101, @JayantGoel001)
  • fix(plugins/pagespeed): improved performances (#1101, @JayantGoel001)
  • fix(metrics/insights): insight output always erroring (#1098)
  • fix(plugins/achievements): remove relative position which is resetting flexbox container position in Safari (#1111, @Penguinlay)
  • fix(plugins/pagespeed): add placeholder for PWA (#1113, @JayantGoel001)

💕 Sponsors

♥️ Become a sponsor

project maintained by @lowlighter