a SQL-based Project Activity Inspector
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
exporters
gitana
importers
tests
util
.gitignore
README.md
setup.py

README.md

Gitana: a SQL-based Project Activity Inspector

Gitana imports and digests the data of Git repositories, issue trackers, Q&A web-sites and Instant messaging services to a relational database in order to ease browsing and querying activities with standard SQL syntax and tools. To ensure efficiency, an incremental propagation mechanism refreshes the database content with the latest project activities.

Gitana also provides support to generate project activity reports and perform complex network analysis.

Documentation

More information can be found on the Gitana documentation site.

Who is behind this project?

Licensing

Gitana is distributed under the MIT License (https://opensource.org/licenses/MIT)

Requirements

Gitana is developed on Windows 7 and it relies on:

Python and pip package manager can be set to be executed from Windows command line by adding to the Path environment variable the paths where Python and its scripts are installed. By default, these paths are:

C:\Python27
C:\Python27\Scripts

Installation

Installation of Gitana is achieved by executing the setup script.

$> cd <...>/Gitana
$> python setup.py build
$> python setup.py install

How to use Gitana

Gitana is developed and tested on Windows, thus the user mileage in other platforms may vary. Nevertheless, Gitana has been successfully executed on Linux (i.e., all its exporters and Git, GitHub, StackOverflow, Bugzilla importers).

Data gathering from an Eclipse project and report generation

from gitana.gitana import Gitana

CONFIG = {
            'user': 'root',
            'password': 'root',
            'host': 'localhost',
            'port': '3306',
            'raise_on_warnings': False,
            'buffered': True
        }

def main():
    g = Gitana(CONFIG)
    g.init_db("papyrus_db")

    g.create_project("papyrus_db", "papyrus")
    
    g.import_git_data("papyrus_db", "papyrus", "papyrus_repo", "...\\Desktop\\org.eclipse.papyrus")
    
    g.import_bugzilla_issue_data("papyrus_db", "papyrus", "papyrus_repo", "papyrus-bugzilla", 
                                 "https://bugs.eclipse.org/bugs/xmlrpc.cgi", "papyrus")
				 
    g.import_eclipse_forum_data("papyrus_db", "papyrus", "papyrus-forum", 
                                "https://www.eclipse.org/forums/index.php/f/121/")
				
    g.import_stackoverflow_data("papyrus_db", "papyrus", "papyrus-so", 
                                ['YOUR-TOKEN-1', 'YOUR-TOKEN-2', ...])
				
    g.extract_dependency_relations("papyrus_db", "papyrus", "papyrus_repo", 
                                   "...\\Desktop\\org.eclipse.papyrus")
	
    g.export_graph("papyrus_db", "./graph.json", "./graph.gexf")
    g.export_activity_report("papyrus_db", "./report.json", "./report.html")
	
if __name__ == "__main__":
    main()

Data gathering from a GitHub project

from gitana.gitana import Gitana

CONFIG = {
            'user': 'root',
            'password': 'root',
            'host': 'localhost',
            'port': '3306',
            'raise_on_warnings': False,
            'buffered': True
        }
	
GH_TOKENS = ['your-token-1',
             'your-token-2',
             '...']

def main():
    g = Gitana(CONFIG, None)
    g.delete_previous_logs()
    g.init_db("db_2048")
    g.create_project("db_2048", "2048")
    
    g.import_git_data("db_2048", "2048", "repo_2048", 
                      "C:\\Users\\atlanmod\\Desktop\\oss\\ants-work\\github-repos\\2048", 
		      import_type=2)
		      
    g.import_github_issue_data("db_2048", "2048", "repo_2048", "2048_it", 
                               "gabrielecirulli/2048", GH_TOKENS)

if __name__ == "__main__":
    main()

Gitana application(s)

Publications

  • V. Cosentino, J. L. Cánovas Izquierdo, J. Cabot, Gitana: A SQL-Based Git Repository Inspector, in: ER conf., 2015, pp. 329–343.
  • V. Cosentino, J. L. Cánovas Izquierdo, J. Cabot, Assessing the bus factor of git repositories, in: SANER conf., 2015, pp. 499–503.
  • J. L. Cánovas Izquierdo, V. Cosentino, J. Cabot, An Empirical Study on the Maturity of the Eclipse Modeling Ecosystem, in: MODELS conf., 2017, p. in press.
  • V. Cosentino, J. L. Cánovas Izquierdo, J. Cabot, Gitana: a Software Project Inspector. Science of Computer Programming, Vol. 153, pp. 30–33.