All Projects → ghtorrent → Ghtorrent Vagrant

ghtorrent / Ghtorrent Vagrant

Licence: mit
A Vagrant box with Puppet provisioning for running GHTorrent locally

Projects that are alternatives of or similar to Ghtorrent Vagrant

Phalcon Vm
Vagrant configuration for PHP7, Phalcon 3.x and Zephir development.
Stars: ✭ 43 (+616.67%)
Mutual labels:  puppet, vagrant
vagrant-magento
**DEPRECATED**
Stars: ✭ 12 (+100%)
Mutual labels:  vagrant, puppet
Jenkins Infra
Jenkins main control repo for R10k and our Puppet Enterprise managed infrastructure
Stars: ✭ 76 (+1166.67%)
Mutual labels:  puppet, vagrant
Vagrant Golang
A very easy to use golang environment for use with vagrant.
Stars: ✭ 104 (+1633.33%)
Mutual labels:  puppet, vagrant
vagrant-dspace
(No longer actively maintained. Replaced by Docker compose in main codebase.) DSpace + Vagrant. Quickly spin up a virtual machine (via Vagrant) which is "DSpace development ready"
Stars: ✭ 37 (+516.67%)
Mutual labels:  vagrant, puppet
Vagrant Rails Dev
my vagrant rails development box
Stars: ✭ 16 (+166.67%)
Mutual labels:  puppet, vagrant
Primary Vagrant
An Apache based Vagrant configuration for helping you get the most out of WordPress Development
Stars: ✭ 192 (+3100%)
Mutual labels:  puppet, vagrant
Chassis
📦 Chassis is a virtual server for your WordPress site, built using Vagrant.
Stars: ✭ 602 (+9933.33%)
Mutual labels:  puppet, vagrant
vagrant-r10k
UNSUPPORTED - SEEKING MAINTAINER - Vagrant middleware plugin to retrieve puppet modules using r10k.
Stars: ✭ 36 (+500%)
Mutual labels:  vagrant, puppet
puppet-magnum
rubygems.org/gems/puppet-magnum
Stars: ✭ 31 (+416.67%)
Mutual labels:  vagrant, puppet
packer-vagrant-builder
Build Solaris,CentOS or Ubuntu Vagrant box with puppet rpm's
Stars: ✭ 49 (+716.67%)
Mutual labels:  vagrant, puppet
devops
Setup & installers for databases, runtimes, queues etc. using Anaconda, Ansible, Vagrant, Docker, AWS, Puppet, automation etc.
Stars: ✭ 28 (+366.67%)
Mutual labels:  vagrant, puppet
vagrant-puppetmaster
A simple vagrant setup exposing all permutations of puppetmaster roles
Stars: ✭ 19 (+216.67%)
Mutual labels:  vagrant, puppet
Wirbelsturm
Wirbelsturm is a Vagrant and Puppet based tool to perform 1-click local and remote deployments, with a focus on big data tech like Kafka.
Stars: ✭ 332 (+5433.33%)
Mutual labels:  puppet, vagrant
Vagrant Lamp
My default LAMP development stack for Vagrant
Stars: ✭ 765 (+12650%)
Mutual labels:  vagrant
Macinbox
Puts macOS in a Vagrant box
Stars: ✭ 599 (+9883.33%)
Mutual labels:  vagrant
Kubernetes Vagrant Coreos Cluster
Kubernetes cluster (for testing purposes) made easy with Vagrant and CoreOS.
Stars: ✭ 598 (+9866.67%)
Mutual labels:  vagrant
Sgnl05 Colorprompt
Puppet module for adding colors to your bash prompt
Stars: ✭ 5 (-16.67%)
Mutual labels:  puppet
Vagrantpress
A WordPress Development Environment With Vagrant/Puppet
Stars: ✭ 748 (+12366.67%)
Mutual labels:  puppet
Vagrant
Vagrant is a tool for building and distributing development environments.
Stars: ✭ 23,108 (+385033.33%)
Mutual labels:  vagrant

ghtorrent-vagrant

A Vagrant box with Puppet provisioning for testing GHTorrent

This will create a Debian 8 based virtual machine with all the required infrastructure (MongoDB, MySQL, RabbitMQ) to test GHTorrent and run it locally for smaller projects.

Installation

  • Install VirtualBox.

  • Install Vagrant

    • On Debian 8, you can use apt-get install vagrant
    • On the Mac, you can use brew cask install vagrant
    • For other platforms, you can try this link
  • You need to install the Vagrant VirtualBox Additions plug-in: vagrant plugin install vagrant-vbguest

  • Clone the repository (git clone https://github.com/ghtorrent/ghtorrent-vagrant.git)

  • You will need a GitHub API key. You can create one using the process described here (Fair Use)

Running

  • Switch to the checked out directory and do: vagrant up
  • When the provisioning process finishes, do: vagrant ssh

This will get you to the command line of the the vagrant VM. You will notice that the file config.yaml exists. Open it and replace the token field (default value: abcd) with the GitHub API key you created before.

Retrieving info for a single project

To retrieve information for a single repository do

$ ght-retrieve-repo -c config.yaml owner repo

where owner and repo are the owner and repo of the GitHub repository you want to retrieve info for.

ght-retrieve-repo accepts lots of command line arguments to restrict the amount of data in downloads, which can be found using the --help switch.

Listening to GitHub's event stream

You need two steps:

  • Run the event collector: ght-mirror-events -c config.yaml. This will query the event stream API end point and then will push events to RabbitMQ.

  • Run the data collector: ght-data-retrieval -c config.yamlThis step will create the necessary queues on RabbitMQ and start consuming events from them, in parallel. You can see the contents of the queues by running sudo /usr/sbin/rabbitmqctl list_queues or by connecting your browser to port 15672 of the virtual machine public IP address (find it with /sbin/ifconfig eth1).

This step effectively replicates the main GHTorrent system, as run at ghtorrent.org.

Viewing the retrieval results

Data is being collected into two sources

MongoDB database

(no username/password)

$ mongo github
MongoDB shell version: 2.6.11
connecting to: github
> show collections
commit_comments
commits
events
followers
forks
issue_comments
issue_events
issues
org_members
pull_request_comments
pull_requests
repo_collaborators
repo_labels
repos
users
watchers
> db.commits.count()
43
> db.events.find({'actor.login':'gousiosg'}).count()
10

MySQL database

(username/password/database: ghtorrent)

[email protected]:~$ mysql -u ghtorrent -p'ghtorrent' ghtorrent
[...]
mysql> select count(*) from commits;
+----------+
| count(*) |
+----------+
|       10 |
+----------+
1 row in set (0.00 sec)

mysql> select * from projects;
+----+----------------------------------------------------------+----------+-------------------+----------------------------------------------------------------------+----------+---------------------+-------------+---------+
| id | url                                                      | owner_id | name              | description                                                          | language | created_at          | forked_from | deleted |
+----+----------------------------------------------------------+----------+-------------------+----------------------------------------------------------------------+----------+---------------------+-------------+---------+
|  1 | https://api.github.com/repos/gousiosg/github-mirror      |        1 | github-mirror     | Scripts to mirror Github in a cloudy fashion                         | Ruby     | 2011-11-26 13:02:32 |        NULL |       0 |
|  2 | https://api.github.com/repos/ghtorrent/ghtorrent-vagrant |        2 | ghtorrent-vagrant | A Vagrant box with Puppet provisioning for running GHTorrent locally | Puppet   | 2015-09-25 19:56:52 |        NULL |       0 |
+----+----------------------------------------------------------+----------+-------------------+----------------------------------------------------------------------+----------+---------------------+-------------+---------+
2 rows in set (0.00 sec)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].