A CLI for finding issues labeled with "Good First Issue" to help lower the barrier to contributing to open source projects.
Usage โข
Projects โข
Contributing
To use Good First Issue, you'll need to have a few things installed:
- Node.js 8.0.0 or above
- If you need to install Node.js, you can download it from the official downloads page
- npm 5.0.0 or above
- If you already have Node.js 8.0.0 or above, you will have npm 5.0.0 or above.
- If you need to update your npm CLI, run
npm i -g npm
Via npx:
npx good-first-issue <project>
If project is omitted (e.g.
npx good-first-issue
), a project selector will be presented, allowing you to select from the list of available projects.
As a global module:
npm i -g good-first-issue
good-first-issue <project>
-o, --open
- open in browser-f, --first
- Return first/top issue
const goodFirstIssue = require('good-first-issue')
let log = async () => {
let issues = await goodFirstIssue('node')
issues.forEach(function (issue) {
console.log('#' + issue.pr + ': ' + issue.title)
})
}
log()
Good First Issues has an examples/ directory, in which we try to maintain various examples of how Good First Issue can be used as a module. If you'd like to contribute to the examples, please don't hesitate to submit a PR! ๐ค
good-first-issue
is still in an early state. I wanted to get good-first-issue node
out the door, but have some other things I'm planning on implementing. Here's a list:
-
good-first-issue node
command - Interactive selector when
good-first-issue
is run without a sub command - Export good first issues for all repos that have a command
- Add tests
If you'd like to help with any of these, feel free to submit a PR or ask how you can help ๐ค
The table of projects which are currently supported.
S. No. | Name | Project <project> |
---|---|---|
1. | Node.js | node |
2. | Electron | electron |
3. | VS Code | vscode |
4. | Gutenberg | gutenberg |
5. | wolkenkit | wolkenkit |
6. | TypeScript | typescript |
7. | Strapi | strapi |
8. | Create React App | create-react-app |
9. | debugger.html | debugger.html |
10. | webpack CLI | webpack-cli |
11. | Jest | jest |
12. | BigTestjs.io | bigtestjs.io |
13. | I'm Feeling Lucky (Random Project) | feeling-lucky |
14. | Netlify | netlify |
15. | Gatsby | gatsby |
16. | EasyGraphQL | easygraphql |
17. | Apollo | apollo |
18. | React | react |
19. | React Native | react-native |
20. | Babel | babel |
If you'd like to add a new project to good-first-issue
, you're more than welcome to submit a PR! There are a few components you'll need to submit:
-
Update
data/projects.json
- Add your
<project>
as a property ofprojects
with an object that includes aname
,description
, and aq
(representing the GitHub search query).
- Add your
-
Update
README.md
by runningnpm run markdown
- This will automatically update README.md with the new project
You can pull your queries directly from a standard GitHub search! If you want to build something a bit more complex, you can use the advanced search tool if you want to build more specific custom queries: https://github.com/search/advanced
As a CLI, good-first-issue
uses the Commander.js CLI framework. If you want to better understand how our CLI is built, commander.js is pretty well documented. Also used are Chalk for terminal coloring and boxen to simplify the output container implementation.
If you are interested in fixing issues and contributing directly to the code base, please see the document CONTRIBUTING.md