Giter Site home page Giter Site logo

gomod's Introduction

gomod

gomod 是一款分析 Goalng 项目三方依赖仓库 Star 、Fork 的工具。

支持用户按统计数据的升降序查看,默认按 Fork 降序排序,再次按 s 则以相反的顺序排序; 按 f 键可以切换到按 Fork 排序,再次按 f 则以相反顺序排序。

为什么开发这个工具?

在日常工作中,经常会关注一些优秀的项目如 kubernetesistioetcdnsq等。而这些项目的成功离不开它采用的那些三方库,于是通过这些项目发现一些不错的三方库慢慢变成了一种学习途径。对于这些三方库来讲它们的 Star 、Fork、Watch 数量成为了一个行业评价其是否优秀的标准。为了方便查看这些数据信息,减少人肉操作因此开发了此工具。

实现原理

由于使用官方API (https://api.github.com) 接口存在限率问题,所以采用了最直接的采集页面内容来分析的方法。

通过远程抓取 https://github.com/user/repo 仓库的页面的信息,来获取仓库的 StarFork 统计数据。

  1. 读取 go.mod 文件,分析出 Require 指令中的所有依赖仓库
  2. 远程抓取仓库页面,统计出 Star、Fork 信息
  3. 输出统计结果,支持按 Star 和 Fork 的升序和降序排序

安装

$ go install github.com/cfanbo/gomod@latest

此命令将自动编译并将生成的可执行文件存放在 $GOPATH/bin 目录里,推荐此方法。

您也可以下载到本机安装

$ git clone https://github.com/cfanbo/gomod.git
$ cd gomod
$ make install

效果展示

$ cd client-go
$ gomod

asciicast

输出字段:

Star 仓库的 Star 数量;如果统计数据超时则显示为 ?

Fork 仓库的 Fork 数量;如果统计数据超时则显示为 ?

Share 是否存在相同的仓库;如果引用了同一个仓库的多个包,则此列将显示 Y

Module 当前项目依赖的三方库名称

GitHub 三方库在 github.com 上的托管地址

可以通过多次按 sfmg 键查看效果,如果要退出查看模式按 qEsc键即可。
如果要访问仓库在 github.com 上的托管地址,直接 Enter 键即可; 如果要访问在 pkg.go.dev 网站的地址,直接按空格键 即可。

注:github.com 网站显示的数据是对其进行四舍五入后的结果。

使用方法

根据用户习惯支持多种用法。

1. 本地项目

一、适用于查看用户本地项目的场景,在 Golang 项目里的任意目录即可执行此命令

$ gomod

此命令将查看当前项目文件 go.mod 中的所有依赖信息。

二、指定 go.mod 文件路径

$ gomod workspace/client-go/go.mod

此方法比较灵活, 可以查看任意位置的 go.mod 文件依赖信息。

2. 远程项目

如果想查看托管在 github.com 上的任何项目信息,可通过以下几种方法:

方法一

$ gomod github.com/kubernetes/client-go

方法二

$ gomod github.com/kubernetes/client-go/blob/master/CHANGELOG.md

指定 github.com/user/repo 仓库任意路径或文件地址,即使这个网站 github.com/user/repo 后面的路径不存在。如:

$ gomod github.com/kubernetes/client-go/noexists

方法三:

指定一个远程的 go.mod 网址

$ gomod https://raw.githubusercontent.com/kubernetes/client-go/master/go.mod

或 第三方网站

$ gomod https://example.com/go.mod

常见问题

  1. 展示结果里统计数字会出现 ? 符号 由于每次执行统计时都需要实时访问 https://pkg.go.devhttps://github.com 两个网站,因此请确保这网站可以正常访问; 如果在本地网络正常的情况下出现此问题,一般是由于网络不稳定的原因,可多次执行此命令或等待其自动请求完成。

gomod's People

Contributors

cfanbo avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar jxlwqq avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.