-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
status-checks.ts
72 lines (67 loc) · 1.89 KB
/
status-checks.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import { logger } from '../../logger';
import { appSlug, urls } from '../../config/app-strings';
import { RenovateConfig } from '../../config';
import { platform } from '../../platform';
async function setStatusCheck(
branchName: string,
context: string,
description: string,
state: string
) {
const existingState = await platform.getBranchStatusCheck(
branchName,
context
);
// Check if state needs setting
if (existingState === state) {
logger.debug(`Status check ${context} is already up-to-date`);
} else {
logger.debug(`Updating ${context} status check state to ${state}`);
await platform.setBranchStatus(
branchName,
context,
description,
state,
urls.documentation
);
}
}
export type StabilityConfig = RenovateConfig & {
stabilityStatus: string;
branchName: string;
};
export async function setStability(config: StabilityConfig) {
if (!config.stabilityStatus) {
return;
}
const context = `${appSlug}/stability-days`;
const description =
config.stabilityStatus === 'success'
? 'Updates have met stability days requirement'
: 'Updates have not met stability days requirement';
await setStatusCheck(
config.branchName,
context,
description,
config.stabilityStatus
);
}
export type UnpublishableConfig = RenovateConfig & {
unpublishSafe?: boolean;
canBeUnpublished?: boolean;
branchName: string;
};
export async function setUnpublishable(
config: UnpublishableConfig
): Promise<void> {
if (!config.unpublishSafe) {
return;
}
const context = `${appSlug}/unpublish-safe`;
// Set canBeUnpublished status check
const state = config.canBeUnpublished ? 'pending' : 'success';
const description = config.canBeUnpublished
? 'Packages < 24 hours old can be unpublished'
: 'Packages cannot be unpublished';
await setStatusCheck(config.branchName, context, description, state);
}