Developers often split their work across accounts and computers. Gitrospective imports each source separately, records its limits, then groups activity by date.
Data read from each source
GitHub
Gitrospective reads annual contribution calendars and the repository activity visible to the connected account. The import includes the exposed totals for commits, pull requests, issues and reviews. Annual GraphQL queries provide the historical calendar.
GitLab
The importer lists membership and contributed projects. It checks those projects for commits attributed to the account, then adds authored merge requests and issues. The GitLab history guide documents the exact scope.
Local Git
The optional command-line scanner inspects repository metadata on your computer. It identifies your commits using known Git identities and uploads project names, normalized remote URLs, dates and counts. Source files and commit messages stay on the computer.
Activity is stored by date
Providers describe work differently. Gitrospective maps their activity to a common daily record and retains the related repositories, projects and organizations. Empty dates stay in the calendar between the first and last imported activity.
The calendar combines dates. Project and provider records remain separate.
Cloud mirrors are removed from local totals
A repository cloned from GitHub or GitLab can appear in both imports. Gitrospective normalizes remote URLs and excludes matching local mirrors from the combined count. Repositories with no matching cloud remote stay in the archive.
What the archive shows
The interface provides annual calendars and project rankings. It also shows connected accounts and groups:
- active days and contribution totals for each year;
- projects ranked by commits or active days;
- organizations and GitLab groups associated with imported projects;
- the last sync time for each account or computer.
The dates can serve as notes for a developer year in review or help you remember when an old project was active.
Known gaps
Deleted repositories, revoked organization access and rewritten Git history can remove the records needed for an import. A local clone may fill some of those gaps if its refs still reach the commits.