资讯专栏INFORMATION COLUMN

GitHub 仓库按大小排序

mdluo / 416人阅读

摘要:起因对于代码初学者来说,是一个很好的网站。所以我想到了一个方法将自己过的所有优秀项目按仓库大小代码量进行排序,从代码量小的项目开始研究,逐步提升代码能力。

起因

  对于代码初学者来说,GitHub 是一个很好的网站。在这里,他们可以学习如何更好地写代码并提高代码能力,学习编码规范,各种框架......
  然而对于像我一下的初学者来讲,有时候不知道要如何从 GitHub 的优秀项目中学习、要从何开始阅读源码。
  所以我想到了一个方法: 将自己 star 过的所有优秀项目按仓库大小( 代码量 )进行排序,从代码量小的项目开始研究,逐步提升代码能力。

准备

想好了项目的目的,列出以下几种需要用到的技术:

JavaScript

NodeJs

GitHub API

并找到了一个极小的 GitHub API 封装工具: gh.js。

开始 安装项目依赖包
# 初始化项目
npm init 

npm install gh.js # 封装过的 GitHub API
npm install chalk # 美化终端命令行工具的字体颜色
npm install ora   # 优雅的终端加载条
创建项目入口 index.js
const GitHub = require("gh.js")

/**
 * sortByStarredSize
 * Sort your personal starred repos by size.
 *
 * @name sortByStarredSize
 * @function
 * @param {String} username The GitHub username.
 * @param {String} token An optional access token.
 * @param {Function} callback The callback function.
 * @return {gh.js} The `gh.js` instance.
 */
function sortByStarredSize (username, token, callback) {
  if (typeof token === "function") {
    callback = token
    token = undefined
  }

  const gh = new GitHub({ token: token })
  gh.get(`users/${username}/starred`, { all: true }, (err, repos) => {
    if (err) { return callback(err) }
    repos.sort(function (a, b) {
      return a.size > b.size ? 1 : -1
    })
    callback(null, repos)
  })

  return gh
}

module.exports = sortByStarredSize
创建测试样例 example.js
const sortGhStarredSize = require(".")

// 以大神 Linus Torvalds 的GitHub用户名torvalds为例
const username = "torvalds"

sortGhStarredSize(username, (err, repos) => {
  console.log(err || repos.map(function(c) {
    return `${c.full_name} => ${c.size} kb`
  }).join("
"))
})

运行结果如下:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108404.html

相关文章

  • Gitalk评论插件使用教程

    摘要:说明是一个基于和开发的评论插件。默认值类型布尔值,选填,类似评论框的全屏遮罩效果。默认值类型布尔值,选填,如果当前页面没有相应的且登录的用户属于,则会自动创建。参考类型布尔值,选填,启用快捷键提交评论。 1. 说明 Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件。 Gitalk 的特性: 1、使用 GitHub 登录2、支持多语言 [en, zh-...

    孙吉亮 评论0 收藏0
  • 程序兵法:Java String 源码的排序算法(一)

    摘要:从行,可以看出字符串的存储结构是字符数组。如果不相等,则返回两字符的编码值的差值第行当前字符串和另一个字符串,依次字符比较。如果均相等,则返回两个字符串长度的差值所以要排序,肯定先有比较能力,即实现接口。摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢!这是泥瓦匠的第103篇原创《程序兵法:Java Str...

    CntChen 评论0 收藏0
  • 前端实习面试汇总

    摘要:题目来源前端实习生面试总结最近开始了几次面试,虽然还不知道结果如何,但是还是要记录下来进行一个总结,同样也希望对正在准备面实习生的童鞋们有所帮助最后一个参数是做什么用的答规定事件是冒泡还是捕获。 最近一直在多看基础的书多码代码准备找实习,在网上也搜罗了不少面经,现在把搜罗到的实习生面试题自己整理一下。 题目来源:前端实习生面试总结最近开始了几次面试,虽然还不知道结果如何,但是还是要记录...

    张利勇 评论0 收藏0
  • 前端实习面试汇总

    摘要:题目来源前端实习生面试总结最近开始了几次面试,虽然还不知道结果如何,但是还是要记录下来进行一个总结,同样也希望对正在准备面实习生的童鞋们有所帮助最后一个参数是做什么用的答规定事件是冒泡还是捕获。 最近一直在多看基础的书多码代码准备找实习,在网上也搜罗了不少面经,现在把搜罗到的实习生面试题自己整理一下。 题目来源:前端实习生面试总结最近开始了几次面试,虽然还不知道结果如何,但是还是要记录...

    wangzy2019 评论0 收藏0

发表评论

0条评论

mdluo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<