git-trend
git-trend
is a gem that fetches Trending repositories on GitHub.
And this also work as a command line utility.
Buy me a coffee
If you can contribute or you want to, feel free to do it at Buy me a coffee! ☕, I will be really thankfull for anything even if it is a coffee or just a kind comment towards my work, because that helps me a lot. Whenever you contribute with a donation, I will read your message and it will be shown in my main site.
TOC
- Requirements
- Installation
- Usage of a gem
- Usage of a command line tool
- Tips
- Implementation of other language
- Contributing
Requirements
Ruby versions is 2.7 or later.
Installation
Add this line to your application's Gemfile:
gem 'git-trend'
And then execute:
$ bundle
Or install it yourself as:
$ gem install git-trend
Usage of a gem
Require it if you haven't:
require 'git-trend'
Fetch trends
repos = GitTrend.get
repos.each do |r|
puts "#{r.name} (#{r.star_count} stargazers)"
puts "--- #{r.description}\n\n"
end
# =>
# jayphelps/git-blame-someone-else (625 stargazers)
# --- Blame someone else for your bad code.
#
# FreeCodeCamp/FreeCodeCamp (574 stargazers)
# --- The http://FreeCodeCamp.com open source codebase and curriculum. Learn to # code and help nonprofits.
#
# p-e-w/maybe (519 stargazers)
# --- See what a program does before deciding whether you really want it to happen.
# ...
Use language and since options
# language
GitTrend.get("ruby")
GitTrend.get(:ruby)
# since
GitTrend.get(since: :weekly)
GitTrend.get(since: :week)
GitTrend.get(since: :w)
# language and since
GitTrend.get("ruby", "weekly")
GitTrend.get(:ruby, :weekly)
GitTrend.get(language: :ruby, since: :weekly)
Show enable languages
GitTrend.languages
Usage of a command line tool
Use the git-trend as follows:
Fetch daily trending
git trend
e.g.:
$ git trend
No. Name Lang Star Description
--- ---------------------------------------- ----------- ------ ---------------------------------------------------------------------------------------------------
1 reddit/reddit Python 528 the code that powers reddit.com
2 yahoo/gifshot JavaScript 485 JavaScript library that can create animated GIFs from media streams, videos, or images
3 FezVrasta/bootstrap-material-design CSS 387 Material design theme for Bootstrap 3
4 realm/realm-java Java 293 Realm is a mobile database: a replacement for SQLite & ORMs
5 Aerolab/midnight.js JavaScript 226 A jQuery plugin to switch fixed headers on the fly
6 alebcay/awesome-shell 220 A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awes...
7 jonathanslenders/python-prompt-toolkit Python 215 Library for building powerful interactive command lines in Python
8 willianjusten/awesome-svg 130 A curated list of SVG.
9 usablica/intro.js JavaScript 105 A better way for new feature introduction and step-by-step users guide for your website and proj...
10 simoncozens/sile C++ 102 Simon's Improved Layout Engine
11 sferik/t Ruby 85 A command-line power tool for Twitter.
12 realm/realm-cocoa Objective-C 83 Realm is a mobile database: a replacement for Core Data & SQLite
13 mubix/shellshocker-pocs 67 Collection of Proof of Concepts and Potential Targets for #ShellShocker
14 hannob/bashcheck Shell 60 test script for shellshocker and related vulnerabilities
15 angular/angular.js JavaScript 46 HTML enhanced for web apps
16 kenwheeler/slick JavaScript 57 the last carousel you'll ever need
17 Squirrel/Squirrel.Windows C 57 An installation and update framework for Windows desktop apps
18 jshint/fixmyjs JavaScript 56 Automatically fix silly lint errors.
19 plivo/sharq-server Python 52 A flexible rate limited queueing system
20 marmelab/ng-admin JavaScript 49 Add an AngularJS admin GUI to any RESTful API
21 twbs/bootstrap CSS 38 The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first pro...
22 CyberAgent/AMBTableViewController Objective-C 48 Storyboard and Prototype Cells-centric block-based UITableView controller to manage complex layo...
23 google/cadvisor Go 48 Analyzes resource usage and performance characteristics of running containers.
24 vladikoff/chromeos-apk JavaScript 46 Run Android APKs in Chrome OS OR Chrome in OS X, Linux and Windows.
25 nhanaswigs/htmljs JavaScript 47 HTML render engine and data binding (MVVM)
Fetch daily trending with JSON format
git trend -f json
git trend -f j
e.g.:
$ git trend -f json -n 3 | jq
[
{
"name": "lord/slate",
"description": "Beautiful static documentation for your API",
"lang": "JavaScript",
"all_star_count": 16701,
"fork_count": 9313,
"star_count": 361
},
{
"name": "chrispsn/mesh",
"description": "Visualise data and edit JavaScript code using a spreadsheet interface.",
"lang": "JavaScript",
"all_star_count": 320,
"fork_count": 8,
"star_count": 303
},
{
"name": "polyaxon/polyaxon",
"description": "A platform that helps you build, manage and monitor deep learning models",
"lang": "Python",
"all_star_count": 488,
"fork_count": 36,
"star_count": 261
}
]
Fetch daily trending without description
git trend --no-description
e.g.:
$ git trend --no-description
No. Name Lang Star
--- ---------------------------------------- ----------- ------
1 reddit/reddit Python 528
2 yahoo/gifshot JavaScript 485
3 FezVrasta/bootstrap-material-design CSS 387
4 realm/realm-java Java 293
5 Aerolab/midnight.js JavaScript 226
...
Fetch daily trending by language
git trend -l
e.g.:
$ git trend -l ruby
No. Name Lang Star Description
--- ---------------------------------------- ---------- ------ ----------------------------------------------------------------------------------------------------
1 sferik/t Ruby 78 A command-line power tool for Twitter.
2 rails/rails Ruby 26 Ruby on Rails
3 Homebrew/homebrew Ruby 23 The missing package manager for OS X.
4 ruby/ruby Ruby 12 The Ruby Programming Language
5 discourse/discourse Ruby 10 A platform for community discussion. Free, open, simple.
...
Fetch weekly/monthly trending
git trend -s weekly
git trend -s week
git trend -s w
or
git trend -s monthly
git trend -s month
git trend -s m
e.g.:
$ git trend -s weekly
No. Name Lang Star Description
--- ---------------------------------------- ------------ ------ --------------------------------------------------------------------------------------------------
1 FezVrasta/bootstrap-material-design CSS 2821 Material design theme for Bootstrap 3
2 slackhq/SlackTextViewController Objective-C 1526 A drop-in UIViewController subclass with a growing text input view and other useful messaging f...
3 willianjusten/awesome-svg 1395 A curated list of SVG.
4 Aerolab/midnight.js JavaScript 1351 A jQuery plugin to switch fixed headers on the fly
5 alebcay/awesome-shell 743 A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awe...
...
Fetch number of trending
git trend -n <number>
e.g.:
$ git trend -n 3
No. Name Lang Star Description
--- ---------------------------------------- ---------- ------ -----------------------------------------------------
1 mozilla/metrics-graphics JavaScript 1005 A library optimized for concise, principled data g...
2 breach/thrust C++ 574 Chromium-based cross-platform / cross-language app...
3 dotnet/corefx C# 538 This repository contains the foundational librarie...
Show enable languages
git trend languages
e.g.:
$ git trend languages
abap
as3
ada
agda
alloy
antlr
apex
applescript
...
Tips
I use an alias command like below;
alias trend='git trend -n 10 && git trend -l ruby -n 5 && git trend -l JavaScript -n 5'
Implementation of other language
Contributing
- Fork it ( https://github.com/rochefort/git-trend/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request