/good-first-issue

🖥 CLI for finding good first issues

Primary LanguageJavaScript

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>

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
})

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.

Name Project <project>
Node.js node
Electron electron
VS Code vscode
Gutenberg gutenberg
wolkenkit wolkenkit
TypeScript typescript
Strapi strapi

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 lib/projects.js

    • Add your <project> as a property of projects with an object that includes a name and a q (representing the GitHub search query).
  • Update README.md

    • Add your <project> at the bottom of the Projects table above with name and 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.