Giter Club home page Giter Club logo

blameinspector's Introduction

Purpose

Command line utility, which allows to define(optionally set) assignees of issues with stacktraces using your git/svn repo.

Building

Building using maven:

mvn package

After build copy one-jar.properties to your target directory, in target directory run:

jar uf BlameInspector-1.0-SNAPSHOT.one-jar.jar one-jar.properties

Run

First of all you have to create a config.properties file with data about your repository. Have a look in default.properties file, for example.

Secondly, you run BlameInspector like this, in command line in directory, where config.properties file situated:

java -jar BlameInspector.one-jar.jar -p $RepositoryName$ -t $TicketNumber$

Usage examples

Show probable assignee for 24 ticket on MyProject:

java -jar BlameInspector.one-jar.jar -p MyProject -t 24

Set assignee for tickets from 1 to 4 on MyProject:

java -jar BlameInspector.one-jar.jar -p MyProject -r 1 4 -f -X

Set assignee for tickets from 1 until tickets end on MyProject and show exception stacktrace if occurs:

java -jar BlameInspector.one-jar.jar -p MyProject -r 1 -f -X

Using programm

Before running programm with appropriate arguments, you have to create config.properties file in corresponding directory. Copy the structure of config file from default.properties and insert your data.

Running tests

If you want all tests to run succesfully on your machine, please, clone the following projects on your machine and fill info about them in config file:

blameinspector's People

Contributors

alexanderdashkov avatar janesmithsenior avatar

Watchers

 avatar James Cloos avatar  avatar

Forkers

janesmithsenior

blameinspector's Issues

Add list of duplicates

add list of assignees by duplicates
add more probable assignee with points
if stacktrace contains assignee more points
and majority in duplicates

Tests for xml schema

positive and negative tests for schema
in unit test - create range of files
passing and falling
two functions

foreach

in getTraceInfo for to foreach if possible

Test YouTrack support

Needed to test youtrack on my own server/cloud youtrack
mainly check if set assignee working properly.
check correct access to tickets.

Servlet version

servlet version with enabling using of deleting themselves from isssue

Antlr parsing in java

For parsing stacktraces with non simple java file entry, create procedure and structure to organise working with whole java project code.
Here is defined the structure of java code Tree.

Test Kotlin repo

testing on kotlin repo
with assigned tickets
compare blameinspector result, with given

Anltr voidVisiter

Create simple, using anonymous class in java visitor to walk through the javacode tree, generated by antlr parser(watch ticket) [https://github.com//issues/30]

CLI

Add --all
Add usage examples
Add range examples

make key
that allows to generate report
manuall generate html - with links if possible

Linux debugging

install linux on vb
and run using -d key
resolve issue with file.separator

Data stroring for improving perfromance

storing info about tickets
adding two keys: with updating base, and real time resolving
storing all possible useful data:
hashmap with blames and lines
hasmap with files

make possible create report on existing database
two scenarios:
with base : all tickets
with out base: range of tickets

CLI

necessary arguments
group which all connected

XML file for repo

проверять в settings есть ли ошибка в типе vcs и типе ist

Code Refactoring

Code Refactoring:

  • Main -- wrap all process comand line in try catch, watch about parse int
  • Make final static fields for "-p", "-t" and so on
  • delete System.exit from printStackTrace
  • make main System.exit(0), and try on level of main
  • make constructor instead of init -- create BlameInspector for each project
  • init remove nesting exceptions, make it on level below -- in services factory.
  • make standartizeStackTrace - running once
  • make separarate function for testing in unittest
  • make versioncontrolservice return structure
  • no passing exception to ticketinfo constructor
  • make not equals -- "Can not get blame" , enum or something more intelligent
  • single return in ticketHandler -- return null if no assignee available
  • checkstyle -- getTraceInfo spaces between the binary operands
  • Property Service constructor throw single type of exception
  • package names in lowercase: watch java code conventions
  • think of possible making propertyService singletone
  • wrapp runtime exceptions in services factory
  • make interfaces starting with I
  • reformat code in project (using idea on something like this) -- corect spaces and so on
  • make exception for each package -- especially report ReportPrinters
  • Two classes test:
    • Property test
    • StackTrace parser test
    • and separate Tests

TESTS ARE THE MAIN

  • make node static -- because no connection

SVN testing project

Add svn tests including:

  • interference with sorceforge;
  • interference with svn itself;
  • migh be some optimisation doing annotate in svn;

Change architecture

may be add packages
change achitecture, add above class to resolve every action class after main

Split init

Split init to effective ticket managment

Not first man is assignee

Variants:

  • trusted, not trusted;
  • exception analization:
    get true type
    • how many steps from the top of stacktrace;

Tree creation for stacktraces

StackTraceTree

Usage

The created structure must implement such method as:

  • adding tickets and returning corresponding information on return;
  • get how many duplicates for this ticket's stacktrace;

Implementation:

At start simple n-ary tree, with vertexes of two types:

  • intermediate;
  • final:
    Intermediate vertex contains parent link, children links. Final vertex, contains link on parent, ticketNumber field.

C# stackTrace parser

Create another instance, using ANLTR, of parser of C# stacktraces. To build parser use antlr project of java stacktrace parser. Change parsing, might using C# stacktrace parser on C# , in anltr code, and use it polymorphical in blameInspector.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.