feat: broaden safe pipe whitelist in gh permission hook (#2581)
## Summary
- Expanded the safe pipe destinations whitelist in the GitHub CLI
permission hook to include common text-processing commands like
`base64`, `cat`, `column`, `fmt`, `fold`, `paste`, `strings`, checksum
utilities, and more
- Previously, commands like `gh api ... | base64 -d` were blocked
because `base64` wasn't in the narrow allowlist
## Test plan
- [x] Verified `gh api
repos/dyad-sh/dyad/contents/.github/workflows/closed-issue-comment.yml
--jq '.content' 2>&1 | base64 -d` no longer blocked
- [x] All 784 unit tests pass
- [x] Lint and type checks pass
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- devin-review-badge-begin -->
---
<a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2581"
target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
<img
src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
alt="Open with Devin">
</picture>
</a>
<!-- devin-review-badge-end -->
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Expands the set of commands permitted in piped shell invocations,
which could widen the attack surface if the whitelist includes tools
with unexpected side effects; changes are contained to the permission
hook and docs.
>
> **Overview**
> Broadens the `gh` permission hook’s allowed pipe destinations from a
small set of utilities to a larger whitelist of common text-processing
commands (e.g., `base64`, `cat`, `column`, `strings`, and checksum
tools), so more `gh ... | <tool>` pipelines are auto-approved.
>
> Updates `rules/git-workflow.md` to document using `gh api
.../issues/{PR_NUMBER}/labels` as a workaround for `gh pr edit
--add-label` failing due to the GraphQL Projects (classic) deprecation
error.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
775a7623ae7bd4b484cf09626f425aaa2912b8f1. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Broadened the GitHub CLI permission hook’s safe pipe whitelist to
include more text-processing commands (e.g., base64, column, strings,
checksum tools), allowing gh ... | base64 -d. Clarified allowed-pipe
wording in the hook and updated git-workflow docs to use the REST API
for adding labels due to GraphQL “Projects (classic)” errors.
<sup>Written for commit 08eb796e50730e1e0ed78f2a55b2c9addb8c38cd.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
---------
Co-authored-by:
Claude Opus 4.6 <noreply@anthropic.com>
正在显示
请
注册
或者
登录
后发表评论