When using GitHub Git LFS, you can use GitHub's functions as they are.
You can use useful features such as code owner, GitHub Actions with ml-cellar check, and GitHub issues.
By using GitHub as the remote repository for Git LFS, you can manage model uploads through a pull request–based workflow. This enables the familiar “develop → review → approve” flow in an interface many software engineers already know well, reducing both the practical workload and the psychological friction for engineers.
You can use a PR template so every model addition includes:
- Dataset version
- Eval protocol
- Intended use & known limitations
- Compatibility (pre/post-processing, input size, dependencies)
You can also link PRs to Issues to keep the “why” discoverable later.
Access control also becomes straightforward, since permissions can be managed simply by tying them to GitHub accounts. Because access control can be centralized around GitHub accounts, it’s easier for repository owners to keep administrative overhead lower than with in-house software.
You can use CODEOWNERS for rack/model name to protect each rack.
Here is .github/CODEOWNERS example.
/vit/ @cv-team
/llm-model/ @llm-team
/**/project_A/ @project_A
You can enforce rules such as requiring reviews from the team operating a project for project-specific models, while requiring reviews from the R&D team for foundation models.
You can combine this with branch protection / Rulesets:
- PR required
- Required approvals (N reviewers)
- Require CODEOWNERS approval
This prevents “silent” model additions or swaps.
You can stop relying on humans to catch mistakes — let CI block invalid changes.
Typical flow:
- GitHub Actions runs
ml-cellar checkon PRs - Mark the workflow as a required status check
This automatically catches:
- Missing required files
- Unexpected files
- Broken directory/version structure