The billing begins on the first business day of each month, with the generation of the previous month's author list. This list is manually reviewed to eliminate any duplicate authors, as an author might have used other accounts to make some commits in addition to those made using their primary email/account. Fluid Attacks then employs this refined list to calculate the organization's billing for the month.
It's crucial to clarify that billing is conducted based on the date commits are merged into the configured branch within the platform, not their creation date. This approach ensures that code analysis begins from that particular moment forward.
Due to this, it's possible for the billing to include authors who didn't commit during the month being billed. This situation may arise when changes are made in branches prior to the final version (pre-release), and subsequently, these commits are integrated into the branch with an active continuous hacking service. It's important to note that the date we observe a commit may not coincide with its original authorship date.
Through this process, we obtain all the authors (developers) whose changes (additions, modifications, deletions) to the source code we observe as merged on a date within the previous month. To accomplish this, we rely on the Git history information of each repository, focusing solely on the branch configured within the platform.
The diagram above illustrates the procedure necessary for generating the authors' report. This process begins when the user adds a repository to the platform, specifying the branch in which Continuous Hacking is activated. This branch is then cloned for commit extraction. Subsequently, two asynchronous tasks are carried out, as detailed below:
This procedure entails extracting all commits from the Git history, which includes details such as the author's name and email, the unique hash, the commit date, the associated message, and the change summary (including deltas and total files). These steps are crucial and occur at two key stages.
Finally, all the information is stored in Fluid Attacks' Snowflake database.
In this phase, the process involves eliminating duplicate commits and consolidating information gathered from all organization repositories. These lists include author names, the groups they have contributed to, commit IDs, and repository names, each providing an example for every author.