Skip to content

Add the hackathon contributor leaderboard - #82

Merged
vsn411 merged 1 commit into
mainfrom
feat/contributor-leaderboard
Nov 11, 2026
Merged

vsn411 merged 1 commit into
mainfrom
feat/contributor-leaderboard

Conversation

@vsn411

@vsn411 vsn411 commented Nov 11, 2026

Copy link
Copy Markdown
Collaborator

Merged PRs earn points from the difficulty label on the issues they close (hard 10, medium 6, low 3); contributors reach Level 3/2/1 at 25/50/100 points.

  • scripts/leaderboard.py scores every merged PR via the GraphQL closingIssuesReferences link and renders LEADERBOARD.md, a JSON export and a shields.io badge. Each issue scores once, for the first PR that closed it; bots are skipped; unlabelled issues are listed so a maintainer can label them and the next run credits them.
  • .github/workflows/leaderboard.yml runs on merged PRs (pull_request_target, so fork PRs get a write token without checking out their code), on difficulty label changes, every 6 hours and on demand. It publishes to the leaderboard branch, since main is protected, and comments the award on the merged PR.
  • .github/workflows/issue-difficulty.yml creates the difficulty labels, marks issues that lack one with 'needs difficulty', and can backfill all open issues from workflow_dispatch.
  • CONTRIBUTING.md documents the rules; README links the board.

What does this change, and why?

Testing

  • pytest tests passes
  • ruff check . passes
  • Added/updated tests for the behavior change

Merged PRs earn points from the difficulty label on the issues they
close (hard 10, medium 6, low 3); contributors reach Level 3/2/1 at
25/50/100 points.

- scripts/leaderboard.py scores every merged PR via the GraphQL
  closingIssuesReferences link and renders LEADERBOARD.md, a JSON
  export and a shields.io badge. Each issue scores once, for the first
  PR that closed it; bots are skipped; unlabelled issues are listed so
  a maintainer can label them and the next run credits them.
- .github/workflows/leaderboard.yml runs on merged PRs (pull_request_target,
  so fork PRs get a write token without checking out their code), on
  difficulty label changes, every 6 hours and on demand. It publishes to
  the leaderboard branch, since main is protected, and comments the
  award on the merged PR.
- .github/workflows/issue-difficulty.yml creates the difficulty labels,
  marks issues that lack one with 'needs difficulty', and can backfill
  all open issues from workflow_dispatch.
- CONTRIBUTING.md documents the rules; README links the board.
@vsn411
vsn411 merged commit 6211e60 into main Nov 11, 2026
6 checks passed
karthickmk2001 added a commit that referenced this pull request Nov 11, 2026
#45 and #47 stayed open for days after #60 and #61 shipped them because neither PR linked its issue. CONTRIBUTING.md (from #82) already asks for the link and the leaderboard only scores linked issues, but the template had no place for it. Add the line so it is the default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
karthickmk2001 added a commit that referenced this pull request Nov 11, 2026
#45 and #47 stayed open for days after #60 and #61 shipped them because neither PR linked its issue. CONTRIBUTING.md (from #82) already asks for the link and the leaderboard only scores linked issues, but the template had no place for it. Add the line so it is the default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
karthickmk2001 added a commit that referenced this pull request Nov 11, 2026
#45 and #47 stayed open for days after #60 and #61 shipped them because neither PR linked its issue. CONTRIBUTING.md (from #82) already asks for the link and the leaderboard only scores linked issues, but the template had no place for it. Add the line so it is the default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
karthickmk2001 added a commit that referenced this pull request Nov 11, 2026
#45 and #47 stayed open for days after #60 and #61 shipped them because neither PR linked its issue. CONTRIBUTING.md (from #82) already asks for the link and the leaderboard only scores linked issues, but the template had no place for it. Add the line so it is the default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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