123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- name: Issue Opened
- on:
- issues:
- types:
- - opened
- permissions: {}
- jobs:
- add-to-issue-triage:
- if: ${{ contains(github.event.issue.labels.*.name, 'bug :beetle:') }}
- runs-on: ubuntu-latest
- steps:
- - name: Generate GitHub App token
- uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
- id: generate-token
- with:
- creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
- org: electron
- - name: Add to Issue Triage
- uses: dsanders11/project-actions/add-item@eb760c48894b5702398529cbb8f6e98378e315d0 # v1.3.0
- with:
- field: Reporter
- field-value: ${{ github.event.issue.user.login }}
- project-number: 90
- token: ${{ steps.generate-token.outputs.token }}
- set-labels:
- if: ${{ contains(github.event.issue.labels.*.name, 'bug :beetle:') }}
- runs-on: ubuntu-latest
- steps:
- - name: Generate GitHub App token
- uses: electron/github-app-auth-action@384fd19694fe7b6dcc9a684746c6976ad78228ae # v1.1.1
- id: generate-token
- with:
- creds: ${{ secrets.ISSUE_TRIAGE_GH_APP_CREDS }}
- org: electron
- - run: npm install @electron/[email protected] [email protected] [email protected] [email protected]
- - name: Add labels
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
- id: add-labels
- env:
- ISSUE_BODY: ${{ github.event.issue.body }}
- with:
- github-token: ${{ steps.generate-token.outputs.token }}
- 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 }};
- const tree = fromMarkdown(process.env.ISSUE_BODY);
- 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) {
- // Check if it's an unsupported major
- const { ElectronVersions } = await import('${{ github.workspace }}/node_modules/@electron/fiddle-core/dist/index.js');
- const versions = await ElectronVersions.create(undefined, { ignoreCache: true });
- if (!versions.supportedMajors.includes(major)) {
- core.setOutput('unsupportedMajor', true);
- labels.push('blocked/need-info ❌');
- }
- labels.push(versionLabel);
- }
- }
- }
- const operatingSystems = select('heading:has(> text[value="What operating system(s) are you using?"]) + paragraph > text', tree)?.value.trim().split(', ');
- const platformLabels = new Set();
- for (const operatingSystem of (operatingSystems ?? [])) {
- switch (operatingSystem) {
- case 'Windows':
- platformLabels.add('platform/windows');
- break;
- case 'macOS':
- platformLabels.add('platform/macOS');
- break;
- case 'Ubuntu':
- case 'Other Linux':
- platformLabels.add('platform/linux');
- break;
- }
- }
- if (platformLabels.size === 3) {
- labels.push('platform/all');
- } else {
- labels.push(...platformLabels);
- }
- 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');
- }
- if (labels.length) {
- await github.rest.issues.addLabels({
- owner,
- repo,
- issue_number,
- labels,
- });
- }
- - name: Create unsupported major comment
- if: ${{ steps.add-labels.outputs.unsupportedMajor }}
- uses: actions-cool/issues-helper@a610082f8ac0cf03e357eb8dd0d5e2ba075e017e # v3.6.0
- with:
- actions: 'create-comment'
- token: ${{ steps.generate-token.outputs.token }}
- body: |
- <!-- end-of-life -->
- Hello @${{ github.event.issue.user.login }}. Thanks for reporting this and helping to make Electron better!
-
- The version of Electron reported in this issue has reached end-of-life and is [no longer supported](https://www.electronjs.org/docs/latest/tutorial/electron-timelines#timeline). If you're still experiencing this issue on a [supported version](https://www.electronjs.org/releases/stable) of Electron, please update this issue to reflect that version of Electron.
- Now adding the https://github.com/electron/electron/labels/blocked%2Fneed-info%20%E2%9D%8C label for this reason. This issue will be closed in 10 days if the above is not addressed.
|