A package to retrieve trending repositories and developers from Github written in golang.
This package were inspired by rochefort/git-trend (Ruby) and sheharyarn/github-trending (Ruby).
- 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
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
Please have a look at the GoDoc documentation for a detailed API description.
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)
}
}
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)
}
}
This project is released under the terms of the MIT license.