IP Library Granted Patent US 11,385,989
Granted Patent B1
US 11,385,989 · App. 17/163,717 · Granted Jul 12, 2022

Automated code review process using relevance analysis to control selection of and interaction with code reviewers

Inventors: Xiangping Chen (Sherborn, MA); David Meiri (Somerville, MA)
Assignee: EMC IP Holding Company LLC
G06F11/3616G06F8/71G06F8/75
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,385,989
App. No.
17/163,717
Filed
Feb 1, 2021
Granted
Jul 12, 2022
Kind
B1
Art Unit
2193
USPC
717/120
Abstract

For each of a plurality of commit operations to be executed for respective given code portions of a set of software code under development, at least one processing device performs a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion, determines one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis, assigns code review responsibilities for the given code portion to the one or more determined code reviewers, notifies the one or more determined code reviewers of the assigned code review responsibilities, and responsive to successful completion of code review by the one or more determined code reviewers, executes the commit operation for the given code portion.

Claims (61)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

said at least one processing device being configured:

for each of a plurality of commit operations to be executed for respective given code portions of a set of software code under development:

to perform a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion;

to determine one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis;

to assign code review responsibilities for the given code portion to the one or more determined code reviewers;

to notify the one or more determined code reviewers of the assigned code review responsibilities; and

responsive to successful completion of code review by the one or more determined code reviewers, to execute the commit operation for the given code portion.

2. The apparatus of claim 1 wherein said at least one processing device comprises a processing platform configured to implement an automated code reviewing system.

3. The apparatus of claim 1 wherein performing a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion comprises processing code change history information for the set of software code under development to identify the one or more other code portions each exhibiting at least the threshold level of relevance to the given code portion.

4. The apparatus of claim 1 wherein performing a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion comprises:

assigning different weights to respective ones of a plurality of code portions of the set of software code; and

computing weighted relevance scores for respective potential code reviewers associated with the plurality of code portions.

5. The apparatus of claim 4 wherein determining one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis comprises selecting a potential code reviewer having a highest one of the weighted relevance scores as a determined code reviewer for the given code portion.

6. The apparatus of claim 4 wherein assigning different weights to respective ones of a plurality of code portions of the set of software code comprises one or more of:

assigning relatively high weights to more recently changed code portions and relatively low weights to less recently changed code portions;

assigning relatively high weights to code portions associated with bug fixes and relatively low weights to code portions not associated with bug fixes; and

assigning relatively low weights to code portions associated with trace messages and relatively high weights to code portions not associated with trace messages.

7. The apparatus of claim 1 wherein performing a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion comprises executing one or more predetermined commands against a plurality of code portions of the set of software code.

8. The apparatus of claim 7 wherein the one or more commands comprise a differential command that when executed returns one or more code portions associated with each of one or more previous commit operations.

9. The apparatus of claim 7 wherein the one or more commands comprise an attribution command that when executed returns at least one code developer identifier and a corresponding commit identifier for one or more code portions associated with at least one previous commit operation executed for those code portions.

10. The apparatus of claim 7 wherein the one or more commands comprise at least one of a context command and a purpose command that when executed return respective corresponding context and purpose information for one or more code portions associated with at least one previous commit operation executed for those code portions.

11. The apparatus of claim 1 wherein determining one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis comprises determining the one or more code reviewers for the given code portion subject to one or more specified review constraints, wherein the one or more specified review constraints designate one or more particular code reviewers for at least one of particular types of files, particular types of code structure, and particular types of directory changes.

12. The apparatus of claim 1 wherein determining one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis comprises:

arranging identifiers of a plurality of potential code reviewers for the given code portion into a hierarchy of potential code reviewers for the given code portion based at least in part on results of the relevance analysis;

selecting a first level code reviewer from a first level of the hierarchy of potential code reviewers for the given code portion; and

selecting at least one additional code reviewer from at least one lower level of the hierarchy of potential code reviewers for the given code portion.

13. The apparatus of claim 11 wherein different code reviewers at different ones of the levels of the hierarchy perform code review at respective different granularities for the given code portion.

14. The apparatus of claim 11 wherein determining one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis further comprises:

selecting a second level code reviewer from a second level of the hierarchy of potential code reviewers for the given code portion, the second level code reviewer being selected to perform code review based on identification of a particular component impacted by the given code portion; and

selecting a third level code reviewer from a third level of the hierarchy of potential code reviewers for the given code portion, the third level code reviewer being selected to perform code review based on a determination that the given code portion comprises code changes across multiple components in respective different directories.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device:

for each of a plurality of commit operations to be executed for respective given code portions of a set of software code under development:

to perform a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion;

to determine one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis;

to assign code review responsibilities for the given code portion to the one or more determined code reviewers;

to notify the one or more determined code reviewers of the assigned code review responsibilities; and

responsive to successful completion of code review by the one or more determined code reviewers, to execute the commit operation for the given code portion.

16. The computer program product of claim 15 wherein performing a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion comprises:

assigning different weights to respective ones of a plurality of code portions of the set of software code; and

computing weighted relevance scores for respective potential code reviewers associated with the plurality of code portions.

17. The computer program product of claim 15 wherein determining one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis comprises:

arranging identifiers of a plurality of potential code reviewers for the given code portion into a hierarchy of potential code reviewers for the given code portion based at least in part on results of the relevance analysis;

selecting a first level code reviewer from a first level of the hierarchy of potential code reviewers for the given code portion; and

selecting at least one additional code reviewer from at least one lower level of the hierarchy of potential code reviewers for the given code portion.

18. A method comprising:

for each of a plurality of commit operations to be executed for respective given code portions of a set of software code under development:

performing a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion;

determining one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis;

assigning code review responsibilities for the given code portion to the one or more determined code reviewers;

notifying the one or more determined code reviewers of the assigned code review responsibilities; and

responsive to successful completion of code review by the one or more determined code reviewers, executing the commit operation for the given code portion;

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

19. The method of claim 18 wherein performing a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion comprises:

assigning different weights to respective ones of a plurality of code portions of the set of software code; and

computing weighted relevance scores for respective potential code reviewers associated with the plurality of code portions.

20. The method of claim 18 wherein determining one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis comprises:

arranging identifiers of a plurality of potential code reviewers for the given code portion into a hierarchy of potential code reviewers for the given code portion based at least in part on results of the relevance analysis;

selecting a first level code reviewer from a first level of the hierarchy of potential code reviewers for the given code portion; and

selecting at least one additional code reviewer from at least one lower level of the hierarchy of potential code reviewers for the given code portion.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2021
From: CHEN, XIANGPING; MEIRI, DAVID
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055094/0221 →