tsrc icon indicating copy to clipboard operation
tsrc copied to clipboard

Allow manifest to be specified from local system when creating a new workspace

Open ninjapanzer opened this issue 5 years ago • 4 comments

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.

ninjapanzer avatar Jul 04 '19 00:07 ninjapanzer

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.

dmerejkowsky avatar Jul 04 '19 08:07 dmerejkowsky

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 avatar Jul 05 '19 12:07 dmerejkowsky

@dmerejkowsky found this change but it turned out, it was later reverted. Any idea as to why? Is this never going to happen?

SashaOv avatar Jul 28 '22 00:07 SashaOv

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 initand 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

dmerejkowsky avatar Jul 28 '22 08:07 dmerejkowsky