开源贡献 计算
When I began the transition into being a software developer, I knew that contributing to open source projects would greatly assist my job search.
当我开始过渡为软件开发人员时,我知道为开源项目做贡献将极大地帮助我的求职。
So, I jumped onto GitHub looking for issues that I could take on. Little did I know that this would be a miserable endeavor.
因此,我跳上GitHub寻找可能遇到的问题。 我几乎不知道这将是一场痛苦的努力 。
实现 (The Realisation)
At the beginning, I thought I could simply go to React’s repo page (or another extremely popular repo’s page) and find an issue.
一开始,我以为我可以简单地转到React的repo页面(或另一个非常受欢迎的repo的页面)并找到问题。
But those repo’s are literally hounded by people looking for an issue. And it is very time consuming to click through repositories.
但是这些回购协议实际上是由寻找问题的人所束缚的。 单击存储库非常耗时。
My second thought was to use GitHub’s issue search, but I ran into several problems here:
我的第二个想法是使用GitHub的问题搜索 ,但是在这里遇到了几个问题:
- You cannot filter issues based upon the amount of stars a repository has 您不能根据存储库具有的星级来过滤问题
- You can only filter by language if the issue is literally labeled that language. (So if the project is predominantly a JavaScript repo and the issue is not labeled JavaScript, you have no way of searching for it by language.) 如果问题在字面上标有该语言,则只能按语言进行过滤。 (因此,如果项目主要是JavaScript存储库,而该问题未标记为JavaScript,则无法通过语言进行搜索。)
您如何看待针对热门项目的问题? (How do you look at issues focused on popular projects?)
Basically, you have to know of them and look them up manually.
基本上,您必须了解它们并手动查找它们。
如何用您最了解的语言从一个受欢迎的项目中找到一个问题? (How can you find an issue from a popular project in the language you know best?)
As said before, go to a project’s GitHub page by learning of its existence in some way
如前所述,通过某种方式了解项目的存在 ,以转到项目的GitHub页面
- Look through the issues. Now you can filter a little by label (think bug, feature, good-first-issue) 浏览问题。 现在,您可以按标签进行过滤(考虑错误,功能,优先事项)
- If you don’t find something that you can do, you have to start this process over with a new repo! 如果找不到您可以做的事情,则必须从一个新的仓库开始这个过程!
Needless to say, it took me forever to find an issue that I wanted to take on.
不用说,我花了很长时间才找到我想要解决的问题。
Fast forward a few months. I began to make a website to make open source contribution easier.
快进几个月。 我开始制作一个网站,以简化开源贡献。
创作过程 (The Process of Creation)
The main challenge was to get the data that I wanted. I knew I had to use the GitHub API.
主要的挑战是获取我想要的数据。 我知道我必须使用GitHub API。
As I said earlier, when you search on GitHub for an issue, you cannot search by stars or language. This stems from the fact that GitHub’s Repo API request does not provide this option.
如前所述,当您在GitHub上搜索问题时,无法按星号或语言进行搜索。 这是因为GitHub的Repo API请求未提供此选项。
My initial thought was that I should focus on finding repositories of interest. For example, the thousand most starred JavaScript, Python, and a variety of other languages repos.
我最初的想法是,我应该专注于寻找感兴趣的存储库。 例如,上千种最受注视JavaScript,Python和其他各种语言存储库。
Well… you cannot search repos by language nor by star count.
好吧……您无法通过语言或星级来搜索存储库。
Dynamically fetching data is cool, but how could I do it? Here is a condensed view of why it is ridiculously difficult with the GitHub API.
动态获取数据很酷,但是我该怎么办呢? 这是为什么GitHub API如此困难的简明视图。
使用GitHub API达成协议 (Coming to Terms with the GitHub API)
One thing to begin with: you have a limit of 5000 requests per hour to the GitHub API.
首先要解决的问题是:每小时对GitHub API的请求数限制为5000。
This is the only way to get a bunch of repositories at once: https://api.github.com/repositories which will give you around 35 repositories but none of these rows have language or star count.
这是一次获取一堆存储库的唯一方法: https : //api.github.com/repositories它将为您提供约35个存储库,但是这些行都没有语言或星号。
Though, you can query each of these repositories returned from the initial API request (ex. https://api.github.com/repos/facebook/react) and then you get this data!
不过,您可以查询从初始API请求返回的每个存储库(例如https://api.github.com/repos/facebook/react ), 然后就可以获取此数据!
But wait… I have to go through every repository on GitHub... there are approximately 90 million repositories.
但是等等...我必须遍历GitHub上的每个存储库...大约有9000万个存储库。
一点数学 (A Little Math)
90,257,000 (amount of repos with amount of requests to get repos) / 5000 (hourly rate limit) ~= 18,000 hours or 750 days or around 2 years… ?
90,257,000(回购金额与获得回购请求的数量)/ 5000(每小时费率上限)〜= 18,000小时或750天或大约2年…
勉强做出的决定 (The Reluctantly Made Decision)
So I had to find the repositories manually… ?. Thank god for this site: https://gitstar-ranking.com/ but still, quite a few hours of clicking through repositories…
因此,我不得不手动查找存储库……。 感谢上帝为这个网站:h ttps://gitstar-ranking.com/,但是仍然需要花几个小时才能浏览存储库…
But, I got there! And here is the site! ?
但是,我到了那里! 这是网站! ?
FindanIssue.com (FindanIssue.com)
I made it as simple as possible. Search by the exact repo, by specific language (exact and case sensitive), by label, or the age of the issue. So, you can get to the root of what you are looking for.
我使它尽可能简单。 按确切的存储库,特定的语言(精确且区分大小写),标签或问题的年龄进行搜索。 因此,您可以找到所需的内容。
If you are a beginner, then search by labels such as good first issue or docs/ documentation as well as specifying your programming language of choice.
如果您是初学者,请按标签(例如“ 第一期”或docs /文档)进行搜索 ,并指定您选择的编程语言。
If you are a seasoned developer looking for a challenge, search by labels such as feature, help wanted, bug, or other labels of your choice.
如果您是经验丰富的开发人员,正在寻找挑战,请按功能 ,所需的帮助 , 错误或您选择的其他标签之类的标签进行搜索。
At the moment, the data is refreshed twice daily so old issues are removed and issues that have been labeled are given their proper label.
此刻,数据每天刷新两次,因此,旧的问题将被删除,已标记的问题将被赋予适当的标签。
总结思想 (Closing Thoughts)
There is still a lot of work that can be done:
还有很多工作可以完成:
- The most glaring problem is that only around 900 projects are showcased. So, there are a wide spectrum of amazing projects that are not being given a chance. 最明显的问题是仅展示了大约900个项目。 因此,有许多惊人的项目没有机会。
- Improving the backend and some additions to the frontend would really make a difference 改善后端以及对前端的一些补充确实会有所作为
All in all, I made this because I believe it to be a step towards fulfilling a need in the open source community of linking issues to developers. Rather then going out into the wild to find an issue to take on, the site aims to make it a simple few minutes of searching through a table.
总而言之,我之所以这样做,是因为我相信这是满足开源社区将问题与开发人员联系起来的需要的一步。 该网站旨在使搜索表格的时间变得很短,而不是大肆寻找要解决的问题。
I hope you use it and find yourself giving back to the world of open source, that you, as a developer, depend on every single day.
我希望您使用它并发现自己回馈开源世界,即您作为开发人员每天都依赖。
Here is the repo: https://github.com/jMuzsik/find-an-issue
这是仓库: https : //github.com/jMuzsik/find-an-issue
And here is the site: https://findanissue.com
这是网站: https : //findanissue.com
And thanks for the read!
并感谢您的阅读!
翻译自: https://www.freecodecamp.org/news/use-this-site-to-contribute-to-open-source-ec9b2751cb2/
开源贡献 计算