Скачать отчеты из Bugzilla
У нас есть экземпляр Bugzilla, защищенный паролем, и я хотел бы загрузить отчет в формате CSV.
С помощью
wget $URL
или же
curl $URL
Я не получаю ни ошибки, ни запроса на аутентификацию. Bugzilla просто поставляет файл 0 байт
То же самое происходит с браузером. Если я наберу URL, я получу пустой файл. Если я войду на какую-либо страницу Bugzilla раньше, Bugilla доставит файл.
Есть ли способ пройти проверку подлинности из командной строки, сохранить cookie-файл и затем извлечь отчет, используя те же cookie-файлы?
1 ответ
Решение
Хорошо, возможно есть лучшие решения, но это можно сделать с помощью небольшого Perl-скрипта.
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
use Readonly;
Readonly::Scalar my $base_url => 'https://example.org';
Readonly::Scalar my $url => "$base_url/bugzilla/report.cgi?...&ctype=csv&format=table";
# just as an example: put them in a property file
Readonly::Scalar my $username => 'USERNAME';
Readonly::Scalar my $password => 'PASSWORD';
my $mech = WWW::Mechanize->new();
$mech->get("$url&GoAheadAndLogIn=1");
my %login = (
"Bugzilla_login"=> $username,
"Bugzilla_password"=> $password
);
$mech->set_fields(%login);
$mech->submit( 'GoAheadAndLogIn' );
$mech->get( $url );
$mech->save_content( 'name.csv' );
1;