A bulk endpoint is added at `/repo/{name}/refs`. The request payload should contain
a JSON array of dicts, e.g. [{"ref":"refs/tags/1234", "commit_sha1":<hash>}, ...].
The logic layer will use pygit2's `repo.create_reference` method to write the
requested ref names against the corresponding commits specified.
The response body indicates the refs that were successfully created and refs that
encountered errors. In case of logic layer failures (e.g. the commit cannot be found
in the repo), partial success is possible. In case of API layer failures (e.g. the
request body does not conform to what the API expects), the entire request will not
be processed and an API error will be returned.
Also includes corresponding unit tests for the new functions.
A bulk endpoint is added at `/repo/{name}/refs`. The request payload should contain
a JSON array of dicts, e.g. [{"ref":"refs/tags/1234", "commit_sha1":<hash>}, ...].
The logic layer will use pygit2's `repo.create_reference` method to write the
requested ref names against the corresponding commits specified.
The response body indicates the refs that were successfully created and refs that
encountered errors. In case of logic layer failures (e.g. the commit cannot be found
in the repo), partial success is possible. In case of API layer failures (e.g. the
request body does not conform to what the API expects), the entire request will not
be processed and an API error will be returned.
Also includes corresponding unit tests for the new functions.
Fix issue when overriding symlinked hooks over NFS
When overriding already symlinked hooks over NFS, the rename step
can briefly unlink the hook from the perspective of another machine,
meaning that git subprocesses won't run the python hook.
Fix issue when overriding symlinked hooks over NFS
When overriding already symlinked hooks over NFS, the rename step
can briefly unlink the hook from the perspective of another machine,
meaning that git subprocesses won't run the python hook.
Rather than having two different linters that might potentially
disagree, I removed the older one that was done via `flake8` in turnip's
own virtual environment rather than via `pre-commit`. I updated
`requirements.txt` with the aid of `pip freeze` - this found a few
missing entries as well as the ones I was able to remove.