Browse Source

ci: auto label bug issues with version label (#42044)

David Sanders 11 months ago
parent
commit
188196e78c
1 changed files with 24 additions and 1 deletions
  1. 24 1
      .github/workflows/issue-opened.yml

+ 24 - 1
.github/workflows/issue-opened.yml

@@ -35,7 +35,7 @@ jobs:
         with:
           creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
           org: electron
-      - run: npm install [email protected] [email protected]
+      - run: npm install [email protected] [email protected] [email protected]
       - name: Add labels
         uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
         env:
@@ -45,6 +45,7 @@ jobs:
           script: |
             const { fromMarkdown } = await import('${{ github.workspace }}/node_modules/mdast-util-from-markdown/index.js');
             const { select } = await import('${{ github.workspace }}/node_modules/unist-util-select/index.js');
+            const semver = await import('${{ github.workspace }}/node_modules/semver/index.js');
 
             const [ owner, repo ] = '${{ github.repository }}'.split('/');
             const issue_number = ${{ github.event.issue.number }};
@@ -53,6 +54,28 @@ jobs:
 
             const labels = [];
 
+            const electronVersion = select('heading:has(> text[value="Electron Version"]) + paragraph > text', tree)?.value.trim();
+            if (electronVersion !== undefined) {
+              const major = semver.parse(electronVersion)?.major;
+              if (major) {
+                const versionLabel = `${major}-x-y`;
+                let labelExists = false;
+
+                try {
+                  await github.rest.issues.getLabel({
+                    owner,
+                    repo,
+                    name: versionLabel,
+                  });
+                  labelExists = true;
+                } catch {}
+
+                if (labelExists) {
+                  labels.push(versionLabel);
+                }
+              }
+            }
+
             const gistUrl = select('heading:has(> text[value="Testcase Gist URL"]) + paragraph > text', tree)?.value.trim();
             if (gistUrl !== undefined && gistUrl.startsWith('https://gist.github.com/')) {
               labels.push('has-repro-gist');