github-script icon indicating copy to clipboard operation
github-script copied to clipboard

Unhelpful errors on syntax issues

Open dktapps opened this issue 1 year ago • 1 comments

Is your feature request related to a problem? Please describe.

Currently problems with action code can cause errors like this:

SyntaxError: Unexpected token '.'
    at new AsyncFunction (<anonymous>)
    at callAsyncFunction (/home/runner/work/_actions/actions/github-script/v7/dist/index.js:[35](https://github.com/dktapps/RestrictedActions/actions/runs/11989435916/job/33425884775#step:4:36)424:16)
    at main (/home/runner/work/_actions/actions/github-script/v7/dist/index.js:35522:26)
    at /home/runner/work/_actions/actions/github-script/v7/dist/index.js:35497:1
    at /home/runner/work/_actions/actions/github-script/v7/dist/index.js:35553:3
    at Object.<anonymous> (/home/runner/work/_actions/actions/github-script/v7/dist/index.js:35556:12)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
    at Module.load (node:internal/modules/cjs/loader:1208:32)
    at Module._load (node:internal/modules/cjs/loader:1024:12)

I haven't the faintest clue where or why this happened with my code. Plugging it into a linter didn't reveal any problems.

It would be nice if the error output included a line number in the actual action code to show where the problem occurred, or even better printed the line in question.

Here's the code this happened with, if it's relevant:

      - name: "Check if bot's review was dismissed (pull_request_review.dismissed only)"
        id: re-review
        uses: actions/github-script@v7
        env:
          APP_SLUG: ${{ steps.generate-token.outputs.app-slug }}
          REVIEWER_ID: ${{ github.event.client_payload.reviewer_id }}
        with:
          github-token: ${{ steps.generate-token.outputs.token }}
          script: |
            const reviewer_id = process.env.REVIEWER_ID;
            console.log(reviewer_id);
            if (reviewer_id === "0") {
              console.log("No reviewer ID provided, continuing with re-review");
              core.setOutput('skip', 'false');
            } else {
              console.log("Reviewer ID provided: " + reviewer_id);
              const user_info = await github.rest.users.getByUsername({
                process.env.APP_SLUG + '[bot]'
              });
              const bot_user_id = user_info.data.id;
              if (bot_user_id != reviewer_id) {
                console.log(`Not the bot's review that was dismissed (expected user ID: ${bot_user_id}, got: ${reviewer_id})`);
                console.log('Skipping re-review');
                core.setOutput('skip', 'true');
              } else {
                console.log("Bot's review was dismissed, continuing with re-review");
                core.setOutput('skip', 'false');
              }
            }

Describe the solution you'd like

It would be nice if the error output included a line number in the actual action code to show where the problem occurred, or even better printed the line in question.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here.

dktapps avatar Nov 23 '24 18:11 dktapps

Turns out the problem was:

              const user_info = await github.rest.users.getByUsername({
-                process.env.APP_SLUG + '[bot]'
+                username: process.env.APP_SLUG + '[bot]'
              });

Regardless, the error reporting of the action could be improved.

dktapps avatar Nov 23 '24 18:11 dktapps