Просмотр исходного кода

impl list-branches.js illegal mode

Yuki Takei 5 лет назад
Родитель
Сommit
850321a090
1 измененных файлов с 37 добавлено и 11 удалено
  1. 37 11
      bin/github-actions/list-brahches.js

+ 37 - 11
bin/github-actions/list-brahches.js

@@ -17,6 +17,11 @@ const EXCLUDE_PATTERNS = [
   // https://regex101.com/r/Lnx7Pz/2
   /dev\/[\d.x]*$/,
 ];
+const LEGAL_PATTERNS = [
+  /^origin\/master$/,
+  // https://regex101.com/r/p9xswM/3
+  /^origin\/(dev|feat|imprv|support|fix|rc|release|tmp)\/.+$/,
+];
 
 class BranchSummary {
 
@@ -46,26 +51,47 @@ function getBranchSummaries() {
   `).toString();
 
   // parse
-  const branchSummaries = out
+  const summaries = out
     .split('\n')
     .filter(v => v !== '') // trim empty string
     .map(line => new BranchSummary(line))
-    .filter((branchInfo) => { // exclude branches that matches to patterns
-      return !EXCLUDE_PATTERNS.some(pattern => pattern.test(branchInfo.refName));
+    .filter((summary) => { // exclude branches that matches to patterns
+      return !EXCLUDE_PATTERNS.some(pattern => pattern.test(summary.refName));
     });
 
-  return branchSummaries;
+  return summaries;
 }
 
-async function main() {
-  const args = process.argv.slice(2);
+async function main(mode) {
+  const summaries = getBranchSummaries();
+
+  let filteredSummaries;
+
+  switch (mode) {
+    case 'illegal':
+      filteredSummaries = summaries
+        .filter((summary) => { // exclude branches that matches to patterns
+          return !LEGAL_PATTERNS.some(pattern => pattern.test(summary.refName));
+        });
+      break;
+    default: {
+      const excludeTermDate = getExcludeTermDate();
+      filteredSummaries = summaries
+        .filter((summary) => {
+          return summary.authorDate < excludeTermDate;
+        });
+      break;
+    }
+  }
 
-  const branchSummaries = getBranchSummaries();
+  console.log(filteredSummaries);
+}
 
-  const outdated = branchSummaries
-    .filter(branchInfo => branchInfo.authorDate < getExcludeTermDate()); // exclude data within EXCLUDE_TERM_DAYS
+const args = process.argv.slice(2);
 
-  console.log(outdated);
+let mode = 'disused';
+if (args.length > 0 && args[0] === '--illegal') {
+  mode = 'illegal';
 }
 
-main();
+main(mode);