about summary refs log tree commit homepage
path: root/lib/PublicInbox/GitCredential.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/GitCredential.pm')
-rw-r--r--lib/PublicInbox/GitCredential.pm15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/PublicInbox/GitCredential.pm b/lib/PublicInbox/GitCredential.pm
index 826e7a55..c6da6a09 100644
--- a/lib/PublicInbox/GitCredential.pm
+++ b/lib/PublicInbox/GitCredential.pm
@@ -25,6 +25,21 @@ sub run ($$) {
         close $out_r or die "`git credential $op' failed: \$!=$! \$?=$?\n";
 }
 
+sub check_netrc ($) {
+        my ($self) = @_;
+
+        # part of the standard library, but distributions may split it out
+        eval { require Net::Netrc };
+        if ($@) {
+                warn "W: Net::Netrc missing: $@\n";
+                return;
+        }
+        if (my $x = Net::Netrc->lookup($self->{host}, $self->{username})) {
+                $self->{username} //= $x->login;
+                $self->{password} = $x->password;
+        }
+}
+
 sub fill {
         my ($self) = @_;
         my $out_r = run($self, 'fill');