NAME
App::karr::Git - Git operations for karr sync (native via Git::Native + libgit2, with a git-CLI transport fallback)
VERSION
version 0.401
SYNOPSIS
my $git = App::karr::Git->new(dir => '.');
$git->pull;
my @ids = $git->list_task_refs;
my $task = $git->load_task_ref($ids[0]);
DESCRIPTION
App::karr::Git provides the low-level Git interface used by karr for syncing board state through refs/karr/*. Local object/ref ops (read/write/ delete of refs, blobs, trees, commits) run natively via Git::Native (FFI to libgit2) with no fork/exec. SSH-agent and HTTPS-token credentials are supplied through the libgit2 credential-acquire callback.
Network fetch/push (fetch, pull, push, push_ref, pull_ref) also try the native libgit2 transport first. If that transport fails, they fall back to the system git CLI (via IPC::Open3), because libgit2/ libssh2 doesn't read ~/.ssh/config and can't run a ProxyCommand — directives like Host aliases, IdentityFile, and insteadOf only take effect through the CLI. Set KARR_NO_CLI_FALLBACK=1 to disable the fallback and surface native transport failures directly.
SEE ALSO
karr, App::karr, App::karr::BoardStore, App::karr::Task, App::karr::Config, Git::Native
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/karr/issues.
IRC
Join #langertha on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <getty@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.