codeye

Code insights, statistics of your code, history, contributions and contributors, graphs and more.

View the Project on GitHub

Codeye (Code Eye)

Go Report Card CircleCI

When I join a new project I always find it hard to understand the current code structure, its history like when was it started, who worked on it so far, and other helpful tips that gives me context about code before diving in the code itself, so I decided to build that tool, to be a single binary web server, you can run it in any project, and explore that project code from a web interface.

The technique itself helped me discover anomalies in code, especially what is so called legacy code, get an idea about the messy places and have a general plan to straighten the project before even diving in the refactoring phase.

In the beginning I didn’t know whether to choose ruby or Go for the implementation, ruby will make it faster to implement it with nice help from rails and other gems, and go will give me speed and one binary distribution, so I decided to go with Go for these reasons, also I wanted to push my skills towards Go and explore more of this language.

Installation

Download the binary for your system from here:

Windows Linux FreeBSD MacOS
windows linux freebsd macos

Or latest version from here

Screenshots

Usage

Execute codeye in any git project you have, it will open a port service a web insterface for you to navigate

Development

Prerequisite

Having your own fork

Assets

Codeye uses go-bindata to generate assets, so if you changed any of the assets you’ll need to regenerate them in code.

go generate

Running codeye in another project

I usually execute that command while developing, to run codeye in another project called news

cd ~/code/news; go run ~/go/src/github.com/emad-elsaid/codeye/cmd/codeye/codeye.go

Releasing a new version

  1. add a tag to the branch and push it
  2. execute goreleaser