-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Proposal: Namespace all git-drs configuration under lfs.customtransfer.drs.*
Summary
Standardize all git-drs configuration so that every config key is namespaced under:
lfs.customtransfer.drs.*
This aligns git-drs with Git LFS custom transfer conventions, avoids global namespace pollution, and makes configuration intent unambiguous.
Current State
The current configuration mixes LFS-scoped keys with global drs.* keys:
lfs.standalonetransferagent=drs
lfs.customtransfer.drs.path=git-drs
lfs.customtransfer.drs.upsert=true
lfs.customtransfer.drs.multipart-threshold=10
lfs.customtransfer.drs.args=transfer
lfs.customtransfer.drs.concurrent=true
lfs.customtransfer.drs.enable-data-client-logs=false
drs.default-remote=calypr-dev
drs.remote.calypr-dev.type=gen3
drs.remote.calypr-dev.endpoint=https://calypr-dev.ohsu.edu/
drs.remote.calypr-dev.project=cbds-monorepos
drs.remote.calypr-dev.bucket=cbdsProblems With the Current Layout
1. Namespace pollution
Using top-level drs.* keys pollutes the global git config namespace and risks collisions.
2. Ambiguous ownership
These settings are only meaningful to the drs LFS transfer agent.
3. Harder debugging
Users expect LFS-related config under lfs.*.
4. Inconsistent with Git LFS patterns
Git LFS extensions consistently scope under lfs.customtransfer.<name>.*.
Proposed Change
All git-drs configuration must live under:
lfs.customtransfer.drs.*
Mapping
| Current key | Proposed key |
|---|---|
drs.default-remote |
lfs.customtransfer.drs.default-remote |
drs.remote.<name>.type |
lfs.customtransfer.drs.remote.<name>.type |
drs.remote.<name>.endpoint |
lfs.customtransfer.drs.remote.<name>.endpoint |
drs.remote.<name>.project |
lfs.customtransfer.drs.remote.<name>.project |
drs.remote.<name>.bucket |
lfs.customtransfer.drs.remote.<name>.bucket |
Backward Compatibility
Support both namespaces temporarily and emit a deprecation warning for drs.*.
Recommendation
Adopt a strict rule:
All configuration consumed by the
drsGit LFS transfer agent must be prefixed withlfs.customtransfer.drs.