FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Add functionality for parsing Action inputs from a workflow file by henrymercer · Pull Request #1392 · github/codeql-action · GitHub

Add functionality for parsing Action inputs from a workflow file - #1392

Merged
henrymercer merged 8 commits into
mainfrom
henrymercer/parse-category
Dec 1, 2022
Merged

henrymercer merged 8 commits into
mainfrom
henrymercer/parse-category

Conversation

henrymercer commented Nov 23, 2022
edited
Loading

Copy link
Copy Markdown
Contributor

In order to upload SARIF files for code scanning runs where the init step failed, we need to be able to handle the case where the analyze Action did not run. In this case, the post-analyze step will not be run, and therefore we don't know the inputs to analyze. (In particular, we care about category, upload, and checkout_path.)

This PR implements some functionality to make a best effort attempt to work out the value of an input to an Action given the workflow file and information that's available to the init step like matrix variables. I recommend reviewing the first commit separately since it separates out workflow-related code into a separate file workflow.ts.

Merge / deployment checklist

  • Confirm this change is backwards compatible with existing workflows.
  • Confirm the readme has been updated if necessary.
  • Confirm the changelog has been updated if necessary.

henrymercer marked this pull request as ready for review November 24, 2022 15:23
henrymercer requested a review from a team as a code owner November 24, 2022 15:23
Comment thread src/workflow.ts Outdated
Comment thread src/workflow.ts Outdated
This better handles cases where customers have a monorepo and have
separate jobs for different components.

aeisenberg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

OK. This will now throw if we can't determine what the actual input value is. I don't actually see where getting the category is being used. Is that coming in a later PR? We should make sure that the action doesn't fail if it can't find the category (most likely, the action will already have failed for some other reason, so we need to at least make sure that this failure doesn't hide the original failure).

Copy link
Copy Markdown
Contributor Author

This functionality is just for #1393 — ideally we'd minimise the number of places where we need to do this hacky parsing of the workflow. We wrap it in a try-catch block there to avoid hiding the original failure as you mention. I think the tryOrThrow names should make it fairly obvious that these functions should generally be surrounded by try-catch blocks — is there anything else we should do to avoid future consumers creating bugs?

Copy link
Copy Markdown
Contributor

I think that all makes sense. I'll review #1393 later today. Maybe just adding a comment to the function suggesting that it should be wrapped in a try-catch.

aeisenberg previously approved these changes Nov 28, 2022

aeisenberg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

LGTM. Optionally, add a comment to the tryOrThrow... functions to suggest wrapping in try-catch.

henrymercer merged commit 0d9b15c into main Dec 1, 2022
henrymercer deleted the henrymercer/parse-category branch December 1, 2022 18:26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants


Back | FazBrowse Home | New Git URL