Skip to content

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.

  1. 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.
  2. You confirm that write, now, by retyping the repository name. Every time. Approval is per invocation and never remembered.
Terminal window
oss run --approve-upstream apache/logging-log4j2 hub --pr 4234

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.

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.