【随時更新】エンジニアがチェックすべきAwesomeリポジトリとPRの出し方、運用まで一挙紹介！

# Awesomeリポジトリとは

「**Awesomeリポジトリ**」とは、特定のテーマに関する優れたリソースやツールをキュレーションしたリストを管理したGitHubリポジトリのことです（awesomeには、スラングとして「素晴らしい」「すごい」「やばい」などの意味があります）。

これらのリストはMarkdown形式で記述されており、関連するリンクや説明が体系的にまとめられています。
例えば、プログラミング言語、フレームワーク、ツール、教育資料など、多岐にわたる分野で「Awesome」リストがGitHub上の有志によって運用されています。

「Awesomeリポジトリ」の起源は、GitHubユーザーの[sindresorhus](https://github.com/sindresorhus)氏が作成した「[awesome](https://github.com/sindresorhus/awesome)」リポジトリだそうです。

https://github.com/sindresorhus/awesome

このリポジトリは、さまざまな分野の優れたリソースを集めたリストとして始まり、コミュニティの協力によって拡大してきました。
現在では、多くのエンジニアが自身の興味や専門分野に応じて「Awesome」リストを作成し、GitHub上で共有しています。

これらのリストは、エンジニアが新しいツールやリソースを発見する際の貴重な手がかりとなり、OSSコミュニティにおける情報共有の一環として広く活用されています。

## Awesomeリポジトリの探し方

好みのキーワードで[GitHubの検索機能](https://github.com/search?q=awesome&type=repositories&s=stars&o=desc)で探しましょう。

思いつくようなほとんどのリポジトリが既に作られて沢山のスターを集めています。

# チェックすべきAwesomeリポジトリたち
## プログラミング言語

https://github.com/vinta/awesome-python

https://github.com/ziadoz/awesome-php

https://github.com/sorrycc/awesome-javascript

https://github.com/avelino/awesome-go

https://github.com/dictcp/awesome-git

## フレームワーク

https://github.com/chiraggude/awesome-laravel

https://github.com/vuejs/awesome-vue

https://github.com/enaqx/awesome-react

https://github.com/unicodeveloper/awesome-nextjs

https://github.com/mjhea0/awesome-fastapi

https://github.com/Solido/awesome-flutter

## ツール

https://github.com/viatsko/awesome-vscode

https://github.com/luong-komorebi/Awesome-Linux-Software

https://github.com/thibmaek/awesome-raspberry-pi

## クラウド

https://github.com/donnemartin/awesome-aws

https://github.com/GoogleCloudPlatform/awesome-google-cloud

## AI

https://github.com/Hannibal046/Awesome-LLM

https://github.com/f/awesome-chatgpt-prompts

https://github.com/promptslab/Awesome-Prompt-Engineering

## 認定資格

https://github.com/sathishvj/awesome-gcp-certifications

## ドキュメント

https://github.com/LeCoupa/awesome-cheatsheets

https://github.com/huyingjie/Checklist-Checklist

https://github.com/Kristories/awesome-guidelines

https://github.com/abhisheknaiidu/awesome-github-profile-readme

## ニュース

https://github.com/rShetty/awesome-podcasts

https://github.com/zudochkin/awesome-newsletters

## その他



https://github.com/awesomedata/awesome-public-datasets

https://github.com/jyguyomarch/awesome-productivity

# AwesomeリポジトリにPRを投げよう！
お気に入りのAwesomeリポジトリを見つけて、そのリストに加えたいものができたらプルリクエスト（PR）を投げてみましょう！
PRの簡単な送り方は、Awesomeリポジトリを自分のアカウントにフォークして編集を加えてPRを作成するだけですが、リポジトリによってお作法がある場合もあるので`CONTRIBUTING.md`があればその内容に則りましょう。

例として私が自分のお気に入りツールを紹介してもらうために投げたPRを紹介します。

https://github.com/alexdebrie/awesome-dynamodb/pull/19

# Awesomeリポジトリを作ってみよう！

もちろん自分のアカウントでAwesomeリポジトリを作ることもできます。
リストのガイドラインが公開されているので、[こちら](https://github.com/sindresorhus/awesome/blob/main/awesome.md)を参考にAwesomeリストの精神を学んだうえで作りましょう。

サンプルに私が作ったAwesomeリポジトリを。

https://github.com/danishi/awesome-generative-ai-use-case

## awesome-lint

https://www.npmjs.com/package/awesome-lint

Awesomeリスト用のリンターも公開されています。

ローカルで実行したり、下記のようにGitHub Actionsに組み込んだりすることでAwesomeなフォーマットに準拠しているかのチェックを自動化できます。

```yaml
name: CI
on:
  [push, pull_request]
jobs:
  Awesome_Lint:
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: Checkout 🔔
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Run linter 👀
        run: npx awesome-lint
```

---

この記事を読んだ方も是非自分のお気に入りのAwesomeリポジトリを見つけたり作ったりしてみましょう✨️👀