From 61ba98da2ba653bbf41cba29d08ea471efaf33d2 Mon Sep 17 00:00:00 2001 From: Mara Nikola Kiefer Date: Tue, 14 Apr 2026 08:05:27 +0200 Subject: [PATCH] Remove lucide & replace by octicons --- README.md | 5 +---- agentic/properties/ci-doctor.properties.json | 2 +- .../code-simplifier.properties.json | 2 +- .../daily-doc-updater.properties.json | 2 +- .../daily-repo-status.properties.json | 2 +- .../daily-team-status.properties.json | 2 +- .../daily-test-improver.properties.json | 2 +- .../duplicate-code-detector.properties.json | 2 +- .../properties/issue-triage.properties.json | 2 +- agentic/properties/pr-fix.properties.json | 2 +- .../properties/repo-assist.properties.json | 2 +- ...epository-quality-improver.properties.json | 2 +- icons/lucide-bot.svg | 18 ----------------- icons/lucide-chart-column.svg | 16 --------------- icons/lucide-copy.svg | 14 ------------- icons/lucide-scroll-text.svg | 16 --------------- icons/lucide-stethoscope.svg | 17 ---------------- icons/lucide-tag.svg | 14 ------------- icons/lucide-test-tube.svg | 15 -------------- icons/lucide-user-round.svg | 14 ------------- icons/lucide-users.svg | 16 --------------- icons/lucide-wand-sparkles.svg | 20 ------------------- icons/lucide-wrench.svg | 13 ------------ mapping.md | 15 ++++++++++++++ script/shared/icon-utils.ts | 12 ----------- script/sync-ghes/index.ts | 18 ++++------------- script/validate-data/index.ts | 13 +++--------- 27 files changed, 34 insertions(+), 224 deletions(-) delete mode 100644 icons/lucide-bot.svg delete mode 100644 icons/lucide-chart-column.svg delete mode 100644 icons/lucide-copy.svg delete mode 100644 icons/lucide-scroll-text.svg delete mode 100644 icons/lucide-stethoscope.svg delete mode 100644 icons/lucide-tag.svg delete mode 100644 icons/lucide-test-tube.svg delete mode 100644 icons/lucide-user-round.svg delete mode 100644 icons/lucide-users.svg delete mode 100644 icons/lucide-wand-sparkles.svg delete mode 100644 icons/lucide-wrench.svg create mode 100644 mapping.md delete mode 100644 script/shared/icon-utils.ts diff --git a/README.md b/README.md index 2656b0b..dde998a 100644 --- a/README.md +++ b/README.md @@ -48,10 +48,7 @@ For example: `ci/django.yml` and `ci/properties/django.properties.json`, or `age * `name`: the name shown in onboarding. This property is unique within the repository. * `description`: the description shown in onboarding -* `iconName`: the icon name in the relevant folder, for example, `django` should have an icon `icons/django.svg`. Supported formats: - - **Local SVG**: Use the file name without extension (e.g., `django` for `icons/django.svg`) - - **Octicon**: Use `octicon <>` (e.g., `octicon person`). See [octicons](https://primer.style/octicons/). - - **Lucide**: Use `lucide <>` (e.g., `lucide bug`). See [lucide icons](https://lucide.dev/icons/). +* `iconName`: the icon name in the relevant folder, for example, `django` should have an icon `icons/django.svg`. Only SVG is supported at this time. Another option is to use [octicon](https://primer.style/octicons/). The format to use an octicon is `octicon <>`. Example: `octicon person` * `creator`: creator of the template shown in onboarding. All the workflow templates from an author will have the same `creator` field. * `categories`: the categories that it will be shown under. Choose at least one category from the list [here](#categories). Further, choose the categories from the list of languages available [here](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml) and the list of tech stacks available [here](https://github.com/github-starter-workflows/repo-analysis-partner/blob/main/tech_stacks.yml). When a user views the available templates, those templates that match the language and tech stacks will feature more prominently. diff --git a/agentic/properties/ci-doctor.properties.json b/agentic/properties/ci-doctor.properties.json index 333ed7b..3db2b27 100644 --- a/agentic/properties/ci-doctor.properties.json +++ b/agentic/properties/ci-doctor.properties.json @@ -1,6 +1,6 @@ { "name": "CI Doctor", "description": "Monitor CI workflows and investigate failures automatically.", - "iconName": "lucide stethoscope", + "iconName": "octicon pulse", "categories": ["Agentic", "Fault Analysis"] } diff --git a/agentic/properties/code-simplifier.properties.json b/agentic/properties/code-simplifier.properties.json index b0a34a9..87da28b 100644 --- a/agentic/properties/code-simplifier.properties.json +++ b/agentic/properties/code-simplifier.properties.json @@ -1,6 +1,6 @@ { "name": "Code Simplifier", "description": "Automatically simplify recently modified code for improved clarity and maintainability.", - "iconName": "lucide wand-sparkles", + "iconName": "octicon sparkles-fill", "categories": ["Agentic", "Code Improvement"] } diff --git a/agentic/properties/daily-doc-updater.properties.json b/agentic/properties/daily-doc-updater.properties.json index 95e7306..271dfc9 100644 --- a/agentic/properties/daily-doc-updater.properties.json +++ b/agentic/properties/daily-doc-updater.properties.json @@ -1,6 +1,6 @@ { "name": "Daily Documentation Updater", "description": "Automatically update documentation based on recent code changes and merged PRs.", - "iconName": "lucide scroll-text", + "iconName": "octicon book", "categories": ["Agentic", "Code Improvement"] } diff --git a/agentic/properties/daily-repo-status.properties.json b/agentic/properties/daily-repo-status.properties.json index 0e7260b..5835a1d 100644 --- a/agentic/properties/daily-repo-status.properties.json +++ b/agentic/properties/daily-repo-status.properties.json @@ -1,6 +1,6 @@ { "name": "Daily Repo Status", "description": "Assess repository activity and create status reports.", - "iconName": "lucide users", + "iconName": "octicon people", "categories": ["Agentic", "Research & Planning"] } diff --git a/agentic/properties/daily-team-status.properties.json b/agentic/properties/daily-team-status.properties.json index 1d02719..9c48201 100644 --- a/agentic/properties/daily-team-status.properties.json +++ b/agentic/properties/daily-team-status.properties.json @@ -1,6 +1,6 @@ { "name": "Daily Team Status", "description": "Create upbeat daily team activity summaries with productivity insights.", - "iconName": "lucide user-round", + "iconName": "octicon person", "categories": ["Agentic", "Research & Planning"] } diff --git a/agentic/properties/daily-test-improver.properties.json b/agentic/properties/daily-test-improver.properties.json index 0611ff9..a88dcc4 100644 --- a/agentic/properties/daily-test-improver.properties.json +++ b/agentic/properties/daily-test-improver.properties.json @@ -1,6 +1,6 @@ { "name": "Daily Test Improver", "description": "Improve test coverage by adding meaningful tests to under-tested areas.", - "iconName": "lucide test-tube", + "iconName": "octicon beaker", "categories": ["Agentic", "Code Improvement"] } diff --git a/agentic/properties/duplicate-code-detector.properties.json b/agentic/properties/duplicate-code-detector.properties.json index 8e0f486..0ef7051 100644 --- a/agentic/properties/duplicate-code-detector.properties.json +++ b/agentic/properties/duplicate-code-detector.properties.json @@ -1,6 +1,6 @@ { "name": "Duplicate Code Detector", "description": "Identify duplicate code patterns and suggest refactoring opportunities.", - "iconName": "lucide copy", + "iconName": "octicon search", "categories": ["Agentic", "Code Improvement"] } diff --git a/agentic/properties/issue-triage.properties.json b/agentic/properties/issue-triage.properties.json index 2a9a86e..662b58c 100644 --- a/agentic/properties/issue-triage.properties.json +++ b/agentic/properties/issue-triage.properties.json @@ -1,6 +1,6 @@ { "name": "Issue Triage", "description": "Triage labelling of issues and pull requests and not much more.", - "iconName": "lucide tag", + "iconName": "octicon tag", "categories": ["Agentic", "Maintainer"] } diff --git a/agentic/properties/pr-fix.properties.json b/agentic/properties/pr-fix.properties.json index 421dab2..5397c2d 100644 --- a/agentic/properties/pr-fix.properties.json +++ b/agentic/properties/pr-fix.properties.json @@ -1,6 +1,6 @@ { "name": "PR Fix", "description": "Analyze failing CI checks and implement fixes for pull requests.", - "iconName": "lucide wrench", + "iconName": "octicon tools", "categories": ["Agentic", "Fault Analysis"] } diff --git a/agentic/properties/repo-assist.properties.json b/agentic/properties/repo-assist.properties.json index e93d877..ac9ae80 100644 --- a/agentic/properties/repo-assist.properties.json +++ b/agentic/properties/repo-assist.properties.json @@ -1,6 +1,6 @@ { "name": "Repo Assist", "description": "A regular, pervasive all-tools repository assistant that triages issues, investigates issues, replies with comments, fixes bugs, proposes engineering improvements, and maintains activity summaries.", - "iconName": "lucide bot", + "iconName": "octicon dependabot", "categories": ["Agentic", "Maintainer"] } diff --git a/agentic/properties/repository-quality-improver.properties.json b/agentic/properties/repository-quality-improver.properties.json index 3af7b75..ec304b6 100644 --- a/agentic/properties/repository-quality-improver.properties.json +++ b/agentic/properties/repository-quality-improver.properties.json @@ -1,6 +1,6 @@ { "name": "Repository Quality Improver", "description": "Daily rotating analysis of repository quality across code, documentation, testing, security, and custom dimensions.", - "iconName": "lucide chart-column", + "iconName": "octicon graph-bar-horizontal", "categories": ["Agentic", "Code Improvement"] } diff --git a/icons/lucide-bot.svg b/icons/lucide-bot.svg deleted file mode 100644 index 1a622f9..0000000 --- a/icons/lucide-bot.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - diff --git a/icons/lucide-chart-column.svg b/icons/lucide-chart-column.svg deleted file mode 100644 index ef98cf9..0000000 --- a/icons/lucide-chart-column.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/icons/lucide-copy.svg b/icons/lucide-copy.svg deleted file mode 100644 index f62ce99..0000000 --- a/icons/lucide-copy.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/icons/lucide-scroll-text.svg b/icons/lucide-scroll-text.svg deleted file mode 100644 index c5ccf7f..0000000 --- a/icons/lucide-scroll-text.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/icons/lucide-stethoscope.svg b/icons/lucide-stethoscope.svg deleted file mode 100644 index 1d26e38..0000000 --- a/icons/lucide-stethoscope.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/icons/lucide-tag.svg b/icons/lucide-tag.svg deleted file mode 100644 index 7a073e9..0000000 --- a/icons/lucide-tag.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/icons/lucide-test-tube.svg b/icons/lucide-test-tube.svg deleted file mode 100644 index bf38c2e..0000000 --- a/icons/lucide-test-tube.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/icons/lucide-user-round.svg b/icons/lucide-user-round.svg deleted file mode 100644 index 5f27e33..0000000 --- a/icons/lucide-user-round.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/icons/lucide-users.svg b/icons/lucide-users.svg deleted file mode 100644 index e31958f..0000000 --- a/icons/lucide-users.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/icons/lucide-wand-sparkles.svg b/icons/lucide-wand-sparkles.svg deleted file mode 100644 index fd60bf0..0000000 --- a/icons/lucide-wand-sparkles.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/icons/lucide-wrench.svg b/icons/lucide-wrench.svg deleted file mode 100644 index 3624343..0000000 --- a/icons/lucide-wrench.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/mapping.md b/mapping.md new file mode 100644 index 0000000..e43ea15 --- /dev/null +++ b/mapping.md @@ -0,0 +1,15 @@ +## Icon map + +| Workflow slug | Old icon | New icon | Icon name | +| --- | --- | --- | --- | +| issue-triage | ๐Ÿท๏ธ | tag | `octicon tag` | +| repo-assist | ๐Ÿค– | dependabot | `octicon dependabot` | +| ci-doctor | ๐Ÿฅ | pulse | `octicon pulse` | +| pr-fix | ๐Ÿฅ | tools | `octicon tools` | +| daily-repo-status | ๐Ÿ‘ฅ | people | `octicon people` | +| daily-team-status | ๐Ÿ‘ฅ | person | `octicon person` | +| daily-doc-updater | ๐Ÿ“– | book | `octicon book` | +| code-simplifier | โœจ | sparkles-fill | `octicon sparkles-fill` | +| duplicate-code-detector | ๐Ÿ” | search | `octicon search` | +| daily-test-improver | ๐Ÿงช | beaker | `octicon beaker` | +| repository-quality-improver | ๐Ÿ“Š | graph-bar-horizontal | `octicon graph-bar-horizontal` | diff --git a/script/shared/icon-utils.ts b/script/shared/icon-utils.ts deleted file mode 100644 index c743440..0000000 --- a/script/shared/icon-utils.ts +++ /dev/null @@ -1,12 +0,0 @@ -export function normalizeSvgIconName(iconName?: string): string | undefined { - if (!iconName || iconName.startsWith("octicon")) { - return iconName; - } - - if (iconName.startsWith("lucide ")) { - const lucideName = iconName.slice("lucide ".length).split(".")[0].trim(); - return lucideName ? `lucide-${lucideName}` : undefined; - } - - return iconName; -} diff --git a/script/sync-ghes/index.ts b/script/sync-ghes/index.ts index 8c10f41..b645afb 100755 --- a/script/sync-ghes/index.ts +++ b/script/sync-ghes/index.ts @@ -3,7 +3,6 @@ import { promises as fs } from "fs"; import { safeLoad } from "js-yaml"; import { basename, extname, join } from "path"; import { exec } from "./exec"; -import { normalizeSvgIconName } from "../shared/icon-utils"; interface WorkflowDesc { folder: string; @@ -59,10 +58,6 @@ async function checkWorkflows( `${workflowId}.properties.json` )); const iconName: string | undefined = workflowProperties["iconName"]; - const normalizedSvgIconName = normalizeSvgIconName(iconName); - if (iconName && !normalizedSvgIconName) { - console.warn(`Warning: could not normalize icon "${iconName}" for workflow ${workflowId}, skipping icon sync`); - } const isPartnerWorkflow = workflowProperties.creator ? partnersSet.has(workflowProperties.creator.toLowerCase()) : false; @@ -75,9 +70,9 @@ async function checkWorkflows( folder, id: workflowId, fileExtension, - iconName: normalizedSvgIconName, + iconName, iconType: - normalizedSvgIconName && normalizedSvgIconName.startsWith("octicon") ? "octicon" : "svg", + iconName && iconName.startsWith("octicon") ? "octicon" : "svg", }; if (!enabled) { @@ -196,13 +191,8 @@ async function checkWorkflow( r.push(join(x.folder, "properties", `${x.id}.properties.json`)); }; - if (x.iconType === "svg" && x.iconName) { - r.push( - join( - "../../icons", - `${x.iconName}.svg` - ) - ); + if (x.iconType === "svg") { + r.push(join("../../icons", `${x.iconName}.svg`)); } return r; diff --git a/script/validate-data/index.ts b/script/validate-data/index.ts index 798d973..7f629a5 100755 --- a/script/validate-data/index.ts +++ b/script/validate-data/index.ts @@ -4,7 +4,6 @@ import { safeLoad } from "js-yaml"; import { basename, extname, join, dirname } from "path"; import { Validator as validator } from "jsonschema"; import { endGroup, error, info, setFailed, startGroup } from '@actions/core'; -import { normalizeSvgIconName } from '../shared/icon-utils'; interface WorkflowWithErrors { id: string; @@ -129,16 +128,10 @@ async function checkWorkflow(workflowPath: string, propertiesPath: string, allow if (properties.iconName) { if(! /^octicon\s+/.test(properties.iconName)) { - const svgIconName = normalizeSvgIconName(properties.iconName); - - if(!svgIconName) { + try { + await fs.access(`../../icons/${properties.iconName}.svg`) + } catch (e) { workflowErrors.errors.push(`No icon named ${properties.iconName} found`) - } else { - try { - await fs.access(`../../icons/${svgIconName}.svg`) - } catch (e) { - workflowErrors.errors.push(`No icon named ${properties.iconName} found`) - } } } else {