Ein Modul zur Oberfläche von Github-Problemen mit der Bezeichnung "guter Erstausgabe" (und ähnlichen Varianten) für jede Github-Organisation, ein Repo oder ein vordefiniertes Projekt.
Um ein gutes erstes Problem zu verwenden, müssen Sie ein paar Dinge installieren:
npm i -g npm aus Installation:
npm install libgfiEin Beispiel dafür, wie libgfi in einer Node.js -Anwendung verwendet werden kann:
const gfi = require ( 'libgfi' )
let log = async ( ) => {
let issues = await gfi ( 'microsoft' ) // search the 'microsoft' GitHub organization
issues . forEach ( function ( issue ) {
console . log ( '#' + issue . pr + ': ' + issue . title )
} )
}
log ( )Suchen Sie ein bestimmtes Repository:
const gfi = require ( 'libgfi' )
gfi ( 'golang/dep' )
. then ( ( issues ) => {
console . log ( issues )
} )
. catch ( ( error ) => {
console . error ( error )
} )Geben Sie eine benutzerdefinierte Organisationen ein, um zu suchen:
const gfi = require ( 'libgfi' )
const options = {
projects : {
node : {
name : 'Node.js' , // Human readable name
q : 'org:nodejs is:issue is:open label:"good first issue"' , //GitHub search query
description : "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine." // Human readable description
}
}
}
let log = async ( ) => {
console . log ( await goodFirstIssue ( 'node' , options ) ) // search the 'node' property
}
log ( )Übergeben von GitHub -Anmeldeinformationen (siehe Authentifizierungsdokumentation von Oktokit für weitere Details) zur Authentifizierung zur exponentiellen Erhöhung der Ratengrenze:
const gfi = require ( 'libgfi' )
const options = {
auth : '<replace_with_your_github_secret_personal_access_token>' // or username/password + 2fa, or app installation access token
}
let log = async ( ) => {
let issues = await gfi ( 'microsoft' , options ) // search the 'microsoft' GitHub organization
issues . forEach ( function ( issue ) {
console . log ( '#' + issue . pr + ': ' + issue . title )
} )
}
log ( )Gute erste Ausgabe hat ein Beispiel/ Verzeichnis, in dem wir versuchen, verschiedene Beispiele dafür zu bewahren, wie gut das erste Problem als Modul verwendet werden kann. Wenn Sie zu den Beispielen beitragen möchten, zögern Sie bitte nicht, eine PR einzugeben! ?
Sie können Ihre Abfragen direkt aus einer Standard -Github -Suche ziehen! Wenn Sie etwas komplexeres erstellen möchten, können Sie das erweiterte Suchwerkzeug verwenden, wenn Sie spezifischere benutzerdefinierte Abfragen erstellen möchten: https://github.com/search/advanced
Als CLI verwendet good-first-issue den CLI-Framework des Commander.js. Wenn Sie besser verstehen möchten, wie unsere CLI gebaut wird, ist Commander.js ziemlich gut dokumentiert. Außerdem werden Kreide für die Anschlussfärbung und -kästenanlage verwendet, um die Implementierung des Ausgangsbehälters zu vereinfachen.
Ein gutes erstes Problem folgt einem relativ strengen Freigabeverfahren, mit dem die Gewürzflüsse sichergestellt werden sollen.
| Semantische Version | Typ | Grund |
|---|---|---|
| Major ( x .xx) | Veränderungen und nicht triviale Upgrades brechen | Stellen Sie sicher, dass Endbenutzer auf gute erste Ausgabe angewiesen sind, die nicht brechen, aber sie konsumieren sie |
| Minor (x. X .x) | Projektabzüge, andere Funktionen für Funktionen | Nach dem SEMVER-Standard sind Projektzusätze und Feature-Ergänzungen rückwärtskompatible Verbesserungen. Wir versuchen im Allgemeinen, eine Ergänzung pro Moll zu versenden. |
| Patch (xx x ) | Fehlerbehebungen, geringfügige Verbesserungen von Metadaten und Inhalten | Tiny, kaum sichtbare Korrekturen zur Verbesserung von UX/DX oder Behebung des Moduls |
Wir verwenden sowohl Github -Etiketten als auch Meilensteine, um Releases zu verfolgen. Da die Projekterweiterungen als geringfügige Veröffentlichung gelten, bevorzugen wir diese aus, um diese einzeln zu schicken, anstatt viele auf einmal zu versenden. Dieses Tempo kann später überarbeitet werden, aber vorerst wird die Notwendigkeit einer Release -Warteschlange eingeführt und die Dinge vorbereitet, die vor ihnen veröffentlicht werden, die tatsächlich veröffentlicht werden.
Wir verwenden das Release Queue -Label und Meilenstein, um PRS zu verbinden, die überprüft wurden und zur Veröffentlichung bereit sind.
Sobald ein PR veröffentlicht werden kann, wird ein Meilenstein hinzugefügt, der mit der Semver -Version korreliert, in der er veröffentlicht wird. Idealerweise wird dies irgendwann für die Verfolgung von Changelog verwendet, aber im Moment ist es nur eine gute Möglichkeit, sich organisieren zu halten. Um die Dinge angeräumt zu halten, wird der Meilenstein nach einer neuen Version geschlossen.
Wenn Sie daran interessiert sind, Probleme zu beheben und direkt zur Codebasis beizutragen