2010-05-04 2 views
4

Bugzilla API에서 작업하면서 Bugzilla 제품을 복제하기위한 빠른 Perl 스크립트를 작성했습니다 (새 구성 요소 아래 모든 구성 요소를 다시 작성). Bugzilla Perl API는 명령 행에서 사용하기가 쉽습니다. 데이터베이스에서 직접 작업했을 수도 있지만 장기적인 솔루션을 원했습니다. 또 다른 옵션은 webservice 였지만 이번에는 API를 직접 사용해 보려고했습니다.스크립트에서 Bugzilla Perl API를 사용할 때 어떻게 인증 할 수 있습니까?

내가 겪고있는 한 가지 문제는 새 구성 요소를 만들 수 있도록 Bz admin 사용자로 인증하는 것입니다. Bugzilla의 Bugzilla.pm 파일을 보면, 그들은 개체에서 login()을 실행 한 것을 볼 수 있습니다. 거기에 사용자 이름과 암호를 얻는 방법을 모르겠습니다. 나는 Bugzilla 관리 인터페이스에 스크립트를 추가 할 수 있다고 생각합니다 ...

여러분 중 올바른 방향으로 나를 가리킬 수 있습니까?

+0

위의 Bugzilla API URL은 404 오류를 생성합니다. – jeremiah

+1

"팁"개발 버전을 언급하겠습니다. 누군가가 원하는 정확한 버전이 아닐지라도 말입니다. http://www.bugzilla.org/docs/tip/en/html/api/ 또는 기본 docs 페이지, http://www.bugzilla.org/docs/ –

답변

2

아, 오늘이 아니라 무식한거야, 내가 "웹 서비스"에 초점을 맞추고 당신이 정말로 원하는 것을 이해하지 못했다.

데이터베이스를 직접 조작하는 대신 API를 사용하여 데이터베이스와 통신하는 경우 실제로 모든 사용자로 인증해야합니까?

3.2 소스 트리에서 Bugzilla::User 개체를 사용하는 예를 들어 merge-users.pl을 확인하십시오. Bugzilla::Component과 동일하게 수행 할 수 없습니까?

sanitycheck.pl도보고 Bugzilla->set_user을 사용해야합니다.

+0

감사합니다. 그것은 매우 도움이됩니다. Bugzilla-> usage_mode (Bugzilla :: Constants :: USAGE_MODE_CMDLINE)와 함께 Bugzilla-> set_user()를 사용하여 스크립트를 작성했습니다.이 스크립트를 사용하면 원하는 모든 구성 요소를 복사 할 수 있습니다. –

2

웹 서비스 기능에서 몇 가지 중요한 업그레이드가있었습니다. 3.2 이후로 업그레이드 할 수 있습니까?

적어도 3.6에서 User.login 방법을 사용하는 방법은 contrib/bz_webservice_demo.pl을 확인하십시오.

http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/User.html

+1

일부 로컬 사용자 정의로 인해 업그레이드가 쉽지 않습니다. 하지만 언젠가는하고 싶습니다. 웹 서비스를 사용하는 나의 실제 문제는 새로운 제품이나 컴포넌트를 추가 할 수있는 방법이 없다는 것입니다. [1] : http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Product.html –

1

다음 코드 단편은 질문을 입력 할 수 있습니다. 여기에서는 사용자가 올바른 "editcomponents"자격 증명을 가지고 있는지 확인합니다.

my $user = new Bugzilla::User({ name => $login }) 
    || ThrowUserError('invalid_username', { name => $login }); 


# Authenticate using this user account. 
Bugzilla->set_user($user); 
$user->in_group('editcomponents') 
     || ThrowUserError("auth_failure", {group => "editcomponents", 
             action => "add", 
             object => "products"}); 
관련 문제