55/* global process */
66
77// This script consumes the following env variables:
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
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
1312// only log the actions that would be done.
1413// This node script fetches `https://github.com/mdn/browser-compat-data/tree/main/browsers`
1514// and updates records from the associated collection in RemoteSettings.
@@ -28,45 +27,46 @@ const SUCCESS_RET_VALUE = 0;
2827const FAILURE_RET_VALUE = 1 ;
2928const VALID_ENVIRONMENTS = [ "dev" , "stage" , "prod" ] ;
3029
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- ) ;
30+ if ( ! process . env . AUTHORIZATION ) {
31+ console . error ( `AUTHORIZATION environment variable needs to be set` ) ;
3832 process . exit ( FAILURE_RET_VALUE ) ;
3933}
4034
41- if ( ! process . env . FX_REMOTE_SETTINGS_WRITER_SERVER ) {
35+ if ( ! process . env . SERVER ) {
4236 console . error (
43- `FX_REMOTE_SETTINGS_WRITER_SERVER environment variable needs to be set`
37+ `SERVER environment variable needs to be set`
4438 ) ;
4539 process . exit ( FAILURE_RET_VALUE ) ;
4640}
4741
4842if (
49- process . env . FX_REMOTE_SETTINGS_ENVIRONMENT &&
43+ process . env . ENVIRONMENT &&
5044 ! VALID_ENVIRONMENTS . includes ( process . env . ENVIRONMENT )
5145) {
5246 console . error (
53- `FX_REMOTE_SETTINGS_ENVIRONMENT environment variable needs to be set to one of the following values: ${ VALID_ENVIRONMENTS . join (
47+ `ENVIRONMENT environment variable needs to be set to one of the following values: ${ VALID_ENVIRONMENTS . join (
5448 ", "
5549 ) } `
5650 ) ;
5751 process . exit ( FAILURE_RET_VALUE ) ;
5852}
5953
60- const rsBrowsersCollectionEndpoint = `${ process . env . FX_REMOTE_SETTINGS_WRITER_SERVER } /buckets/main-workspace/collections/devtools-compatibility-browsers` ;
54+ const rsBrowsersCollectionEndpoint = `${ process . env . SERVER } /buckets/main-workspace/collections/devtools-compatibility-browsers` ;
6155const rsBrowsersRecordsEndpoint = `${ rsBrowsersCollectionEndpoint } /records` ;
62- const isDryRun = process . env . FX_REMOTE_SETTINGS_DRY_RUN == "1" ;
56+ const isDryRun = process . env . DRY_RUN == "1" ;
6357
64- const headers = {
65- "Content-Type" : "application/json" ,
66- Authorization : `Basic ${ btoa (
67- `${ process . env . FX_REMOTE_SETTINGS_WRITER_USER } :${ process . env . FX_REMOTE_SETTINGS_WRITER_PASS } `
68- ) } `,
69- } ;
58+
59+ if ( process . env . AUTHORIZATION . includes ( "Bearer" ) ) {
60+ const headers = {
61+ "Content-Type" : "application/json" ,
62+ Authorization : process . env . AUTHORIZATION ,
63+ }
64+ } else {
65+ const headers = {
66+ "Content-Type" : "application/json" ,
67+ Authorization : `Basic ${ btoa ( $ { process . env . AUTHORIZATION } ) } ` ,
68+ } ;
69+ }
7070
7171update ( )
7272 . then ( ( ) => {
@@ -158,7 +158,7 @@ async function update() {
158158 const refreshedRecords = await getRSRecords ( ) ;
159159 console . log ( "Browsers data synced ✅\nRefreshed records:" ) ;
160160 console . table ( refreshedRecords ) ;
161- if ( process . env . FX_REMOTE_SETTINGS_ENVIRONMENT === "dev" ) {
161+ if ( process . env . ENVIRONMENT === "dev" ) {
162162 await approveChanges ( ) ;
163163 } else {
164164 await requestReview ( ) ;
0 commit comments