feat(ci): add Muninn security scanning and harden workflows#71
Conversation
Add Muninn on pull requests and main pushes with SARIF upload and PR comments. Pin third-party actions, fix composite action template injection, set explicit permissions, and resolve Muninn findings across CI workflows. Co-authored-by: Cursor <cursoragent@cursor.com>
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
|
Thanks for putting this together! The workflows are looking incredibly solid and the security upgrades are much appreciated. It looks like the initial CI run tripped up on a minor syntax issue in the setup-python steps. The actions/setup-python action doesn't accept false for the cache parameter; omitting the parameter entirely is the default way to disable caching. Could you remove the cache: false line from the setup-python blocks across the workflow files (specifically in smoke-test.yml, deploy-docs.yml, publish.yml, and action.yml)? Change this: To this: Once that is pushed, the automated tests should re-trigger and we can get this merged! |
actions/setup-python does not accept false for cache; omit the parameter to disable caching by default. Co-authored-by: Cursor <cursoragent@cursor.com>
Thanks for the review and for pointing that out! I've removed the Really appreciate the feedback and the kind words about the workflows and security improvements. |
Add workflow-level permissions for Checkov, suppress test fixtures and publish.yml cache-poisoning false positives. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace MD5 with SHA-256 for deterministic layout jitter and tighten Muninn suppressions for zizmor rule IDs and scan output artifacts. Co-authored-by: Cursor <cursoragent@cursor.com>
Semgrep flagged app.run(host="0.0.0.0") in site/app.py; default to 127.0.0.1 unless FLASK_HOST is set or FLASK_ENV is development. Also revert the unnecessary MD5→SHA-256 change in spatial_mapper.py from 5ebf5a9, which was not a Muninn finding. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
main, with SARIF upload to the GitHub Security tab and PR summary comments.muninn.yml(all eight scanners,fail-on: info) and targeted suppressions for intentional test fixtures and mock credentials.persist-credentials: falseon checkoutaction.ymlby passing inputs through env varszizmor.ymlignore for apublish.ymlcache-poisoning false positivemuninn.json,muninn.sarif) in.gitignoreTest plan
smoke-test,codeql,gitgalaxy) still pass