IP Library › Granted Patent US 12,578,961
Granted Patent B2
US 12,578,961 · App. 18/756,674 · Granted Mar 17, 2026

Dynamic review of software updates after pull requests

Inventors: Tallulah Kay (Los Altos, CA); Benjamin Simon (Washington, DC); Christina Kim (San Ramon, CA); Naveed Khan (Bowie, MD); Ahmad Hassan Ibrahim (Centreville, VA); Jean-Etienne Lavallee (Richmond, VA); George Swain (Arlington, VA); Steven Almanzar (Arlington, VA); Andrew Kim (Fairfax, VA); Dominic Leone (Ashburn, VA)
Assignee: Capital One Services, LLC
G06F8/71G06F8/20G06F8/73G06F9/451
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 12,578,961
App. No.
18/756,674
Granted
Mar 17, 2026
Kind
B2
Abstract

In some implementations, a system may receive, from a software repository, a difference file indicating changes, to software code, that was submitted to the software repository. The system may parse the difference file to determine files, associated with the software code, affected by the changes and to determine content associated with the changes. The system may apply rules, from a rule dictionary, based on comparing identifiers, associated with the files, with identifiers included in the rules and based on comparing the content, associated with the changes, with content included in the rules. The system may generate software review checklist items based on applying the rules and output the software review checklist items for display. The system may receive, based on input from a user, confirmation of the changes and commit the changes to the software repository based on the confirmation.

Claims (61)

1 . A computer-implemented method of rule-based review of software code changes, comprising:

compiling, by one or more devices, at least one change from one or more other devices at scheduled times to store the at least one change to software code;

executing a webhook when the at least one change to the software code is submitted, wherein the webhook calls an application programming interface (API);

parsing, by the one or more devices, a difference file included in a pull request to determine one or more files, associated with the software code, affected by the at least one change, wherein parsing the difference file comprises determining a quantity of modifications for the affected one or more files;

extracting, by the one or more devices, at least one identifier, associated with the one or more files, from the pull request;

selecting, by the one or more devices, a rules dictionary to apply to the difference file;

applying, by the one or more devices, one or more rules from the rules dictionary, based on comparing the at least one identifier with one or more other identifiers identified in the one or more rules and based on the quantity of modifications for the affected one or more files satisfying one or more thresholds, to generate one or more software review checklist items;

outputting, by the one or more devices, a graphical user interface (GUI) provides the one or more software review checklist items for display; and

committing, by the one or more devices, at least one change to a software repository based on receiving confirmation of the at least one change in response to the outputted GUI.

2 . The computer-implemented method of claim 1 , wherein comparing the at least one identifier with the one or more other identifiers comprises:

comparing, by the one or more devices, a first set of file extensions, associated with the one or more files, with a second set of file extensions included in the one or more rules.

3 . The computer-implemented method of claim 1 , wherein selecting the rules dictionary comprises:

selecting, by the one or more devices, the rules dictionary based on the at least one identifier.

4 . The computer-implemented method of claim 1 , wherein further comprising:

outputting, by the one or more devices, a checklist review item based on determining a particular file is indicated in the difference file.

5 . The computer-implemented method of claim 1 , further comprising:

outputting, by the one or more devices, a checklist review item based on determining a particular file extension is indicated in the difference file.

6 . The computer-implemented method of claim 1 , wherein applying the one or more rules includes:

applying, by the one or more devices, the one or more rules based on comparing content, associated with the software code changes, with content associated with the one or more rules.

7 . The method of claim 1 , wherein comparing the at least one identifier with the one or more other identifiers comprises:

comparing a first set of file extensions, associated with the one or more files, with a second set of file extensions included in the one or more rules,

wherein applying the one or more rules outputs one or more particular checklist items of the one or more software review checklist items based on comparing a first set of filenames with a second set of filenames.

8 . The method of claim 1 , wherein parsing the difference file comprises: appending information to a particular filename, of the one or more files, to indicate where the file was modified.

9 . A device, comprising:

one or more memories; and

one or more processors, coupled to the one or more memories, configured to:

compile at least one change from one or more other devices at scheduled times to store the at least one change to software code;

execute a webhook when the at least one change to the software code is submitted, wherein the webhook calls an application programming interface (API);

parse a difference file included in a pull request to determine one or more files, associated with the software code, affected by the at least one change, wherein parsing the difference file comprises determining a quantity of modifications for the affected one or more files;

extract at least one identifier, associated with the one or more files, from the pull request;

select a rules dictionary to apply to the difference file;

apply one or more rules from the rules dictionary, based on comparing the at least one identifier with one or more other identifiers identified in the one or more rules and based on the quantity of modifications for the affected one or more files satisfying one or more thresholds, to generate one or more software review checklist items;

output a graphical user interface (GUI) provides the one or more software review checklist items for display; and

commit at least one change to a software repository based on receiving confirmation of the at least one change in response to the outputted GUI.

10 . The device of claim 9 , wherein the one or more processors, to compare the at least one identifier with the one or more other identifiers, are configured to:

compare a first set of file extensions, associated with the one or more files, with a second set of file extensions included in the one or more rules.

11 . The device of claim 9 , wherein the one or more processors, to select the rules dictionary, are configured to:

select the rules dictionary based on the at least one identifier.

12 . The device of claim 9 , wherein the one or more processors are further configured to:

output a checklist review item based on determining a particular file is indicated in the difference file.

13 . The device of claim 9 , wherein the one or more processors are further configured to:

output a checklist review item based on determining a particular file extension is indicated in the difference file.

14 . The device of claim 9 , wherein the one or more processors, to apply the one or more rules, are configured to:

apply the one or more rules based on comparing content, associated with the software code changes, with content associated with the one or more rules.

15 . The device of claim 9 , wherein the one or more rules includes:

a rule triggers when a condition is true.

16 . A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising:

one or more instructions, when executed by one or more processors of a device, cause the device to:

compile at least one change from one or more other devices at scheduled times to store the at least one change to software code;

execute a webhook when the at least one change to the software code is submitted, wherein the webhook calls an application programming interface (API);

parse a difference file included in a pull request to determine one or more files, associated with the software code, affected by the at least one change, wherein parsing the difference file comprises determining a quantity of modifications for the affected one or more files;

extract at least one identifier, associated with the one or more files, from the pull request; select a rules dictionary to apply to the difference file;

apply one or more rules from the rules dictionary, based on comparing the at least one identifier with one or more other identifiers identified in the one or more rules and based on the quantity of modifications for the affected one or more files satisfying one or more thresholds, to generate one or more software review checklist items;

output a graphical user interface (GUI) provides the one or more software review checklist items for display; and

commit the at least one change to a software repository based on receiving confirmation of at least one change in response to the outputted GUI.

17 . The non-transitory computer-readable medium of claim 16 , wherein the one or more instructions cause the device to select the rules dictionary based on the at least one identifier.

18 . The non-transitory computer-readable medium of claim 16 , wherein the one or more instructions further cause the device to: output a checklist review item based on determining a particular file is indicated in the difference file.

19 . The non-transitory computer-readable medium of claim 16 , wherein the one or more instructions further cause the device to:

output a checklist review item based on determining a particular file extension is indicated in the difference file.

20 . The non-transitory computer-readable medium of claim 16 , wherein the one or more instructions cause the device to:

apply the one or more rules based on comparing content, associated with the software code changes, with content associated with the one or more rules.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NAME AND EXECUTION DATE OF INVENTOR 5 PREVIOUSLY RECORDED ON REEL 73044 FRAME 58. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 1, 2025
From: KAY, TALLULAH; SIMON, BENJAMIN; KIM, CHRISTINA; KHAN, NAVEED; IBRAHIM, AHMAD HASSAN; LAVALLEE, JEAN-ETIENNE; SWAIN, GEORGE; ALMANZAR, STEVEN; KIM, ANDREW; LEONE, DOMINIC
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 073804/0942 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME AND EXECUTION DATE OF INVENTOR 5 PREVIOUSLY RECORDED ON REEL 73044 FRAME 58. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 1, 2025
From: KAY, TALLULAH; SIMON, BENJAMIN; KIM, CHRISTINA; KHAN, NAVEED; IBRAHIM, AHMAD HASSAN; LAVALLEE, JEAN-ETIENNE; SWAIN, GEORGE; ALMANZAR, STEVEN; KIM, ANDREW; LEONE, DOMINIC
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 073815/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2025
From: KAY, TALLULAH; SIMON, BENJAMIN; KIM, CHRISTINA; KHAN, NAVEED; IBRAHIM, AHMAD; LAVALLEE, JEAN-ETIENNE; SWAIN, GEORGE; ALMANZAR, STEVEN; KIM, ANDREW; LEONE, DOMINIC
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 073044/0058 →
Continuity (3)
Continuation 18146004 · Dec 23, 2022
Continuation 17140748 · Jan 4, 2021
Related Publication 20240345836A1 · Oct 17, 2024
References Cited (58)
US 8566369B2 · Rousseau et al. · 2013 [cited by applicant]
US 9430229B1 · Van Zijst · 2016 [cited by examiner]
US 10459697B1 · Metwally et al. · 2019 [cited by applicant]
US 10489144B1 · Minnis et al. · 2019 [cited by applicant]
US 10671519B2 · Jayaswal · 2020 [cited by examiner]
US 10768929B1 · Turner et al. · 2020 [cited by applicant]
US 10831471B2 · Swierc · 2020 [cited by examiner]
US 11188313B1 · Huffman et al. · 2021 [cited by applicant]
US 11271987B1 · Diwakaran · 2022 [cited by examiner]
US 11354102B1 · Nordqvist · 2022 [cited by examiner]
US 11392844B1 · Rao et al. · 2022 [cited by applicant]
US 11537392B2 · Kay et al. · 2022 [cited by applicant]
US 11599354B2 · Bhagwan · 2023 [cited by examiner]
US 11681568B1 · Hinrichs · 2023 [cited by examiner]
US 11714629B2 · Shaastry et al. · 2023 [cited by applicant]
US 11755776B2 · Patodia · 2023 [cited by examiner]
US 11836485B1 · Cancilla · 2023 [cited by examiner]
US 20080295085A1 · Rachamadugu et al. · 2008 [cited by applicant]
US 20140173559A1 · Tiwari et al. · 2014 [cited by applicant]
US 20160070568A1 · Balachandran · 2016 [cited by applicant]
US 20170060936A1 · Gammans · 2017 [cited by applicant]
US 20170090915A1 · Shlosberg · 2017 [cited by applicant]
US 20180113862A1 · Glover · 2018 [cited by applicant]
US 20190227902A1 · Cheng et al. · 2019 [cited by applicant]
US 20190228319A1 · Gupta et al. · 2019 [cited by applicant]
US 20190339967A1 · Moondhra et al. · 2019 [cited by applicant]
US 20200125480A1 · Sathyamoorthy et al. · 2020 [cited by applicant]
US 20200293617A1 · Luo · 2020 [cited by examiner]
US 20200341752A1 · Lim · 2020 [cited by examiner]
US 20200341755A1 · Woulfe · 2020 [cited by applicant]
US 20200356635A1 · Szturo et al. · 2020 [cited by applicant]
US 20210019142A1 · Bhagwan · 2021 [cited by examiner]
US 20210042216A1 · Magnezi · 2021 [cited by examiner]
US 20210064364A1 · Culibrk · 2021 [cited by examiner]
US 20210124561A1 · Pezaris · 2021 [cited by applicant]
US 20210141718A1 · Sandhu et al. · 2021 [cited by applicant]
US 20210149666A1 · Goern · 2021 [cited by examiner]
US 20210157770A1 · Modeo et al. · 2021 [cited by applicant]
US 20210200564A1 · Nalepa · 2021 [cited by examiner]
US 20220043779A1 · Maddila et al. · 2022 [cited by applicant]
US 20220131865A1 · Lev Ran · 2022 [cited by examiner]
US 20230130527A1 · Kay et al. · 2023 [cited by applicant]
CN 105095348B · 2019 [cited by applicant]
CN 109711145A · 2019 [cited by applicant]
CN 110134613A · 2019 [cited by applicant]
CN 111782517A · 2020 [cited by applicant]
FR 2907934A1 · 2008 [cited by applicant]
WO 2018104925A1 · 2018 [cited by applicant]
Jiantao He, Supporting Automatic code Review Via Design Pattern, 2013, pp. 1-8. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6616346 (Year: 2013). [cited by examiner]
Syed Fatiul Huq, Understanding the Effect of Developer Sentiment on Fix-Inducing Changes: An Exploratory Study on GitHub Pull Requests, 2019, pp. 514-521. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8945613… [cited by examiner]
Chatley R., et al., “Automated Code Review via Software Repository Mining,” 2018, pp. 567-571, Retrieved from the internet: [URL: https://ieeexplore.ieee.org/stamp/stamp.jsptp=arnumber=8330261]. [cited by applicant]
Chen Y., et al., “A Tool-Supported Review Approach to Detecting Structural Consistency Violations,” 11th IEEE ICECCS'06, 2006, 10 Pages. [cited by applicant]
Garyfallidis E., et al., “Dipy, a Library for the Analysis of Diffusion MRI data,” Frontiers in Neuroinformatics, Feb. 2014, vol. 8, Article 8, 17 pages. [cited by applicant]
Hu Z., et al., “Open-Source Sollware in Class: Students' Common Mistakes,” 2018 ACM/IEEE 40th International Conference on Software Engineering: Software Engineering Education and Training, ICSE-SEET'18, May 27-Jun. 3, 2… [cited by applicant]
Huq S.F., et al., “Understanding the Effect of Developer Sentiment on Fix-inducing Changes: An Exploratory Study on GitHub Pull Requests,” 2019 26th Asia-Pacific Conference on Software Engineering, 2019, pp. 514-521, Re… [cited by applicant]
Kalyan et al., “A Collaborative Code Review Platform for GitHub,” IEEE 2016 21st International Conference on Engineering of Complex Computer Systems (ICECCS), Nov. 6, 2016, pp. 191-196, Retrieved from the Internet: [URL… [cited by applicant]
Li et al., “Redundancy, Context, and Preference: An Empirical Study of Duplicate Pull Requests in OSS Projects,” IEEE Transactions on Software Engineering, Aug. 24, 2020, pp. 1-28, Retrieved from the Internet: [URL: htt… [cited by applicant]
Liu Z., et al., “Automatic Generation of Pull Request Descriptions,” 34th IEEE/ACM International Conference on Automated Sollware Engineering, Sep. 16, 2019, 13 pages. [cited by applicant]