IP Library Granted Patent US 12675589
Granted Patent B2
US 12675589 · App. 18/158,145 · Granted Jul 7, 2026

Time-delay-based access control for continuous integration pipelines

Inventors: Avraham Talmor (Ra'anana, IL); Arie Bregman (Ra'anana, IL)
Assignee: Red Hat, Inc.
G06F21/6218G06F8/71G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12675589
App. No.
18/158,145
Granted
Jul 7, 2026
Kind
B2
Abstract

A computing system can execute a continuous integration (CI) pipeline for merging a code commit into a software project. The CI pipeline can include CI phases that can output sets of result data. Each CI phase can generate a respective set of result data among the sets of result data. The computing system can determine delay times associated with the sets of result data, each respective set of result data being assigned a corresponding delay time among the delay times. For each respective delay time, the computing system can prevent a set of users from accessing the respective set of result data prior to an expiration of the corresponding delay time. The computing system can also permit the set of users to access the respective set of result data following the expiration of the corresponding delay time.

Claims (75)

1 . A system comprising:

one or more processors; and

one or more memories including instructions that are executable by the one or more processors to:

execute a single run of a continuous integration (CI) pipeline for merging a single code commit into a software project, wherein the execution of the single run of the CI pipeline for merging the single code commit into the software project involves execution of a plurality of CI phases for processing the single code commit prior to merging the single code commit into the software project, wherein the execution of the plurality of CI phases for processing the single code commit produces a plurality of sets of result data, wherein each CI phase of the plurality of CI phases involves executing at least one task in relation to the single code commit to generate a respective set of result data among the plurality of sets of result data, and wherein at least one CI phase of the plurality of CI phases involves executing a software test in relation to the single code commit to generate test result data which is part of the plurality of sets of result data;

determine a plurality of delay times associated with the plurality of sets of result data generated by the execution of the single run of the CI pipeline for merging the single code commit into the software project, each respective set of result data being assigned a corresponding delay time among the plurality of delay times;

for each respective set of result data:

prevent, by an access control system and based on at least one flag, a respective set of users from accessing the respective set of result data prior to an expiration of the corresponding delay time; and

permit, by the access control system and based on the at least one flag, the respective set of users to access the respective set of result data upon the expiration of the corresponding delay time; and

for a particular set of result data among the plurality of sets of result data:

prevent a first set of users from accessing the particular set of result data prior to an expiration of a first delay time of the plurality of delay times, and prevent a second set of users from accessing the particular set of result data prior to an expiration of a second delay time of the plurality of delay times, wherein the second set of users is different from the first set of users, and wherein the second delay time is different from the first delay time; and

permit the first set of users to access the particular set of result data subsequent to the expiration of the first delay time, and permit the second set of users to access the particular set of result data subsequent to the expiration of the second delay time.

2 . The system of claim 1 , wherein the instructions are further executable by the one or more processors for causing the one or more processors to:

determine the first delay time and the second delay time associated with the particular set of result data;

determine that the first set of users is associated with the first delay time and that the second set of users is associated with the second delay time; and

based on determining that the first set of users is associated with the first delay time and that the second set of users is associated with the second delay time, apply the first delay time to the first set of users and the second delay time to the second set of users.

3 . The system of claim 2 , wherein the instructions are further executable by the one or more processors for causing the one or more processors to:

determine that the first delay time associated with the first set of users has elapsed and responsively transmit one or more notifications to the first set of users indicating that the first delay time has elapsed; and

determine that the second delay time associated with the second set of users has elapsed and responsively transmit one or more notifications to the second set of users indicating that the second delay time has elapsed.

4 . The system of claim 2 , wherein the second delay time is dependent on the first delay time.

5 . The system of claim 4 , wherein the second delay time includes at least a predefined time period following the expiration of the first delay time.

6 . The system of claim 1 , wherein the instructions are further executable by the one or more processors for causing the one or more processors to:

prevent the respective set of users from accessing the respective set of result data by setting a corresponding access flag to a first value in a database; and

permit the respective set of users to access the respective set of result data by setting the corresponding access flag to a second value in the database.

7 . The system of claim 2 , wherein the instructions are further executable by the one or more processors for causing the one or more processors to:

receive a first request to access the particular set of result data from a first user in the first set of users;

receive a second request to access the particular set of result data from a second user in the second set of users;

in response to determining that the first delay time has elapsed and receiving the first request, transmit the particular set of result data to the first user via a web application; and

in response to determining that the second delay time has elapsed and receiving the second request, transmit the particular set of result data to the second user via the web application.

8 . A method comprising:

executing, by one or more processors, a single run of a continuous integration (CI) pipeline for merging a single code commit into a software project, wherein the execution of the single run of the CI pipeline for merging the single code commit into the software project involves execution of a plurality of CI phases for processing the single code commit prior to merging the single code commit into the software project, wherein the execution of the plurality of CI phases for processing the single code commit produces a plurality of sets of result data, wherein each CI phase of the plurality of CI phases involves executing at least one task in relation to the single code commit to generate a respective set of result data among the plurality of sets of result data, and wherein at least one CI phase of the plurality of CI phases involves executing a software test in relation to the single code commit to generate test result data which is part of the plurality of sets of result data;

determining, by the one or more processors, a plurality of delay times associated with the plurality of sets of result data generated by the execution of the single run of the CI pipeline for merging the single code commit into the software project, each respective set of result data being assigned a corresponding delay time among the plurality of delay times;

for each respective set of result data:

preventing, by an access control system and based on at least one flag, a respective set of users from accessing the respective set of result data prior to an expiration of the corresponding delay time; and

permitting, by the access control system and based on the at least one flag, the respective set of users to access the respective set of result data upon the expiration of the corresponding delay time; and

for a particular set of result data among the plurality of sets of result data:

preventing a first set of users from accessing the particular set of result data prior to an expiration of a first delay time of the plurality of delay times, and preventing a second set of users from accessing the particular set of result data prior to an expiration of a second delay time of the plurality of delay times, wherein the second set of users is different from the first set of users, and wherein the second delay time is different from the first delay time; and

permitting the first set of users to access the particular set of result data subsequent to the expiration of the first delay time, and permitting the second set of users to access the particular set of result data subsequent to the expiration of the second delay time.

9 . The method of claim 8 , further comprising:

determining, by the one or more processors, the first delay time and the second delay time associated with the particular set of result data;

determining, by the one or more processors, that the first set of users is associated with the first delay time and that the second set of users is associated with the second delay time; and

based on determining that the first set of users is associated with the first delay time and that the second set of users is associated with the second delay time, apply the first delay time to the first set of users and the second delay time to the second set of users.

10 . The method of claim 9 , further comprising:

determining, by the one or more processors, that the first delay time associated with the first set of users has elapsed and responsively transmitting one or more notifications to the first set of users indicating that the first delay time has elapsed; and

determining, by the one or more processors, that the second delay time associated with the second set of users has elapsed and responsively transmitting one or more notifications to the second set of users indicating that the second delay time has elapsed.

11 . The method of claim 10 , wherein the second delay time is dependent on the first delay time.

12 . The method of claim 11 , wherein the second delay time includes at least a predefined time period following the expiration of the first delay time.

13 . The method of claim 8 , further comprising:

preventing, by the one or more processors, the respective set of users from accessing the respective set of result data by setting a corresponding access flag to a first value in a database; and

permitting, by the one or more processors, the respective set of users to access the respective set of result data by setting the corresponding access flag to a second value in the database.

14 . The method of claim 10 , further comprising:

receiving, by the one or more processors, a first request to access the particular set of result data from a first user in the first set of users;

receiving, by the one or more processors, a second request to access the particular set of result data from a second user in the second set of users;

in response to determining that the first delay time has elapsed and receiving the first request, transmitting, by the one or more processors, the particular set of result data to the first user via a web application; and

in response to determining that the second delay time elapsed and receiving the second request, transmitting, by the one or more processors, the particular set of result data to the second user via the web application.

15 . A non-transitory computer-readable medium comprising program code that is executable by one or more processors for causing the one or more processors to:

execute a single run of a continuous integration (CI) pipeline for merging a single code commit into a software project, wherein the execution of the single run of the CI pipeline for merging the single code commit into the software project involves execution of a plurality of CI phases for processing the single code commit prior to merging the single code commit into the software project, wherein the execution of the plurality of CI phases for processing the single code commit produces a plurality of sets of result data, wherein each CI phase of the plurality of CI phases involves executing at least one task in relation to the single code commit to generate a respective set of result data among the plurality of sets of result data, and wherein at least one CI phase of the plurality of CI phases involves executing a software test in relation to the single code commit to generate test result data which is part of the plurality of sets of result data;

determine a plurality of delay times associated with the plurality of sets of result data generated by the execution of the single run of the CI pipeline for merging the single code commit into the software project, each respective set of result data being assigned a corresponding delay time among the plurality of delay times;

for each respective set of result data:

prevent, by an access control system and based on at least one flag, a respective set of users from accessing the respective set of result data prior to an expiration of the corresponding delay time; and

permit, by the access control system and based on the at least one flag, the respective set of users to access the respective set of result data upon the expiration of the corresponding delay time; and

for a particular set of result data among the plurality of sets of result data:

prevent a first set of users from accessing the particular set of result data prior to an expiration of a first delay time of the plurality of delay times, and prevent a second set of users from accessing the particular set of result data prior to an expiration of a second delay time of the plurality of delay times, wherein the second set of users is different from the first set of users, and wherein the second delay time is different from the first delay time; and

permit the first set of users to access the particular set of result data subsequent to the expiration of the first delay time, and permit the second set of users to access the particular set of result data subsequent to the expiration of the second delay time.

16 . The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the one or more processors for causing the one or more processors to:

determine the first delay time and the second delay time associated with the particular set of result data;

determine that the first set of users is associated with the first delay time and that the second set of users is associated with the second delay time; and

based on determining that the first set of users is associated with the first delay time and that the second set of users is associated with the second delay time, apply the first delay time to the first set of users and the second delay time to the second set of users.

17 . The non-transitory computer-readable medium of claim 16 , wherein the program code is further executable by the one or more processors for causing the one or more processors to:

determine that the first delay time associated with the first set of users has elapsed and responsively transmit one or more notifications to the first set of users indicating that the first delay time has elapsed; and

determine that the second delay time associated with the second set of users has elapsed and responsively transmit one or more notifications to the second set of users indicating that the second delay time has elapsed.

18 . The non-transitory computer-readable medium of claim 16 , wherein the second delay time is dependent on the first delay time.

19 . The non-transitory computer-readable medium of claim 18 , wherein the second delay time includes at least a predefined time period following the expiration of the first delay time.

20 . The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the one or more processors for causing the one or more processors to:

prevent the respective set of users from accessing the respective set of result data by setting a corresponding access flag to a first value in a database; and

permit the respective set of users to access the respective set of result data by setting the corresponding access flag to a second value in the database.