2015-05-18 4 views
8

Ho un Error Handler library (ErrorControlSystem) da allegare in un'applicazione di vincita per sollevare tali eccezioni su una tabella SQL.Come automatizzare aggiungere a Github i problemi delle applicazioni C# a livello di codice

Ora, voglio memorizzare le eccezioni automatiche ErrorControlSystem senza le eccezioni di app di destinazione su problemi di repository di Github.

Come posso farlo?

+2

Come aggiungere problemi sul mio repository Github con i codici C#? – Behzad

risposta

12

È possibile utilizzare l'API GitHub per questo. Creare un webhook e aggiungere un problema seguente modo:

POST /repos/:owner/:repo/issues 

Esempio da https://developer.github.com/v3/issues/

{ 
    "title": "Found a bug", 
    "body": "I'm having a problem with this.", 
    "assignee": "octocat", 
    "milestone": 1, 
    "labels": [ 
    "Label1", 
    "Label2" 
    ] 
} 

Quindi tutto quello che dovete fare è un HTTP - comando POST per aggiungere un problema.

È possibile eseguire una richiesta di posta utilizzando una richiesta Web.

descrizione completa per l'API: https://api.github.com/repos/octocat/Hello-World/issues/1347

completo C# -Example:

public void CreateBug(Exception ex) { 
    WebRequest request = WebRequest.Create ("https://api.github.com/repos/yourUserName/YourRepo/issues "); 
    request.Method = "POST"; 
    string postData = "{'title':'exception occured!', 'body':'{0}','assignee': 'yourUserName'}"; 
    byte[] byteArray = Encoding.UTF8.GetBytes (string.Format(postData,ex)); 
    request.ContentLength = byteArray.Length; 
    Stream dataStream = request.GetRequestStream(); 
    dataStream.Write (byteArray, 0, byteArray.Length); 
    dataStream.Close(); 
    WebResponse response = request.GetResponse(); 
} 

Ora il problema è stato creato e risposta contiene la risposta da GitHub

Questo è il "veloce , facile "soluzione. Se vuoi fare di più con i problemi di GitHub, la risposta di @ VonC potrebbe essere la migliore in quanto offre una soluzione più correlata agli oggetti

8

Se hai bisogno di creare problemi su un repository GitHub a livello di codice con C#, puoi fare riferimento al Progetto C# octokit/octokit.net che utilizzerà l'API GitHub.

Può create issue:

var createIssue = new NewIssue("this thing doesn't work"); 
var issue = await _issuesClient.Create("octokit", "octokit.net", createIssue); 

Create restituisce un Task<Issue> che rappresenta il problema creato.