Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My classmates and I, with help from someone on the GitKraken team, implemented a way to upload push options.
A refresher on what push options are: https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt
Justification: Push options are a popular way to specify additional parameters for Git hosting services. GitLab uses them to specify CI variables in their CI pipeline (https://docs.gitlab.com/ee/user/project/push_options.html), for instance. With the advent of Git GUIs using libgit2 to implement their Git support, we feel it important to reduce the functionality gap between the Git CLI and libgit2.
Intended use:
Should be noted that the way we designed this potentially breaks ABI compatibility. Open to suggestions on how to re-implement if this is not desired.
Let me know if there are any questions on the implementation. Tests ended up being a little weird because there didn't seem to be a nice way to implement them in the normal
ctest
suite, so we implemented our tests as CI tests. The changes we made aren't super complicated, so I'm hoping the code should be more-or-less self-explanatory but I of course could be wrong about that.