GitHub 리포지토리를 통계하는 명령줄 도구

9576 단어 githubcomparecligo

프레임워크에 대한 연구를 수행할 때 Google에서 관련 키워드를 검색하여 결과를 얻은 다음 GitHub에서 적절한 주제를 확인하여 올바른 프레임워크를 선택하게 될 것입니다. 나는 대부분의 사람들이
프레임워크를 선택할 때 단순히 사용하는 것이 아니라 리포지토리의 일부 메트릭을 보고 선택하거나 여러 프레임워크를 비교할지 여부를 결정합니다.

머리말



스타 트렌드에 대한 star-history와 같은 일부 웹 비교 도구가 커뮤니티에 이미 있다는 것을 알고 있지만 끝점에서 GitHub 리포지토리를 비교하는 데 사용할 수 있는 도구는 없습니다.
리포지토리를 볼 때 일반적으로 안정적인지 여부를 확인하기 위해 다음 메트릭을 살펴봅니다.
  • star count(별)
  • 업데이트 빈도(릴리스)
  • 커뮤니티 활동(기고자)
  • 문제 해결 주기(문제 해결)
  • 리포지토리 생성 기간(연령)
  • 조직(Organization)

  • Golang 마이크로서비스 프레임워크를 예로 선택하여 현재 커뮤니티에서 더 많이 사용되는 프레임워크를 비교해 보겠습니다.
  • 고제로
  • 크라토스
  • 고마이크로

  • 도구를 사용하기 전에 관련 데이터를 보기 위해 위의 지표에서 해당 저장소 홈 페이지로 차례로 각 저장소로 이동할 수 있습니다. 이 작업은 지루해 보일 수 있습니다. 일부 비교 데이터에 도달해야 하는 경우 수동으로 이동해야 합니다.
    일부 비교 데이터를 만들어야 하는 경우 수동으로 테이블을 작성해야 합니다.

    github-compare 의 결과를 살펴보겠습니다.

    ┌─────────────────────────┬─────────────────────┬───────────────────────┬──────────────────────┬──────────────────┐
    │ METRICS                 │ ZEROMICRO/GO-ZERO   │ GO-KRATOS/KRATOS      │ ASIM/GO-MICRO        │ GO-KIT/KIT       │
    ├─────────────────────────┼─────────────────────┼───────────────────────┼──────────────────────┼──────────────────┤
    │ 🏠 homepage             │ https://go-zero.dev │ https://go-kratos.dev │ https://go-micro.dev │ https://gokit.io │
    │ 🌎 language             │ Go                  │ Go                    │ Go                   │ Go               │
    │ 📌 license              │ MIT License         │ MIT License           │ Apache License 2.0   │ MIT License      │
    │ ⏰ age                  │ 655 days            │ 1231 days             │ 2688 days            │ 2668 days        │
    │ 🌟 stars                │ 17778(27/d)         │ 17856(14/d)           │ 18233(6/d)           │ 23084(8/d)       │
    │ 📊 latestDayStarCount   │ 33 (up)             │ 7 (down)              │ 2 (down)             │ 10 (up)          │
    │ 📉 latestWeekStarCount  │ 227 (up)            │ 64 (down)             │ 31 (down)            │ 44 (down)        │
    │ 📈 latestMonthStarCount │ 916                 │ 531                   │ 176                  │ 235              │
    │ 👏 forks                │ 2520(3/d)           │ 3446(2/d)             │ 2087(0/d)            │ 2315(0/d)        │
    │ 👀 watchers             │ 266                 │ 424                   │ 510                  │ 690              │
    │ 💪 issues               │ 50/741              │ 51/793                │ 76/914               │ 35/548           │
    │ 💯 pull requests        │ 13/1155             │ 10/1221               │ 0/1513               │ 9/627            │
    │ 👥 contributors         │ 132                 │ 198                   │ 166                  │ 221              │
    │ 🚀 releases             │ 63                  │ 49                    │ 206                  │ 12               │
    │ 🔭 release circle(avg)  │ 10 days             │ 25 days               │ 13 days              │ 222 days         │
    │ 🎯 lastRelease          │ 24 day(s) ago       │ 1 day(s) ago          │ 5 day(s) ago         │ 8 month(s) ago   │
    │ 🕦 lastCommit           │ 2 day(s) ago        │ 2 hour(s) ago         │ 5 day(s) ago         │ 6 day(s) ago     │
    │ 📝 lastUpdate           │ 47 minute(s) ago    │ 16 minute(s) ago      │ 1 hour(s) ago        │ 1 hour(s) ago    │
    └─────────────────────────┴─────────────────────┴───────────────────────┴──────────────────────┴──────────────────┘
    


    이 그래프에서 GitHub 리포지토리의 메트릭을 명확하게 볼 수 있으므로 도구가 어떻게 작동하는지 살펴보겠습니다.

    github 비교



    GitHub 리포지토리를 통계하는 명령줄 도구

    설치




    $ go install github.com/anqiansong/github-compare@latest
    


    예시




    $ github-compare zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit
    ┌─────────────────────────┬─────────────────────┬───────────────────────┬──────────────────────┬──────────────────┐
    │ METRICS                 │ ZEROMICRO/GO-ZERO   │ GO-KRATOS/KRATOS      │ ASIM/GO-MICRO        │ GO-KIT/KIT       │
    ├─────────────────────────┼─────────────────────┼───────────────────────┼──────────────────────┼──────────────────┤
    │ 🏠 homepage             │ https://go-zero.dev │ https://go-kratos.dev │ https://go-micro.dev │ https://gokit.io │
    │ 🌎 language             │ Go                  │ Go                    │ Go                   │ Go               │
    │ 📌 license              │ MIT License         │ MIT License           │ Apache License 2.0   │ MIT License      │
    │ ⏰ age                  │ 655 days            │ 1231 days             │ 2688 days            │ 2668 days        │
    │ 🌟 stars                │ 17778(27/d)         │ 17856(14/d)           │ 18233(6/d)           │ 23084(8/d)       │
    │ 📊 latestDayStarCount   │ 33 (up)             │ 7 (down)              │ 2 (down)             │ 10 (up)          │
    │ 📉 latestWeekStarCount  │ 227 (up)            │ 64 (down)             │ 31 (down)            │ 44 (down)        │
    │ 📈 latestMonthStarCount │ 916                 │ 531                   │ 176                  │ 235              │
    │ 👏 forks                │ 2520(3/d)           │ 3446(2/d)             │ 2087(0/d)            │ 2315(0/d)        │
    │ 👀 watchers             │ 266                 │ 424                   │ 510                  │ 690              │
    │ 💪 issues               │ 50/741              │ 51/793                │ 76/914               │ 35/548           │
    │ 💯 pull requests        │ 13/1155             │ 10/1221               │ 0/1513               │ 9/627            │
    │ 👥 contributors         │ 132                 │ 198                   │ 166                  │ 221              │
    │ 🚀 releases             │ 63                  │ 49                    │ 206                  │ 12               │
    │ 🔭 release circle(avg)  │ 10 days             │ 25 days               │ 13 days              │ 222 days         │
    │ 🎯 lastRelease          │ 24 day(s) ago       │ 1 day(s) ago          │ 5 day(s) ago         │ 8 month(s) ago   │
    │ 🕦 lastCommit           │ 2 day(s) ago        │ 2 hour(s) ago         │ 5 day(s) ago         │ 6 day(s) ago     │
    │ 📝 lastUpdate           │ 47 minute(s) ago    │ 16 minute(s) ago      │ 1 hour(s) ago        │ 1 hour(s) ago    │
    └─────────────────────────┴─────────────────────┴───────────────────────┴──────────────────────┴──────────────────┘
    


    용법



    준비


  • Creating a personal access token
  • 액세스 토큰 토큰 설정
  • 액세스 토큰을 복사하고 환경으로 내보내기
  • 또는 github-compare 인수--token를 전달하여 액세스 토큰을 설정할 수 있습니다.


  • 실행하다




    # set access token through the flag --token
    # zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit --token ${accessToken}
    # or export access token to environment (recommended)
    $ export GITHUB_ACCESS_TOKEN=${GITHUB_ACCESS_TOKEN}
    $ zeromicro/go-zero go-kratos/kratos asim/go-micro go-kit/kit
    


    메모


  • GitHub 개인 액세스 토큰이 필요합니다.
  • github-compare는 1~4개의 저장소 데이터 쿼리를 허용합니다.
  • 액세스 토큰을 환경으로 내보내려면 다음을 사용해야 합니다.
    환경 키GITHUB_ACCESS_TOKEN

  • 마지막



    이 저장소가 도움이 된다면 star을(를) 주십시오!

    모두 감사합니다!

    좋은 웹페이지 즐겨찾기