2015-10-30 13 views
8

Ho sviluppato il mio server Web che esegue l'automazione sulla mia app Android. Se si verificano problemi durante l'esecuzione dell'automazione, desidero disattivare a livello di codice il pulsante "Unisci" su una richiesta pull Github utilizzando un comando REST cURL. Non riesco a trovare il modo corretto per farlo, ma sembra che molte persone possano beneficiare di questa funzionalità.Utilizza Github API per disabilitare il pulsante di unione su una richiesta pull e riattivare utilizzando REST

l'API per le richieste di pull GitHub può essere trovato qui: https://developer.github.com/v3/pulls/

So che questo è possibile, perché se si dispone di unire i conflitti sul ramo, il pulsante viene in grigio e non è possibile fare clic/unirlo. Questa è la funzionalità esatta che sto cercando. Qualsiasi aiuto sarebbe molto apprezzato.

risposta

5

Questo è possibile. Ci sono due passi da fare per abilitare questa funzione.

  1. Configure alcuni dei tuoi rami (in genere si tratta di master o/e develop, dipende dal vostro flusso di lavoro) as protected.
  2. Utilizzando Statuses API è possibile inviare Pending, Success, Error e Failure stati. Gli stati Pending, Error e Failed bloccano il pulsante Unisci.

Una volta terminato, è possibile impostare gli stati POST in base alle regole aziendali.

POST /repos/:owner/:repo/statuses/:sha 

:sha è l'hash delle ultime impegnano nella Pull Request

Con carico utile come questo:

{ 
    "state": "success", 
    "target_url": "https://link.to/some/repotring/page", 
    "description": "Automation tests passed!", 
    "context": "continuous-integration/automation-tests" 
} 

Una cosa è degno di nota. Quando hai pubblicato almeno uno stato, il valore da archiviato verrà mostrato nella pagina delle impostazioni del ramo protetto. Non dimenticate di segnare questo stato come richiesto:

Require status checks to pass before merging

Protected branches and required status checks

0

Protezione del ramo e poi bloccando la fusione se i controlli di stato non passa o recensioni non sono fatte opere. Questa è una soluzione molto semplice e funziona perfettamente. Ma se sei più curioso, prova a farlo senza proteggere il ramo. Non sono riuscito a trovare un modo per farlo.

Problemi correlati