GitHub 조직, Repo 또는 사전 정의 된 프로젝트에 대해 "Good First Issue"(및 유사한 변형)로 표시되는 GitHub 문제에 대한 모듈.
좋은 첫 번째 문제를 사용하려면 몇 가지 사항을 설치해야합니다.
npm i -g npm 실행하십시오. 설치:
npm install libgfinode.js 응용 프로그램에서 libgfi를 어떻게 사용할 수 있는지에 대한 예 :
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 Commander.js CLI 프레임 워크를 사용합니다. CLI가 어떻게 건축되는지 더 잘 이해하고 싶다면 Commander.js는 잘 문서화되어 있습니다. 또한 출력 컨테이너 구현을 단순화하기 위해 터미널 착색 및 Boxen 용 분필도 사용됩니다.
좋은 첫 번째 문제는 향신료가 흐르는 것을 보장하기위한 비교적 엄격한 릴리스 프로세스를 따릅니다.
| 시맨틱 버전 | 유형 | 이유 |
|---|---|---|
| 메이저 ( x .xx) | 변화와 사소한 업그레이드 | 최종 사용자가 좋은 첫 번째 문제에 의존 할 수 있도록 보장하는 것이지만, 그 소비하는 것입니다. |
| 마이너 (x. x .x) | 프로젝트 추가, 기타 기능 추가 | Semver 표준에 따라 프로젝트 추가 및 기능 추가는 후진 호환 향상입니다. 우리는 일반적으로 미성년자 당 하나의 추가를 배송하려고합니다. |
| 패치 (xx x ) | 버그 수정, 메타 데이터 및 콘텐츠에 대한 사소한 향상 | UX/DX를 개선하거나 모듈을 수정하기위한 작고 거의 가시적 인 수정 사항 |
우리는 Github 라벨과 이정표를 모두 사용하여 릴리스를 추적합니다. 프로젝트 추가는 사소한 릴리스로 계산되므로 한 번에 많은 배송보다는 공간을 공간화하고 개별적으로 배송하는 것을 선호합니다. 이 속도는 나중에 수정 될 수 있지만 지금은 릴리스 큐의 필요성을 소개하고 실제로 출시 될 예정보다 먼저 출시 될 것입니다.
우리는 릴리스 큐 레이블과 이정표를 사용하여 검토되고 출시 될 준비가 된 PR을 대기합니다.
PR이 출시 될 준비가되면 SEMVER 버전과 상관 관계가있는 이정표가 추가됩니다. 이상적으로는 결국 ChangeLog 추적에 사용되지만 현재는 조직을 유지하는 좋은 방법입니다. 물건을 단정하게 유지하기 위해 새 버전이 선적되면 이정표가 폐쇄됩니다.
문제를 해결하고 코드 기반에 직접 기여하는 데 관심이 있으시면 Contributing.md 문서를 참조하십시오.