谁是 2017 年度开源贡献之王?—— GitHub 数据分析报告

2017 年 10 月 31 日 技术最前线

(点击上方公众号,可快速关注)


转自:开源中国

www.oschina.net/news/90001/the-top-contributors-to-github


有位作者分析了 2017 年截至今天 GitHub 上所有的 PushEvents......


作者对于每个 GitHub 用户都尽量分辨了他们属于哪个组织,并且只关注在 2017 年增长超过 20 个 star 的仓库(比如 Apache 目前在 GitHub 有超过 1500 个仓库,但只有 205 个在今年获得了 20 个以上的 star。因此,这里只分析这 205 个仓库的提交情况)。


各公司的贡献情况


按仓库 star 数排名



顶尖的贡献组织比较


  • 微软大约有 1,300 名员工积极地将代码推送到 GitHub 上的 825 个顶级仓库

  • 谷歌大约有 900 名员工活跃于 GitHub,将代码推送到约 1,100 个顶级仓库

  • 亚马逊大约有 134 名员工活跃于 GitHub,仅将代码推送到 158 个顶级仓库

  • 谷歌员工贡献的代码仓库比微软的多了 25%,存储卡获得的 star 数也更多(530,000 vs 60,000)。亚马逊仓库 2017 的 star 总数为 27,000。



亚马逊远远落后于微软和谷歌,那夹在它们之间有什么公司? 


根据贡献情况排名如下:RedHat,IBM,Pivotal,Intel 和 Facebook 也做出了突出贡献。



Facebook 和 IBM(US) 的 GitHub 用户数量与亚马逊的相似,但他们贡献的项目收获到了更多的 star(尤其是 Facebook):



紧接着的是 Alibaba, Uber, 和 Wix



GitHub,Apache 和 Tencent



Baidu, Apple 和 Mozilla



更详细的内容可直接参看这个可交互的版本:The top contributors to GitHub (2017)


怎么做到的?


1、数据来源:GitHub Archive


2、怎么判断 Github 用户属于哪个公司?


  • 这里主要通过用户提交记录中的邮件地址来进行判断。当然不是每个人都会用自己组织的邮箱地址,有很多人在 Github 上都选择如 gmail.com, users.noreply.github.com 或其他的邮箱,这种情况就没有办法了。


3、所用工具:Google Big Query


4. 具体的 SQL 代码:


#standardSQL
WITH
period AS (
  SELECT *
  FROM `githubarchive.month.2017*` a
),
repo_stars AS (
  SELECT repo.id, COUNT(DISTINCT actor.login) stars, APPROX_TOP_COUNT(repo.name, 1)[OFFSET(0)].value repo_name 
  FROM period  WHERE type='WatchEvent'  GROUP BY 1  HAVING stars>20), 
pushers_guess_emails_and_top_projects AS (
  SELECT *, REGEXP_EXTRACT(email, r'@(.*)'domain  FROM (
    SELECT actor.id
      , APPROX_TOP_COUNT(actor.login,1)[OFFSET(0)].value login
      , APPROX_TOP_COUNT(JSON_EXTRACT_SCALAR(payload, '$.commits[0].author.email'),1)[OFFSET(0)].value email
      , COUNT(*) c
      , ARRAY_AGG(DISTINCT TO_JSON_STRING(STRUCT(b.repo_name,stars))) repos
    FROM period a
    JOIN repo_stars b
    ON a.repo.id=b.id
    WHERE type='PushEvent'    GROUP BY  1    HAVING c>3  )
)SELECT * FROM (
  SELECT domain    , githubers
    , (SELECT COUNT(DISTINCT repo) FROM UNNEST(repos) repo) repos_contributed_to
    , ARRAY(
        SELECT AS STRUCT JSON_EXTRACT_SCALAR(repo, '$.repo_name') repo_name
        , CAST(JSON_EXTRACT_SCALAR(repo, '$.stars'AS INT64) stars
        , COUNT(*) githubers_from_domain FROM UNNEST(repos) repo 
        GROUP BY 12 
        HAVING githubers_from_domain>1 
        ORDER BY stars DESC LIMIT 3      ) top
    , (SELECT SUM(CAST(JSON_EXTRACT_SCALAR(repo, '$.stars'AS INT64)) FROM (SELECT DISTINCT repo FROM UNNEST(repos) repo)) sum_stars_projects_contributed_to
  FROM (
    SELECT domainCOUNT(*) githubers, ARRAY_CONCAT_AGG(ARRAY(SELECT * FROM UNNEST(repos) repo)) repos
    FROM pushers_guess_emails_and_top_projects
    #WHERE domain IN UNNEST(SPLIT('google.com|microsoft.com|amazon.com''|'))
    WHERE domain NOT IN UNNEST(SPLIT('gmail.com|users.noreply.github.com|qq.com|hotmail.com|163.com|me.com|googlemail.com|outlook.com|yahoo.com|web.de|iki.fi|foxmail.com|yandex.ru''|')) # email hosters
    GROUP BY 1    HAVING githubers > 30  )
  WHERE (SELECT MAX(githubers_from_domain) FROM (SELECT repo, COUNT(*) githubers_from_domain FROM UNNEST(repos) repo  GROUP BY repo))>4 # second filter email hosters
)ORDER BY githubers DESC



觉得这条资讯有帮助?请转发给更多人

关注 技术最前线 看 IT 要闻

登录查看更多
0

相关内容

GitHub.com 使用 Git 作为版本控制系统(version control system)提供在线源码托管的服务,同时是个有社交功能的开发者社区。 国外类似服务: Bitbucket.com
Gitlab.com
国内类似服务:
Coding.net
AI创新者:破解项目绩效的密码
专知会员服务
33+阅读 · 2020年6月21日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
专知会员服务
109+阅读 · 2020年3月12日
抢鲜看!13篇CVPR2020论文链接/开源代码/解读
专知会员服务
49+阅读 · 2020年2月26日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
2018-Github最热门机器学习开源项目Top10分享
深度学习与NLP
8+阅读 · 2019年1月22日
机器学习开源项目Top10
AI100
4+阅读 · 2019年1月20日
年度大盘点:机器学习开源项目及框架
云栖社区
3+阅读 · 2018年12月17日
10月机器学习开源项目Top10
机器学习算法与Python学习
3+阅读 · 2018年10月30日
3月份GitHub上最热门的开源项目
大数据技术
3+阅读 · 2018年4月10日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
GitHub上12月份最热门开源项目
程序猿
4+阅读 · 2018年1月9日
Arxiv
110+阅读 · 2020年2月5日
Arxiv
4+阅读 · 2019年9月26日
Arxiv
8+阅读 · 2019年3月28日
Arxiv
9+阅读 · 2018年5月24日
VIP会员
相关VIP内容
相关资讯
2018-Github最热门机器学习开源项目Top10分享
深度学习与NLP
8+阅读 · 2019年1月22日
机器学习开源项目Top10
AI100
4+阅读 · 2019年1月20日
年度大盘点:机器学习开源项目及框架
云栖社区
3+阅读 · 2018年12月17日
10月机器学习开源项目Top10
机器学习算法与Python学习
3+阅读 · 2018年10月30日
3月份GitHub上最热门的开源项目
大数据技术
3+阅读 · 2018年4月10日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
GitHub上12月份最热门开源项目
程序猿
4+阅读 · 2018年1月9日
Top
微信扫码咨询专知VIP会员