Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

LukeTheoJohnson/github-profile-widget

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

github-profile-widget

Profile widget demo

A profile contribution summary widget. Gets refreshed daily by GitHub Actions. It is generated using real contribution data from the user.

Private repos are not included in the widget scope. merged PR data is explicitly scoped to public repositories (is:public).


Setup

1. Fork this repo.

Your GitHub username is detected automatically from the Actions environment — no code edits needed. Enable Actions on the fork if prompted (Settings → Actions → Allow all actions).

2. Set your display name and tagline under Settings → Secrets and variables → Actions → Variables (not Secrets):

Variable Default Description
WIDGET_NAME your GitHub display name Header name. Defaults to the name on your GitHub profile (e.g. Luke Johnson), falling back to your username
WIDGET_TAGLINE auto-derived Top-right tagline. Left unset, it's generated from your data (see below). Set a literal string to override, e.g. OPEN SOURCE · PYTHON · ML, or an empty value to hide it
WIDGET_TAGLINE_KEYWORDS 3 How many keywords the auto tagline shows
WIDGET_PROJECT_LIMIT 6 Max own-project cards on the left
WIDGET_BAR_LIMIT 6 Max merged-PR repo bars on the right
WIDGET_CORE_STARS 10000 Star threshold for the key-insight caption to call a project "core"

The top-right tagline (e.g. DATA SCIENCE · AGENTIC ENGINEERING) is generated automatically from the data the card already reviews — the names, descriptions and languages of your projects plus the upstream repos you've landed PRs in — matched against a curated lexicon of domain labels. It's deterministic and needs no API key, so the same repos always yield the same keywords, and a fresh fork gets a fitting strip with nothing to configure.

3. Trigger the first run manually: Actions → profile-widget → Run workflow. The widget generates immediately and commits assets/widget.svg. After that it refreshes daily at 06:17 UTC.

4. Embed it in your profile README (YOUR_USERNAME/YOUR_USERNAME):

<a href="https://github.com/YOUR_USERNAME?tab=repositories">
<img src="https://raw.githubusercontent.com/YOUR_USERNAME/github-profile-widget/HEAD/assets/widget.svg" width="100%"/>
</a>

How it works

  • Zero dependencies — pure Python standard library (urllib, json, pathlib)
  • No API keys or secrets required — uses the built-in GITHUB_TOKEN provided by Actions
  • Generates a single SVG with CSS entrance animations gated behind prefers-reduced-motion
  • The workflow handles push races with a fetch-reset-retry loop

About

My GitHub profile widget

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.