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:
Timur Olzhabayev
2024-01-02 13:12:18 +01:00
committed by GitHub
parent 29113a6369
commit 80da35f41d
3 changed files with 68 additions and 0 deletions

View 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);
}
}
}