fix(script): preserve unreserved script ID characters - #925
Open
ZIFeIYUuuuuuu wants to merge 1 commit into
Open
Conversation
🦋 Changeset detectedLatest commit: f4a5d92 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
ZIFeIYUuuuuuu
force-pushed
the
fix/842-script-id-path-encoding
branch
from
September 9, 2026 10:22
52bd0fe to
f4a5d92
Compare
Collaborator
|
/gemini review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix Apps Script run URLs by preserving unreserved script ID characters
Problem and reproduction
gws script scripts runbuilds a path containing{scriptId}. The generic path encoder currently percent-encodes every non-alphanumeric character, including RFC 3986 unreserved characters such as-and_.With this valid script ID:
the generated URL contains
%2Dand%5F. Apps Script's:runendpoint rejects that spelling with 404 even though the unencoded ID is valid.Root cause
render_path_templatealways calledencode_path_segment, whose stricter encoding also escapes unreserved characters. ThescriptIdpath parameter needs RFC 3986 unreserved characters preserved.Changes
-,_,., and~while continuing to percent-encode reserved and unsafe characters.scriptIdtemplate parameters; all other path parameters retain existing encoding behavior.v1/scripts/{scriptId}:runURL.Validation
cargo test -p google-workspace-cli executor::tests::test_build_url_preserves_unreserved_script_id_characters -- --exact --nocapture: 1 passed.cargo test -p google-workspace-cli executor::tests -- --nocapture: 34 passed.cargo fmt --all: passed.cargo clippy -p google-workspace-cli -- -D warnings -A clippy::collapsible-match: passed; the allow covers an existing unrelated warning inhelpers/script.rs.git diff --check: passed.Reserved characters remain escaped and non-
scriptIdpaths are unchanged. Closes #842.