Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/github/forgoodfirstissue

Find your first issue for good to contribute to
https://github.com/github/forgoodfirstissue

github open-source

Last synced: 5 days ago
JSON representation

Find your first issue for good to contribute to

Awesome Lists containing this project

README

        

Welcome! 👋🏼

**For Good First Issue** curates social impact and civic tech open source projects that are looking for contributors and lists issues on those projects that are tagged with Help Wanted or Good First Issue.

Open-source maintainers are always looking to get more people involved, but it can be challenging to become a contributor. For Good First Issue lowers the barrier for future contributions to social and civic good projects - and this is why it exists.

## Adding a new project

You're welcome to add a new project in For Good First Issue, just follow these steps:

- To maintain the quality of projects in For Good First Issue, please make sure the GitHub repository you want to add meets the following criteria:

- It is a social impact or civic tech project.

- Ideally, it tags its issues with `help wanted` or `good first issue`.

- In the repository description it lists the sdg(s) it is working on. See [here](https://github.com/rubyforgood/human-essentials) for an example.

- It contains a README.md with detailed setup instructions for the project, and a CONTRIBUTING.md with guidelines for new contributors.

- It is actively maintained (last update less than 1 month ago).

- Add your repository's path (in the format `owner/name` and lexicographic order) to [happycommits.json](happycommits.json).

- Create a new pull-request. Please add the link to the issues page of the repository in the PR description. Once the pull request is merged, the changes will be live on the site.

## How does it work?

First Issue is a static website that uses Next.js, React and Typescript. The data shown on the website is loaded from the [generated.json](generated.json) file, which is generated by [generate.ts](generate.ts) by querying the GitHub API to fetch issues from the repositories listed in [happycommits.json](happycommits.json). The labels defined in [happycommits.json](happycommits.json) are used to filter issues for the repositories.

To contribute new features and changes to the website, you would want to run the app locally. Please follow these steps:

## How to setup the project locally
1. Fork the repository, clone it locally, create a new branch to work on a specific feature or bug fix without affecting the main branch of the repository. Make sure you have a recent version of Node.js installed on your computer.
1. You can use the included [generated.json](generated.json) as dummy data or you can run `npm run prebuild` to fetch the latest data from GitHub yourself: for this, you will need to set the `GH_PERSONAL_ACCESS_TOKEN` environment variable to a valid GitHub Personal Access Token (PAT). Notice: repositories not matching the criteria listed above (see rules in [generated.json](generated.json)) are automatically removed from [happycommits.json](happycommits.json) when the [generated.json](generated.json) script runs.
1. Start the development server and open the app in your browser.

```bash
# install the dependencies
$ npm install
# start the development server
$ npm run dev
```

Good to know when you commit: the project contains a `pre-commit` hook that runs linters automatically to ensure code quality!

#### Credits

This project is based on [good-first-issue](https://github.com/deepsourcelabs/good-first-issue) and [first-issue](https://github.com/lucavallin/first-issue).