5
5
/* global process */
6
6
7
7
// This script consumes the following env variables:
8
- // - AUTHORIZATION (mandatory): Raw authorization header (e.g. `AUTHORIZATION='Bearer XXXXXXXXXXXXX'`)
9
- // - SERVER (mandatory): Writer server URL (eg. https://settings-writer.stage.mozaws.net/v1)
10
- // - ENVIRONMENT (optional): dev, stage, prod. When set to `dev`, the script will approve its own changes.
11
- // - DRY_RUN (optional): If set to 1, no changes will be made to the collection, this will
8
+ // - FX_REMOTE_SETTINGS_WRITER_USER (mandatory): User
9
+ // - FX_REMOTE_SETTINGS_WRITER_PASS (mandatory): Password
10
+ // - FX_REMOTE_SETTINGS_WRITER_SERVER (mandatory): Writer server URL (eg. https://settings-writer.stage.mozaws.net/v1)
11
+ // - FX_REMOTE_SETTINGS_ENVIRONMENT (optional): dev, stage, prod. When set to `dev`, the script will approve its own changes.
12
+ // - FX_REMOTE_SETTINGS_DRY_RUN (optional): If set to 1, no changes will be made to the collection, this will
12
13
// only log the actions that would be done.
13
-
14
14
// This node script fetches `https://github.com/mdn/browser-compat-data/tree/main/browsers`
15
15
// and updates records from the associated collection in RemoteSettings.
16
16
// In the future, it will also handle https://github.com/mdn/browser-compat-data/tree/main/css.
17
17
18
18
import fetch from "node-fetch" ;
19
+ import btoa from "btoa" ;
19
20
20
21
// Use the legacy wrapper to support all Node 12+ versions.
21
22
// If we only support Node 16+, can be updated to:
@@ -27,34 +28,44 @@ const SUCCESS_RET_VALUE = 0;
27
28
const FAILURE_RET_VALUE = 1 ;
28
29
const VALID_ENVIRONMENTS = [ "dev" , "stage" , "prod" ] ;
29
30
30
- if ( ! process . env . AUTHORIZATION ) {
31
- console . error ( `AUTHORIZATION environment variable needs to be set` ) ;
31
+ if (
32
+ ! process . env . FX_REMOTE_SETTINGS_WRITER_USER ||
33
+ ! process . env . FX_REMOTE_SETTINGS_WRITER_PASS
34
+ ) {
35
+ console . error (
36
+ `Both FX_REMOTE_SETTINGS_WRITER_USER and FX_REMOTE_SETTINGS_WRITER_PASS environment variables need to be set`
37
+ ) ;
32
38
process . exit ( FAILURE_RET_VALUE ) ;
33
39
}
34
40
35
- if ( ! process . env . SERVER ) {
36
- console . error ( `SERVER environment variable needs to be set` ) ;
41
+ if ( ! process . env . FX_REMOTE_SETTINGS_WRITER_SERVER ) {
42
+ console . error (
43
+ `FX_REMOTE_SETTINGS_WRITER_SERVER environment variable needs to be set`
44
+ ) ;
37
45
process . exit ( FAILURE_RET_VALUE ) ;
38
46
}
39
47
40
48
if (
41
- process . env . ENVIRONMENT &&
49
+ process . env . FX_REMOTE_SETTINGS_ENVIRONMENT &&
42
50
! VALID_ENVIRONMENTS . includes ( process . env . ENVIRONMENT )
43
51
) {
44
52
console . error (
45
- `ENVIRONMENT environment variable needs to be set to one of the following values: ${ VALID_ENVIRONMENTS . join (
53
+ `FX_REMOTE_SETTINGS_ENVIRONMENT environment variable needs to be set to one of the following values: ${ VALID_ENVIRONMENTS . join (
46
54
", "
47
55
) } `
48
56
) ;
49
57
process . exit ( FAILURE_RET_VALUE ) ;
50
58
}
51
59
52
- const rsBrowsersCollectionEndpoint = `${ process . env . SERVER } /buckets/main-workspace/collections/devtools-compatibility-browsers` ;
60
+ const rsBrowsersCollectionEndpoint = `${ process . env . FX_REMOTE_SETTINGS_WRITER_SERVER } /buckets/main-workspace/collections/devtools-compatibility-browsers` ;
53
61
const rsBrowsersRecordsEndpoint = `${ rsBrowsersCollectionEndpoint } /records` ;
54
- const isDryRun = process . env . DRY_RUN == "1" ;
62
+ const isDryRun = process . env . FX_REMOTE_SETTINGS_DRY_RUN == "1" ;
63
+
55
64
const headers = {
56
65
"Content-Type" : "application/json" ,
57
- Authorization : process . env . AUTHORIZATION ,
66
+ Authorization : `Basic ${ btoa (
67
+ `${ process . env . FX_REMOTE_SETTINGS_WRITER_USER } :${ process . env . FX_REMOTE_SETTINGS_WRITER_PASS } `
68
+ ) } `,
58
69
} ;
59
70
60
71
update ( )
@@ -147,7 +158,7 @@ async function update() {
147
158
const refreshedRecords = await getRSRecords ( ) ;
148
159
console . log ( "Browsers data synced ✅\nRefreshed records:" ) ;
149
160
console . table ( refreshedRecords ) ;
150
- if ( process . env . ENVIRONMENT === "dev" ) {
161
+ if ( process . env . FX_REMOTE_SETTINGS_ENVIRONMENT === "dev" ) {
151
162
await approveChanges ( ) ;
152
163
} else {
153
164
await requestReview ( ) ;
0 commit comments