Don't add `rust-lang-owner` to private streams
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 363
- Forks
- 369
- Avg merge
- 1d 54m
- Merged PRs (30d)
- 59
Description
Current status
At the moment, to manage private streams automatically within this repo, we add the rust-lang-owner user to the stream.
See:
This isn't great because users with access to the rust-lang-owner user credentials (i.e. the members of the infra-admins team) can log in with that user and read private conversations.
Proposed change
As noted in #t-infra > zulip Moderator vs mods @ 💬, there's a setting in zulip channels that allow to specify users that can add other people to the channel while not being part of the channel.
This means that rust-lang-owner could add people from the channel without being part of it. There's also the field "who can unsubscribe anyone from this channel", which would allow rust-lang-owner to also remove people from the channel.
Proof
- I created a test channel that only has me
- I added rust-lang in that setting field
- As you can see from the following picture, rust-lang-owner isn't present in the channel members:
How to
People who created the private stream could add rust-lang-owner to both those fields, so that from that point on, the stream can be managed in this repo.
Alternative
An alternative useful for streams that need to be created from scratch, is that:
rust-lang-ownercreates the stream, setting itself as a stream administrator- adds all the members to the stream
- removes itself from the stream members, leaving itself as stream administrator
More context
The only private stream configured through this repo we have at the moment is t-compiler/contrib-private:
This is just a mitigation
Note that people with access to rust-lang-owner can still add themselves or rust-lang-owner to private streams and read the messages, but when doing so, at least they would leave a trace.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with sync-team/src/zulip/mod.rs at the referenced line and inspect the private stream configuration in teams/compiler.toml. Review the linked Zulip discussion and verify how channel administrators or moderator fields can support the existing management flow. Done means the configured private stream can be managed without rust-lang-owner being a member, while membership changes remain traceable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100