Um módulo a superfície do GitHub questões rotuladas como "boa primeira edição" (e variantes similares) para qualquer organização do GitHub, repo ou projeto predefinido.
Para usar uma boa primeira edição, você precisará ter algumas coisas instaladas:
npm i -g npm Instalação:
npm install libgfiUm exemplo de como o libgfi pode ser usado em um aplicativo 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 ( )Pesquise um repositório específico:
const gfi = require ( 'libgfi' )
gfi ( 'golang/dep' )
. then ( ( issues ) => {
console . log ( issues )
} )
. catch ( ( error ) => {
console . error ( error )
} )Passando em um conjunto personalizado de organizações para pesquisar:
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 ( )A aprovação nas credenciais do GitHub (consulte a documentação de autenticação da Octokit para obter mais detalhes) para obter autenticação para aumentar exponencialmente o limite de taxa:
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 ( )A boa primeira edição tem um exemplo/ diretório, no qual tentamos manter vários exemplos de quão boa a primeira edição pode ser usada como módulo. Se você quiser contribuir com os exemplos, não hesite em enviar um PR! ?
Você pode puxar suas perguntas diretamente de uma pesquisa padrão do GitHub! Se você deseja criar algo um pouco mais complexo, pode usar a ferramenta de pesquisa avançada se quiser criar consultas personalizadas mais específicas: https://github.com/search/advanced
Como CLI, good-first-issue usa a estrutura do comandante.js da CLI. Se você deseja entender melhor como nossa CLI é construída, o Commander.js está muito bem documentado. Também são usados giz para coloração e boxen terminais para simplificar a implementação de contêiner de saída.
A boa primeira edição segue um processo de liberação relativamente rigoroso, destinado a garantir que os fluxos de especiarias.
| Versão semântica | Tipo | Razão |
|---|---|---|
| Major ( x .xx) | Breaking mudanças e atualizações não triviais | Garantir que os usuários finais possam confiar na boa primeira edição, sem quebrar, no entanto, estão consumindo |
| Menor (x. X .x) | Adições de projeto, outras adições de recursos | Seguindo o padrão Semver, as adições de projetos e as adições de recursos são aprimoramentos compatíveis com versões anteriores. Geralmente tentamos enviar uma adição por menor. |
| Patch (xx x ) | Correções de bugs, aprimoramentos menores em metadados e conteúdo | Minúsculas e dificilmente visíveis correções para melhorar UX/DX ou corrigir o módulo |
Usamos os rótulos do GitHub e os marcos para rastrear lançamentos. Como as adições de projetos contam como um pequeno lançamento, preferimos espaçar -os e enviá -los individualmente, em vez de enviar muitos ao mesmo tempo. Esse ritmo pode ser revisado mais tarde, mas, por enquanto, apresenta a necessidade de uma fila de liberação e configurar as coisas para serem lançadas antes de realmente ser lançadas.
Utilizamos a etiqueta e o marco da fila de liberação para fazer fila de PRs que foram revisados e estão prontos para serem lançados.
Depois que um PR estiver pronto para ser lançado, será adicionado um marco que se correlaciona com a versão Semver em que será lançado. Idealmente, isso será usado para rastreamento de changelog, mas por enquanto é apenas uma boa maneira de se manter organizado. Para manter as coisas arrumadas, uma vez que uma nova versão envie, o marco será fechado.
Se você estiver interessado em corrigir problemas e contribuir diretamente para a base de código, consulte o documento contribuindo.md