# US 12,112,154 B2 · Automated software deployment techniques

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,112,154 B2
- Document ID: US12112154B2
- Status: Granted
- Kind: B2
- Application number: 17/831,827
- Filed: 2022-06-03
- Published: 2023-12-07
- Granted: 2024-10-08
- Earliest claimed: 2022-06-03
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Nagendra Gupta Bandaru; Ronika Das; Carlos Eduardo De Oliveira Maciel
- Web page: https://patentgrep.com/patent/US12112154B2

## CPC

- G06F 8/60: Software deployment
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/75: Structural analysis for program understanding
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, apparatus, and processor-readable storage media for automated software deployment are provided herein. An example computer-implemented method includes obtaining at least one request to merge one or more code changes associated with a first branch of software code with a second branch of software code; performing one or more tests to validate the at least one request; in response to validating the request, performing a merge operation that merges the one or more code changes with the second branch of software code; and deploying the second branch of software code to at least one cloud-based computing environment based at least in part on a version tag that identifies the merge operation corresponding to the request and a previous version tag that identifies a most recent merge operation completed for a previously deployed version of the second branch of software code.

## Claims

### Claim 1

A computer-implemented method comprising:
obtaining at least one request to merge one or more code changes associated with a first branch of software code with a second branch of software code, wherein the one or more code changes associated with the first branch of software code are deployed in at least one first cloud-based computing environment, and wherein the second branch of software code is deployed in at least one second cloud-based computing environment that is different than the at least one first cloud-based computing environment;
performing one or more tests to validate the at least one request;
in response to validating the request, performing a merge operation that merges the one or more code changes with the second branch of software code; and
deploying the second branch of software code to the at least one first cloud-based computing environment based at least in part on a first version tag that identifies the deployment of the one or more code changes to the first branch of software and a second version tag that identifies a most recent merge operation completed for a version of the second branch of software code previously deployed in the at least one second cloud-based computing environment;
wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one request is initiated by a user, and wherein the one or more tests validate the one or more code changes associated with the first branch of software code against code changes of at least one merge operation completed between the merge operation identified by the second version tag and the merge operation identified by the first version tag.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more tests comprise at least one of:
a security review test to determine whether the one or more code changes associated with the at least one request affect at least one user access permission; and
one or more automated unit tests.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein, in response to determining that the one or more code changes associated with the at least one request affect at least one user access permission, the validating further comprises automatically sending an approval request to at least one specified user.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, comprising:
automatically sending a notification to a user that initiated the at least one request, wherein the notification comprises information related to one or more errors resulting from the one or more automated unit tests.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one second cloud-based computing environment comprises a non-production computing environment.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one first cloud-based computing environment comprises a production computing environment, and wherein the deploying comprises generating a file comprising a list of names and components included in the second branch of software code that is currently being deployed.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, comprising:
performing a rollback to the version of the second branch of software code previously deployed in the at least one second cloud-based computing environment, wherein performing the rollback comprises: (i) retrieving the version of the software code previously deployed in the at least one second cloud-based computing environment using the list of names and components in the file; (ii) deploying the version of the software code previously deployed in the at least one second cloud-based computing environment to the production computing environment; and (iii) deleting any item included in the list of names and components that was not retrieved.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the deploying comprises:
using the first version tag and the second version tag to identify code differences between: (i) the second branch of software code following the merge operation and (ii) the version of the second branch previously deployed in the at least one second cloud-based computing environment; and
deploying the code differences to the at least one first cloud-based computing environment.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
generating, in response to successfully deploying the second branch of software code to the at least one first cloud-based computing environment, at least one notification based at least in part on the first version tag and the second version tag, wherein the at least one notification comprises a list of one or more users associated with the identified code differences.

### Claim 11

A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:
to obtain at least one request to merge one or more code changes associated with a first branch of software code with a second branch of software code, wherein the one or more code changes associated with the first branch of software code are deployed in at least one first cloud-based computing environment, and wherein the second branch of software code is deployed in at least one second cloud-based computing environment that is different than the at least one first cloud-based computing environment;
to perform one or more tests to validate the at least one request;
in response to validating the request, to perform a merge operation that merges the one or more code changes with the second branch of software code; and
to deploy the second branch of software code to the at least one first cloud-based computing environment based at least in part on a first version tag that identifies the deployment of the one or more code changes to the first branch of software and a second version tag that identifies a most recent merge operation completed for a version of the second branch of software code previously deployed in the at least one second cloud-based computing environment.

### Claim 12 (depends on 11)

The non-transitory processor-readable storage medium of claim 11, wherein the at least one request is initiated by a user, and wherein the one or more tests validate the one or more code changes associated with the first branch of software code against code changes of at least one merge operation completed between the merge operation identified by the second version tag and the merge operation identified by the first version tag.

### Claim 13 (depends on 11)

The non-transitory processor-readable storage medium of claim 11, wherein the one or more tests comprise at least one of:
a security review test to determine whether the one or more code changes associated with the at least one request affect at least one user access permission; and
one or more automated unit tests.

### Claim 14 (depends on 13)

The non-transitory processor-readable storage medium of claim 13, wherein, in response to determining that the one or more code changes associated with the at least one request affect at least one user access permission, the validating further comprises automatically sending an approval request to at least one specified user.

### Claim 15 (depends on 13)

The non-transitory processor-readable storage medium of claim 13, wherein the program code further causes the at least one processing device:
to automatically send a notification to a user that initiated the at least one request, wherein the notification comprises information related to one or more errors resulting from the one or more automated unit tests.

### Claim 16 (depends on 11)

The non-transitory processor-readable storage medium of claim 11, wherein at least one of:
the at least one second cloud-based computing environment comprises a non-production computing environment; and
the at least one first cloud-based computing environment comprises a production computing environment, wherein the deploying comprises generating a file comprising a list of names and components included in the second branch of software code that is currently being deployed.

### Claim 17

An apparatus comprising:
at least one processing device comprising a processor coupled to a memory;
the at least one processing device being configured:
to obtain at least one request to merge one or more code changes associated with a first branch of software code with a second branch of software code, wherein the one or more code changes associated with the first branch of software code are deployed in at least one first cloud-based computing environment, and wherein the second branch of software code is deployed in at least one second cloud-based computing environment that is different than the at least one first cloud-based computing environment;
to perform one or more tests to validate the at least one request;
in response to validating the request, to perform a merge operation that merges the one or more code changes with the second branch of software code; and
to deploy the second branch of software code to the at least one first cloud-based computing environment based at least in part on a first version tag that identifies the deployment of the one or more code changes to the first branch of software and a second version tag that identifies a most recent merge operation completed for a version of the second branch of software code previously deployed in the at least one second cloud-based computing environment.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the at least one request is initiated by a user, and wherein the one or more tests validate the one or more code changes associated with the first branch of software code against code changes of at least one merge operation completed between the merge operation identified by the second version tag and the merge operation identified by the first version tag.

### Claim 19 (depends on 17)

The apparatus of claim 17, wherein the one or more tests comprise at least one of:
a security review test to determine whether the one or more code changes associated with the at least one request affect at least one user access permission; and
one or more automated unit tests.

### Claim 20 (depends on 19)

The apparatus of claim 19, wherein, in response to determining that the one or more code changes associated with the at least one request affect at least one user access permission, the validating further comprises automatically sending an approval request to at least one specified user.
