Skip to content

Set repo descriptions, topics & homepages across all repos #19

Description

@jorisjonkers-dev-agents

Context. Every repo currently has the placeholder description "Part of the JorisJonkers-dev stack" and no topics. This script sets a real one-line description, topics, and (for apps) a homepage on each — idempotent, safe to re-run.

Script (run from anywhere, org-admin)

bash <<'OUTER'   # wrap in bash so it works even if your shell is zsh (read -ra is bash syntax)
ORG=JorisJonkers-dev
while IFS='|' read -r repo desc topics home; do
  [ -z "$repo" ] && continue
  args=(--description "$desc")
  [ -n "$home" ] && args+=(--homepage "$home")
  IFS=',' read -ra ts <<< "$topics"
  for tp in "${ts[@]}"; do [ -n "$tp" ] && args+=(--add-topic "$tp"); done
  echo "==> $repo"
  gh repo edit "$ORG/$repo" "${args[@]}"
done <<'TABLE'
deploy-config-schema|Typed deployment schema and compiler that renders Kubernetes, Traefik, VSO, Gatus, and Flux manifests from one model.|deploy,kubernetes,flux,typescript|
platform-blueprints|Reusable platform packs (edge, observability, NVIDIA, Flux core) with validation helpers.|flux,kubernetes,platform,packs|
nix-platform|Parameterized Nix modules and host profiles for the homelab fleet.|nix,nixos,modules,homelab|
kotlin-spring-commons|Shared Kotlin/Spring Boot conventions, libraries, and system-test harness.|kotlin,spring-boot,library|
vue-web-commons|Shared Vue 3 component library and web utilities.|vue,typescript,frontend,library|
authz-model|Shared authorization model and policy primitives.|authorization,kotlin,library|
api-contract-checks|OpenAPI contract-compatibility checks for CI pipelines.|openapi,ci,contract-testing|
github-workflows|Reusable GitHub Actions workflows for build, release, deploy, and repo hygiene.|github-actions,reusable-workflow,ci|
gradle-conventions|Shared Gradle convention plugins for JVM/Kotlin projects.|gradle,kotlin,convention-plugin|
openapi-client-gradle|Gradle plugin that generates typed OpenAPI clients.|gradle,openapi,codegen|
repo-template|Template repository with standard files, reusable workflows, and hygiene guards.|template,scaffold|
renovate-config|Shared Renovate preset for dependency automation across the org.|renovate,dependencies,config|
.github|Org-level community-health files, profile README, and Project board automation.|github,org-config|
stalwart-provisioner|Schema-driven Stalwart mail account and DKIM provisioning.|mail,stalwart,provisioning|
agent-kit|Versioned source for the agent renderer, installer kit, MCPs, and skills.|agents,tooling,mcp|
agents-api|Kotlin/Spring API for agent workspaces, sessions, and credentials.|kotlin,spring-boot,api,agents|https://jorisjonkers.dev
auth-api|Kotlin/Spring authentication and authorization API for jorisjonkers.dev.|kotlin,spring-boot,auth,api|https://jorisjonkers.dev
knowledge|Knowledge base API, MCP endpoint, and ingest worker for the agent platform.|knowledge,api,mcp|https://jorisjonkers.dev
agent-runtime|Agent runtime images and deploy-bundle metadata.|agents,runtime,docker|
agents-ui|Vue/Vite web and native shell interface for the agent platform.|vue,frontend,agents|https://jorisjonkers.dev
auth-ui|Browser interface for jorisjonkers.dev authentication and account flows.|vue,frontend,auth|https://jorisjonkers.dev
home-portal|Vue/Vite web portal for jorisjonkers.dev.|vue,frontend,portal|https://jorisjonkers.dev
stack-integration-tests|End-to-end integration tests across the platform stack.|integration-testing,e2e|
homelab-deploy|Private deploy-state: rendered Flux tree, locks, and cutover state.|flux,deploy,homelab|
homelab-hosts|Private host and node inventory with generated contracts.|inventory,nix,homelab|
homelab-collections|Private collection definitions for third-party stacks.|homelab,collections|
TABLE
OUTER

Verify

for r in $(gh repo list JorisJonkers-dev --limit 100 --json name --jq '.[].name'); do
  printf "%-26s " "$r"; gh api repos/JorisJonkers-dev/$r --jq '.description'; done

Acceptance

  • No repo still says "Part of the JorisJonkers-dev stack"
  • Every repo has ≥2 topics; apps have the jorisjonkers.dev homepage

Tweak any line in the TABLE block before running — repo|description|topics(csv)|homepage. --add-topic only adds, so re-running won't wipe topics you set in the UI.


Where to run: gh commands run from anywhere (they name repos explicitly) and need gh auth status as an org-admin. Steps marked (in your .github clone) must run inside the cloned repo.

zsh note: the loop uses bash array syntax (read -ra), so it's wrapped in bash <<'OUTER' … OUTER. Paste the whole block — it'll run under bash even from a zsh prompt. (Descriptions + homepages already applied; --add-topic is additive so re-running is safe.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    org-polishOrg profile, descriptions, pins, boardowner-actionRequires owner/admin access — not automatable by the agent

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions