A computer program product having a non-transitory computer-readable storage medium storing computer-executable code comprising instructions that, when executed by a computer processor, cause the computer processor to perform steps comprising:
- receiving information describing a plurality of code check-ins performed in a code repository;
- for each of a plurality of time intervals:
- identifying one or more code check-ins of the plurality of code check-ins performed during the time interval;
- generating, for each of the one or more code check-ins, a respective vector comprising a tuple indicating a file associated with the code check-in, a number of lines associated with the code check-in, and information indicating whether the lines represent new code, reworked code, or deleted code;
- for each of the one or more code check-ins, determining, using a machine learning model, a respective measure of quality indicating a quality of the code check-in, wherein the machine learning model is a recurrent neural network (RNN) model configured to receive as input the respective vector corresponding to the code check-in to determine the respective measure of quality, and is trained using a training set comprising a plurality of input vectors corresponding to parameters of respective code check-ins;
- determining a score indicative of a quality of code check-ins performed during the time interval, based upon the determined measures of quality corresponding to the one or more code check-ins determined by the machine learning model, and
- storing the score value for the time interval;
- receiving information describing a new code check-in, the information describing whether the code checked in during the new code check-in represents original code or reworked code;
- determining, using the machine learning model, a first measure of quality indicative of quality for the new code check-in, based upon the received information;
- updating a score of a current time interval of the plurality of time intervals, based upon the first measure of quality for the new code check-in;
- responsive to determining that the new code check-in represents reworked code, identifying one or more previous code check-ins associated with the reworked code, each associated with a respective previously-determined measure of quality;
- for each of the one or more previous code check-ins:
- identifying a time interval during which the previous code check-in was performed;
- adjusting the previously-determined measure of quality associated with the previous code check-in to indicate a decrease in quality of the previous code check-in, based on code of the previous code check-in reworked as part of the new code check-in;
- adjusting the score for the identified time interval such that the adjusted score represents a reduced quality of code check-ins performed during the time interval compared to the score prior to the adjustment;
- and
- receiving an indication of a task to be scheduled for the user;
- identifying a first future time interval, the first future time interval associated with a time interval of the plurality of time intervals;
- and
- responsive to a determination that a score indicating quality of code check-ins for the associated time interval to the first future time interval meets a threshold value, automatically transmitting, over a network, instructions to a calendar application installed on an external device to schedule the task for the user such that the task is scheduled outside the first future time interval.