Sign inSign up

penrithbeacon/wcp-widget-github

By penrithbeacon

•Updated 4 months ago

Image
0

1.2K

penrithbeacon/wcp-widget-github repository overview

⁠WCP Widget: GitHub

A Widget Context Protocol (WCP)⁠ widget that brings your GitHub repositories into any WCP-compatible dashboard. Browse all your repos with live metadata — language, visibility, last push time — without leaving your dashboard.

Specification: widgetcontextprotocol.com⁠ | Part of the Penrith Beacon WCP⁠ widget suite.

WCP 2.1.0 certified. Full theme reception, orchestration-aware state, Publish to Web, WCP export.


⁠Components

ComponentDefault sizeDescription
Repositories12x6All repos sorted by last push, with metadata badges
Settings12x6Personal Access Token configuration
Help12x6Setup guide, FAQ, reference links

⁠Quick Start

docker run -d \
  --name wcp-widget-github \
  -p 3743:3743 \
  -v gh-data:/app/data \
  -v gh_published:/app/published \
  -e CONTAINER_NAME=wcp-widget-github \
  --restart unless-stopped \
  docker.io/penrithbeacon/wcp-widget-github:latest

⁠Docker Compose

services:
  github:
    image: docker.io/penrithbeacon/wcp-widget-github:latest
    container_name: wcp-widget-github
    ports:
      - "3743:3743"
    volumes:
      - gh-data:/app/data
      - ./published:/app/published
    environment:
      - CONTAINER_NAME=wcp-widget-github
    restart: unless-stopped

volumes:
  gh-data:

⁠Setup Guide

Create a GitHub Personal Access Token at github.com/settings/tokens⁠ with the repo scope (or public_repo for public repos only). Open the Settings component and paste it in.


⁠WCP Request Headers

HeaderRequiredDescription
Wcp-Instance-IdYesUnique card instance identifier
Wcp-Dashboard-IdYesDashboard installation identifier
Wcp-VersionYesWCP protocol version of the requesting dashboard
Wcp-Widget-IdYesWidget identifier within the dashboard
Wcp-Orchestration-IdNoActive orchestration identifier (for state scoping)
Wcp-Application-IdNoActive application identifier (for state scoping)

⁠Endpoints

EndpointDescription
GET /wcpContainer Directory — WCP two-tier discovery
GET /widget/wcpWidget Manifest with runtime publish status
OPTIONS /wcpCORS preflight (all widget routes)
GET /widget/Compact widget card (iframe)
GET /widget/indexWidget Index — lists all controls
GET /widget/healthHealth check with container name
GET /widget/icon.svgWidget icon (SVG)
GET /widget/api/guidsComponent UUIDs for orchestration binding
GET /widget/reposRepositories component page
GET /widget/settingsSettings component page
GET /widget/helpHelp component page
POST /widget/configureSave Personal Access Token
GET /widget/api/config-statusConfiguration status (token masked, account name)
GET /widget/api/reposRepository list (60s cache)
GET /widget/export.wcpSelf-export as .wcp package
POST /widget/publishAccept SPA HTML for Publish to Web
DELETE /widget/publishRemove published SPA
GET /Serve published SPA (if present)

⁠WCP Compatibility

PropertyValue
WCP Version2.1.0
Widget Version1.4.0
Render modeiframe
AuthNone (token stored server-side)
Default card size12x6
Multi-instanceYes (per Instance-Id)

⁠Technical Details

PropertyValue
Base imagepython:3.12-slim
Platformslinux/amd64, linux/arm64
Port3743
FrameworkFlask
DependenciesFlask, requests
Persistent storageNamed volume for per-instance tokens

⁠Tags

TagDescription
latestMost recent stable release
1.4.0-wcp2.1.0/widget/index directory page, audit compliance
1.3.0-wcp2.1.0/widget/health returns container name
1.2.0-wcp2.1.0WCP 2.1.0 upgrade, orchestration ID context
1.1.0-wcp2.0.0Container block, manifest image source
1.0.1-wcp1.4.0Server UUID, Container Directory, Wcp-Widget-Id
1.0.0-wcp1.3.1Initial release

⁠Source

Tag summary

Content type

Image

Digest

sha256:545633864…

Size

47.2 MB

Last updated

4 months ago

docker pull penrithbeacon/wcp-widget-github