Files
nexu-io__open-design/.github/workflows/refresh-plugin-popularity.yml
Joey-nexu f1a0b60c6c chore: unify product name display to OpenDesign repo-wide (#6998)
* chore: unify product name display to OpenDesign repo-wide

Rename the user-facing product name from "Open Design" to "OpenDesign"
across documentation, web/desktop UI strings, i18n locales, prompts,
plugin/skill/design-system content, changelogs, and specs, matching the
landing-page rename already in flight.

Deliberately excluded so installed-app identity stays untouched:
- packages/release PRODUCT_NAME and everything derived from it
  (app bundle names, installer/registry identity, updater feeds)
- tools/pack, tools/release, apps/packaged, landing page (PR #6983)
- mocks/ recorded traces and LICENSE
- test fixtures and comments that encode real on-disk install paths
  (Open Design.app, Program Files\Open Design, AppData paths)

Validated with pnpm guard, pnpm typecheck, and targeted web/desktop/host
test runs over the renamed strings.

* fix(web): keep two-letter author monogram for CamelCase brand names

authorInitials split words on whitespace only, so the renamed single-token
author name "OpenDesign" produced a one-letter monogram. Treat lower-to-upper
CamelCase boundaries as word breaks so the avatar fallback stays "OD".

* fix(release): restore spaced Windows source artifact names in win.ps1

tools/pack still derives builder outputs from the unchanged PRODUCT_NAME
("Open Design"), so the asset script must look for the spaced filenames.
Matches the mac/mac-intel/linux asset scripts, which were already kept on
the original names.

---------

Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
2026-08-18 07:09:45 +00:00

86 lines
3.2 KiB
YAML

name: refresh-plugin-popularity
on:
# Weekly refresh so the plugin/example grid + Home rail keep leading each
# category with the templates users actually reach for (OPEND-449). Templates
# rotate roughly monthly, so a weekly trailing-window rebuild stays fresh.
schedule:
- cron: '0 2 * * 1'
# Manual trigger: force a rebuild outside the weekly schedule.
workflow_dispatch:
inputs:
window:
description: 'Trailing window in days (blank = 28)'
required: false
permissions:
contents: read
concurrency:
group: refresh-plugin-popularity
cancel-in-progress: true
jobs:
refresh:
name: Refresh template popularity ordering
if: github.repository == 'nexu-io/open-design'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Rebuild pluginPopularity.generated.ts
# HogQL needs a personal API key (phx_…). Prefer a dedicated
# POSTHOG_PERSONAL_API_KEY; fall back to the existing POSTHOG_CLI_API_KEY,
# which is already a personal key used for release sourcemap uploads.
# If neither can query, the script warns and no-ops (exit 0) so this
# stays green and opens no PR.
env:
POSTHOG_PERSONAL_API_KEY: ${{ secrets.POSTHOG_PERSONAL_API_KEY }}
POSTHOG_CLI_API_KEY: ${{ secrets.POSTHOG_CLI_API_KEY }}
run: pnpm exec tsx scripts/refresh-plugin-popularity.ts --write --window=${{ github.event.inputs.window || '28' }}
- name: Generate OpenDesign bot token
id: open-design-bot-token
uses: actions/create-github-app-token@v3.2.0
with:
client-id: ${{ secrets.BOT_APP_CLIENT_ID }}
private-key: ${{ secrets.BOT_APP_PRIVATE_KEY }}
owner: nexu-io
repositories: open-design
permission-contents: write
permission-pull-requests: write
- name: Create refresh pull request
uses: peter-evans/create-pull-request@v8
with:
token: ${{ steps.open-design-bot-token.outputs.token }}
add-paths: apps/web/src/components/plugins-home/pluginPopularity.generated.ts
branch: automation/refresh-plugin-popularity
delete-branch: true
commit-message: 'chore(plugins-home): refresh template popularity ordering'
author: 'open-design-bot[bot] <282769551+open-design-bot[bot]@users.noreply.github.com>'
committer: 'open-design-bot[bot] <282769551+open-design-bot[bot]@users.noreply.github.com>'
title: 'chore(plugins-home): refresh template popularity ordering'
body: |
Rebuilds `pluginPopularity.generated.ts` from the trailing-window
PostHog usage so the plugin/example grid and Home rail keep leading
each category with the most-reached-for templates (OPEND-449).
Generated by the scheduled `refresh-plugin-popularity` workflow.
Only the generated data file changes; review the diff to sanity-check
the movement, then merge.