Code Monkey home page Code Monkey logo

gh-organizer's Introduction

gh-organizer ๐Ÿ“‡

Visualize your Github organization or user. gh-organizer can be run on your own private Github org and repos.

I created this because I wanted to understand the history of contributors and repos in my private organizations.

Demo

/members and /repos View

  • All current members of the organization and PR stats
  • All repos and some basic stats
  • Toggle to show or hide non-member contributors (marked with โ€ )
  • Toggle to show or hide forked repos
  • Links

/repo-timeline View

  • Timeline of repos. Bar displays created date to last push date
  • Ordered by created date

/contrib-timeline View

  • Timeline of all contributors. Bar displays first to last merge date
  • Ordered by first merge date

/force-graph View

  • An interactive force graph of contributors to repos they have contributed to

repo timeline force graph force graph

Usage

gh-organizer works by prefetching data from the Github API and serving it from JSON files. Pulling this information is too slow to do realtime and I do not intend to implement kicking off async tasks at the moment.

We fetch that organization information via backend/fetch.ts and store those files in backend/data/

# `npx ts-node fetch.ts <mode> <owner> <fetchers> [<repo-privacy>]`
# `npx ts-node fetch.ts org clojure all`
# 1) mode is either "org" or "user"
# 2) owner is a github org or user to fetch for
# 3) fetchers is a comma-separated list of fetchers to run
#      options: org, members, members-prs, repo-prs, nonmembers, nonmembers-prs, all. if all, run all fetchers
#      example: "org,members"
#      hack: "org" also applies to the "user" mode owner
# 4) repo-privacy is an optional control filter on repo privacy, either "PUBLIC" or "PRIVATE". if unset, will fetch all repos
#
# using janky positional arguments because i dont think flags are easy to use in typscript. sorry
npx ts-node fetch.ts org tlaplus all
# or
make fetch MODE=org OWNER=tlaplus FETCHERS=all REPOPRIVACY=PUBLIC

And then serve it to the front end

make run-backend-dev

make run-frontend-dev
# you can run w/ default fixture files
# includes data from some public orgs that I admire
REACT_APP_USE_FIXTURES=true make run-frontend-dev

TODO

  • Ability to kick off fetching jobs on the fly
  • Host this as a Github app w/ Github auth or OAuth

gh-organizer's People

Contributors

elh avatar

Stargazers

 avatar  avatar

Watchers

 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.