Un module pour faire surface des problèmes de github étiquetés "bon premier problème" (et variantes similaires) pour toute organisation, référentiel ou projet prédéfini GitHub.
Pour utiliser un bon premier problème, vous devrez installer quelques choses:
npm i -g npm Installation:
npm install libgfiUn exemple de la façon dont Libgfi peut être utilisé dans une application Node.js:
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 ( )Recherchez un référentiel spécifique:
const gfi = require ( 'libgfi' )
gfi ( 'golang/dep' )
. then ( ( issues ) => {
console . log ( issues )
} )
. catch ( ( error ) => {
console . error ( error )
} )Passer dans un ensemble personnalisé d'organisations pour rechercher:
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 ( )Passer des informations d'identification GitHub (voir la documentation d'authentification d'Octokit pour plus de détails) pour l'authentification pour augmenter de façon exponentielle la limite de taux:
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 ( )Un bon premier problème a des exemples / répertoire, dans lesquels nous essayons de maintenir divers exemples de la façon dont le premier problème peut être utilisé comme module. Si vous souhaitez contribuer aux exemples, n'hésitez pas à soumettre un PR! ?
Vous pouvez retirer vos requêtes directement à partir d'une recherche standard GitHub! Si vous souhaitez créer quelque chose d'un peu plus complexe, vous pouvez utiliser l'outil de recherche avancé si vous souhaitez créer des requêtes personnalisées plus spécifiques: https://github.com/search/advanced
En tant que CLI, good-first-issue utilise le framework CLI commandant.js. Si vous voulez mieux comprendre comment notre CLI est construite, Commander.js est assez bien documenté. Sont également utilisés pour la coloration du terminal et le boxen pour simplifier l'implémentation du conteneur de sortie.
Un bon premier problème suit un processus de libération relativement strict destiné à garantir les flux d'épices.
| Version sémantique | Taper | Raison |
|---|---|---|
| Major ( x .xx) | Breaking Changes and Non-Frivial Mises à niveau | S'assurer que les utilisateurs finaux peuvent compter sur un bon premier problème de ne pas se briser, mais ils le consomment |
| Mineur (x .x .x ) | Ajouts de projet, autres ajouts de fonctionnalités | En suivant la norme SEMVER, les ajouts de projet et les ajouts de fonctionnalités sont des améliorations compatibles vers l'arrière. Nous essayons généralement d'expédier un ajout par mineur. |
| Patch (xx x ) | Correction de bogues, améliorations mineures des métadonnées et du contenu | Tiny et à peine visibles pour améliorer UX / DX ou réparer le module |
Nous utilisons à la fois les étiquettes GitHub et les jalons pour suivre les versions. Étant donné que les ajouts de projet comptent comme une version mineure, nous préférons les espacer ceux-ci et les expédier individuellement plutôt que d'expédier beaucoup à la fois. Ce rythme peut être révisé plus tard, mais pour l'instant, il introduit la nécessité d'une file d'attente de version et met en place des choses pour être publiées avant leur sortie.
Nous utilisons l'étiquette de la file d'attente de version et le jalon pour faire la queue PRS qui ont été examinés et sont prêts à être publiés.
Une fois qu'un PR est prêt à être publié, une étape importante sera ajoutée qui est en corrélation à la version Semver dans laquelle il sera publié. Idéalement, cela sera finalement utilisé pour le suivi de Changelog, mais pour l'instant, c'est juste un bon moyen de rester organisé. Pour garder les choses bien rangées, une fois qu'une nouvelle version a décrochée, le jalon sera fermé.
Si vous êtes intéressé à résoudre les problèmes et à contribuer directement à la base de code, veuillez consulter le document contribution.md