Skip to content

Commit ce6b918

Browse files
committed
Adding Config.inactivityPeriodForRepos
1 parent b828ed3 commit ce6b918

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

components/server/ee/src/prebuilds/prebuild-manager.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,11 +364,16 @@ export class PrebuildManager {
364364

365365
private async shouldSkipInactiveRepository(ctx: TraceContext, cloneURL: string): Promise<boolean> {
366366
const span = TraceContext.startSpan("shouldSkipInactiveRepository", ctx);
367+
const { inactivityPeriodForRepos } = this.config;
368+
if (!inactivityPeriodForRepos) {
369+
// skipping is disabled if `inactivityPeriodForRepos` is not set
370+
return false;
371+
}
367372
try {
368373
return (
369374
(await this.workspaceDB
370375
.trace({ span })
371-
.getWorkspaceCountByCloneURL(cloneURL, 7 /* last week */, "regular")) === 0
376+
.getWorkspaceCountByCloneURL(cloneURL, inactivityPeriodForRepos /* in days */, "regular")) === 0
372377
);
373378
} catch (error) {
374379
log.error("cannot compute activity for repository", { cloneURL }, error);

components/server/src/config.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export type Config = Omit<
2727
chargebeeProviderOptions?: ChargebeeProviderOptions;
2828
builtinAuthProvidersConfigured: boolean;
2929
blockedRepositories: { urlRegExp: RegExp; blockUser: boolean }[];
30+
inactivityPeriodForRepos?: number;
3031
};
3132

3233
export interface WorkspaceDefaults {
@@ -162,6 +163,12 @@ export interface ConfigSerialized {
162163
* `blockUser` attribute to control handling of the user's account.
163164
*/
164165
blockedRepositories?: { urlRegExp: string; blockUser: boolean }[];
166+
167+
/**
168+
* If a numeric value interpreted as days is set, repositories not beeing opened with Gitpod are
169+
* considered inactive.
170+
*/
171+
inactivityPeriodForRepos?: number;
165172
}
166173

167174
export namespace ConfigFile {
@@ -220,6 +227,12 @@ export namespace ConfigFile {
220227
});
221228
}
222229
}
230+
let inactivityPeriodForRepos: number | undefined;
231+
if (typeof config.inactivityPeriodForRepos === "number") {
232+
if (config.inactivityPeriodForRepos >= 1) {
233+
inactivityPeriodForRepos = config.inactivityPeriodForRepos;
234+
}
235+
}
223236
return {
224237
...config,
225238
hostUrl,
@@ -234,6 +247,7 @@ export namespace ConfigFile {
234247
: Date.now(),
235248
},
236249
blockedRepositories,
250+
inactivityPeriodForRepos,
237251
};
238252
}
239253
}

0 commit comments

Comments
 (0)