Skip to content

feat(profile): replace personal GitHub cards with Violet-Void statistics - #30

Merged
aaronedev merged 7 commits into
mainfrom
feat/violet-void-org-stats
Nov 12, 2026
Merged

aaronedev merged 7 commits into
mainfrom
feat/violet-void-org-stats

Conversation

@aaronedev

@aaronedev aaronedev commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Summary

Replace the personal aaronedev stats, streak, and top-languages cards with two Violet-Void organization cards generated in the README workflow.

  • Aggregate non-archived, non-fork Violet-Void repositories visible to the authenticated token, including private repositories.
  • Show repository/public/private counts, total stars, repositories pushed in the last 90 days, and language distribution by repository code bytes (not personal coding time).
  • Commit the SVG cards to assets/generated/; do not expose GitHub API tokens or private repository names in rendered SVGs.
  • Require authenticated visibility of the primary private Violet-Void/dotfiles repository. Fail instead of silently publishing public-only percentages. Preserve existing cards on collection failure.
  • Reuse existing GH_TOKEN secret via README_ORG_STATS_TOKEN. The existing README workflow renders and commits both assets alongside README.md.
  • Retain theme styling and a clear placeholder until the first successful authenticated refresh.

Verification

  • python3 -m unittest discover -s tests -v (focused locally recreated tests/test_org_stats.py): 7 passed.
  • Python compile checks for new generator and tests: passed.
  • Verified the PR diff: 11 intended files, 7 commits, including the fork compatibility regression fix, tests, and PR-only CI. README/template sections match and both SVG paths are staged by the scheduled workflow.
  • GitHub Actions Python unittest suite: 111 passed, 0 failures (run #43260221539). Bats tests, production README workflow dispatch, and private-repository access through the deployment GH_TOKEN remain unverified.

Review follow-up (2026-11-12)

  • Fixed the outdated workflow staging assertion and asserted the fail-closed guard precedes the push.
  • Changed the API-error preservation test to exercise a mocked network failure.
  • Resolved six reviewed threads, including two non-actionable generic disclosure flags.
  • Follow-up P2 fork compatibility fix: skip the private Violet-Void collector in workflows owned by other repositories; retain fail-closed behavior for the original profile. Added fork tests and setup-card assertions.
  • Added a read-only, PR-only Python unittest workflow. All 111 tests passed on commit 3e7c063.

Required permissions / rollout

The existing GH_TOKEN secret must have read access to Violet-Void/dotfiles and the organization repositories to be aggregated. GitHub's workflow GITHUB_TOKEN alone cannot read another repository's private data. If token access is missing, the SVG generator fails without replacing the previously committed cards. On merge, the scheduled README workflow populates the initial placeholders.

Privacy review: the public profile will display aggregate statistics derived partly from private organization repositories (including private repository count and language shares). No private repository names or file contents appear in the SVGs. The generator source includes the known primary repository's name as an access guard.

No merge or manual README workflow dispatch performed.

View guided diff Turn on auto-fix

@codeant-ai

codeant-ai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

CodeAnt  CodeAnt Review Status

✅  Review completed

Status Commit Started (UTC) Finished (UTC)
✅  #dfe98 Incremental review completed e709efd Nov 12, 2026 · 15:45 15:45
✅  #e35d8 Reviewed your PR efbb9ec Nov 04, 2026 · 10:30 10:34

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing

@codeant-ai

codeant-ai Bot commented Nov 4, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-12T16:37:06.888996Z 3e7c063 Manual request
🔒 Security Review ❌ Failed 2026-11-04T10:30:00.667103Z
We couldn’t complete this review. Comment @codex security review to try again.
efbb9ec PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins.

Comment thread README.md Resolved
Comment thread templates/README.md.tpl Resolved

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 9 files

Tip: Get a Slack DM when cubic finishes reviewing your PRs. Connect Slack

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread tests/test_readme_workflow.py Resolved
Comment thread tests/test_org_stats.py Resolved
@greptile-apps

greptile-apps Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 4/5

[Medium impact] The profile publicly displays aggregate stats derived from accessible private repositories.

Update the broken workflow test before merging.

Fix All in CodexFindings

  1. P1 Workflow test now fails ▶
  2. P2 API failure goes untested ▶
Fix with agent prompt
### Issue 1
.github/workflows/readme.yaml:50
The new `git add -- README.md ...` command breaks `test_post_sync_rerender_has_renderer_credentials_and_precedes_push`, which still requires the exact text `git add README.md`. Running `python3 tests/test_readme_workflow.py` now fails. Keep `--` and update the old assertion to match the new command.

### Issue 2
tests/test_org_stats.py:66
`test_api_error_does_not_replace_published_files` never causes an API error. Passing `environ={}` makes `main()` return before it calls `collect()`, so this test does not check whether collection failure preserves existing cards. Supply a dummy token and mock `github_fetch()` to raise `StatsError`, then check that both existing files remain unchanged.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

Replaces the personal GitHub cards with locally generated Violet-Void organization cards.

  • Violet-Void repository totals and language shares come from visible repositories.
  • The README workflow refreshes and commits both organization stats cards.
  • The profile shows local Violet-Void organization stats cards.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Authenticated GitHub requests] --> B[List organization repositories]
  B --> C{Required private repository visible?}
  C -->|No| D[Fail and keep existing cards]
  C -->|Yes| E[Exclude forks and archived repositories]
  E --> F[Collect and sum language bytes]
  F -->|Collection fails| D
  F -->|Success| G[Render both SVG cards]
  G --> H[Render README]
  H --> I[Sync and render again]
  I --> J{Statistics succeeded?}
  J -->|No| K[Stop before push]
  J -->|Yes| L[Commit and push updates]
Loading

Reviews (1) · Last reviewed commit: "feat(profile): show Violet-Void organiza..." · Reviewed by Greptile

Comment thread .github/workflows/readme.yaml Resolved
Comment thread tests/test_org_stats.py Resolved
@aaronedev

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a67cebd1b7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/readme.yaml Resolved
@aaronedev

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: 3e7c06345a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@aaronedev
aaronedev merged commit 6c2d321 into main Nov 12, 2026
3 checks passed
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.

1 participant