2017-11-11 3 views
0

Ich benutze Nodejs, um eine einfache Web-App zu schreiben, die Inhalte aus Readme-Dateien mit der GH-API lesen muss.Github API - wie authentifizierte Anfragen zu machen?

Alles funktioniert, aber ich kann nicht sortieren, wie Anforderungen als authentifizierter Benutzer erstellt werden.

Sorry Bit eines Noob hier :-) Aber ist es nicht genug, um meinen Client und geheimen Schlüssel oder ein access_token als Parameter zu meiner URL hinzuzufügen? Ich habe beides versucht und beide scheinen nach 60 Anfragen auszumerzen, stattdessen sagen die 5000 die Dokumente.

Ich habe diese Seite Github Rate Limits angeschaut, aber ich denke, ich habe getan, was es sagt.

Muss ich ein Token auf meinem Server hinzufügen? Wie funktionieren öffentliche und private SSH-Schlüssel? - Entschuldige, ich versuche nur, das zu verstehen.

+0

Es genügt bemerken, wenn Sie GitHub Suche ausführen fordert Sie mit einer benutzerdefinierten Frequenzgrenze (30 pro min in der Regel) zu tun haben. – Poonacha

Antwort

0

Dies funktionierte für mich vor kurzem für eine Liste von Problemen von Github. Nichts anderes auf dem Server oder Ähnlichem eingerichtet.

verwendete ich ein Token erstellt mit https://github.com/settings/tokens/new

const chalk = require("chalk"); 
const sa = require("superagent"); 
const { getProperty } = require("../context"); 

async function getIssues(org) { 
    try { 
    const url = `https://api.github.com/orgs/${org}/issues?state=open`; 
    const apiToken = await getProperty("github.token"); 
    const res = await sa 
     .get(url) 
     .set("Authorization", `token ${apiToken}`) 
     .send(); 
    res.body.forEach(issue => { 
     console.log(issue.title); 
    }); 
    } catch (err) { 
    console.error(err); 
    } 
} 

module.exports = getIssues; 
+0

Kann ich fragen, wie Ihre Kontextdatei dafür ist? Ich weiß, dass Sie das Token offensichtlich entfernen müssen, aber es sieht so aus, als hätten Sie in der Datei, die Sie anrufen, eine Funktion erstellt. –

+0

Entschuldigung, ich hätte diesen Code ein wenig reduzieren sollen. Die 'getProperty' gibt nur das Token zurück, das ich in Github erstellt habe (das ist ein Ausschnitt aus einem größeren System), es ist das .set (" Authorization "," token $ {apiToken} "), das ist das wichtige Bit. – lecstor

Verwandte Themen