Chore: First step towards a github action that regularly notifies about feature toggle cleanup (#79912)
* playing around with csv parsing action * switch to workflow dispatch * working script * add a check to not run on forks * adding check comment * no idea who should own, adding myself for now * adding the cleanup script too
This commit is contained in:
38
.github/workflows/scripts/feature-toggle-cleanup/feature-toggle-cleanup.js
vendored
Normal file
38
.github/workflows/scripts/feature-toggle-cleanup/feature-toggle-cleanup.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
import { parse } from 'csv-parse/sync';
|
||||
import fs from 'fs';
|
||||
|
||||
/***
|
||||
* Feauture Flag Structure example
|
||||
* Name: 'disableEnvelopeEncryption',
|
||||
Stage: 'GA',
|
||||
Owner: '@grafana/grafana-as-code',
|
||||
Created: '2022-05-24',
|
||||
requiresDevMode: 'false',
|
||||
RequiresLicense: 'false',
|
||||
RequiresRestart: 'false',
|
||||
FrontendOnly: 'false'
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
export default function cleanupFeatureFlags() {
|
||||
const today = new Date();
|
||||
const sixMonthAgo = today.setMonth(today.getMonth() - 6);
|
||||
const inputFileContents = fs.readFileSync(process.env.FEATURE_TOGGLES_CSV_FILE_PATH);
|
||||
const parsedFeatureFlags = parse(inputFileContents, {
|
||||
columns: true,
|
||||
skip_empty_lines: true,
|
||||
cast: true,
|
||||
cast_date: true,
|
||||
});
|
||||
|
||||
// Here we can have the custom logic of how to handle what type of feature flag - e.g. GA can be treated differently than experimental and so on.
|
||||
for (const flag of parsedFeatureFlags) {
|
||||
if (flag.Created < sixMonthAgo) {
|
||||
console.log(`The flag ${flag.Name} was created more than 6 months ago. It should be checked.`);
|
||||
console.log(flag);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user