Good evening, how can I organize the work so that I can store and have all the project resources in the purchased private repository on Github and give people access to certain folders and files.
For example, a C ++ project to provide access to embedded pictures in binaries (only I can see the pictures) and assembled dlls (only I can see the source code too). I'm also going to organize several sln files (everything, a specific branch (with assembled dlls)
Unfortunately, the collaborators section gives read or read / write access to the entire repository.
Problem: preservation of intellectual labor while "hiring" Juns to help oneself.
Recently I came across an interesting tool – blackbox (by the way from the creators of StackExchange). The bottom line is that "secret" files are stored in the repository in an encrypted form and only users with the key can decrypt it. When a file is encrypted, the public keys of the users who will have access to the file are added to the access list. If the list of users changes, the file must be re-encrypted with the new public keys of the users. In this case, remote users will have access to the old revisions of the file.
How does it look to the user?
- Start the agent for working with keys, if necessary:
eval $(gpg-agent --daemon)
- Decrypt the file for editing:
blackbox_edit_start FILENAME(you will need to enter the password from the key)
- Edit file:
- Encrypt file:
- Commit changes:
git commit -a or hg commit
I haven't used it on my projects yet, so I can't say if it's convenient to use it in practice. What immediately raises suspicion is diffs / history viewing and pull requests.
Perhaps in your situation, you can create several repositories with different access levels for different users with the corresponding files in them. But maintaining multiple repositories with the same codebase is also not a pleasant thing.