Qodana Cloud: Contributor count includes duplicates due to multiple emails
Symptoms
The number of active contributors counted for a Qodana Cloud organization is higher than the number of developers on the team.
Cause
Qodana Cloud license cost is based on the number of active contributors. An active contributor is a person or bot that has committed to any of the organization's Qodana Cloud projects within the past 90 days, under a single license. The minimum billed number of contributors is three.
Contributors are identified from the commit history of the connected repositories using the commit author email. When the same person commits under more than one email address (for example, a work email and a personal email, or two spellings of the same address), each distinct email is counted as a separate contributor. This inflates the total above the actual headcount.
Environment
- Product affected: Qodana Cloud (Ultimate and Ultimate Plus licenses)
- Customer type: Commercial customers
Resolution
Reviewing which contributors are counted
The list of counted emails is derived from commits made in the last 90 days. It can be reproduced locally for any connected repository with the Qodana CLI contributors command:
qodana contributors -d 90
This uses the same logic Qodana Cloud applies, which is equivalent to extracting authors from the recent commit history:
git log --all --since='90 days ago' --format='%aE' | sort -u | wc -l
Merging duplicate identities with a .mailmap file
To avoid counting one person multiple times, add a .mailmap file that maps several email addresses to a single canonical identity. Qodana Cloud reads this file and counts the mapped addresses as one contributor.
- Create a file named
.mailmapin the root of each repository connected to Qodana Cloud. -
Add one line per identity, mapping the alternate addresses to the canonical name and email. The format is:
Proper Name <canonical@example.com> <duplicate@example.com>
-
To collapse several aliases into one identity, add a line for each alias pointing at the same canonical address:
Jane Doe <jane.doe@example.com> <jane_doe@example.com> Jane Doe <jane.doe@example.com> <jdoe@personal.example.com>
- Commit the
.mailmapfile to each connected repository.
Important notes
- The
.mailmapfile does not change past counts. It affects contributor counting only for commits made during the 90-day window after the file is added, so the effect becomes visible gradually as older commits age out of the window. - The file must be added to every repository connected to the organization. Aliases that appear only in repositories without a
.mailmapcontinue to be counted separately.
For full details on how contributors are counted, see Contributor counting and the Pricing model in the Qodana documentation.
Additional Relevant Phrases
Qodana cloud license too many users, contributor count wrong, list of counted contributors, who is counted Qodana, duplicate committer emails, merge git identities, mailmap Qodana, active contributors higher than team size, expected vs actual users Qodana.
Please sign in to leave a comment.