libgit2 / libgit2/pygit2

Support for creating zip archives

Open
#1,239 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.7k
Forks
408
Avg merge
2d 57m
Merged PRs (30d)
7

Description

Given that pygit2 is probably the best option for Python developers building cross-platform Git applications
When a Windows (or, to a lesser extent) Mac user wants to create an archive, equivalent to using the git archive command,
Then they probably are going to want to create a zip archive
So that archive can be opened easily with their system's default file explorer

pygit2.Repository.write_archive currently only supports tarfiles.

I have written my own version of this method that I would like to contribute back to the project which supports creating zip archives, to the extent possible with the zipfile library (read: does not support symlink).

If that is something the maintainers would be interested in, please let me know, and I'll rework this into a PR that adds the code to repository.py and matches the existing style guide.

Thanks for building and maintaining such a stellar library!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in repository.py at Repository.write_archive and compare its current tarfile behavior with the proposed zipfile-based implementation linked in the issue. Confirm the supported archive options and the stated symlink limitation, then consider the work complete when write_archive can create zip archives in the requested cross-platform use case.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, python
Domain
backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.