-
-
Notifications
You must be signed in to change notification settings - Fork 766
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: added contributors page #1122
Conversation
✅ Deploy Preview for asyncapi-website ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify site settings. |
Hey @AceTheCreator, great work on this. But I feel we should add a short introduction on how to become a contributor and get started; what do you think about it? Well done. |
is it really ready for review?
|
|
I'm waiting on @Mayaleeeee to finalize the design she's working on, cuz afaik based on the design discussion, she's not done with the implementation
@derberg I need more context on what you're talking about here |
Hey @AceTheCreator I'll update the design today and send it for review in the afternoon/evening. |
@AceTheCreator lemme answer with question, what was your plan on getting data for the contributors list. Where did you want to get the list from? |
I believe with GitHub API |
@AceTheCreator GitHub API is very "expensive" when it comes to such complicated API calls. To list all the contributors, and total of their forks/issues/pr you need to make a lot of API calls. We have over 60 repositories, so it is already 60 individual requests to all repos. Even if done with GraphQL API, the API limit can be affected a lot. Of course I might be wrong with above 🤷🏼 but I suggest you first check what is possible really. What I know is that for getting access to such big data set, people use projects like https://www.gharchive.org/ |
Thanks for the recommendation. Let see how we can use it |
what if we make simple GitHub API calls under an array of Promises and then resolve it later in the execution? We already know that this computation won't be done at runtime or build-time. Better we can make a GitHub Action to this computation on weekly basis. And requesting for contributors list doesn't require API key as well so we are well and good to make as many API calls as we want. Here's the GET request - https://api.github.com/repos/asyncapi/website/contributors for |
@akshatnema take into account rate limit, 60req per hour. There are 63 repos, in total above 1000 contributors. Your GitHub action would run for at least 18-20 hours to get all the data. |
return ( | ||
<GenericLayout | ||
title="AsyncAPI Ambassador Program" | ||
description="The home for developer communities" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description="The home for developer communities" | |
description="Mentorship and OSS Community" |
I don't like only focusing on saying this is all for "developers." Developers are not the only part of our OSS project, there are many kinds of contributions and contributors.
@derberg But we don't require any API key or account for the requests. What we are doing is just simple GET requests, and there is no limit to that. And we don't even need to make calls for getting contributor details. It already comes up with detailed JSON content in one API call for each repository. If we make an array of Promises to get the data for each repo, it will only take max 10 seconds to run all calls, and we will get data for each repo. But even if we agree on making |
not sure what you mean, even if you do anonymous call, you have rate limits on IP, these have to be there to prevent DDoS attacks for example. we have over 60 repos (63), rate limit is 60 requests, and they reset every hour.
And I did not even included counting of requests increase due to pagination. optimistically you need 1100 API requests to build a list. If we have 60 requests limit, it is a GitHub Action running for about 18h. our calculations are very different 😀 |
@AceTheCreator please close this PR as it is targeting |
Yeah, you're correct |
The contributor's page implementation
Link to preview https://deploy-preview-1122--asyncapi-website.netlify.app/community/contributors