GithubHelp home page GithubHelp logo

nilslice / gobservatory Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kkeuning/gobservatory

1.0 3.0 0.0 2.22 MB

A place where github starred repositories are observed

Go 97.48% Shell 2.52%

gobservatory's Introduction

Problem:

I have too many starred repositories, need a way to organize them with tags and comments.

Solution:

  1. Sync the starred repository information into Ponzu using the GitHub API.
  2. Add tags for categorization and additional comments.
  3. Extract to an awesome list formatted markdown file.
  4. Or consume the enriched content from Ponzu into a web client.

Important: This project requires Go 1.8 or higher.

Components:

gobservatory-cms

This is the Ponzu server to store and manage the starred repository records. Tags and comments should be edited here.

go get github.com/ponzu-cms/ponzu/...
go get github.com/kkeuning/gobservatory/...
cd $GOPATH/src/github.com/kkeuning/gobservatory/gobservatory-cms
ponzu build
ponzu run

cmd/gobservatory

Currently just a command line app to load any github starred repositories into Ponzu for an individual github account. By default based based on the logged in github account (cli will prompt for login), but optionally you can specify the "stargazer" of interest. It should be possible to aggregate starred repository lists for multiple users by running the cli against each stargazer's name and loading to a common Ponzu. The cli supports both initial creation and update of content in Ponzu.

cd $GOPATH/src/github.com/kkeuning/gobservatory/cmd/gobservatory
go build
./gobservatory --ponzuSecret="[redacted]" --ponzuUser="[email protected]"

In the future, gobservatory will likely just prompt you to log into Ponzu. For now, you need to provide a secret or token.

Replace "[redacted]" in the above with the "Client Secret" from Ponzu (e.g. http://localhost:8080/admin/configure from a logged in session). This method works if you are running the gobservatory cli and gobservatory-cms on the same server. If not, you can alternately pass the entire token like this:

./gobservatory --ponzuToken="[redacted]"

To obtain the token, you need to log in to Ponzu:

curl -v -X "POST" "http://localhost:8080/admin/login" \
     -H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" \
     --data-urlencode "[email protected]" \
     --data-urlencode "password=redacted"

You will find the token in curl output as the value after "Set-Cookie: _token="

Do not include the trailing semi-colon.

Building your "awesome" markdown file

./gobservatory markdown

The gobservatory cli will to extract starred repositories from the cms and organize them into a markdown file based language. To also organize by tag, use the "useTags" flag:

./gobservatory markdown --ponzuHost="localhost" --ponzuPort="8080" --useTags

Roadmap

  • Comments. The gobservatory cli does not yet include your personal comments in the markdown. This option is likely in the future.
  • Language overrides. Currently the loader will trust github for identifying the primary language of a project. Github is occasionally incorrect. Today you can correct that information in Ponzu, but the next sync with gobservatory load will overwrite your changes. A likely future enhancement will address this.

gobservatory's People

Contributors

kkeuning avatar

Stargazers

Andrei Popovici avatar

Watchers

James Cloos avatar Steve Manuel 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.