diff --git a/packages/ui/src/features/inbox/assets/posthog-icon.svg b/packages/ui/src/features/inbox/assets/posthog-icon.svg new file mode 100644 index 000000000..f4aca6dd8 --- /dev/null +++ b/packages/ui/src/features/inbox/assets/posthog-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/ui/src/features/inbox/components/utils/SuggestedReviewerAvatar.tsx b/packages/ui/src/features/inbox/components/utils/SuggestedReviewerAvatar.tsx index 33d99390f..b98064ce5 100644 --- a/packages/ui/src/features/inbox/components/utils/SuggestedReviewerAvatar.tsx +++ b/packages/ui/src/features/inbox/components/utils/SuggestedReviewerAvatar.tsx @@ -1,4 +1,5 @@ import { cn } from "@posthog/quill"; +import posthogIcon from "../../assets/posthog-icon.svg"; const SIZE = { sm: { className: "h-[18px] w-[18px]", pixels: 28 }, @@ -11,6 +12,13 @@ interface SuggestedReviewerAvatarProps { className?: string; } +/** GitHub bots are suffixed with `[bot]`, e.g. `dependabot[bot]`. */ +function isBotLogin(githubLogin: string): boolean { + return githubLogin.endsWith("[bot]"); +} + +const POSTHOG_BOT_LOGIN = "posthog[bot]"; + /** GitHub profile avatar for suggested reviewers – matches SuggestedReviewersEditor. */ export function SuggestedReviewerAvatar({ githubLogin, @@ -19,6 +27,27 @@ export function SuggestedReviewerAvatar({ }: SuggestedReviewerAvatarProps) { const config = SIZE[size]; + if (isBotLogin(githubLogin)) { + // GitHub bot avatars are noisy generic icons; render the PostHog logo for our + // own bot and an empty space sized like the avatar for every other bot. + if (githubLogin === POSTHOG_BOT_LOGIN) { + return ( + + ); + } + + return ( + + ); + } + return (