GitHub組織、レポ、または事前定義されたプロジェクトの「Good First Issue」(および同様のバリアント)とラベル付けされたモジュールのGithubの問題。
良い最初の問題を使用するには、いくつかのものをインストールする必要があります。
npm i -g npmを実行しますインストール:
npm install libgfilibgfiを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を提出することをheしないでください! ?
標準のGitHub検索からクエリを直接引き出すことができます!もう少し複雑なものを構築したい場合は、より具体的なカスタムクエリを構築する場合は、高度な検索ツールを使用できます:https://github.com/search/advanced
CLIとして、 good-first-issue Commander.js CLIフレームワークを使用します。 CLIの構築方法をよりよく理解したい場合は、Commander.jsはかなり文書化されています。また、出力コンテナの実装を簡素化するために、ターミナルカラーリングとボクセンのチョークも使用されます。
良い最初の問題は、スパイスが流れるようにするための比較的厳格なリリースプロセスに従います。
| セマンティックバージョン | タイプ | 理由 |
|---|---|---|
| メジャー( x .xx) | 変化を破ることと非自明なアップグレード | エンドユーザーが壊れない良い最初の問題に頼ることができるようにしてください。 |
| マイナー( x。x.x ) | プロジェクトの追加、その他の機能の追加 | SEMVERの標準に続いて、プロジェクトの追加と機能の追加は、後方互換の拡張機能です。私たちは通常、マイナーごとに1つの追加を出荷しようとします。 |
| パッチ( xxx ) | バグの修正、メタデータとコンテンツのマイナーな機能強化 | UX/DXを改善したり、モジュールを修正したりするための、ほとんど見えない修正がほとんどありません |
Githubラベルとマイルストーンの両方を使用して、リリースを追跡します。プロジェクトの追加はマイナーリリースとしてカウントされるため、多くの出荷を一度に出荷するのではなく、それらをスペースにして個別に出荷することを好みます。このペースは後で改訂される可能性がありますが、今のところ、リリースキューの必要性を導入し、実際にリリースされる前にリリースするために物事を設定します。
リリースキューラベルとマイルストーンを使用して、レビューされ、リリースする準備ができているPRをキューアップします。
PRをリリースする準備ができたら、リリースされるSemverバージョンと相関するマイルストーンが追加されます。理想的には、これは最終的にChangelogトラッキングに使用されますが、今のところは整理し続けるための良い方法です。物事を整頓するために、新しいバージョンが出荷されると、マイルストーンは閉鎖されます。
問題を修正し、コードベースに直接貢献することに興味がある場合は、Document Contributing.mdをご覧ください。