Generate a reproducible report of past LibreSign contributors

Aperta
#8,678 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@cornelisonc ci sta già lavorando.

Dal 6/10/2026.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
68/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
github

Direzione di ricerca

Start with the GitHub CLI/API requirements and define a small standalone repository and documented command that accepts owner/repository. Verify pagination, merged_at ordering, author grouping, bot exclusion, and the requested profile and pull-request links using LibreSign/libresign and small fixtures. Done means reproducible, read-only structured output with correct counts and first/most-recent merged pull requests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

good first issue

Context

LibreSign wants to better understand the experience of people who contribute to the project.

We want to use this feedback to improve onboarding, documentation, development setup, pull request reviews, communication with maintainers, and the general contributor experience.

New contributors are now invited to an optional survey after their first merged pull request. For people who contributed before this workflow existed, we need a simple way to review past contribution data before deciding if we should invite them to answer the survey.

This is not about ranking contributors or judging their work.

Goal

Create a small standalone script that reads merged pull requests from a GitHub repository, groups them by pull request author, and creates a simple structured output for manual review.

The implementation must live in a separate public repository, not in LibreSign/libresign.

The repository to analyze must be given as input, for example owner/repository.

The tool should work with any GitHub repository that has pull requests. We will use LibreSign/libresign to check the result, but contributors can test with any suitable repository.

Do not turn this into a general analytics platform.

Keep it simple

Follow KISS (Keep It Simple and Straightforward) and YAGNI (You Aren't Gonna Need It).

Reference: https://martinfowler.com/bliki/Yagni.html

Prefer one script or a very small set of files.

Do not add things that are not needed for this task, such as frameworks, services, databases, dashboards, GitHub Apps, GitHub Actions, background jobs, scoring, AI/ML, automatic outreach, or future extension points.

GitHub data

Use GitHub pull request data as the source of truth.

Using the local GitHub CLI (gh) is encouraged, for example with gh pr list, gh api, REST, or GraphQL. Reuse the user's existing gh authentication.

Definitions:

  • contributor: GitHub login of the pull request author;
  • merged pull request: merged_at is not null;
  • first merged pull request: earliest merged_at;
  • most recent merged pull request: latest merged_at.

Do not try to find pull request authors from commits, email addresses, merge commits, or co-author data.

Process the full merged pull request history, including pagination beyond default GitHub CLI/API limits.

Output

Create one record per non-bot pull request author with at least:

  • GitHub login and profile URL;
  • number of merged pull requests;
  • first merged pull request: number, title, URL, merge date;
  • most recent merged pull request: number, title, URL, merge date;
  • a GitHub URL that lists that author's pull requests in the repository.

The output format is open. CSV, JSON, or another simple structured format is fine if it can be read with common tools.

Exclude clear bot accounts, but do not try to classify people, organizations, translators, maintainers, employees of other projects, or decide who should be contacted. That review is manual.

The tool must be read-only and must not create or change anything on GitHub.

Implementation

The language is not fixed.

Prefer something easy to run without installing a large extra toolchain. PHP, shell, Python, or Perl are natural choices. PHP is already available in the LibreSign development context.

Keep tests small. A few checks or simple fixtures for grouping, counting, first/last merged_at, and bot exclusion are enough.

Reproducibility

Running the same version of the tool against the same repository state should produce the same result.

Good first issue

This task is small and suitable for a first contribution.

If the solution starts becoming a service, framework, analytics platform, or large architecture, it is outside the scope of this issue.

Additional context
  • If you have questions, feel free to ask in this issue.
  • Give a ⭐️ star to this repository if you find LibreSign useful and would like to support the project.
  • You can also join our community: https://t.me/LibreSign

Done when

  • The implementation lives in a separate public repository.
  • A documented command accepts a GitHub repository as input.
  • The tool is tested with LibreSign/libresign.
  • The full merged pull request history is processed.
  • There is one record per non-bot pull request author.
  • Counts and first/last merged pull requests are correct according to merged_at.
  • The requested profile and pull request links are included.
  • The output is simple and easy to read.
  • The tool is read-only and reuses existing gh authentication.
  • The result can be reproduced with the same tool version and repository state.
  • The implementation stays small and focused on this task.
Lingua principale
PHP
Stelle
838
Fork
171
Merge medio
1g 3h
PR unite (30g)
414

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di LibreSign/libresign

Tutte le issue di LibreSign/libresign

Issue simili

Altre issue su PHP

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.