go-trending

Go library for accessing trending repositories and developers at Github.

  • Owner: andygrunwald/go-trending
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

go-trending

GoDoc
Build Status
Go Report Card

A package to retrieve trending repositories and developers from Github written in golang.

trending package showcase

This package were inspired by rochefort/git-trend (Ruby) and sheharyarn/github-trending (Ruby).

Features

  • Get trending repositories
  • Get trending developers
  • Get trending languages
  • Get all programming languages known by GitHub
  • Filtering by time and (programming) language
  • Support for GitHub Enterprise

Installation

It is go gettable

$ go get github.com/andygrunwald/go-trending

(optional) to run unit / example tests:

$ cd $GOPATH/src/github.com/andygrunwald/go-trending
$ go test -v

API

Please have a look at the GoDoc documentation for a detailed API description.

Examples

Further a few examples how the API can be used.
A few more examples are available in the GoDoc examples section.

package main

import (
	"fmt"
	"github.com/andygrunwald/go-trending"
	"log"
)

func main() {
	trend := trending.NewTrending()

	// Show projects of today
	projects, err := trend.GetProjects(trending.TimeToday, "")
	if err != nil {
		log.Fatal(err)
	}
	for index, project := range projects {
		no := index + 1
		if len(project.Language) > 0 {
			fmt.Printf("%d: %s (written in %s with %d ★ )\n", no, project.Name, project.Language, project.Stars)
		} else {
			fmt.Printf("%d: %s (with %d ★ )\n", no, project.Name, project.Stars)
		}
	}
}
package main

import (
	"fmt"
	"github.com/andygrunwald/go-trending"
	"log"
)

func main() {
	trend := trending.NewTrending()

	// Show projects of today
	projects, err := trend.GetProjects(trending.TimeWeek, "go")
	if err != nil {
		log.Fatal(err)
	}
	for index, project := range projects {
		no := index + 1
		if len(project.Language) > 0 {
			fmt.Printf("%d: %s (written in %s with %d ★ )\n", no, project.Name, project.Language, project.Stars)
		} else {
			fmt.Printf("%d: %s (with %d ★ )\n", no, project.Name, project.Stars)
		}
	}
}
package main

import (
	"fmt"
	"github.com/andygrunwald/go-trending"
	"log"
)

func main() {
	trend := trending.NewTrending()

	developers, err := trend.GetDevelopers(trending.TimeMonth, "swift")
	if err != nil {
		log.Fatal(err)
	}
	for index, developer := range developers {
		no := index + 1
		fmt.Printf("%d: %s (%s)\n", no, developer.DisplayName, developer.FullName)
	}
}

List available languages

package main

import (
	"fmt"
	"github.com/andygrunwald/go-trending"
	"log"
)

func main() {
	trend := trending.NewTrending()

	// Show languages
	languages, err := trend.GetLanguages()
	if err != nil {
		log.Fatal(err)
	}
	for index, language := range languages {
		no := index + 1
		fmt.Printf("%d: %s (%s)\n", no, language.Name, language.URLName)
	}
}

Implementations

License

This project is released under the terms of the MIT license.

Main metrics

Overview
Name With Ownerandygrunwald/go-trending
Primary LanguageGo
Program languageGo (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2015-07-04 08:06:48
Pushed At2025-04-17 15:31:59
Last Commit At2025-04-17 23:31:58
Release Count0
用户参与
Stargazers Count145
Watchers Count8
Fork Count21
Commits Count179
Has Issues Enabled
Issues Count5
Issue Open Count1
Pull Requests Count40
Pull Requests Open Count0
Pull Requests Close Count16
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private