Git authentication for perl CGI-Script via .netrc



我有一个小的perl脚本,它试图从git存储库中提取,然后从git日志中获取一些东西:

 use Git::Repository;
 my $repo = Git::Repository->new(
         git_dir => $git_path,
 );
 $repo->run('pull') || die $!;
 my @commits = $repo->run(log);
 ...

对于身份验证,我有一个.netrc文件,其中包含我的凭据/home/bla.当脚本从 shell 运行时,这非常有效。现在我尝试将此脚本用于 Web 应用程序:

my $evil_commits = `./list_commits.pl`;

当我这样做时,它会产生以下错误消息:

[Thu Sep 19 12:50:49 2013] [error] [client <>] fatal: Could not read password: No such device or address at ./list_commits.pl line 45

我已经尝试在CGI脚本中设置$ENV{HOME},但这无济于事。关于我在这里缺少什么的任何建议?

您可以尝试从脚本中打印当前目录。这样,您将能够更改路径,使其指向相应的文件。


除此之外,我建议您使用ssh密钥。在这种情况下,您不需要任何密码文件。

最新更新