-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: git Access, AccessMethod through BlobAccess #869
feat: git Access, AccessMethod through BlobAccess #869
Conversation
2e1d797
to
e0b7e97
Compare
Hello. So this work happens to be implementing this issue open-component-model/ocm-project#239. I'll assign it to you then. |
35d58d8
to
85476f7
Compare
ba042be
to
8668c5f
Compare
Hi @jakobmoellerdev, concerning your idea of git backed CTF repositories, if I understand your approach correctly, |
Hi @mandelsoft, thanks for taking a look. I think the semantical equivalent to a git push would be to close the repository. In your description that would be
Of course we can change the flow to
If you are concerned with that. In my view they are equivalent and the atomic commits are much more transparent when a change was made. However Im totally fine with your take as well, it shouldnt be too hard to change. I think we could change it so that there is one commit that has all the current commit messages in the commit body. Then we will have 1 commit. WDYT? |
46d6388
to
23271da
Compare
this is ready for a first pass review. We might change the way the commits are generated (see discussion above) but generally i would still like some input as its my first take on a larger change in this codebase |
593ea06
to
024b5e6
Compare
bf6ad2d
to
dd310b1
Compare
Just a quick update on this PR: I didnt get around to it yet, but I will probably remove the repo code because its unlikely to be used (as it all started for me to get into the OCM codebase). The AccessMethod etc can stay in and are still valid though. |
4e6daaf
to
ee0a161
Compare
ee0a161
to
8acba6c
Compare
335ab12
to
99e94bd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a few questions, but generally, this is working. :D
cmds/ocm/commands/ocmcmds/common/inputs/types/git/input_test.go
Outdated
Show resolved
Hide resolved
|
There are a few more tests to do as well. |
Co-authored-by: Gergely Brautigam <[email protected]>
# Conflicts: # go.sum
f78090d
to
f33ba3a
Compare
f33ba3a
to
46a9e2c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing job!! 👍
What this PR does / why we need it:
This is an extremely early (WIP) draft of implementing ctf archives in directory format tracked via git repositories, ultimately serving me as a playground to get familiar with OCM and also to play around with its feature set. So we do not need to merge this if there is no interest or disagreement on the implementation.This PR has developed into the development of a pure access method and input method that can be used to work with arbitrary git repositories. Examples for a component constructor could be:
Not only does this allow using git repositories for storing blobs, it also attempts to add git downloader functionality for a generic git access method based on in memory cloning and I plan to add a OCM implementation on it as well.While the download is available, this is not laid out to the CLI, library only.Currently the implementation is written so that any modification to the CTF in the work directory also triggers a dedicated commit, and any lookup triggers a refres/pull cycle on git.For testing I use
file://
URLs which makes it quite easy to verify E2E in the test suites.TODO:
Which issue(s) this PR fixes:
As this is my own "experimentation" issue, it doesnt necessarily fix anything, it might as well be moved to a plugin for example or be scrapped alltogetherCreates an access method for arbitrary git repositories using git-go.