Skip to content

Conversation

@aagbsn
Copy link
Contributor

@aagbsn aagbsn commented Jan 16, 2026

This is the same service as #1050 but with gitpython replaced with https://dulwich.io/ (https://github.com/jelmer/dulwicha) which is a python implementation of git. The reason for the switch is that the gitpython project spawns a git process but leaves hanging zombie processes that consume file descriptors

gitpython-developers/GitPython#1333
gitpython-developers/GitPython#1215

It seems that using the _clone() method (e.g. clone_from()) is the culprit because swapping out clone_from with dulwich.porcelain.clone solved the zombie process problem, so I just replaced the rest of the library and this eliminates git and gitpython as dependencies.

add test helpers from oonimeasurements: create_jwt, create_session_token, client_with_admin_role, client_with_user_role
FIXME: validation of session still fails, monkeypatch auth didn't seem to work
this is to preserve the keys in json response for backwards compatibility
update handler accepts either being None to differentiate behavior
api change in filelock 3.11.0 means that FileLock is not shared between threads by default
raises exception if lock was not held
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants