Skip to content

[WIP] git bare revision cooker

This cooker handles a single revision history up to a revision id. It outputs a Git bare repository of the revision, directory and file objects, packed into a tarball.

This implementation uses the dulwich library to handle git objects. It writes progressively a disk-backed repository in a temporary location before outputting the tarball info the destination in-memory file.

As dulwich tree objects can only be created from the leaves (files) to the root, the tree-processing algorithm iterates in a depth-first fashion.

Further work includes:

  • making it ready for production
  • output a git bundle which is easier to work with as a git user

Related to #843 (closed)

Test Plan

Did manual tests in docker environment. Tested by running the cooker module directly with the vault-worker configuration found in Docker.

TODO need a pytest test suite inspired by the other cookers.


Migrated from D4766 (view on Phabricator)

Merge request reports