Writing upstream
Reading a public repository is free to get wrong. Writing to one is not: a comment reaches every watcher and the mailing list the instant it is sent, and deleting it afterwards reaches neither. There is no undo, only a correction with an audience.
Every outward write is refused by default. There is no stored credential, no environment variable and nothing remembered between runs — because each of those becomes a thing switched on once and then forgotten, after which the protection exists only in the belief that it exists.
Two things, both required
Section titled “Two things, both required”- You name the repository —
--approve-upstream owner/name. The name is compared, not merely counted: an approval for one repository is not an approval for another. - You confirm that write, now, by retyping the repository name. Every time. Approval is per invocation and never remembered.
oss run --approve-upstream apache/logging-log4j2 hub --pr 4234It binds every path equally
Section titled “It binds every path equally”A command, a dispatched extension, a local model, a cloud model. A model that has decided a comment should be posted has decided nothing — it still comes through the guard, and the guard still asks the person.
A read-only token, as well
Section titled “A read-only token, as well”The credential itself can enforce this. A classic token with no scopes ticked reads public data and runs every search these tools need, and cannot write anywhere.
public_repo is commonly described as read-only and is not — it grants write to
public repositories.