WO2024073261A1 - Devices, systems, and methods for continuously enhancing the implementation of code changes via enriched pipelines - Google Patents
Devices, systems, and methods for continuously enhancing the implementation of code changes via enriched pipelines Download PDFInfo
- Publication number
- WO2024073261A1 WO2024073261A1 PCT/US2023/074468 US2023074468W WO2024073261A1 WO 2024073261 A1 WO2024073261 A1 WO 2024073261A1 US 2023074468 W US2023074468 W US 2023074468W WO 2024073261 A1 WO2024073261 A1 WO 2024073261A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- specific
- continuous integration
- server
- project
- files
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 64
- 230000002708 enhancing effect Effects 0.000 title claims description 13
- 230000010354 integration Effects 0.000 claims abstract description 119
- 230000000694 effects Effects 0.000 claims abstract description 10
- 238000012360 testing method Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 description 13
- 239000000463 material Substances 0.000 description 12
- 101000995928 Mus musculus Nucleolar protein 58 Proteins 0.000 description 11
- 102100039692 RNA-binding motif, single-stranded-interacting protein 1 Human genes 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 101150058395 US22 gene Proteins 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002195 synergetic effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 239000000306 component Substances 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013349 risk mitigation Methods 0.000 description 2
- 101001018259 Homo sapiens Microtubule-associated serine/threonine-protein kinase 1 Proteins 0.000 description 1
- 101000693728 Homo sapiens S-acyl fatty acid synthase thioesterase, medium chain Proteins 0.000 description 1
- 102100025541 S-acyl fatty acid synthase thioesterase, medium chain Human genes 0.000 description 1
- 238000001787 Wald–Wolfowitz test Methods 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
Definitions
- the present disclosure is generally related to network security, and, more particularly, is directed to improved devices, systems, and methods for continuously implementing changes to code via pipelines enriched with specific information pertaining to the code changes.
- a method of enhancing an implementation of code changes can include accessing, via a continuous integration platform, a plurality of project-specific files hosted on a repository server, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files, determining, via the continuous integration platform, that a subset of the plurality of project-specific files has changed, generating, via the continuous integration platform, a specific task exclusively associated with the changed subset of the plurality of projectspecific files, and transmitting, via the continuous integration platform, the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
- a system configured to enhance an implementation of code changes.
- the system can include a software development server, a repository server configured to host a plurality of project-specific files, and a continuous integration server including a processor and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access the plurality of project-specific files hosted on the repository server, determine that a subset of the plurality of project-specific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to the software development server, wherein the software developer server is configured to execute the specific task, and wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
- a continuous integration server configured to enhance an implementation of code changes.
- the continuous integration server can include a processor, and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access a plurality of project-specific files hosted on a repository server, determine that a subset of the plurality of project-specific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
- FIG. 1 illustrates a block diagram of a system configured to enhance the implementation of code changes via enriched pipelines, in accordance with at least one nonlimiting aspect of the present disclosure
- FIG. 2 illustrates a block diagram of several tasks generated by the system of FIG. 1 , in accordance with at least one non-limiting aspect of the present disclosure
- FIG. 3 illustrates a pipeline generated by the system of FIG. 1 , in accordance with at least one non-limiting aspect of the present disclosure
- FIG. 4 illustrates a method of enhancing the implementation of code changes via enriched pipelines, in accordance with at least one non-limiting aspect of the present disclosure
- FIG. 5 illustrates a security information and event management system (“SIEM”) configured to benefit from the system of FIG. 1 and method of FIG. 4, in accordance with at least one non-limiting aspect of the present disclosure.
- SIEM security information and event management system
- server may refer to or include one or more computing devices that are operated by or facilitate communication, and processing for multiple parties in a network environment, such as the Internet or any public or private network.
- Reference to “a server” or “a processor,” as used herein, may refer to a previously-recited server, and/or processor that is recited as performing a previous step or function, a different server, and/or processor, and/or a combination of servers, and/or processors.
- network can include an entire enterprise information technology (“IT”) system, as deployed by a tenant.
- IT enterprise information technology
- a network can include a group of two or more nodes (e.g., assets) connected by any physical and/or wireless connection and configured to communicate and share information with the other node or nodes.
- nodes e.g., assets
- network shall not be limited to any particular nodes or any particular means of connecting those nodes.
- a network can include any combination of assets (e.g., devices, servers, desktop computers, laptop computers, personal digital assistants, mobile phones, wearables, smart appliances, etc.) configured to connect to an ethernet, intranet, and/or extranet and communicate with one another via an ad hoc connection (e.g., Bluetooth®, near field communication (“NFC”), etc.), a local area connection (“LAN”), a wireless local area network (“WLAN”), and/or a virtual private network (“VPN”), regardless of each devices’ physical location.
- a network can further include any tools, applications, and/or services deployed by devices, or otherwise utilized by an enterprise IT system, such as a firewall, an email client, document management systems, office systems, etc.
- a “network” can include third-party devices, applications, and/or services that, although they are owned and controlled by a third party, are authorized by the tenant to access the enterprise IT system.
- the term “platform” can include software architectures, hardware architectures, and/or combinations thereof.
- a platform can include either a stand-alone software product, a network architecture, and/or a software product configured to integrate within a software architecture and/or a hardware architecture, as required for the software product to provide its technological benefit.
- a platform can include any combination of a chipset, a processor, a logic-based device, a memory, a storage, a graphical user interface, a graphics subsystem, an application, and/or a communication module (e.g., a transceiver).
- a platform can provide the resources required to enable the technological benefits provided by software.
- the technological benefit provided by the software is provided to the physical resources of the ecosystem or other software employed by physical resources within the ecosystem (e.g., APIs, services, etc.).
- a platform can include a framework of several software applications intended and designed to work together.
- a repository can include any version control system and/or source control system, including any system and/or platform configured to track and/or manage changes to software code.
- a repository can include Git, Subversion, Concurrent Versions System (“CVS”), Microsoft Azure, Darcs, and/or Mercurial, amongst others.
- a monolithic repository or “monorepo,” as used herein, can include a single version-controlled code repository configured to contain code associated with many projects. For example, many large companies such as Google, Microsoft, Facebook, and Twitter choose to host all of their code in a single, monolithic repository, shared amongst the entire development team. As such, monorepos can reach colossal sizes, exceeding tens to hundreds of terabytes, and must be configured to support hundreds of commits per day. Although certain projects may be related, they can be logically independent and run by different teams.
- multirepos many developers choose to alternately organize code by drawing project-specific boundaries into multiple repositories or “multirepos,” as used herein. Developers can, therefore, make case- by-case determinations as to which code should be stored in which of the project-specific multirepos. Multirepos, however, are inherently stove-piped. Whereas monorepos can enable the establishment of relationships and/or certain degrees of interoperability between projects, multirepos cannot lack the integration of monorepos. In other words, monorepos enable a comprehensive and integrated storage of code that is not feasible via multirepos. An additional benefit of monorepo-based software management is the ability to track which versions of software can be deployed together.
- monorepos make it easier to manage relationships between different project-specific codes, it can be more difficult to execute tasks across the large volume of content in a monorepo.
- conventional monorepo tools generally deploy a single, comprehensive and otherwise unaltered pipeline configured to execute all tasks regardless of how small or limited the scope of a code change. This can lead to an inefficient use of computing resources and/or developer time, as the monorepo executes tests across all of the code regardless of how small a particular change can be.
- monorepos can be beneficial for the large scale development of software, it is less ideal for the efficient implementation of code changes for smaller projects. Accordingly, there is a need for devices, systems, and method for continuously enhancing the implementation of code changes via enriched pipelines. Such devices, systems, and methods can enable developers to streamline software development developer experience, so developers do not need to wait for a change to be built, deployed, or tested in unnecessary ways.
- devices, systems, and method for continuously enhancing the implementation of code changes via enriched pipelines can be practically integrated into software development tools and architectures that produce numerous technological improvements over conventional tools deployed to interface with monorepos.
- such devices, systems, and methods can automate software delivery, assembly code, run tests, and safely deploy new versions of an application autonomously, based on a detected subset of changed selected files, instead of wasting computational resources and time addressing every file — changed and unchanged — in the monorepo. This can enable a development team to accomplish more with less human resources, computational resources, and time.
- the systems, and methods disclosed herein can autonomously detect specific changes, without human input, continuous integration can be truly continuous, ensuring that specific project builds are monitored and deployed regardless of the date or time changes are enacted by the development team.
- the system 100 can include a continuous integration server 102, a repository server 104, and a software development server 106 communicably coupled via a network, such as the internet 108 or any other means of networked communication (e.g., cellular network, intranet, etc.).
- a network such as the internet 108 or any other means of networked communication (e.g., cellular network, intranet, etc.).
- the continuous integration server 102, the repository server 104, and the software development server 106 can be one of a plurality of servers specifically implemented for the particular functions that will be described herein with reference to each.
- the repository server 104 may be one of a plurality of repository servers configured to perform the functions disclosed herein with reference to the repository server 104 of FIG. 1. It shall be further appreciated that each of the continuous integration server 102, a repository server 104, and a software development server 106 can include a memory communicably coupled to a processor.
- the continuous integration server 102 can include a memory configured to store a continuous integration platform 110 that, when executed by a processor of the continuous integration server 102, causes the continuous integration server 102 to interact with the repository server 104 and the software development server 106 in accordance with the functions and methods disclosed herein.
- the continuous integration platform 110 can cause the continuous integration server 102 to act as a third party interface between the repository server 104 and the software development server 106.
- the continuous integration platform 110 can be particularly configured to generate one or more pipelines comprising one or more specific tasks (e.g., code testing, code merges, etc.) to enhance the implementation of code changes, as will be described in further detail herein.
- the repository server 104 can be configured to store a plurality of files 112 t_, ? , such as various project-specific software codes, and can be further configured to host and execute a content repository platform (e.g., Git, Subversion, CVS, Microsoft Azure, Darcs, Mercurial, etc.).
- a content repository platform e.g., Git, Subversion, CVS, Microsoft Azure, Darcs, Mercurial, etc.
- the repository server 104 can be configured to track and/or manage changes to the plurality of files 112 ⁇ .
- a computing device 116 e.g., a personal computer, a laptop computer, a tablet, a smartphone, etc.
- the repository server 104 can include a version control system and/or a source control system such as a monorepo, or single version-controlled code repository configured to contain code associated with many projects.
- a version control system and/or a source control system such as a monorepo, or single version-controlled code repository configured to contain code associated with many projects.
- the plurality of files 112 ⁇ _, ? can be exceedingly large.
- the repository server 104 can be configured to support hundreds of commits per day, as each of the plurality of files 112 ⁇ . n can be logically independent and run by different teams.
- the software development server 106 can be configured to host and execute a software development platform (e.g., Gitlab, Github, Azure DevOps and Pipelines, Bitbucket, Jenkins, etc.) configured to facilitate the collaborative software development platform for large software development projects, such as DevOps.
- the software development server 106 via the software development platform, can be used to enable developers 114 to collaboratively plan, build, secure, and deploy software as a complete platform across the entire development cycle.
- the software development server 106 can be configured to execute pipelines and/or tasks generated by the continuous integration platform 110, in association with one or more of the plurality of files 112 i- n .
- the continuous integration server 102 via the continuous integration platform 110, can be particularly configured to accessing the plurality of projectspecific files 112 ⁇ . n hosted on the repository server 104.
- the continuous integration platform 110 can be configured to access and review the plurality of project-specific files 112 ⁇ - n hosted on the repository server 104 periodically, in accordance with a predetermined time interval (e.g., every five seconds, every minute, every hour, every day, etc.).
- the continuous integration server 102, via the continuous integration platform 110 can further be configured to determine that a subset 112 n of the plurality of project-specific files 112 ⁇ has changed.
- This detection can be autonomous and can occur multiple times a day, according to a predetermined period.
- the subset 112 n can include at least one of the plurality of project-specific files 112 ⁇ . n that the continuous integration platform 110 has determined to have been updated or otherwise modified by one or more developers 114 since the last time the plurality of project-specific files 112 ⁇ . n was accessed and reviewed.
- the continuous integration server 102 via the continuous integration platform 110, can autonomously execute one or more tasks (e.g., build, merge, test, scan, etc.).
- the continuous integration platform 110 of the continuous integration server 102 of the system 100 of FIG. 1 can be further configured to generate customized task 210, 212 (FIG. 2) or a pipeline 301 , 303, 305 (FIG. 3) of tasks exclusively associated with the changed subset 112 n of the plurality of project-specific files 112 ⁇ . n .
- the continuous integration server 102 can be configured to transmit the task 210, 212 (FIG. 2) or pipeline 301 , 303, 305 (FIG. 3), associated with the changed subset 112 n to the software development server 106 for execution.
- the software development server 106 need only take action on the changed subset of the plurality of project-specific files 112 ⁇ . n , instead of the entire plurality.
- developers 114 of FIG. 1 can benefit from multirepo-like agility and efficiencies, across a large plurality of project-specific files 112 ⁇ . n stored by the repository server 104, or monorepo.
- benchmark testing indicates significant technological benefits associated with the execution of specific tasks and pipelines generated by the continuous integration platform 110 of the continuous integration server 102.
- tasks such as code merges, generated by the continuous integration platform 110 and executed by the software development server 106 took several minutes and — in some instances — mere seconds to complete, compared to twenty minutes to complete comparable sized tasks generated and performed by conventional systems.
- the tasks 210, 212 generated by the system 100 of FIG. 1 can include any number of software-related tasks, including merging of changes 206, 208 a -c, testing of project-specific files 112 ⁇ . n , , and/or security-related tasks, amongst others.
- the plurality of project-specific files 112 ⁇ . n are depicted as stored by the repository server 104 of FIG. 1.
- FIG. 1 depicts that the plurality of project-specific files 112 ⁇ . n as stored by the repository server 104 of FIG. 1.
- a first code change 206 has been implemented in a first project-specific file 112 ⁇ of the plurality of project-specific files 112 ⁇ - n and a second code change 208 has been implemented against a second project-specific file 112 c of the plurality of project-specific files 112 i-n.
- the system 100 of FIG. 1 has generated a first task 210 associated with the first code change 206 implemented in the first project-specific file 112 ⁇ and a second task 212 associated with the second code change 208 implemented in the second projectspecific file 112 c .
- the first task 210 and the second task 212 can be utilized to enhance the implementation of code changes.
- the first change 206 includes a single piece of affected code 206 and thus, far less code will actually be affected by the first code change 206.
- the second code change 208 comprises numerous pieces 208 a -c of affected code and thus, much more code will be affected by the second code change 208.
- FIG. 2 depicts the benefit of a system 100 (FIG. 1) configured to generate a first task 210 and a second task 212 that can be discretely executed by a software development server 106.
- a developer 114 FIG. 1
- FIG. 2 depicts the benefit of a system 100 (FIG. 1) configured to generate a first task 210 and a second task 212 that can be discretely executed by a software development server 106.
- the system 100 of FIG. 1 is able to intelligently detect and manage changes implemented in the plurality of projectspecific files 112 ⁇ . n and generate discrete tasks 210, 212 that can be independently executed by the software development server 106. Accordingly, the tasks 210, 212 of FIG. 2 can enable a developer 114 (FIG. 1) to exclusively focus on a task-at-hand 210 without having to commit computing resources to unnecessary tasks 212 implemented within project-specific file 112c that may be momentarily irrelevant to their work on a desired project-specific file 112 ⁇ .
- a user interface 300 displaying several pipelines 301 , 303, 305 generated by the system 100 of FIG. 1 is depicted in accordance with at least one non- limiting aspect of the present disclosure.
- the user interface 300 of FIG. 3 can be generated by the continuous integration platform 110 (FIG. 1) of the continuous integration server 102 (FIG. 1) and accessed via the computing device 116 114 (FIG. 1) of one or more developers 114 (FIG. 1).
- FIG. 1 the continuous integration platform 110
- FIG. 1 the continuous integration platform 110
- FIG. 1 the continuous integration server 102
- FIG. 1 the computing device 116 114
- FIG. 1 the computing device 116 114
- developers 114 FIG. 1
- the user interface 300 can display one of several pipelines 301 , 303, 305, including a build pipeline 301 , a test pipeline 303, and a security pipeline 305 (e.g., static application security (“SAST”) scan), amongst others.
- a build pipeline 301 e.g., a test pipeline 303
- a security pipeline 305 e.g., static application security (“SAST”) scan
- each of the generated pipelines 301 , 303, 305 can include one or more related tasks 302 a-e , 312 a.c , 322 a -c associated with one or more of the project-specific files 112 ⁇ . n (FIG. 1) stored on the repository server 104 (FIG. 1).
- the build pipeline 301 can include tasks such as build:cloudfunctions 302 a , build:peeprBackend 302 fi , build:pubapi 302 c , build:pubapi-tokens 302d, and/or build: riskapi 302 e , amongst others.
- the test pipeline 303 can include tasks such as test:peeprBackend 312 a , test: swagger 312/>, and/or test:vet-peeprBackend 302 c , amongst others and the scan pipeline 305 can include tasks such as gosec:peeprBackend 322 a , shiftleft: pubapi 322 ft , and/or shiftleft: riskapi 322 c , amongst others.
- each task 302 a.e , 312 a -c, 322 a.c of each of the pipelines 301 , 303, 305 displayed by the user interface 300 of FIG. 3 can specify a task to be performed on a particular project-specific file 112 ⁇ .
- pipelines 301 , 303, 305 and tasks 302 a.e , 312 a -c, 322 a.c depicted in FIG. 3 are merely illustrative and, according to other nonlimiting aspects, the present disclosure contemplates a number of different types of pipelines and tasks generated by the system 100 of FIG. 1.
- each task 302 a.e , 312 a.c , 322 a.c of each pipeline 301 , 303, 305 can further include one or more action buttons 308 and/or one or more status buttons
- each status button 306 can cause the continuous integration server 102 to perform a particular task 302 a -e, 312 a -c, 322 a -c again.
- each status button 306 can cause the continuous integration server 102 to perform a particular task 302 a -e, 312 a -c, 322 a -c again.
- each status button 306 can cause the continuous integration server 102 to perform a particular task 302 a -e, 312 a -c, 322 a -c again.
- each status button 306 can cause the continuous integration server 102 to perform a particular task 302 a -e, 312 a -c, 322 a -c again.
- a first status button 306 can indicate that the last execution of a particular task 302 a.e , 312 a-c , 322 a -c was successful.
- a second status button 307 can be configured as a failure indicator that indicates that the last execution of a particular task 302 a.e , 312 a.c , 322 a -c was not successful.
- a third status button 314 can indicate that the last execution of a particular task 302 a.e , 312 a -c, 322 a.c is in process or pending.
- a fourth status button 316 can be configured as an alert indicator that indicates that the last execution of a particular task warrants attention.
- a user interaction e.g., clicking the fourth status buttons 316, etc.
- a first status button 306 can indicate that the last execution of a particular task 302 a -e, 312 a -c, 322 a.c .
- the user interface 300 of FIG. 3 can further enable a developer 114 (FIG. 1) to review generated tasks 302 a.e , 312 a.c , 322 a.c and/or pipelines 301 , 303, 305 in different aggregations.
- a pipeline view 330 is depicted.
- the developer 114 (FIG. 1) can further review generated tasks 302 a -e, 312 a -c, 322 a.c and/or pipelines 301 , 303, 305 according to a project-specific needs view 332, a jobs view 334, a failed jobs view 336, and/or a tests view 338.
- the various tasks 302 a -e, 312 a -c, 322 a.c generated by the continuous integration platform 110 (FIG. 1) of the continuous integration server 102 (FIG. 1) can be further aggregated by task 302 a -e, 312 a -c, 322 a.c type, task 302 a.e , 312 a.c , 322 a.c status, and/or project needs, for example.
- the developer 114 (FIG.
- Each pipeline 301 , 303, 305 can be configured for automatically execution upon the continuous integration server 102 (FIG. 1), via the continuous integration platform 110 (FIG. 1), detecting that a subset of project-specific files 112 w (FIG. 1) has changed.
- the change in code can trigger a notification to the continuous integration server 102 (FIG. 1) and/or the continuous integration platform 110 (FIG. 1), which subsequently executes a corresponding pipeline 301 , 303, 305.
- pipeline 301 , 303, 305 execution can be scheduled and/or triggered based on the results of other executed pipelines 301 , 303, 305.
- the continuous integration platform 110 (FIG. 1), via the pipelines 301 , 303, 305 can be implemented to efficiently automate a software delivery process on a monorepo-type repository server 104 (FIG. 1).
- the pipelines 301 , 303, 305 can be used to build code, runs tests, and safely deploy a new version of an application associated only with the subset of project-specific files 112/v.
- the pipelines 301 , 303, 305 can be configured to remove manual errors, provide standardized feedback loops to developers 114 (FIG. 1), and enable faster product iterations.
- the enriched pipelines 301 , 303, 305 accelerated the entire continuous integration feedback loop to mere seconds, without compromising the quality of developer 114 (FIG. 1) feedback or results.
- the user interface 300 of FIG. 3 illustrates how the continuous integration platform 110 (FIG. 1) of the continuous integration server 102 (FIG. 1) can be used to not only generate specific tasks 302 a.e , 312 a.c , 322 a.c associated with a subset of project-specific files 112 A.n stored on the repository server 104, but can also aggregate the generated tasks 302 a.e , 312 a -c, 322 a.c into specific and enriched continuous integration pipelines 301 , 303, 305, which can be implemented with specificity to further streamline integration and further reduce computational resource usage and enhance efficiencies.
- FIG. 1 Referring now to FIG.
- a method 400 of enhancing the implementation of code changes via enriched pipelines is depicted in accordance with at least one non-limiting aspect of the present disclosure.
- the method 400 of FIG. 4 can be implemented via a continuous integration server 102 (FIG. 1) — and more specifically, via a continuous integration platform 110 (FIG. 1) hosted on a continuous integration server 102 (FIG. 2).
- the method 400 can be implemented via any other component of the system 100 of FIG. 1 to achieve a similar result.
- the method can include accessing 402 a plurality of project-specific files 112 ⁇ - n (FIG. 1) hosted on the repository server 104 (FIG. 1).
- the accessing 402 can occur autonomously and/or periodically, in accordance with a predetermined time interval (e.g., every five seconds, every minute, every hour, every day, etc.).
- the method 400 can further include detecting 404 that a subset 112 n (FIG. 1) of the plurality of project-specific files 112 ⁇ . n (FIG. 1) has changed.
- the detecting 404 can be autonomous.
- the detecting 404 can occur in response to a user- provided input regarding which subset 112 n (FIG. 1) of the plurality of project-specific files 112/i.n (FIG. 1) has changed.
- the subset 112 n (FIG. 1) can include at least one of the plurality of project-specific files 112 ⁇ . n (FIG. 1) that the continuous integration platform 110 has determined to have been updated or otherwise modified by one or more developers 114 since the last time the plurality of project-specific files 112 ⁇ _, ? was accessed and reviewed.
- the method 400 of FIG. 4 can further include generating 406, a specific task 210, 212 (FIG. 2) or a pipeline 301 , 303, 305 (FIG. 3) of specific tasks exclusively associated with the changed subset 112 n (FIG. 1) of the plurality of project-specific files 112 ⁇ - n (FIG. 1).
- the method 400 can further include transmitting 408, the generated task 210, 212 (FIG. 2) or pipeline 301 , 303, 305 (FIG. 3) associated with the changed subset 112 n (FIG.
- the software development server 106 (FIG. 1) to the software development server 106 (FIG. 1) for execution.
- the software development server 106 (FIG. 1) need only take action on the changed subset 112 w of the plurality of project-specific files 112 ⁇ . n (FIG. 1), instead of the entire plurality of projectspecific files 112/i.n (FIG. 1).
- the method 400 of FIG. 4 can enable multirepo-like agility and efficiencies, across a large plurality of project-specific files 112 ⁇ -n (FIG. 1) stored by the repository server 104 (FIG. 1) that, according to some non-limiting aspects, can be configured as a monorepo.
- SIEM security information and event management system
- FIG. 5 block diagram of a security information and event management system (“SIEM”) 1000 configured to benefit from the system 100 of FIG. 1 and method 400 of FIG. 4 is depicted in accordance with at least one non-limiting aspect of the present disclosure.
- SIEM system 100 of FIG. 5 can be configured similar to those described in International Patent Application No.
- the system 1000 can include a MSSP provider server 1002 comprising a memory 1006 configured to store a SOAR application, such as the SOAR application described in U.S. Provisional Patent Application No.
- the system 1000 can further include a processor 1004.
- the MSSP provider server 1002 can be a computational resource either owned or leased by the managed security service provider (“MSSP”).
- the MSSP provider server 1002 can be communicably coupled, via network 1008, to a plurality of tenants 1010?, 10102 ... 101 On.
- Each tenant IOIO7, IOIO2 ... 1010 n of the plurality can represent a customer (e.g., organization) contracting with the MSSP.
- the network 1008 can include any variety of wired, long-range wireless, and/or short-range wireless networks.
- the network 1008 can include an internal network , a Local Area Networks (LAN), WiFi®, cellular networks, near-field communication (hereinafter “NFC”), amongst others.
- the MSSP provider server 1002 can be configured to perform SIEM services and, more specifically, SOAR management services on behalf of a plurality of tenants IOIO7, IOIO2 ... 1010 n .
- each tenant IOIO7, IOIO2 ... 1010 n of the plurality can host one or more instances of one or more clients 1012, 1014, 1016.
- a first tenant 10107 can include one or more machines implementing one or more client applications 1012?, 10122 ... 1012 n
- a second tenant IOIO2 can include one or more machines implementing one or more client applications 1014?, 10142 ... 1014 n
- a third tenant 1010 n can include one or more machines implementing one or more client applications 10I67, IOI62 ... 101 Q n .
- Each tenant IOIO7, IOIO2, and 1010 n can include an intranet by which each machine implementing the client applications.
- each tenant 1010 7 , 10102, and 1010 n can each represent a customer, such as an organization, contracting with the MSSP for security services.
- the MSSP provider server 1002 can be configured to have oversight of each tenant 10107, IOIO2, and 1010 n of the plurality, and thus, is responsible for monitoring, and managing each client application 1012, 1014, 1016 for threats.
- the differences, and complexity in tenant IOIO7, IOIO2, and 1010 n architecture can complicate this, and render it inefficient for the MSSP.
- known SOAR tools can leave the tenants IOIO7, IOIO2, and 1010 n technologically exposed, and thus, vulnerable to attacks.
- the MSSP provider server 1002 can implement a SOAR management application that technologically, and practically addresses these deficiencies by enhancing the ability of the MSSP provider server 1002 to manage, and transmit alerts, and client application updates for multiple tenants based on correlated, and synergistic development needs.
- Clause 1 A method of enhancing an implementation of code changes, the method including accessing, via a continuous integration platform, a plurality of projectspecific files hosted on a repository server, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files, determining, via the continuous integration platform, that a subset of the plurality of project-specific files has changed, generating, via the continuous integration platform, a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmitting, via the continuous integration platform, the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
- Clause 2 The method according to clause 1, further including generating, via the continuous integration platform, a plurality of pipelines, wherein each pipeline of the plurality of pipelines includes a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
- Clause 3 The method according to either of clauses 1 or 2, wherein the plurality of pipelines includes at least one of a build pipeline, a test pipeline, and a security scan pipeline, or combinations thereof.
- Clause 4 The method according to any of clauses 1-3, further including causing, via the continuous integration platform, a display communicably coupled to the continuous integration platform to present a user interface including a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
- Clause 5 The method according to any of clauses 1-4, wherein each widget of the plurality of widgets includes a status button configured to provide an indication associated with a prior execution of at least one specific task of the plurality of specific tasks.
- Clause 6 The method according to any of clauses 1-5, wherein the status button includes at least one of a success indicator, a failure indicator, a pending indicator, or an alert indicator, or combinations thereof.
- Clause 7 The method according to any of clauses 1-6, further including displaying, via the continuous integration platform, information associated with the prior execution of the at least one specific task of the plurality of specific tasks in response to a user interaction with the alert indicator.
- Clause 8 A system configured to enhance an implementation of code changes, the system including a software development server, a repository server configured to host a plurality of project-specific files, and a continuous integration server including a processor and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access the plurality of projectspecific files hosted on the repository server, determine that a subset of the plurality of project-specific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to the software development server, wherein the software developer server is configured to execute the specific task, and wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
- Clause 9 The system according to clause 8, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files.
- Clause 10 The system according to either of clauses 8 or 9, wherein the continuous integration server is further configured to generate a plurality of pipelines, wherein each pipeline of the plurality of pipelines comprises a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
- Clause 11 The system according to any of clauses 8-10, wherein the plurality of pipelines comprises at least one of a build pipeline, a test pipeline, and a security scan pipeline, or combinations thereof.
- Clause 12 The system according to any of clauses 8-11 , wherein the continuous integration server is further configured to cause a display communicably coupled to the continuous integration server to present a user interface comprising a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
- Clause 13 The system according to any of clauses 8-12, wherein each widget of the plurality of widgets comprises a status button configured to provide an indication associated with a prior execution of at least one specific task of the plurality of specific tasks.
- Clause 14 The system according to any of clauses 8-13, wherein the status button comprises at least one of a success indicator, a failure indicator, a pending indicator, or an alert indicator, or combinations thereof.
- Clause 15 The system according to any of clauses 8-14, wherein the continuous integration server is further configured to display information associated with the prior execution of the at least one specific task of the plurality of specific tasks in response to a user interaction with the alert indicator.
- a continuous integration server configured to enhance an implementation of code changes, the continuous integration server including a processor, and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access a plurality of projectspecific files hosted on a repository server, determine that a subset of the plurality of projectspecific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
- Clause 17 The continuous integration server according to clause 16, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files.
- Clause 18 The continuous integration server according to either of clauses 16 or 17, wherein the continuous integration server is further configured to generate a plurality of pipelines, wherein each pipeline of the plurality of pipelines comprises a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
- Clause 19 The continuous integration server according to any of clauses 16-18, wherein the continuous integration server is further configured to cause a display communicably coupled to the continuous integration server to present a user interface comprising a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
- Clause 20 The continuous integration server according to any of clauses 16-19, wherein the continuous integration server is further configured to display information associated with a prior execution of at least one specific task of a plurality of specific tasks in response to a user interaction with an alert indicator.
- any reference to “one aspect,” “an aspect,” “an exemplification,” “one exemplification,” and the like means that a particular feature, structure, or characteristic described in connection with the aspect is included in at least one aspect.
- appearances of the phrases “in one aspect,” “in an aspect,” “in an exemplification,”, and “in one exemplification” in various places throughout the specification are not necessarily all referring to the same aspect.
- particular features, structures or characteristics may be combined in any suitable manner in one or more aspects.
- the singular form of “a”, “an”, and “the” include the plural references unless the context clearly dictates otherwise.
- the terms “about” or “approximately” as used in the present disclosure means an acceptable error for a particular value as determined by one of ordinary skill in the art, which depends in part on how the value is measured or determined. In certain aspects, the term “about” or “approximately” means within 1, 2, 3, or 4 standard deviations. In certain aspects, the term “about” or “approximately” means within 50%, 200%, 105%, 100%, 9%, 8%, 7%, 6%, 5%, 4%, 3%, 2%, 1%, 0.5%, or 0.05% of a given value or range.
- any numerical range recited herein includes all sub-ranges subsumed within the recited range.
- a range of “1 to 100” includes all sub-ranges between (and including) the recited minimum value of 1, and the recited maximum value of 100, that is, having a minimum value equal to or greater than 1 , and a maximum value equal to or less than 100.
- all ranges recited herein are inclusive of the end points of the recited ranges.
- a range of “1 to 100” includes the end points 1, and 100.
- Any maximum numerical limitation recited in this specification is intended to include all lower numerical limitations subsumed therein, and any minimum numerical limitation recited in this specification is intended to include all higher numerical limitations subsumed therein.
- Instructions used to program logic to perform various disclosed aspects can be stored within a memory in the system, such as dynamic random access memory (DRAM), cache, flash memory, or other storage. Furthermore, the instructions can be distributed via a network or by way of other computer readable media.
- DRAM dynamic random access memory
- cache cache
- flash memory or other storage.
- the instructions can be distributed via a network or by way of other computer readable media.
- a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer), but is not limited to, floppy diskettes, optical disks, compact disc, read-only memory (CD-ROMs), and magneto-optical disks, read-only memory (ROMs), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards, flash memory, or a tangible, machine-readable storage used in the transmission of information over the Internet via electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.).
- the non- transitory computer-readable medium includes any type of tangible machine-readable medium suitable for storing or transmitting electronic instructions or information in a form readable by a machine (e.g., a computer).
- control circuit may refer to, for example, hardwired circuitry, programmable circuitry (e.g., a computer processor comprising one or more individual instruction processing cores, processing unit, processor, microcontroller, microcontroller unit, controller, digital signal processor (DSP), programmable logic device (PLD), programmable logic array (PLA), or field programmable gate array (FPGA)), state machine circuitry, firmware that stores instructions executed by programmable circuitry, and any combination thereof.
- programmable circuitry e.g., a computer processor comprising one or more individual instruction processing cores, processing unit, processor, microcontroller, microcontroller unit, controller, digital signal processor (DSP), programmable logic device (PLD), programmable logic array (PLA), or field programmable gate array (FPGA)
- state machine circuitry firmware that stores instructions executed by programmable circuitry, and any combination thereof.
- the control circuit may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC), an application-specific integrated circuit (ASIC), a system on-chip (SoC), desktop computers, laptop computers, tablet computers, servers, smart phones, etc.
- IC integrated circuit
- ASIC application-specific integrated circuit
- SoC system on-chip
- control circuit includes, but is not limited to, electrical circuitry having at least one discrete electrical circuit, electrical circuitry having at least one integrated circuit, electrical circuitry having at least one application specific integrated circuit, electrical circuitry forming a general purpose computing device configured by a computer program (e.g., a general purpose computer configured by a computer program which at least partially carries out processes, and/or devices described herein, or a microprocessor configured by a computer program which at least partially carries out processes, and/or devices described herein), electrical circuitry forming a memory device (e.g., forms of random access memory), and/or electrical circuitry forming a communications device (e.g., a modem, communications switch, or optical-electrical equipment).
- a computer program e.g., a general purpose computer configured by a computer program which at least partially carries out processes, and/or devices described herein, or a microprocessor configured by a computer program which at least partially carries out processes, and/or devices described herein
- logic may refer to an app, software, firmware, and/or circuitry configured to perform any of the aforementioned operations.
- Software may be embodied as a software package, code, instructions, instruction sets, and/or data recorded on non-transitory computer readable storage medium.
- Firmware may be embodied as code, instructions or instruction sets, and/or data that are hard-coded (e.g., nonvolatile) in memory devices.
- the terms “component,” “system,” “module”, and the like can refer to a computer-related entity, either hardware, a combination of hardware, and software, software, or software in execution.
- an “algorithm” refers to a self-consistent sequence of steps leading to a desired result, where a “step” refers to a manipulation of physical quantities, and/or logic states which may, though need not necessarily, take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It is common usage to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. These, and similar terms may be associated with the appropriate physical quantities, and are merely convenient labels applied to these quantities, and/or states.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
A continuous integration server configured to enhance an implementation of code changes is disclosed herein. The continuous integration server can include a processor and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access a plurality of project-specific files hosted on a repository server, determine that a subset of the plurality of project-specific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
Description
TITLE
DEVICES, SYSTEMS, AND METHODS FOR CONTINUOUSLY ENHANCING THE IMPLEMENTATION OF CODE CHANGES VIA ENRICHED PIPELINES
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to U.S. Provisional Patent Application No. 63/377,304, titled DEVICES, SYSTEMS, AND METHODS FOR CONTINUOUSLY ENHANCING THE IMPLEMENTATION OF CODE CHANGES VIA ENRICHED PIPELINES, filed September 27, 2022, the disclosure of which is incorporated by reference in its entirety herein.
FIELD
[0002] The present disclosure is generally related to network security, and, more particularly, is directed to improved devices, systems, and methods for continuously implementing changes to code via pipelines enriched with specific information pertaining to the code changes.
SUMMARY
[0001] The following summary is provided to facilitate an understanding of some of the innovative features unique to the aspects disclosed herein, and is not intended to be a full description. A full appreciation of the various aspects can be gained by taking the entire specification, claims, and abstract as a whole.
[0002] In various aspects, a method of enhancing an implementation of code changes is disclosed. The method can include accessing, via a continuous integration platform, a plurality of project-specific files hosted on a repository server, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files, determining, via the continuous integration platform, that a subset of the plurality of project-specific files has changed, generating, via the continuous integration platform, a specific task exclusively associated with the changed subset of the plurality of projectspecific files, and transmitting, via the continuous integration platform, the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
[0003] In various aspects, a system configured to enhance an implementation of code changes is disclosed. The system can include a software development server, a repository server configured to host a plurality of project-specific files, and a continuous integration
server including a processor and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access the plurality of project-specific files hosted on the repository server, determine that a subset of the plurality of project-specific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to the software development server, wherein the software developer server is configured to execute the specific task, and wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files. [0004] In various aspects, a continuous integration server configured to enhance an implementation of code changes is disclosed. The continuous integration server can include a processor, and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access a plurality of project-specific files hosted on a repository server, determine that a subset of the plurality of project-specific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
[0005] These, and other objects, features, and characteristics of the present invention, as well as the methods of operation, and functions of the related elements of structure, and the combination of parts, and economies of manufacture, will become more apparent upon consideration of the following description, and the appended claims with reference to the accompanying drawings, all of which form a part of this specification, wherein like reference numerals designate corresponding parts in the various figures. It is to be expressly understood, however, that the drawings are for the purpose of illustration, and description only, and are not intended as a definition of the limits of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Various features of the aspects described herein are set forth with particularity in the appended claims. The various aspects, however, both as to organization, and methods of operation, together with advantages thereof, may be understood in accordance with the following description taken in conjunction with the accompanying drawings as follows: [0007] FIG. 1 illustrates a block diagram of a system configured to enhance the implementation of code changes via enriched pipelines, in accordance with at least one nonlimiting aspect of the present disclosure;
[0008] FIG. 2 illustrates a block diagram of several tasks generated by the system of FIG. 1 , in accordance with at least one non-limiting aspect of the present disclosure;
[0009] FIG. 3 illustrates a pipeline generated by the system of FIG. 1 , in accordance with at least one non-limiting aspect of the present disclosure;
[0010] FIG. 4 illustrates a method of enhancing the implementation of code changes via enriched pipelines, in accordance with at least one non-limiting aspect of the present disclosure; and
[0011] FIG. 5 illustrates a security information and event management system (“SIEM”) configured to benefit from the system of FIG. 1 and method of FIG. 4, in accordance with at least one non-limiting aspect of the present disclosure.
[0012] Corresponding reference characters indicate corresponding parts throughout the several views. The exemplifications set out herein illustrate various aspects of the invention, in one form, and such exemplifications are not to be construed as limiting the scope of the invention in any manner.
[0013] The Applicant of the present application owns the following U.S. Provisional Patent Applications, the disclosure of each of which is herein incorporated by reference in its entirety:
- U.S. Provisional Patent Application No. 63/294,570 titled DEVICES, SYSTEMS, AND METHODS FOR PROVISIONING AND UPDATING SECURITY INFORMATION & EVENT MANAGEMENT ARTIFACTS FOR MULTIPLE TENANTS, filed on December 29, 2021;
- U.S. Provisional Patent Application No. 63/295,150 titled DEVICES, SYSTEMS, AND METHODS FOR STREAMLINING AND STANDARDIZING THE INGEST OF SECURITY DATA ACROSS MULTIPLE TENANTS, filed on December 30, 2021;
- U.S. Provisional Patent Application No. 63/302,828 titled DEVICES, SYSTEMS, AND METHODS FOR REMOTELY MANAGING ANOTHER ORGANIZATION’S SECURITY ORCHESTRATION, AUTOMATION, AND RESPONSE, filed on January 25, 2022;
- U.S. Provisional Patent Application No. 63/313,422 titled DEVICES, SYSTEMS, AND METHODS FOR IDENTIFYING CYBER ASSETS AND GENERATING CYBER RISK MITIGATION ACTION BASED ON DOMAIN REDIRECTS, filed on February 24, 2022;
- U.S. Provisional Patent Application No. 63/341,264 titled DEVICES, SYSTEMS, AND METHODS FOR SUMMARIZING ANALYTIC OBSERVATIONS, filed on May 12, 2022;
- U.S. Provisional Patent Application No. 63/344,305 titled DEVICES, SYSTEMS, AND METHODS FOR INGESTING & ENRICHING SECURITY INFORMATION TO AUTONOMOUSLY SECURE A PLURALITY OF TENANT NETWORKS, filed on May 20, 202;
- U.S. Provisional Patent Application No. 63/345,679 titled DEVICES, SYSTEMS, AND METHODS FOR IDENTIFYING CYBER ASSETS AND GENERATING CYBER RISK MITIGATION ACTIONS BASED ON A DEMOCRATIC MATCHING ALGORITHM, filed on May 25, 2022
- International Patent Application No. PCT/US22/72739, titled DEVICES, SYSTEMS, AND METHODS FOR ENHANCING SECURITY INFORMATION & EVENT MANAGEMENT UPDATES FOR MULTIPLE TENANTS BASED ON CORRELATED, AND SYNERGISTIC DEPLOYMENT NEEDS, filed on June 3, 2022;
- International Patent Application No. PCT/US22/72743, titled DEVICES, SYSTEMS, AND METHODS FOR STANDARDIZING & STREAMLINING THE DEPLOYMENT OF SECURITY INFORMATION & EVENT MANAGEMENT ARTIFACTS FOR MULTIPLE TENANTS, filed on June 3, 2022;
- U.S. Provisional Patent Application No. 63/365,819 titled DEVICES, METHODS, AND SYSTEMS FOR GENERATING A HIGHLY-SCALABLE, EFFICIENT COMPOSITE RECORD INDEX, filed on June 3, 2022
- U.S. Provisional Patent Application No. 63/353,992 titled DEVICES, SYSTEMS, AND METHODS FOR CATEGORIZING, PRIORITIZING, AND MITIGATING CYBER SECURITY RISKS, filed on June 21, 2022;
- U.S. Provisional Patent Application No. 63/366,903 titled DEVICES, SYSTEMS, AND METHOD FOR GENERATING AND USING A QUERYABLE INDEX IN A CYBER DATA MODEL TO ENHANCE NETWORK SECURITY, filed on June 23, 2022;
- U.S. Provisional Patent Application No. 63/368,567 titled DEVICES, SYSTEMS, AND METHODS FOR UTILIZING A NETWORKED, COMPUTER-ASSISTED, THREAT HUNTING PLATFORM TO ENHANCE NETWORK SECURITY, filed on July 15, 2022; and
- U.S. Provisional Patent Application No. 63/369,582 titled AUTONOMOUS THREAT SCORING AND SECURITY ENHANCEMENT, filed on July 27, 2022.
[0014] Numerous specific details are set forth to provide a thorough understanding of the overall structure, function, manufacture, and use of the aspects as described in the disclosure, and illustrated in the accompanying drawings. Well-known operations, components, and elements have not been described in detail so as not to obscure the aspects described in the specification. The reader will understand that the aspects described, and illustrated herein are non-limiting aspects, and thus it can be appreciated that the specific structural, and functional details disclosed herein may be representative, and illustrative.
[0015] Before explaining various aspects of the systems, and methods disclosed herein in detail, it should be noted that the illustrative aspects are not limited in application or use to the details disclosed in the accompanying drawings, and description. It shall be appreciated that the illustrative aspects may be implemented or incorporated in other aspects, variations, and modifications, and may be practiced or carried out in various ways. Further, unless otherwise indicated, the terms, and expressions employed herein have been chosen for the purpose of describing the illustrative aspects for the convenience of the reader, and are not
for the purpose of limitation thereof. For example, it shall be appreciated that any reference to a specific manufacturer, software suite, application, or development platform disclosed herein is merely intended to illustrate several of the many aspects of the present disclosure. This includes any, and all references to trademarks. Accordingly, it shall be appreciated that the devices, systems, and methods disclosed herein can be implemented to enhance any software update, in accordance with any intended use, and/or user preference.
[0016] As used herein, the term “server” may refer to or include one or more computing devices that are operated by or facilitate communication, and processing for multiple parties in a network environment, such as the Internet or any public or private network. Reference to “a server” or “a processor,” as used herein, may refer to a previously-recited server, and/or processor that is recited as performing a previous step or function, a different server, and/or processor, and/or a combination of servers, and/or processors.
[0017] As used herein, the term “network” can include an entire enterprise information technology (“IT”) system, as deployed by a tenant. For example, a network can include a group of two or more nodes (e.g., assets) connected by any physical and/or wireless connection and configured to communicate and share information with the other node or nodes. However, the term network shall not be limited to any particular nodes or any particular means of connecting those nodes. A network can include any combination of assets (e.g., devices, servers, desktop computers, laptop computers, personal digital assistants, mobile phones, wearables, smart appliances, etc.) configured to connect to an ethernet, intranet, and/or extranet and communicate with one another via an ad hoc connection (e.g., Bluetooth®, near field communication (“NFC”), etc.), a local area connection (“LAN”), a wireless local area network (“WLAN”), and/or a virtual private network (“VPN”), regardless of each devices’ physical location. A network can further include any tools, applications, and/or services deployed by devices, or otherwise utilized by an enterprise IT system, such as a firewall, an email client, document management systems, office systems, etc. In some non-limiting aspects, a “network” can include third-party devices, applications, and/or services that, although they are owned and controlled by a third party, are authorized by the tenant to access the enterprise IT system.
[0018] As used herein, the term “platform” can include software architectures, hardware architectures, and/or combinations thereof. A platform can include either a stand-alone software product, a network architecture, and/or a software product configured to integrate within a software architecture and/or a hardware architecture, as required for the software product to provide its technological benefit. For example, a platform can include any combination of a chipset, a processor, a logic-based device, a memory, a storage, a graphical user interface, a graphics subsystem, an application, and/or a communication module (e.g., a transceiver). In other words, a platform can provide the resources required to
enable the technological benefits provided by software. According to some non-limiting aspects, the technological benefit provided by the software is provided to the physical resources of the ecosystem or other software employed by physical resources within the ecosystem (e.g., APIs, services, etc.). According to other non-limiting aspects, a platform can include a framework of several software applications intended and designed to work together.
[0019] As used herein, the term “repository” can include any version control system and/or source control system, including any system and/or platform configured to track and/or manage changes to software code. For example, a repository can include Git, Subversion, Concurrent Versions System (“CVS”), Microsoft Azure, Darcs, and/or Mercurial, amongst others.
[0020] Continuous integration is a software development practice in which all developers merge code in a single repository multiple times a day. There are two primary types of known repository structures by which developers can implement continuous integration. A monolithic repository or “monorepo,” as used herein, can include a single version-controlled code repository configured to contain code associated with many projects. For example, many large companies such as Google, Microsoft, Facebook, and Twitter choose to host all of their code in a single, monolithic repository, shared amongst the entire development team. As such, monorepos can reach colossal sizes, exceeding tens to hundreds of terabytes, and must be configured to support hundreds of commits per day. Although certain projects may be related, they can be logically independent and run by different teams. Thus, many developers choose to alternately organize code by drawing project-specific boundaries into multiple repositories or “multirepos,” as used herein. Developers can, therefore, make case- by-case determinations as to which code should be stored in which of the project-specific multirepos. Multirepos, however, are inherently stove-piped. Whereas monorepos can enable the establishment of relationships and/or certain degrees of interoperability between projects, multirepos cannot lack the integration of monorepos. In other words, monorepos enable a comprehensive and integrated storage of code that is not feasible via multirepos. An additional benefit of monorepo-based software management is the ability to track which versions of software can be deployed together.
[0021] However, although monorepos make it easier to manage relationships between different project-specific codes, it can be more difficult to execute tasks across the large volume of content in a monorepo. For example, conventional monorepo tools generally deploy a single, comprehensive and otherwise unaltered pipeline configured to execute all tasks regardless of how small or limited the scope of a code change. This can lead to an inefficient use of computing resources and/or developer time, as the monorepo executes
tests across all of the code regardless of how small a particular change can be. In other words, although monorepos can be beneficial for the large scale development of software, it is less ideal for the efficient implementation of code changes for smaller projects. Accordingly, there is a need for devices, systems, and method for continuously enhancing the implementation of code changes via enriched pipelines. Such devices, systems, and methods can enable developers to streamline software development developer experience, so developers do not need to wait for a change to be built, deployed, or tested in unnecessary ways.
[0022] Moreover, devices, systems, and method for continuously enhancing the implementation of code changes via enriched pipelines can be practically integrated into software development tools and architectures that produce numerous technological improvements over conventional tools deployed to interface with monorepos. For example, such devices, systems, and methods can automate software delivery, assembly code, run tests, and safely deploy new versions of an application autonomously, based on a detected subset of changed selected files, instead of wasting computational resources and time addressing every file — changed and unchanged — in the monorepo. This can enable a development team to accomplish more with less human resources, computational resources, and time. Additionally, since the systems, and methods disclosed herein can autonomously detect specific changes, without human input, continuous integration can be truly continuous, ensuring that specific project builds are monitored and deployed regardless of the date or time changes are enacted by the development team.
[0023] Referring now to FIG. 1, a block diagram of a system 100 configured to enhance the implementation of code changes via enriched pipelines is depicted in accordance with at least one non-limiting aspect of the present disclosure. According to the non-limiting aspect of FIG. 1, the system 100 can include a continuous integration server 102, a repository server 104, and a software development server 106 communicably coupled via a network, such as the internet 108 or any other means of networked communication (e.g., cellular network, intranet, etc.). Of course, according to other non-limiting aspects, the continuous integration server 102, the repository server 104, and the software development server 106 can be one of a plurality of servers specifically implemented for the particular functions that will be described herein with reference to each. For example, the repository server 104 may be one of a plurality of repository servers configured to perform the functions disclosed herein with reference to the repository server 104 of FIG. 1. It shall be further appreciated that each of the continuous integration server 102, a repository server 104, and a software development server 106 can include a memory communicably coupled to a processor.
[0024] For example, according to the non-limiting aspect of FIG. 1, the continuous integration server 102 can include a memory configured to store a continuous integration
platform 110 that, when executed by a processor of the continuous integration server 102, causes the continuous integration server 102 to interact with the repository server 104 and the software development server 106 in accordance with the functions and methods disclosed herein. The continuous integration platform 110 can cause the continuous integration server 102 to act as a third party interface between the repository server 104 and the software development server 106. Specifically, the continuous integration platform 110 can be particularly configured to generate one or more pipelines comprising one or more specific tasks (e.g., code testing, code merges, etc.) to enhance the implementation of code changes, as will be described in further detail herein.
[0025] According to the non-limiting aspect of FIG. 1 , the repository server 104 can be configured to store a plurality of files 112 t_,?, such as various project-specific software codes, and can be further configured to host and execute a content repository platform (e.g., Git, Subversion, CVS, Microsoft Azure, Darcs, Mercurial, etc.). For example, via the content repository platform, the repository server 104 can be configured to track and/or manage changes to the plurality of files 112^.n implemented by one or more developers 114 via a computing device 116 (e.g., a personal computer, a laptop computer, a tablet, a smartphone, etc.), as will be described in further detail with reference to FIG. 2. In other words, the repository server 104 can include a version control system and/or a source control system such as a monorepo, or single version-controlled code repository configured to contain code associated with many projects. Thus, the plurality of files 112^_,? can be exceedingly large. Moreover, the repository server 104 can be configured to support hundreds of commits per day, as each of the plurality of files 112^.n can be logically independent and run by different teams.
[0026] In further reference to FIG. 1 , the software development server 106 can be configured to host and execute a software development platform (e.g., Gitlab, Github, Azure DevOps and Pipelines, Bitbucket, Jenkins, etc.) configured to facilitate the collaborative software development platform for large software development projects, such as DevOps. The software development server 106, via the software development platform, can be used to enable developers 114 to collaboratively plan, build, secure, and deploy software as a complete platform across the entire development cycle. Specifically, the software development server 106 can be configured to execute pipelines and/or tasks generated by the continuous integration platform 110, in association with one or more of the plurality of files 112 i-n.
[0027] Still referring to FIG. 1 , the continuous integration server 102, via the continuous integration platform 110, can be particularly configured to accessing the plurality of projectspecific files 112^.n hosted on the repository server 104. According to some non-limiting aspects, the continuous integration platform 110 can be configured to access and review the
plurality of project-specific files 112^-n hosted on the repository server 104 periodically, in accordance with a predetermined time interval (e.g., every five seconds, every minute, every hour, every day, etc.). The continuous integration server 102, via the continuous integration platform 110, can further be configured to determine that a subset 112n of the plurality of project-specific files 112^ has changed. This detection can be autonomous and can occur multiple times a day, according to a predetermined period. For example, the subset 112n can include at least one of the plurality of project-specific files 112^.n that the continuous integration platform 110 has determined to have been updated or otherwise modified by one or more developers 114 since the last time the plurality of project-specific files 112^.n was accessed and reviewed. Upon determining that a subset 112n of the plurality of projectspecific files 112/t-n has changed, the continuous integration server 102, via the continuous integration platform 110, can autonomously execute one or more tasks (e.g., build, merge, test, scan, etc.).
[0028] However, the continuous integration platform 110 of the continuous integration server 102 of the system 100 of FIG. 1 can be further configured to generate customized task 210, 212 (FIG. 2) or a pipeline 301 , 303, 305 (FIG. 3) of tasks exclusively associated with the changed subset 112n of the plurality of project-specific files 112^.n. The continuous integration server 102 can be configured to transmit the task 210, 212 (FIG. 2) or pipeline 301 , 303, 305 (FIG. 3), associated with the changed subset 112n to the software development server 106 for execution. However, upon execution of the specific task, the software development server 106 need only take action on the changed subset of the plurality of project-specific files 112^.n, instead of the entire plurality.
[0029] As such, developers 114 of FIG. 1 can benefit from multirepo-like agility and efficiencies, across a large plurality of project-specific files 112^.n stored by the repository server 104, or monorepo. For example, benchmark testing indicates significant technological benefits associated with the execution of specific tasks and pipelines generated by the continuous integration platform 110 of the continuous integration server 102. According to one test, tasks, such as code merges, generated by the continuous integration platform 110 and executed by the software development server 106 took several minutes and — in some instances — mere seconds to complete, compared to twenty minutes to complete comparable sized tasks generated and performed by conventional systems. Of course, the system 100 of FIG. 1 lacks the stovepiping of multirepo systems and retains the relationship tracking and interoperability provided by conventional multirepos configured to store a comparably sized plurality of files 112^.n. Thus, the technological improvements provided by the system 100 of FIG. 1 are evident and significant.
[0030] Referring now to FIG. 2, a block diagram of several tasks 210, 212 generated by the system 100 of FIG. 1 is depicted in accordance with at least one non-limiting aspect of
the present disclosure. For example, the tasks 210, 212 generated by the system 100 of FIG. 1 can include any number of software-related tasks, including merging of changes 206, 208a-c, testing of project-specific files 112^.n, , and/or security-related tasks, amongst others. According to the non-limiting aspect of FIG. 2, the plurality of project-specific files 112^.n are depicted as stored by the repository server 104 of FIG. 1. However, as depicted in FIG. 2, a first code change 206 has been implemented in a first project-specific file 112^ of the plurality of project-specific files 112^-n and a second code change 208 has been implemented against a second project-specific file 112c of the plurality of project-specific files 112 i-n. Accordingly, the system 100 of FIG. 1 has generated a first task 210 associated with the first code change 206 implemented in the first project-specific file 112^ and a second task 212 associated with the second code change 208 implemented in the second projectspecific file 112c.
[0031] As such, it shall be appreciated that the first task 210 and the second task 212, as depicted in FIG. 2 and generated by the system 100 of FIG. 1 , can be utilized to enhance the implementation of code changes. Specifically, the first change 206 includes a single piece of affected code 206 and thus, far less code will actually be affected by the first code change 206. Contrarily, the second code change 208 comprises numerous pieces 208a-c of affected code and thus, much more code will be affected by the second code change 208.
Accordingly, FIG. 2 depicts the benefit of a system 100 (FIG. 1) configured to generate a first task 210 and a second task 212 that can be discretely executed by a software development server 106. If a developer 114 (FIG. 1) is only working on the first project-specific file 112^ of the plurality of project-specific files 112^_„, it would be unnecessary and thus, inefficient to implement the second task 212 because it is exclusively associated with the second projectspecific file 112c. This is especially true since the scope of changes 208a.c associated with the second project-specific file 112c is significantly larger than the single change 206 associated with the first project-specific file 112^ — the only project-specific file 112^ the developer 114 (FIG. 1) is interested in at the moment. In other words, the system 100 of FIG. 1 is able to intelligently detect and manage changes implemented in the plurality of projectspecific files 112^.n and generate discrete tasks 210, 212 that can be independently executed by the software development server 106. Accordingly, the tasks 210, 212 of FIG. 2 can enable a developer 114 (FIG. 1) to exclusively focus on a task-at-hand 210 without having to commit computing resources to unnecessary tasks 212 implemented within project-specific file 112c that may be momentarily irrelevant to their work on a desired project-specific file 112^.
[0032] Referring now to FIG. 3, a user interface 300 displaying several pipelines 301 , 303, 305 generated by the system 100 of FIG. 1 is depicted in accordance with at least one non-
limiting aspect of the present disclosure. For example, according to some non-limiting aspects, the user interface 300 of FIG. 3 can be generated by the continuous integration platform 110 (FIG. 1) of the continuous integration server 102 (FIG. 1) and accessed via the computing device 116 114 (FIG. 1) of one or more developers 114 (FIG. 1). According to the non-limiting aspect of FIG. 3, the user interface 300 can display one of several pipelines 301 , 303, 305, including a build pipeline 301 , a test pipeline 303, and a security pipeline 305 (e.g., static application security (“SAST”) scan), amongst others.
[0033] In further reference to the non-limiting aspect of FIG. 3, each of the generated pipelines 301 , 303, 305 can include one or more related tasks 302a-e, 312a.c, 322a-c associated with one or more of the project-specific files 112^.n (FIG. 1) stored on the repository server 104 (FIG. 1). For example, the build pipeline 301 can include tasks such as build:cloudfunctions 302a, build:peeprBackend 302fi, build:pubapi 302c, build:pubapi-tokens 302d, and/or build: riskapi 302e, amongst others. The test pipeline 303 can include tasks such as test:peeprBackend 312a, test: swagger 312/>, and/or test:vet-peeprBackend 302c, amongst others and the scan pipeline 305 can include tasks such as gosec:peeprBackend 322a, shiftleft: pubapi 322ft, and/or shiftleft: riskapi 322c, amongst others. In other words, each task 302a.e, 312a-c, 322a.c of each of the pipelines 301 , 303, 305 displayed by the user interface 300 of FIG. 3 can specify a task to be performed on a particular project-specific file 112^.n of the plurality of project-specific files 112^n. Of course, the pipelines 301 , 303, 305 and tasks 302a.e, 312a-c, 322a.c depicted in FIG. 3 are merely illustrative and, according to other nonlimiting aspects, the present disclosure contemplates a number of different types of pipelines and tasks generated by the system 100 of FIG. 1.
[0034] Still referring to FIG. 3, each task 302a.e, 312a.c, 322a.c of each pipeline 301 , 303, 305 can further include one or more action buttons 308 and/or one or more status buttons
306, 307, 310, 314, 316. For example, if a developer 114 (FIG. 1) engages an action buttons 308, the continuous integration platform 110 can cause the continuous integration server 102 to perform a particular task 302a-e, 312a-c, 322a-c again. Likewise, each status button 306,
307, 310, 314, 316 can provide the developer 114 (FIG. 1) with an indication as to the last time a particular task 302a.e, 312a.c, 322a-c was executed by the continuous integration server 102. For example, a first status button 306 can indicate that the last execution of a particular task 302a.e, 312a-c, 322a-c was successful. A second status button 307 can be configured as a failure indicator that indicates that the last execution of a particular task 302a.e, 312a.c, 322a-c was not successful. A third status button 314 can indicate that the last execution of a particular task 302a.e, 312a-c, 322a.c is in process or pending. A fourth status button 316 can be configured as an alert indicator that indicates that the last execution of a particular task warrants attention. According to some non-limiting aspects, a user interaction (e.g., clicking the fourth status buttons 316, etc.) can provide the developer 114 (FIG. 1) with more
information regarding the last execution of the particular task a first status button 306 can indicate that the last execution of a particular task 302a-e, 312a-c, 322a.c.
[0035] The user interface 300 of FIG. 3 can further enable a developer 114 (FIG. 1) to review generated tasks 302a.e, 312a.c, 322a.c and/or pipelines 301 , 303, 305 in different aggregations. For example, according to the non-limiting aspect of FIG. 3, a pipeline view 330 is depicted. However, the developer 114 (FIG. 1) can further review generated tasks 302a-e, 312a-c, 322a.c and/or pipelines 301 , 303, 305 according to a project-specific needs view 332, a jobs view 334, a failed jobs view 336, and/or a tests view 338. In other words, the various tasks 302a-e, 312a-c, 322a.c generated by the continuous integration platform 110 (FIG. 1) of the continuous integration server 102 (FIG. 1) can be further aggregated by task 302a-e, 312a-c, 322a.c type, task 302a.e, 312a.c, 322a.c status, and/or project needs, for example. Moreover, when in pipeline view 330, the developer 114 (FIG. 1) can further toggle a “group by” widget 340, to view generated tasks 302a.e, 312a.c, 322a-c and/or pipelines 301 , 303, 305 via a stage view 342, as depicted in FIG. 3, or a job dependency view 344, amongst other groupings contemplated by the present disclosure but not depicted in FIG. 3. [0036] Each pipeline 301 , 303, 305 can be configured for automatically execution upon the continuous integration server 102 (FIG. 1), via the continuous integration platform 110 (FIG. 1), detecting that a subset of project-specific files 112w (FIG. 1) has changed. Thus, the change in code can trigger a notification to the continuous integration server 102 (FIG. 1) and/or the continuous integration platform 110 (FIG. 1), which subsequently executes a corresponding pipeline 301 , 303, 305. However, according to other non-limiting aspects, pipeline 301 , 303, 305 execution can be scheduled and/or triggered based on the results of other executed pipelines 301 , 303, 305. Thus, the continuous integration platform 110 (FIG. 1), via the pipelines 301 , 303, 305, can be implemented to efficiently automate a software delivery process on a monorepo-type repository server 104 (FIG. 1). For example, the pipelines 301 , 303, 305 can be used to build code, runs tests, and safely deploy a new version of an application associated only with the subset of project-specific files 112/v. The pipelines 301 , 303, 305 can be configured to remove manual errors, provide standardized feedback loops to developers 114 (FIG. 1), and enable faster product iterations. According to some non-limiting aspects, the enriched pipelines 301 , 303, 305 accelerated the entire continuous integration feedback loop to mere seconds, without compromising the quality of developer 114 (FIG. 1) feedback or results.
[0037] In summary, the user interface 300 of FIG. 3 illustrates how the continuous integration platform 110 (FIG. 1) of the continuous integration server 102 (FIG. 1) can be used to not only generate specific tasks 302a.e, 312a.c, 322a.c associated with a subset of project-specific files 112A.n stored on the repository server 104, but can also aggregate the generated tasks 302a.e, 312a-c, 322a.c into specific and enriched continuous integration
pipelines 301 , 303, 305, which can be implemented with specificity to further streamline integration and further reduce computational resource usage and enhance efficiencies. [0038] Referring now to FIG. 4, a method 400 of enhancing the implementation of code changes via enriched pipelines is depicted in accordance with at least one non-limiting aspect of the present disclosure. It shall be appreciated that the method 400 of FIG. 4 can be implemented via a continuous integration server 102 (FIG. 1) — and more specifically, via a continuous integration platform 110 (FIG. 1) hosted on a continuous integration server 102 (FIG. 2). However, according to other non-limiting aspects, the method 400 can be implemented via any other component of the system 100 of FIG. 1 to achieve a similar result. According to non-limiting aspect of FIG. 4, the method can include accessing 402 a plurality of project-specific files 112^-n (FIG. 1) hosted on the repository server 104 (FIG. 1). For example, the accessing 402 can occur autonomously and/or periodically, in accordance with a predetermined time interval (e.g., every five seconds, every minute, every hour, every day, etc.).
[0039] In further reference to FIG. 4, the method 400 can further include detecting 404 that a subset 112n (FIG. 1) of the plurality of project-specific files 112^.n (FIG. 1) has changed. According to some non-limiting aspects, the detecting 404 can be autonomous. However, according to other non-limiting aspects, the detecting 404 can occur in response to a user- provided input regarding which subset 112n (FIG. 1) of the plurality of project-specific files 112/i.n (FIG. 1) has changed. For example, the subset 112n (FIG. 1) can include at least one of the plurality of project-specific files 112^.n (FIG. 1) that the continuous integration platform 110 has determined to have been updated or otherwise modified by one or more developers 114 since the last time the plurality of project-specific files 112^_,? was accessed and reviewed.
[0040] Upon determining that a subset 112n of the plurality of project-specific files 112^.n has changed, the method 400 of FIG. 4 can further include generating 406, a specific task 210, 212 (FIG. 2) or a pipeline 301 , 303, 305 (FIG. 3) of specific tasks exclusively associated with the changed subset 112n (FIG. 1) of the plurality of project-specific files 112^-n (FIG. 1). According to the non-limiting aspect of FIG. 4, the method 400 can further include transmitting 408, the generated task 210, 212 (FIG. 2) or pipeline 301 , 303, 305 (FIG. 3) associated with the changed subset 112n (FIG. 1) to the software development server 106 (FIG. 1) for execution. As such, upon execution of the specific task, the software development server 106 (FIG. 1) need only take action on the changed subset 112w of the plurality of project-specific files 112^.n (FIG. 1), instead of the entire plurality of projectspecific files 112/i.n (FIG. 1). As such, the method 400 of FIG. 4 can enable multirepo-like agility and efficiencies, across a large plurality of project-specific files 112^-n (FIG. 1) stored
by the repository server 104 (FIG. 1) that, according to some non-limiting aspects, can be configured as a monorepo.
[0041] Referring now to FIG. 5, block diagram of a security information and event management system (“SIEM”) 1000 configured to benefit from the system 100 of FIG. 1 and method 400 of FIG. 4 is depicted in accordance with at least one non-limiting aspect of the present disclosure. For example, according to some non-limiting aspect, the SIEM system 100 of FIG. 5 can be configured similar to those described in International Patent Application No. PCT/US22/72739, titled DEVICES, SYSTEMS, AND METHODS FOR ENHANCING SECURITY INFORMATION & EVENT MANAGEMENT UPDATES FOR MULTIPLE TENANTS BASED ON CORRELATED, AND SYNERGISTIC DEPLOYMENT NEEDS, filed on June 3, 2022, the disclosure of which is hereby incorporated by reference in its entirety. According to the non-limiting aspect of FIG. 5, the system 1000 can include a MSSP provider server 1002 comprising a memory 1006 configured to store a SOAR application, such as the SOAR application described in U.S. Provisional Patent Application No.
63/302,828 titled DEVICES, SYSTEMS, AND METHODS FOR REMOTELY MANAGING ANOTHER ORGANIZATION’S SECURITY ORCHESTRATION, AUTOMATION, AND RESPONSE, filed on January 25, 2022, the disclosure of which is hereby incorporated by reference in its entirety.
[0042] The system 1000 can further include a processor 1004. For example, the MSSP provider server 1002 can be a computational resource either owned or leased by the managed security service provider (“MSSP”). The MSSP provider server 1002 can be communicably coupled, via network 1008, to a plurality of tenants 1010?, 10102 ... 101 On. Each tenant IOIO7, IOIO2 ... 1010n of the plurality can represent a customer (e.g., organization) contracting with the MSSP. According to the non-limiting aspect of FIG. 5, the network 1008 can include any variety of wired, long-range wireless, and/or short-range wireless networks. For example, the network 1008 can include an internal network , a Local Area Networks (LAN), WiFi®, cellular networks, near-field communication (hereinafter “NFC”), amongst others. The MSSP provider server 1002 can be configured to perform SIEM services and, more specifically, SOAR management services on behalf of a plurality of tenants IOIO7, IOIO2 ... 1010n.
[0043] In further reference to FIG. 5, each tenant IOIO7, IOIO2 ... 1010n of the plurality can host one or more instances of one or more clients 1012, 1014, 1016. For example, a first tenant 10107 can include one or more machines implementing one or more client applications 1012?, 10122 ... 1012n, a second tenant IOIO2 can include one or more machines implementing one or more client applications 1014?, 10142 ... 1014n, and/or a third tenant 1010n can include one or more machines implementing one or more client applications 10I67, IOI62 ... 101 Qn. Each tenant IOIO7, IOIO2, and 1010n can include an
intranet by which each machine implementing the client applications. For example, each tenant 10107, 10102, and 1010n can each represent a customer, such as an organization, contracting with the MSSP for security services.
[0044] Accordingly, the MSSP provider server 1002 can be configured to have oversight of each tenant 10107, IOIO2, and 1010n of the plurality, and thus, is responsible for monitoring, and managing each client application 1012, 1014, 1016 for threats. As previously discussed, the differences, and complexity in tenant IOIO7, IOIO2, and 1010n architecture can complicate this, and render it inefficient for the MSSP. Thus, known SOAR tools can leave the tenants IOIO7, IOIO2, and 1010n technologically exposed, and thus, vulnerable to attacks. According to non-limiting aspects of the present disclosure, the MSSP provider server 1002 can implement a SOAR management application that technologically, and practically addresses these deficiencies by enhancing the ability of the MSSP provider server 1002 to manage, and transmit alerts, and client application updates for multiple tenants based on correlated, and synergistic development needs.
[0045] Various aspects of the subject matter described herein are set out in the following numbered clauses:
[0046] Clause 1 : A method of enhancing an implementation of code changes, the method including accessing, via a continuous integration platform, a plurality of projectspecific files hosted on a repository server, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files, determining, via the continuous integration platform, that a subset of the plurality of project-specific files has changed, generating, via the continuous integration platform, a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmitting, via the continuous integration platform, the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
[0047] Clause 2: The method according to clause 1, further including generating, via the continuous integration platform, a plurality of pipelines, wherein each pipeline of the plurality of pipelines includes a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
[0048] Clause 3: The method according to either of clauses 1 or 2, wherein the plurality of pipelines includes at least one of a build pipeline, a test pipeline, and a security scan pipeline, or combinations thereof.
[0049] Clause 4: The method according to any of clauses 1-3, further including causing, via the continuous integration platform, a display communicably coupled to the continuous integration platform to present a user interface including a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
[0050] Clause 5: The method according to any of clauses 1-4, wherein each widget of the plurality of widgets includes a status button configured to provide an indication associated with a prior execution of at least one specific task of the plurality of specific tasks. [0051] Clause 6: The method according to any of clauses 1-5, wherein the status button includes at least one of a success indicator, a failure indicator, a pending indicator, or an alert indicator, or combinations thereof.
[0052] Clause 7: The method according to any of clauses 1-6, further including displaying, via the continuous integration platform, information associated with the prior execution of the at least one specific task of the plurality of specific tasks in response to a user interaction with the alert indicator.
[0053] Clause 8: A system configured to enhance an implementation of code changes, the system including a software development server, a repository server configured to host a plurality of project-specific files, and a continuous integration server including a processor and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access the plurality of projectspecific files hosted on the repository server, determine that a subset of the plurality of project-specific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to the software development server, wherein the software developer server is configured to execute the specific task, and wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
[0054] Clause 9: The system according to clause 8, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files. [0055] Clause 10: The system according to either of clauses 8 or 9, wherein the continuous integration server is further configured to generate a plurality of pipelines, wherein each pipeline of the plurality of pipelines comprises a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
[0056] Clause 11: The system according to any of clauses 8-10, wherein the plurality of pipelines comprises at least one of a build pipeline, a test pipeline, and a security scan pipeline, or combinations thereof.
[0057] Clause 12: The system according to any of clauses 8-11 , wherein the continuous integration server is further configured to cause a display communicably coupled to the continuous integration server to present a user interface comprising a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
[0058] Clause 13: The system according to any of clauses 8-12, wherein each widget of the plurality of widgets comprises a status button configured to provide an indication associated with a prior execution of at least one specific task of the plurality of specific tasks. [0059] Clause 14: The system according to any of clauses 8-13, wherein the status button comprises at least one of a success indicator, a failure indicator, a pending indicator, or an alert indicator, or combinations thereof.
[0060] Clause 15: The system according to any of clauses 8-14, wherein the continuous integration server is further configured to display information associated with the prior execution of the at least one specific task of the plurality of specific tasks in response to a user interaction with the alert indicator.
[0061] Clause 16: A continuous integration server configured to enhance an implementation of code changes, the continuous integration server including a processor, and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to access a plurality of projectspecific files hosted on a repository server, determine that a subset of the plurality of projectspecific files has changed, generate a specific task exclusively associated with the changed subset of the plurality of project-specific files, and transmit the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
[0062] Clause 17: The continuous integration server according to clause 16, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files.
[0063] Clause 18: The continuous integration server according to either of clauses 16 or 17, wherein the continuous integration server is further configured to generate a plurality of pipelines, wherein each pipeline of the plurality of pipelines comprises a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files. [0064] Clause 19: The continuous integration server according to any of clauses 16-18, wherein the continuous integration server is further configured to cause a display communicably coupled to the continuous integration server to present a user interface comprising a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
[0065] Clause 20: The continuous integration server according to any of clauses 16-19, wherein the continuous integration server is further configured to display information associated with a prior execution of at least one specific task of a plurality of specific tasks in response to a user interaction with an alert indicator.
[0066] All patents, patent applications, publications, or other disclosure material mentioned herein, are hereby incorporated by reference in their entirety as if each individual
reference was expressly incorporated by reference respectively. All references, and any material, or portion thereof, that are said to be incorporated by reference herein are incorporated herein only to the extent that the incorporated material does not conflict with existing definitions, statements, or other disclosure material set forth in this disclosure. As such, and to the extent necessary, the disclosure as set forth herein supersedes any conflicting material incorporated herein by reference, and the disclosure expressly set forth in the present application controls.
[0067] Various exemplary, and illustrative aspects have been described. The aspects described herein are understood as providing illustrative features of varying detail of various aspects of the present disclosure; and therefore, unless otherwise specified, it is to be understood that, to the extent possible, one or more features, elements, components, constituents, ingredients, structures, modules, and/or aspects of the disclosed aspects may be combined, separated, interchanged, and/or rearranged with or relative to one or more other features, elements, components, constituents, ingredients, structures, modules, and/or aspects of the disclosed aspects without departing from the scope of the present disclosure. Accordingly, it will be recognized by persons having ordinary skill in the art that various substitutions, modifications, or combinations of any of the exemplary aspects may be made without departing from the scope of the claimed subject matter. In addition, persons skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the various aspects of the present disclosure upon review of this specification. Thus, the present disclosure is not limited by the description of the various aspects, but rather by the claims.
[0068] Those skilled in the art will recognize that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one”, and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to claims containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one”, and indefinite articles such as “a” or “an” (e.g., “a”,
and/or “an” should typically be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations.
[0069] In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, typically means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A, and B together, A, and C together, B, and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to “at least one of A, B, or C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A, and B together, A, and C together, B, and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that typically a disjunctive word, and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms unless context dictates otherwise. For example, the phrase “A or B” will be typically understood to include the possibilities of “A” or “B” or “A, and B.”
[0070] With respect to the appended claims, those skilled in the art will appreciate that recited operations therein may generally be performed in any order. Also, although claim recitations are presented in a sequence(s), it should be understood that the various operations may be performed in other orders than those which are described, or may be performed concurrently. Examples of such alternate orderings may include overlapping, interleaved, interrupted, reordered, incremental, preparatory, supplemental, simultaneous, reverse, or other variant orderings, unless context dictates otherwise. Furthermore, terms like “responsive to,” “related to,” or other past-tense adjectives are generally not intended to exclude such variants, unless context dictates otherwise.
[0071] It is worthy to note that any reference to “one aspect,” “an aspect,” “an exemplification,” “one exemplification,” and the like means that a particular feature, structure, or characteristic described in connection with the aspect is included in at least one aspect. Thus, appearances of the phrases “in one aspect,” “in an aspect,” “in an exemplification,”, and “in one exemplification” in various places throughout the specification are not necessarily all referring to the same aspect. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner in one or more aspects.
[0072] As used herein, the singular form of “a”, “an”, and “the” include the plural references unless the context clearly dictates otherwise.
[0073] Directional phrases used herein, such as, for example, and without limitation, top, bottom, left, right, lower, upper, front, back, and variations thereof, shall relate to the orientation of the elements shown in the accompanying drawing, and are not limiting upon the claims unless otherwise expressly stated.
[0074] The terms “about” or “approximately” as used in the present disclosure, unless otherwise specified, means an acceptable error for a particular value as determined by one of ordinary skill in the art, which depends in part on how the value is measured or determined. In certain aspects, the term “about” or “approximately” means within 1, 2, 3, or 4 standard deviations. In certain aspects, the term “about” or “approximately” means within 50%, 200%, 105%, 100%, 9%, 8%, 7%, 6%, 5%, 4%, 3%, 2%, 1%, 0.5%, or 0.05% of a given value or range.
[0075] In this specification, unless otherwise indicated, all numerical parameters are to be understood as being prefaced, and modified in all instances by the term “about,” in which the numerical parameters possess the inherent variability characteristic of the underlying measurement techniques used to determine the numerical value of the parameter. At the very least, and not as an attempt to limit the application of the doctrine of equivalents to the scope of the claims, each numerical parameter described herein should at least be construed in light of the number of reported significant digits, and by applying ordinary rounding techniques.
[0076] Any numerical range recited herein includes all sub-ranges subsumed within the recited range. For example, a range of “1 to 100” includes all sub-ranges between (and including) the recited minimum value of 1, and the recited maximum value of 100, that is, having a minimum value equal to or greater than 1 , and a maximum value equal to or less than 100. Also, all ranges recited herein are inclusive of the end points of the recited ranges. For example, a range of “1 to 100” includes the end points 1, and 100. Any maximum numerical limitation recited in this specification is intended to include all lower numerical limitations subsumed therein, and any minimum numerical limitation recited in this specification is intended to include all higher numerical limitations subsumed therein.
Accordingly, Applicant reserves the right to amend this specification, including the claims, to expressly recite any sub-range subsumed within the ranges expressly recited. All such ranges are inherently described in this specification.
[0077] Any patent application, patent, non-patent publication, or other disclosure material referred to in this specification, and/or listed in any Application Data Sheet is incorporated by reference herein, to the extent that the incorporated materials is not inconsistent herewith.
As such, and to the extent necessary, the disclosure as explicitly set forth herein supersedes
any conflicting material incorporated herein by reference. Any material, or portion thereof, that is said to be incorporated by reference herein, but which conflicts with existing definitions, statements, or other disclosure material set forth herein will only be incorporated to the extent that no conflict arises between that incorporated material, and the existing disclosure material.
[0078] The terms "comprise" (and any form of comprise, such as "comprises", and "comprising"), "have" (and any form of have, such as "has", and "having"), "include" (and any form of include, such as "includes", and "including"), and "contain" (and any form of contain, such as "contains", and "containing") are open-ended linking verbs. As a result, a system that "comprises," "has," "includes" or "contains" one or more elements possesses those one or more elements, but is not limited to possessing only those one or more elements. Likewise, an element of a system, device, or apparatus that "comprises," "has," "includes" or "contains" one or more features possesses those one or more features, but is not limited to possessing only those one or more features.
[0079] The foregoing detailed description has set forth various forms of the devices, and/or processes via the use of block diagrams, flowcharts, and/or examples. Insofar as such block diagrams, flowcharts, and/or examples contain one or more functions, and/or operations, it will be understood by those within the art that each function, and/or operation within such block diagrams, flowcharts, and/or examples can be implemented, individually, and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. Those skilled in the art will recognize that some aspects of the forms disclosed herein, in whole or in part, can be equivalently implemented in integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry, and/or writing the code for the software, and or firmware would be well within the skill of one of skill in the art in light of this disclosure. In addition, those skilled in the art will appreciate that the mechanisms of the subject matter described herein are capable of being distributed as one or more program products in a variety of forms, and that an illustrative form of the subject matter described herein applies regardless of the particular type of signal bearing medium used to actually carry out the distribution.
[0080] Instructions used to program logic to perform various disclosed aspects can be stored within a memory in the system, such as dynamic random access memory (DRAM), cache, flash memory, or other storage. Furthermore, the instructions can be distributed via a network or by way of other computer readable media. Thus a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a
machine (e.g., a computer), but is not limited to, floppy diskettes, optical disks, compact disc, read-only memory (CD-ROMs), and magneto-optical disks, read-only memory (ROMs), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards, flash memory, or a tangible, machine-readable storage used in the transmission of information over the Internet via electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). Accordingly, the non- transitory computer-readable medium includes any type of tangible machine-readable medium suitable for storing or transmitting electronic instructions or information in a form readable by a machine (e.g., a computer).
[0081] As used in any aspect herein, the term “control circuit” may refer to, for example, hardwired circuitry, programmable circuitry (e.g., a computer processor comprising one or more individual instruction processing cores, processing unit, processor, microcontroller, microcontroller unit, controller, digital signal processor (DSP), programmable logic device (PLD), programmable logic array (PLA), or field programmable gate array (FPGA)), state machine circuitry, firmware that stores instructions executed by programmable circuitry, and any combination thereof. The control circuit may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC), an application-specific integrated circuit (ASIC), a system on-chip (SoC), desktop computers, laptop computers, tablet computers, servers, smart phones, etc. Accordingly, as used herein, “control circuit” includes, but is not limited to, electrical circuitry having at least one discrete electrical circuit, electrical circuitry having at least one integrated circuit, electrical circuitry having at least one application specific integrated circuit, electrical circuitry forming a general purpose computing device configured by a computer program (e.g., a general purpose computer configured by a computer program which at least partially carries out processes, and/or devices described herein, or a microprocessor configured by a computer program which at least partially carries out processes, and/or devices described herein), electrical circuitry forming a memory device (e.g., forms of random access memory), and/or electrical circuitry forming a communications device (e.g., a modem, communications switch, or optical-electrical equipment). Those having skill in the art will recognize that the subject matter described herein may be implemented in an analog or digital fashion or some combination thereof.
[0082] As used in any aspect herein, the term “logic” may refer to an app, software, firmware, and/or circuitry configured to perform any of the aforementioned operations. Software may be embodied as a software package, code, instructions, instruction sets, and/or data recorded on non-transitory computer readable storage medium. Firmware may
be embodied as code, instructions or instruction sets, and/or data that are hard-coded (e.g., nonvolatile) in memory devices.
[0083] As used in any aspect herein, the terms “component,” “system,” “module”, and the like can refer to a computer-related entity, either hardware, a combination of hardware, and software, software, or software in execution.
[0084] As used in any aspect herein, an “algorithm” refers to a self-consistent sequence of steps leading to a desired result, where a “step” refers to a manipulation of physical quantities, and/or logic states which may, though need not necessarily, take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It is common usage to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. These, and similar terms may be associated with the appropriate physical quantities, and are merely convenient labels applied to these quantities, and/or states.
Claims
1. A method of enhancing an implementation of code changes, the method comprising: accessing, via a continuous integration platform, a plurality of project-specific files hosted on a repository server, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files; determining, via the continuous integration platform, that a subset of the plurality of project-specific files has changed; generating, via the continuous integration platform, a specific task exclusively associated with the changed subset of the plurality of project-specific files; and transmitting, via the continuous integration platform, the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
2. The method of claim 1, further comprising generating, via the continuous integration platform, a plurality of pipelines, wherein each pipeline of the plurality of pipelines comprises a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
3. The method of claim 2, wherein the plurality of pipelines comprises at least one of a build pipeline, a test pipeline, and a security scan pipeline, or combinations thereof.
4. The method of claim 3, further comprising causing, via the continuous integration platform, a display communicably coupled to the continuous integration platform to present a user interface comprising a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
5. The method of claim 4, wherein each widget of the plurality of widgets comprises a status button configured to provide an indication associated with a prior execution of at least one specific task of the plurality of specific tasks.
6. The method of claim 5 wherein the status button comprises at least one of a success indicator, a failure indicator, a pending indicator, or an alert indicator, or combinations thereof.
7. The method of claim 6, further comprising displaying, via the continuous integration platform, information associated with the prior execution of the at least one specific task of the plurality of specific tasks in response to a user interaction with the alert indicator.
8. A system configured to enhance an implementation of code changes, the system comprising: a software development server; a repository server configured to host a plurality of project-specific files; and a continuous integration server comprising a processor and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to: access the plurality of project-specific files hosted on the repository server; determine that a subset of the plurality of project-specific files has changed; generate a specific task exclusively associated with the changed subset of the plurality of project-specific files; and transmit the specific task to the software development server, wherein the software developer server is configured to execute the specific task, and wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
9. The system of claim 8, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files.
10. The system of claim 8, wherein the continuous integration server is further configured to generate a plurality of pipelines, wherein each pipeline of the plurality of pipelines comprises a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
11. The system of claim 10, wherein the plurality of pipelines comprises at least one of a build pipeline, a test pipeline, and a security scan pipeline, or combinations thereof.
12. The system of claim 11 , wherein the continuous integration server is further configured to cause a display communicably coupled to the continuous integration server to present a user interface comprising a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
13. The system of claim 12, wherein each widget of the plurality of widgets comprises a status button configured to provide an indication associated with a prior execution of at least one specific task of the plurality of specific tasks.
14. The system of claim 13 wherein the status button comprises at least one of a success indicator, a failure indicator, a pending indicator, or an alert indicator, or combinations thereof.
15. The system of claim 14, wherein the continuous integration server is further configured to display information associated with the prior execution of the at least one specific task of the plurality of specific tasks in response to a user interaction with the alert indicator.
16. A continuous integration server configured to enhance an implementation of code changes, the continuous integration server comprising: a processor; and a memory configured to store a continuous integration platform that, when executed by the processor, causes the continuous integration server to: access a plurality of project-specific files hosted on a repository server; determine that a subset of the plurality of project-specific files has changed; generate a specific task exclusively associated with the changed subset of the plurality of project-specific files; and transmit the specific task to a software development server configured to execute the specific task, wherein execution of the specific task exclusively effects the changed subset of the plurality of project-specific files.
17. The continuous integration server of claim 16, wherein the repository server is configured as a monolithic repository configured to host the plurality of project-specific files.
18. The continuous integration server of claim 16, wherein the continuous integration server is further configured to generate a plurality of pipelines, wherein each pipeline of the plurality of pipelines comprises a plurality of specific tasks exclusively associated with the changed subset of the plurality of project-specific files.
19. The continuous integration server of claim 18, wherein the continuous integration server is further configured to cause a display communicably coupled to the continuous
integration server to present a user interface comprising a plurality of widgets, wherein each widget of the plurality of widgets corresponds to each pipeline of the plurality of pipelines.
20. The continuous integration server of claim 16, wherein the continuous integration server is further configured to display information associated with a prior execution of at least one specific task of a plurality of specific tasks in response to a user interaction with an alert indicator.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263377304P | 2022-09-27 | 2022-09-27 | |
US63/377,304 | 2022-09-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024073261A1 true WO2024073261A1 (en) | 2024-04-04 |
Family
ID=90479090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2023/074468 WO2024073261A1 (en) | 2022-09-27 | 2023-09-18 | Devices, systems, and methods for continuously enhancing the implementation of code changes via enriched pipelines |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024073261A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288903A1 (en) * | 2004-07-28 | 2007-12-13 | Oracle International Corporation | Automated treatment of system and application validation failures |
US8589203B1 (en) * | 2009-01-05 | 2013-11-19 | Sprint Communications Company L.P. | Project pipeline risk management system and methods for updating project resource distributions based on risk exposure level changes |
US20140089896A1 (en) * | 2012-09-27 | 2014-03-27 | Ebay Inc. | End-to-end continuous integration and verification of software |
US20150026121A1 (en) * | 2012-04-30 | 2015-01-22 | Hewlett-Packard Development Company L.P. | Prioritization of continuous deployment pipeline tests |
US20170269921A1 (en) * | 2016-03-18 | 2017-09-21 | TUPL, Inc. | Continuous and automatic application development and deployment |
-
2023
- 2023-09-18 WO PCT/US2023/074468 patent/WO2024073261A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288903A1 (en) * | 2004-07-28 | 2007-12-13 | Oracle International Corporation | Automated treatment of system and application validation failures |
US8589203B1 (en) * | 2009-01-05 | 2013-11-19 | Sprint Communications Company L.P. | Project pipeline risk management system and methods for updating project resource distributions based on risk exposure level changes |
US20150026121A1 (en) * | 2012-04-30 | 2015-01-22 | Hewlett-Packard Development Company L.P. | Prioritization of continuous deployment pipeline tests |
US20140089896A1 (en) * | 2012-09-27 | 2014-03-27 | Ebay Inc. | End-to-end continuous integration and verification of software |
US20170269921A1 (en) * | 2016-03-18 | 2017-09-21 | TUPL, Inc. | Continuous and automatic application development and deployment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11516068B2 (en) | Software-defined network resource provisioning architecture | |
CN107690623B (en) | Automatic abnormality detection and solution system | |
US10901988B2 (en) | System and method of data wrangling | |
US8762187B2 (en) | Easy process modeling platform | |
US8458346B2 (en) | Multiplexer for multi-tenant architectures | |
US20140164572A1 (en) | Transport of customer flexibility changes in a multi-tenant environment | |
US20130144957A1 (en) | Real-Time Social Networking | |
US11327877B2 (en) | Pipeline performance improvement using stochastic dags | |
US20170161347A1 (en) | Platform for Visually Configuring a Process Flow Across Multiple Discrete Processes | |
US11171835B2 (en) | Automated generation of an information technology asset ontology | |
US8892585B2 (en) | Metadata driven flexible user interface for business applications | |
Vadapalli | DevOps: continuous delivery, integration, and deployment with DevOps: dive into the core DevOps strategies | |
EP3398063A1 (en) | Controlled deployment of application feature | |
EP3494470A1 (en) | Retain locally deleted content at storage service | |
US9141517B2 (en) | Public solution model test automation framework | |
AU2023200448A1 (en) | Providing triggers based on one-to-many or many-to-one relationships in a system of record | |
US20140089926A1 (en) | Business process model analyzer and runtime selector | |
WO2024073261A1 (en) | Devices, systems, and methods for continuously enhancing the implementation of code changes via enriched pipelines | |
US8677112B2 (en) | Automatic notification based on generic storage framework | |
WO2022256832A1 (en) | Event management updates for tenants based on deployment needs | |
US10162846B2 (en) | Data change notification using OData entity keys | |
US8473527B2 (en) | Automatic generation of where-used information | |
US20140019193A1 (en) | Issue Processing Systems and Methods | |
US11789941B2 (en) | Systems, methods, applications, and user interfaces for providing triggers in a system of record | |
JP6979492B2 (en) | Enterprise Resource Planning Software settings and generation of customized reports on software settings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23873747 Country of ref document: EP Kind code of ref document: A1 |