QUALIFYING IMPACTS OF THIRD-PARTY CODE CHANGES ON DEPENDENT SOFTWARE
A method for creating a learning model that evaluates risks of applying commits in a third-party product to a dependent product is disclosed. The method includes collecting data on past commits; training the learning model using the collected data; and using the learning model to determine if future commits are problematic.
1 . A method of using a learning model to test commits from a third-party product into a dependent product, the method comprising:
receiving a commit from the third-party product;
testing the commit using a pre-trained learning model;
determining if the commit is problematic, and if the commit is problematic, sending the commit for review before implementation and sending a report to a reviewer outlining the level of risk of implementing the commit and a reason for the level or risk.
2 . The method according to claim 1 , wherein testing the commit includes determining a commit complexity.
3 . The method according to claim 2 , wherein the commit complexity includes number of characters in a commit message, a number of files changed, a number of code lines added and a number of code lines removed.
4 . The method according to claim 2 , wherein testing the commit further includes determining an author experience.
5 . The method according to claim 4 , wherein the author experience includes a number of previous commits, a total number of code lines added and a total number of code lines removed.
6 . The method according to claim 4 , wherein testing the commit further includes an author's name.
7 . The method according to claim 6 , wherein testing the commit further includes determining a component affected by the commit.
8 . The method according to claim 1 , further comprising if the future commit is not problematic, implementing the future commit, wherein manual review time by a person is reduced.
9 . The method of claim 1 , wherein implementing the future commit includes copying a pre-built version of the library rather than applying changes to an existing library.
10 . The method of claim 1 , wherein the reason includes commit complexity, author experience, author's name or which component the commit affects.
11 . A non-transitory machine readable memory medium including instructions when executed to cause a processor to perform the following actions:
receiving a commit from the third-party product;
testing the commit using a pre-trained learning model;
determining if the commit is problematic, and if the commit is problematic, sending the commit for review before implementation and sending a report to a reviewer outlining the level of risk of implementing the commit and a reason for the level or risk.
12 . The non-transitory machine readable memory medium according to claim 11 , wherein testing the commit includes determining a commit complexity.
13 . The non-transitory machine readable memory medium according to claim 12 , wherein the commit complexity includes number of characters in a commit message, a number of files changed, a number of code lines added and a number of code lines removed.
14 . The non-transitory machine readable memory medium according to claim 12 , wherein testing the commit further includes determining an author experience.
15 . The non-transitory machine readable memory medium according to claim 14 , wherein the author experience includes a number of previous commits, a total number of code lines added and a total number of code lines removed.
16 . The non-transitory machine readable memory medium according to claim 14 , wherein testing the commit further includes an author's name.
17 . The non-transitory machine readable memory medium according to claim 16 , wherein testing the commit further includes determining a component affected by the commit.
18 . The non-transitory machine readable memory medium according to claim 11 , further comprising if the future commit is not problematic, implementing the future commit, wherein manual review time by a person is reduced.
19 . The non-transitory machine readable memory medium of claim 11 , wherein implementing the future commit includes copying a pre-built version of the library rather than applying changes to an existing library.
20 . The non-transitory machine readable memory medium of claim 12 , wherein the reason includes commit complexity, author experience, author's name or which component the commit affects.