This project allows you to rate GitHub Repositories from the Developer Experience (DX) perspective.
When considering your rating here are a few points you might like to think about:
- does the Repo have a helpful community?
- does the Repo have good documentation to enable you to get started?
- are the maintainers supportive and do they provide useful feedback?
- Login with GitHub OAuth
- Rate a Repo
- List all Repos
- List popular Repos
- Leaderboard of most active users
- README badges
- Search Repos
Want to see any other features? Open an issue and let us know.
- Sign up to Appwrite and create a project (free)
- Create database
- Create collections
app
with the attributesratings
: integerrepos
: integerstars
: integer- create empty document with
0
for each attribute
- Create collections
ratings
with the attributesurl
: urlusername
: string (128)rating
: integer
- Create collections
repos
with the attributesurl
: urldescription
: string (1024)name
: string (128, required)votes
: integerrating
: floatowner
: string (128)logo
: string (512)language
: string (32)topics
: string with optionarray
(1024)stars
: integer
- Copy
.env.example
template file to.env
(You can get these values from your Appwrite project settings) - Get you private keys from Appwrite (Overview > Integrations > "API Keys" tab > "+ Create API key" button) and add them to
.env
template (all data are required) - Create an OAuth app on GitHub and connect it with Appwrite Authentication
- On collections
ratings
andrepos
enable read permissions forall
users - Create index on collection
repos
, namedurl_search
with the attributeurl
and typefulltext
- Run the development server with:
npm ci
npm run dev
- Open http://localhost:3000 with your browser to see the result.
Add the following markdown to your README to show your RepoRater badge and link to rate your repository.
[![RepoRater](https://repo-rater.eddiehub.io/api/badge?owner=EddieHubCommunity&name=RepoRater)](https://repo-rater.eddiehub.io/rate?owner=EddieHubCommunity&name=RepoRater)
Change the owner
and name
parameters to your GitHub org/username and repository name.
The default badge is "flat" but there are other styles if you prefer. This is done by appending the url with the style
parameter.
Here are the options with examples:
style | badge |
---|---|
flat | |
flat-square | |
for-the-badge | |
plastic | |
social |
The default badge format is to show the average rating out of 5
. You can also show the percentage. This is done by appending the url with the format
parameter.
[![RepoRater](https://repo-rater.eddiehub.io/api/badge?owner=EddieHubCommunity&name=RepoRater)](https://repo-rater.eddiehub.io/rate?owner=EddieHubCommunity&name=RepoRater&format=percentage)
format | badge |
---|---|
number | |
percentage |
Automatically comment on Issues and Pull Requests to get votes
name: repo-rater
run-name: repo-rater (#${{ github.event.issue.number || github.event.pull_request.number }})
permissions:
issues: write
pull-requests: write
on:
issues:
types: [closed]
pull_request:
types: [closed]
jobs:
repo-rater:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: xkrishguptaa/action-repo-rater@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
More details https://github.com/xkrishguptaa/action-repo-rater
You can consume our data for your own apps.
GET https://repo-rater.eddiehub.io/api/leaderboard
[
{
"username": "eddiejaoude",
"votes": 5,
"stars": 13
},
{
"username": "SaraJaoude",
"votes": 3,
"stars": 5
},
{
"username": "test2",
"votes": 2,
"stars": 9
}
]
GET https://repo-rater.eddiehub.io/api/popular
Optional paramater ?minimumVotes=5
(default is 5
)
[
{
"url": "https://github.com/appwrite/appwrite",
"logo": "https://avatars.githubusercontent.com/u/25003669?v=4",
"description": "Build like a team of hundreds_",
"rating": 4.9,
"votes": 310,
"owner": "appwrite",
"name": "appwrite",
"badgeViews": 321
},
{
"url": "https://github.com/EddieHubCommunity/BioDrop",
"logo": "https://avatars.githubusercontent.com/u/66388388?v=4",
"description": "Connect to your audience with a single link. Showcase the content you create and your projects in one place. Make it easier for people to find, follow and subscribe.",
"rating": 4.75,
"votes": 49,
"owner": "EddieHubCommunity",
"name": "BioDrop",
"badgeViews": 109
}
]
GET https://repo-rater.eddiehub.io/api/repos
Optional paramater ?keyword=EddieHub
[
{
"url": "https://github.com/EddieHubCommunity/BioDrop",
"logo": "https://avatars.githubusercontent.com/u/66388388?v=4",
"description": "Connect to your audience with a single link. Showcase the content you create and your projects in one place. Make it easier for people to find, follow and subscribe.",
"rating": 4.75,
"votes": 49,
"owner": "EddieHubCommunity",
"name": "BioDrop",
"badgeViews": 321
},
{
"url": "https://github.com/EddieHubCommunity/RepoRater",
"logo": "https://avatars.githubusercontent.com/u/66388388?v=4",
"description": "Connect to your audience with a single link. Showcase the content you create and your projects in one place. Make it easier for people to find, follow and subscribe.",
"rating": 4.6,
"votes": 12,
"owner": "EddieHubCommunity",
"name": "RepoRater",
"badgeViews": 98
}
]
GET https://repo-rater.eddiehub.io/api/stats
{
"ratings": 1137,
"repos": 657,
"stars": 53,
"$createdAt": "2023-12-24T07:41:21.204+00:00",
"$updatedAt": "2024-01-02T20:42:33.660+00:00"
}
Come and chat with the community in the EddieHub Discord http://discord.eddiehub.org