Модуль для поверхностных выпусков GitHub, названной «хорошей первой проблемой» (и аналогичных вариантов) для любой организации GitHub, репо или заранее определенного проекта.
Чтобы использовать хорошую первую проблему, вам нужно будет установлено несколько вещей:
npm i -g npm Установка:
npm install libgfiПример того, как LIBGFI можно использовать в приложении 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 ( )Поиск конкретного репозитория:
const gfi = require ( 'libgfi' )
gfi ( 'golang/dep' )
. then ( ( issues ) => {
console . log ( issues )
} )
. catch ( ( error ) => {
console . error ( error )
} )Передача в пользовательском наборе организаций для поиска:
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 ( )Передача учетных данных GitHub (см. Документацию по аутентификации Octokit для получения более подробной информации) для экспоненциальной увеличения предела ставки:
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 ( )Хороший первый выпуск имеет примеры/ каталог, в котором мы стараемся поддерживать различные примеры того, как хороший первый выпуск можно использовать в качестве модуля. Если вы хотите внести свой вклад в примеры, пожалуйста, не стесняйтесь отправлять PR! ?
Вы можете вытащить свои запросы непосредственно из стандартного поиска GitHub! Если вы хотите создать что -то более сложное, вы можете использовать расширенный инструмент поиска, если хотите создать более конкретные пользовательские запросы: https://github.com/search/advanced
В качестве CLI, good-first-issue использует Framework Command.js CLI. Если вы хотите лучше понять, как построен наш CLI, Commander.js довольно хорошо задокументирован. Также используются мелки для окраски терминала и коробки для упрощения реализации выходного контейнера.
Хороший первый выпуск следует относительно строгому процессу высвобождения, предназначенный для обеспечения потоков специй.
| Семантическая версия | Тип | Причина |
|---|---|---|
| Майор ( x .xx) | Нарушение изменений и нетривиальных обновлений | Обеспечение того, чтобы конечные пользователи могли полагаться на хорошую первую проблему, не нарушая, однако они ее потребляют |
| Несовершеннолетний (x. X .x) | Дополнения проекта, другие дополнения функций | Следуя стандарту SEMVER, дополнения проекта и дополнения функций являются обратно-совместимыми улучшениями. Как правило, мы пытаемся отправить одно дополнение на несовершеннолетнего. |
| Патч (xx x ) | Исправления ошибок, незначительные улучшения метаданных и содержания | Крошечные, почти заметные исправления для улучшения UX/DX или исправления модуля |
Мы используем как этикетки Github, так и вехи для отслеживания выпусков. Поскольку дополнения проекта считаются незначительным выпуском, мы предпочитаем их разместить и отправлять их по отдельности, а не отправлять много сразу. Этот темп может быть пересмотрен позже, но на данный момент он вводит необходимость в очереди на выпуск и настраивает вещи, которые будут выпущены перед тем, как они фактически будут выпущены.
Мы используем метку очереди и веху для очереди, которые были рассмотрены и готовы к выпуску.
Как только пиар будет готов к выпуску, будет добавлена веха, которая соответствует версии Semver, в которой она будет выпущена. В идеале это в конечном итоге будет использовано для отслеживания изменений, но сейчас это просто хороший способ сохранить организованность. Чтобы сохранить все опрятные, после того, как новая версия будет отправлена, эта веха будет закрыта.
Если вы заинтересованы в решении проблем и внесении непосредственного внесения непосредственно на базу кода, см. Document Anforming.md