对于任何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 ( )好的第一期有一个示例/目录,在其中我们尝试维护各种示例,说明如何将良好的第一期用作模块。如果您想为示例做出贡献,请随时提交公关! ?
您可以直接从标准的GitHub搜索中提取查询!如果要构建一些更复杂的东西,则可以使用高级搜索工具,如果要构建更具体的自定义查询:https://github.com/search/advanced
作为一个CLI, good-first-issue使用Commander.js CLI框架。如果您想更好地了解我们的CLI的构建方式,请记录得很好。还使用的是用于终端着色的粉笔和Boxen来简化输出容器实现。
良好的第一个问题遵循相对严格的发布过程,旨在确保香料流。
| 语义版本 | 类型 | 原因 |
|---|---|---|
| 主要( x .xx) | 破坏变化和非平凡升级 | 确保最终用户可以依靠良好的第一个问题,而不会破裂,但是他们正在消耗它 |
| 次要( x。x.x ) | 项目增加,其他功能添加 | 遵循SEMVER标准,项目添加和功能添加是向后兼容的增强功能。我们通常会尝试每无小的添加。 |
| 补丁(xx x ) | 错误修复,对元数据和内容的较小增强 | 微小的,几乎看不见的修复程序可以改善UX/DX或修复模块 |
我们使用GitHub标签和里程碑来跟踪发行版。由于项目添加算作较小的版本,因此我们更喜欢将它们置于单独运输,而不是一次运输。该速度可能会在稍后进行修订,但就目前而言,它介绍了释放队列的需求,并将其设置为在实际发布之前发布的内容。
我们使用版本的队列标签和里程碑来排队审查并准备发行的PR。
一旦准备发行公关,将添加一个里程碑,即与SEMVER版本相关联。理想情况下,这最终将用于ChangElog跟踪,但就目前而言,这只是保持组织的好方法。为了使事情保持整洁,一旦新版本发货,里程碑将被关闭。
如果您有兴趣解决问题并直接为代码库做出贡献,请参阅文档贡献。