Skip to content

fix: read the contributor handle from their profile on the about page - #1183

Merged
nunomaduro merged 1 commit into
dev-null-sh:productionfrom
kachelle:fix/about-contributor-handle
Oct 26, 2026
Merged

nunomaduro merged 1 commit into
dev-null-sh:productionfrom
kachelle:fix/about-contributor-handle

Conversation

@kachelle

@kachelle kachelle commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

#870 linked contributors to their /dev/null profile by `username`, but the GitHub identity had just moved to the profile (#1156), where it's called `handle` (#1179). The about page threw `MissingAttributeException: The attribute [username] either does not exist` as soon as a contributor was on /dev/null.

The contributors now carry their `handle`, and the page links and previews by it, like the rest of the API.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Updates
    • Contributor profiles now use handles instead of usernames.
    • Contributors with a handle link to their profile on /dev/null; contributors without one link to their GitHub profile.

The about page linked contributors by their username, which moved to the
profile as their handle just before it was merged, so it crashed for
anyone on /dev/null among the contributors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Walkthrough

Contributor data now uses handle instead of username across the query, About-page contributor type, profile routing, and related tests.

Changes: About-page contributor handles

Layer / File(s) Summary
Contributor query contract and mapping
app/Queries/ContributorsQuery.php, tests/Unit/Queries/ContributorsQueryTest.php, tests/Feature/Controllers/AboutControllerTest.php
The query returns each matching user's handle under the handle key. Query and controller tests expect the renamed field.
About-page handle routing and display
resources/js/lib/about.ts, resources/js/pages/about/show.tsx
The contributor type uses handle. Contributors without a handle link to GitHub; other contributors use the /dev/null preview and profile route keyed by handle.

Priority: Not assessed

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Bug fix

Possibly related PRs

Suggested reviewers: camilleislasse, nunomaduro

Merge Risk: Minimal · up to f36a3

The About page now reads each contributor's handle from their profile instead of username, which should stop the reported crash for contributors on /dev/null. No merge-blocking issues were found, and the related tests were updated to match.

Security architecture risk: Minimal · up to f36a3

The payload and page consistently use the existing profile handle. Contributors remain matched by GitHub account ID, and profile navigation retains the existing access controls. No material security risk was found in the reviewed change.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The changed exposure is limited to contributor handles on the About page and navigation to existing public profile and preview endpoints. Contributor eligibility remains tied to repository contributor IDs and matching local users; the change does not grant profile-writing authority.

Trust Boundaries and Controls

  • observed — The restored preview path uses the existing handle-based endpoint with people throttling. Its controller preserves separate guest and authenticated behavior, including authenticated blocking checks. The preview component, endpoint, and controller are unchanged in the base-to-head comparison.
Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@nunomaduro
nunomaduro merged commit 822ce77 into dev-null-sh:production Oct 26, 2026
1 check was pending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants