2013-08-09 5 views

risposta

2

In primo luogo è necessario aggiungere un collegamento applicazione per JIRA per la vostra applicazione: https://confluence.atlassian.com/display/JIRA060/Configuring+Application+Links

Per Nel caso in cui l'applicazione che accede a JIRA non sia un'applicazione Web, è possibile utilizzare URL arbitrario come URL dell'applicazione, ma tale URL verrà utilizzato per recuperare l'icona dell'applicazione quando viene visualizzata nell'elenco di collegamenti dell'applicazione nell'interfaccia utente amministrativa di JIRA.

Quindi è necessario eseguire una cosiddetta "oauth dance" per ottenere un token OAuth e il relativo segreto corrispondente. Si prega di dare un'occhiata agli esempi di Atlassian qui: https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src

Questi esempi coprono principalmente la danza stessa, mentre l'autenticazione tramite token + segreto OAuth (che viene ricevuto durante la danza) è documentata qui: http://jira.readthedocs.io/en/latest/examples.html#oauth. Spero che aiuti.

Almeno ha funzionato per me (anche in Python per il mio caso). :)

9

Anche io sto usando jira-python. Poiché jira-python utilizza requests e requests-oauthlib ho utilizzato le stesse librerie per implementare il ballo OAuth 1 necessario per ottenere i token.

In primo luogo, l'installazione JIRA:

  1. Generare RSA/coppia di chiavi pubblica e privata (si finisce con rsa.pub e rsa.pem file). Il tuo codice Python avrà bisogno di accedere alla chiave privata rsa.pem.
  2. Configurare un'applicazione JIRA (eseguita in JIRA admin in "Link applicazione") con "Autenticazione in entrata" e utilizzare la chiave pubblica generata sopra. Questo è dove si specifica il consumer_key necessaria per jira-python

Avanti, la danza OAuth. È piuttosto semplice con OAuth1Session da requests-oauthlib. Ecco un semplice esempio (CLI): JIRA Oauth in Python.

Il flusso di lavoro è descritto nei documenti requests-oauthlib: OAuth 1 Workflow.

Quindi, per riassumere:

  • access_token - ottenuti alla fine del OAuth 1 del flusso di lavoro.
  • access_token_secret - Ottenuto alla fine del flusso di lavoro OAuth 1.
  • tasto consumer - Specificato quando si imposta un "Link applicazione" nell'amministratore JIRA.
  • key_cert - Il contenuto del file rsa.pem (chiave privata). La chiave pubblica viene aggiunta anche quando si imposta "Link applicazione" nell'amministratore JIRA.
+0

Ha funzionato! Per aiutare se qualcuno ha problemi, usalo per cambiare lo script suggerito in questa risposta: https: //community.atlassian.com/T5/Risposte-Developer-Questions/VerifierMissing-eccezioni-mentre-facendo-Oauth-autenticazione-con/QAQ-p/481.575 – gabrieloliveira