Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

124 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Climate

What is nailed?

nailed consists of a back-end CLI for data collection and a sinatra based web front-end for visualization of relevant development data of Products that have their bugtracker on Bugzilla and (optionally) their codebase on GitHub and their CI on Jenkins.

Be aware that the bugzilla layout (metadata) is still SUSE specific, which may not be useful for everybody. e.g. it relies on bugs being tagged as L3. The plan is to make it optional in the future.

Installation using gem

gem install 'nailed'

Note that this is always a bit outdated.

Installation using git (recommended)

You can use nailed directly from a git checkout as well. Make sure to fetch the dependencies and call nailed from the bin directory.

SUSE

zypper in libxml2-devel sqlite3-devel gcc make ruby-devel
bundle install

Usage

$ nailed -h
Options:
      --migrate, -m:   Migrate/Upgrade database
     --bugzilla, -b:   Refresh bugzilla database records
       --github, -g:   Refresh github database records
      --jenkins, -j:   Refresh jenkins database records
     --list, -l <s>:   List github repositories within organization
       --server, -s:   Start a dashboard webinterface
         --help, -h:   Show this message

Initial setup

  • for the bugzilla API make sure you have an .oscrc file with your credentials in ~
  • for the github API make sure you have a .netrc with a valid GitHub OAuth-Token in ~
# example .netrc

machine api.github.com
  login MaximilianMeister
  password <your OAuth Token>
nailed --migrate

Configuration

All configuration is read from config/config.yml

Changes in production

  • in production, after adding products/changes, to upgrade the database with the new changes run
nailed --migrate
  • make sure to fetch new data with
nailed --bugzilla
nailed --github
nailed --jenkins
  • restart the webserver

Run

  • create a cronjob for automated data collection with nailed
  • start the webserver with nailed --server

Running as a Docker container

  • Build the image
$ git clone https://github.com/MaximilianMeister/nailed
$ cd nailed
$ docker build -t nailed:latest .
  • Create a directory to hold the data, and create the config, db and log subdirectories
mkdir -p /mystorage/config
mkdir -p /mystorage/log
mkdir -p /mystorage/db

Add .oscrc and netrc and config.yml into /mystorage/config. You can as well add colors.yml here and override some defaults. You need to mount that directory as the /data volume in the container.

  • Migrate and fetch initial data
docker run -ti -v /mystorage:/data nailed:latest --migrate
  • Run the server

In this case, we map it to port 8000 on the host

docker run -ti -v /mystorage:/data -p 8000:4567 nailed:latest --server

Credits

About

Collect and visualize product related data from Bugzilla, Github and Jenkins

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages