You can have team-based or private repos hosted by Keybase. Everything is encrypted and signed before it leaves your computer, and decrypted and verified when your computer downloads it. But your local checkout of that git repo is unencrypted. It's just a normal repo. So Github Desktop has full access to it, like it does for all files in your local filesystem.
> - How could CI/CD be set up? (Is read-only access possible to the repo? Would Keybase work on a Jenkins box? Could a deploy server verify signatures before deploying?
You could have a deploy/CI user as a "reader" in your team. But we don't yet support hooks or anything (as that implies running arbitrary code on endhosts without their knowledge), so it would have to pull the repo.
> Could one set up mirroring to GitHub? How would this work? (I could see the signing without encryption as a value-add)
You can of course continue to use Github as a regular remote, but you'd lose all the encryption and signing unfortunately.
> - What happens in the event of a force push? Could certain users destroy history?
We do currently allow force pushes. Being able to turn that off on a repo-by-repo basis is something we'll consider in the future, definitely.
> Could protected branches eventually be added, eg only certain users can push to master?
Yes, but again, as with any "server"-side feature, this is complicated by the fact that it has to run on the client itself, and thus isn't really strictly enforceable against modified clients.
As we get more experience with people using this, we will definitely be thinking about how to make it better by adding power features like these. Thanks for the feedback!
> 1. Is there (or will there be) any way to create an encrypted git repo shared between a few users that aren't part of a team? e.g. could I create a repo that belongs to eridius,chris and have us both access it?
Yep, though it's undocumented and it won't show up in the GUI right now (maybe ever). You can just push/pull directly to repos like "keybase://private/u1,u2,u3/foo" and it will create it on the fly. But we warned, there's currently no way to delete those, and typos in the git URL can cause unintended repos to pop up.