-
Notifications
You must be signed in to change notification settings - Fork 30
feat: add new dataflow analysis, replacing existing analysis for GitHub Actions #1229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ub Actions. Signed-off-by: Nicholas Allen <nicholas.allen@oracle.com>
src/macaron/code_analyzer/dataflow_analysis/run_analysis_standalone.py
Dismissed
Show dismissed
Hide dismissed
b6d423e to
0f120aa
Compare
Signed-off-by: Nicholas Allen <nicholas.allen@oracle.com>
Signed-off-by: Nicholas Allen <nicholas.allen@oracle.com>
behnazh-w
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can suppress the Sphinx warnings in docs/source/conf.py:
suppress_warnings = [
'sphinx_autodoc_typehints.forward_reference', # Sphinx has issues with resolving forward references.
]| @@ -0,0 +1,836 @@ | |||
| # Copyright (c) 2024 - 2025, Oracle and/or its affiliates. All rights reserved. | |||
| # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/. | |||
| # Licensed under the Universal Permissive License v 1.0 as shown at https:#oss.oracle.com/licenses/upl/. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There copyright header is duplicated.
| # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/. | ||
| # Licensed under the Universal Permissive License v 1.0 as shown at https:#oss.oracle.com/licenses/upl/. | ||
| # pylint: skip-file | ||
| # flake8: noqa |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reason for disabling the linters for this file?
| from __future__ import annotations | ||
|
|
||
| from enum import Enum | ||
| from typing import Any, Literal, NotRequired, Optional, TypedDict, TypeGuard, Union |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like Any and Optional are not used, but that was not picked up because the linters were disabled.
Summary
Add a new dataflow analysis implementation, which provides a framework for sophisticated static analysis of build pipeline specifications (including GitHub Actions workflows, Bash shell scripts). Replaces the existing analysis for callgraph and build command identification.
Description of changes
Adds new dataflow analysis implementation. Removes previous callgraph representation and analysis. Updates checks to use new analysis for identification of build commands. Updates unit tests to work with the changes. Adds two new dependencies: lark (parser library used to implement parsing of GitHub expression language) and frozendict (data structure library used within dataflow analysis where hashable dicts are needed).
Related issues
Checklist
verifiedlabel should appear next to all of your commits on GitHub.