From 6b46326aa5db7af6b798c0373f9142eb3426b1e4 Mon Sep 17 00:00:00 2001 From: Maris Popens Date: Wed, 2 Sep 2026 14:58:10 +0300 Subject: [PATCH] feat: add dnb-robot GitHub App logo Geometric robot-head mark for the dnb-robot automation app, matching the org social-card palette (#0D1117 ground, #FF6633 accent, white mark). Adds the source SVG, a 512x512 PNG for the App avatar, and a profile/assets/ README covering regeneration and the manual avatar upload (the App is not managed in dnb-tf). --- README.md | 2 +- profile/assets/README.md | 31 +++++++++++++++++++++++++++++++ profile/assets/dnb-robot.png | Bin 0 -> 7133 bytes profile/assets/dnb-robot.svg | 21 +++++++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 profile/assets/README.md create mode 100644 profile/assets/dnb-robot.png create mode 100644 profile/assets/dnb-robot.svg diff --git a/README.md b/README.md index aa8926a..c035e0e 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Organization-level defaults for the **drumandbytes** GitHub org. | Path | Purpose | |---|---| | [`profile/README.md`](profile/README.md) | Renders as the org landing page at [github.com/drumandbytes](https://github.com/drumandbytes). | -| [`profile/assets/`](profile/assets/) | Images used by the profile page (banner, etc.). | +| [`profile/assets/`](profile/assets/) | Profile banner + the `dnb-robot` GitHub App logo (`dnb-robot.svg` source, `dnb-robot.png` avatar) — see its [README](profile/assets/README.md). | | [`profile/scripts/update_profile.py`](profile/scripts/update_profile.py) | Regenerates the `BLOG-POSTS` block in the profile from the blog RSS feed. | | [`.github/workflows/update-profile.yml`](.github/workflows/update-profile.yml) | Runs that script daily and commits the result (as the `dnb-robot` app). | | [`.github/workflows/ci.yml`](.github/workflows/ci.yml) | actionlint + `ruff` + template validation on every PR; the gate for auto-merge. | diff --git a/profile/assets/README.md b/profile/assets/README.md new file mode 100644 index 0000000..299b861 --- /dev/null +++ b/profile/assets/README.md @@ -0,0 +1,31 @@ +# Profile assets + +Images used by the org profile page and org-level branding. + +| File | Purpose | +|---|---| +| `banner.webp` | 1400×760 banner at the top of [`profile/README.md`](../README.md). | +| `dnb-robot.svg` | Source logo for the `dnb-robot` GitHub App (the org's automation bot). Geometric robot head — `#0D1117` ground, `#FFFFFF` mark, `#FF6633` accent, matching [`profile/social/`](../social/README.md). | +| `dnb-robot.png` | 512×512 raster of `dnb-robot.svg`, sized for the GitHub App avatar. | + +## Regenerating `dnb-robot.png` + +After editing the SVG, re-render the PNG with headless Brave (the same tool +`profile/social/build.sh` uses): + +```sh +cd profile/assets +"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser" --headless=new \ + --hide-scrollbars --force-device-scale-factor=1 --window-size=512,512 \ + --default-background-color=00000000 --virtual-time-budget=2000 \ + --screenshot=dnb-robot.png "file://$PWD/dnb-robot.svg" +``` + +Fallback with ImageMagick: `magick -background none -density 384 dnb-robot.svg -resize 512x512 dnb-robot.png`. + +## Using the logo as the bot avatar + +The `dnb-robot` GitHub App is **not** managed in `dnb-tf` — its avatar is set by +hand. Upload `dnb-robot.png` at **Settings → Developer settings → GitHub Apps → +dnb-robot → Display information → Logo**. The committed files here are the source +of truth. diff --git a/profile/assets/dnb-robot.png b/profile/assets/dnb-robot.png new file mode 100644 index 0000000000000000000000000000000000000000..a6482fa09396c48663f570848b2c38b2542d8979 GIT binary patch literal 7133 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 o3!cq!x#3WTG + + + + + + + + + + + + + + + + + + + +