Skip to content

valeriocos/Gitana

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

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.

About

a SQL-based Project Activity Inspector

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 66.5%
  • HTML 33.5%