Github is a document store. Each repository is a document. Transactions are easy to execute within a
document and only eventually consistent across documents.
If your documents are too large, the scope of your transactions will be excessive, and you will get contention. If your documents are too small, the scope of your transactions will be insufficient, and you will be forced to manage changes across multiple transactions.
Each service is an aggregate root, so design them so that they can be evolved independently.