Skip to content

feat: add new dataflow analysis, replacing existing analysis for GitHub Actions#1229

Merged
nicallen merged 4 commits intomainfrom
nicallen/new-dataflow-analysis
Dec 11, 2025
Merged

feat: add new dataflow analysis, replacing existing analysis for GitHub Actions#1229
nicallen merged 4 commits intomainfrom
nicallen/new-dataflow-analysis

Conversation

@nicallen
Copy link
Member

@nicallen nicallen commented Nov 4, 2025

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

  • I have reviewed the contribution guide.
  • My PR title and commits follow the Conventional Commits convention.
  • My commits include the "Signed-off-by" line.
  • I have signed my commits following the instructions provided by GitHub. Note that we run GitHub's commit verification tool to check the commit signatures. A green verified label should appear next to all of your commits on GitHub.
  • I have updated the relevant documentation, if applicable.
  • I have tested my changes and verified they work as expected.
    • In addition to unit and integration tests, evaluated effect on build spec generation for 100 purls from reproducible central dataset, for the vast majority the results were unchanged, and there were no significant undesirable differences.

@nicallen nicallen requested a review from behnazh-w as a code owner November 4, 2025 01:20
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Nov 4, 2025
@behnazh-w behnazh-w changed the title feat: add new dataflow analysis, replacing existing analysis for GitH… feat: add new dataflow analysis, replacing existing analysis for GitHub Actions Nov 4, 2025
@nicallen nicallen force-pushed the nicallen/new-dataflow-analysis branch from b6d423e to 0f120aa Compare November 4, 2025 01:24
Copy link
Member

@behnazh-w behnazh-w left a 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.
]

…ub Actions.

Signed-off-by: Nicholas Allen <nicholas.allen@oracle.com>
Signed-off-by: Nicholas Allen <nicholas.allen@oracle.com>
Signed-off-by: Nicholas Allen <nicholas.allen@oracle.com>
Narrow pylint suppression for bashparser model definitions and add
explanatory comment.
Suppress sphinx warning caused by forward references.
Regenerated docs.

Signed-off-by: Nicholas Allen <nicholas.allen@oracle.com>
@nicallen nicallen force-pushed the nicallen/new-dataflow-analysis branch from db374f5 to 6bbe462 Compare December 11, 2025 01:27
@nicallen nicallen merged commit d6627df into main Dec 11, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants