tsrc
tsrc copied to clipboard
Allow manifest to be specified from local system when creating a new workspace
Environment
- Output of
tsrc version
: 0.6.6 - Output of
python --version
: 3.7.3 - Operating system: macOS HighSierra
Command you ran
$ tsrc init -f ~/myManifest.yml
$ tsrc sync
Our org uses gitlab and we have generally provided our own grouping via project structures.
We create a lot of repos and not everyone has permission to access all repos. I have produced a cli tool that will extract a tsrc manifest from the gitlab api (which I am happy to share) that is specific to a users permissions. I would love to just provide this manifest and not be required to store it in git.
So the full feature would be to provide a configuration where the init
with -f
flag will in the future assume that there is no manifest repo to sync and will only use whats provided to within the .tsrc/manifest/manifest.yml
to group and sync whats specified.
I obviously can speak to if this is a common usecase for others but being able to move away from handwriting a manifest and getting the orthogonality of groupings based on gitlab project nesting feels like a nice improvement for those using gitlab.
I have produced a cli tool that will extract a tsrc manifest from the gitlab api (which I am happy to share)
Looks interesting. Please do share it.
As for the feature itself, feel free to start a PR yourself, otherwise, I'll hake a look some time next week.
Well, actually I went ahead and implemented myself, along with a bunch of cleanups I was meaning to do for quite some time. See #148
@dmerejkowsky found this change but it turned out, it was later reverted. Any idea as to why? Is this never going to happen?
Ah. I think the functionality was lost in the refactoring. You can use tsrc apply-manifest
to read a manifest from the local filesystem in an existing workspace, but you need a git repository to run tsrc init
and ceate a workspace.
Is this never going to happen?
It depends :)
1/ You can create a dummy manifest in a git repo so that members in your repository can use in with tsrc init
and then use tsrc apply-manifest
2/ You can try and write a patch to restore the lost functionality
3/ Or use something different than tsrc