Skip to content

Trustabl Agent scanner - #301

Open
joshua-trustabl wants to merge 1 commit into
zvadaadam:mainfrom
joshua-trustabl:add-trustabl-action
Open

Trustabl Agent scanner#301
joshua-trustabl wants to merge 1 commit into
zvadaadam:mainfrom
joshua-trustabl:add-trustabl-action

Conversation

@joshua-trustabl

@joshua-trustabl joshua-trustabl commented Jul 31, 2026

Copy link
Copy Markdown

We came across your repo and we like how you enable developers to access AI coding agents from various devices, making development more accessible and flexible. We scanned the repo, and noticed agent runtime reliability findings that might be worth reviewing.

  1. Skill fetches untrusted external content
    File: packages/device-use/skills/device-use/SKILL.md
    What it means: This skill's body references an external http(s) URL. This can introduce security vulnerabilities by allowing malicious code execution or data leakage.

Recommendations are based on our understanding of agent runtime reliability, some findings may be intentional. Please let us know if this was intentional or if our findings are helpful so we can improve the accuracy of the scanner.

Best,
Trustabl.ai
Open-source AI agent reliability scanner (runs locally, GitHub Action)

Summary by CodeRabbit

  • Chores
    • Added automated Trustabl checks for changes pushed to the main branch and submitted pull requests.
    • Enabled automated security analysis and pull-request reporting through the project’s continuous integration workflow.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The pull request adds a Trustabl GitHub Actions workflow. The workflow runs on pushes to main and pull requests, grants the required permissions, checks out the repository, and runs trustabl/trustabl-action@v0.

Changes

Trustabl CI integration

Layer / File(s) Summary
Trustabl workflow setup
.github/workflows/trustabl.yml
Adds triggers, permissions, an Ubuntu runner, repository checkout, and the Trustabl action.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the added Trustabl security scanning workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Warning

⚠️ This pull request has been flagged as potential spam (promotional) by CodeRabbit slop detection and should be reviewed carefully.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/trustabl.yml:
- Line 16: Update the actions/checkout@v4 step in the workflow to set
persist-credentials to false, while leaving the existing Trustabl use of
github.token for SARIF uploads unchanged.
- Line 17: Update the Trustabl workflow step using trustabl/trustabl-action so
the action reference is pinned to a reviewed full commit SHA instead of the
moving v0 tag, and configure the action with an explicit approved Trustabl CLI
scanner release rather than its latest default. Preserve the existing workflow
permissions and behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6742cf2f-533e-413e-ac50-0e017ef85fcb

📥 Commits

Reviewing files that changed from the base of the PR and between 7092995 and 3eda0c2.

📒 Files selected for processing (1)
  • .github/workflows/trustabl.yml

scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== workflow around checkout =="
sed -n '1,80p' .github/workflows/trustabl.yml | cat -n

echo
echo "== all actions in workflow =="
grep -nE '^\\s*('-+|uses:|persist-credentials:|github.token|permissions:)' .github/workflows/trustabl.yml || true

Repository: zvadaadam/deus-machine

Length of output: 666


🌐 Web query:

actions/checkout v4 persist-credentials default true README

💡 Result:

In actions/checkout v4, the persist-credentials input defaults to true [1][2]. When set to true, the action configures the local git repository with the authentication token or SSH key used for the checkout [3][4]. This allows subsequent steps in your workflow to run authenticated git commands (e.g., git push or git pull) without needing to manually configure credentials [3][5]. The token is removed during the post-job cleanup phase [3][4]. To opt-out of this behavior and prevent the credentials from being added to the local git config, you must explicitly set persist-credentials to false in your workflow file [3][5]: - uses: actions/checkout@v4 with: persist-credentials: false While the default remains true in v4 [1][2], discussions within the project have noted security considerations regarding this default, leading some users to prefer disabling it when authenticated git operations are not required by downstream steps [6].

Citations:


Disable checkout credential persistence.

actions/checkout@v4 persists the checkout token only when needed for authenticated Git operations. Set persist-credentials: false on checkout to avoid leaving the token in repo config for the Trustabl step. Trustabl can still use ${{ github.token }} for SARIF uploads.

Proposed fix
       - uses: actions/checkout@v4
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.28.0)

[warning] 16-16: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/trustabl.yml at line 16, Update the actions/checkout@v4
step in the workflow to set persist-credentials to false, while leaving the
existing Trustabl use of github.token for SARIF uploads unchanged.

Source: Linters/SAST tools

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: trustabl/trustabl-action@v0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== workflow excerpt =="
if [ -f .github/workflows/trustabl.yml ]; then
  cat -n .github/workflows/trustabl.yml
else
  echo ".github/workflows/trustabl.yml not found"
fi

echo
echo "== git status/stat =="
git status --short
git diff --stat || true

echo
echo "== search for trustabl usage =="
rg -n "trustabl/trustabl-action|trustabl-action|security-events|pull-requests" .github/workflows || true

Repository: zvadaadam/deus-machine

Length of output: 821


🌐 Web query:

trustabl/trustabl-action README uses version: latest security-events write pull-requests write

💡 Result:

The trustabl/trustabl-action GitHub Action requires specific repository permissions to enable its automated reporting features [1]. In the action's workflow configuration, the permissions are defined as follows: permissions: contents: read security-events: write # Enables uploading SARIF reports to the Security tab pull-requests: write # Enables adding a sticky comment to the Pull Request These permissions serve the following purposes: - security-events: write: This allows the action to upload scan results in the SARIF format to the repository's GitHub Code Scanning "Security" tab, which also enables inline PR alerts [1][2]. - pull-requests: write: This allows the action to post a sticky summary comment on a pull request, providing human-readable feedback on the findings [1]. If these permissions are omitted, the action degrades gracefully: it will still perform the scan and provide feedback via the job's Step Summary and inline annotations, but it will skip the automated security tab upload and the sticky PR comment [1]. On fork pull requests, where tokens are restricted to read-only access by default, these write actions are skipped automatically [1]. Regarding the use of version: latest in the README example: while often seen in configuration snippets, it is generally recommended to use a specific version tag (e.g., v0.5.0) for reproducible CI pipelines to prevent unexpected changes in behavior between runs [1].

Citations:


🌐 Web query:

trustabl/trustabl-action v0 README uses version: latest security-events write pull-requests write

💡 Result:

The permissions security-events: write and pull-requests: write in the trustabl/trustabl-action workflow are required to enable specific features of the GitHub Action [1]: * security-events: write: This permission is necessary for the action to upload SARIF (Static Analysis Results Interchange Format) files to the repository's Security tab, enabling GitHub's code scanning features [1][2][3]. * pull-requests: write: This permission is required for the action to post a sticky summary comment on pull requests and to provide inline annotations for findings directly within the pull request interface [1]. It is standard practice for GitHub Actions that perform security analysis and interact with pull requests to require these write permissions to function as intended [4][3][5]. The trustabl/trustabl-action documentation recommends these settings to ensure the action can fully surface scan results where developers work [1].

Citations:


🌐 Web query:

github trustabl/trustabl-action defaults version latest action.yml

💡 Result:

For the trustabl/trustabl-action, the default value for the version input is latest [1][2]. This version input determines which release tag of the trustabl CLI is downloaded and executed by the action. While latest is the default, users are encouraged to pin a specific release version (e.g., v0.5.0) in their workflow configuration to ensure reproducible CI runs [1][2].

Citations:


🌐 Web query:

github trustabl/trustabl-action action.yml version input default latest

💡 Result:

In the trustabl/trustabl-action GitHub Action, the version input has a default value of latest [1][2]. This input specifies the trustabl release tag to run, such as v0.5.0, or can be set to latest to automatically use the most recent release [1][2].

Citations:


Pin the Trustabl action and scanner release.

trustabl/trustabl-action@v0 is a moving major tag, and the action defaults the scanner version to latest. When this workflow runs, the moving action code executes with security-events: write and pull-requests: write; pin the action to a reviewed full commit SHA and set an explicit approved Trustabl CLI release.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/trustabl.yml at line 17, Update the Trustabl workflow step
using trustabl/trustabl-action so the action reference is pinned to a reviewed
full commit SHA instead of the moving v0 tag, and configure the action with an
explicit approved Trustabl CLI scanner release rather than its latest default.
Preserve the existing workflow permissions and behavior.

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.

1 participant