Good First Issue
A CLI for finding issues labeled with "good-first-issue" to hopefully lower the barrier to contributing to open source projects.
Usage
As CLI
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>
Options
-o, --open
- open in browser-f, --first
- Return first/top issue
As Module
const goodFirstIssue = require('good-first-issue')
// project should be from the below projects table
goodFirstIssue(project, (err, issues) => {
// typeof issues is Array
})
Examples
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! π€
TODOs: What's coming up next
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 π€
Projects
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. | I'm Feeling Lucky (Random Project) | feeling-lucky |
13. | Netlify | netlify |
14. | bigtestjs.io | bigtestjs.io |
15. | Gatsby | gatsby |
Adding New Projects
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
Adding New Projects: More Information
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.
Contributing
If you are interested in fixing issues and contributing directly to the code base, please see the document CONTRIBUTING.md