This project is used to analyse git trace.
To do so git project are converted to xApi files, then the program tries to classify commits.
You can use -d
flag to execute the command on all subfile of the directory
You can use -o
flag to change output folder
python main.py path/to/repo -g
python main.py path/to/xapi
The output consists mainly of one file named "'repo'_processed.json" which consists of an xapi files with a list of statements. Each statements may be one of the original commit or generated by the program in an effort to try to split commits into atomic tasks.
Classified statements have a 'task' field in the 'context' part of the statement.
Edition task are the ones in uppercase and more precise documentation can be found in EditionIdentifierDocumentation.md
Full list of current tasks :
- ADD_FUNCTION_PARAMETER
- ADD_RETURN_VALUE
- ADD_VARIABLE_VALUE
- ASSIGN_VARIABLE
- AnnotationAdd
- AnnotationRemove
- BlockAdd
- BlockRemove
- CHANGE_LITTERAL_VALUE
- CHANGE_METHOD_INVOCATED
- CHANGE_VARIABLE_USED
- CHANGE_VARIABLE_VALUE
- COMMENT_ADDITION
- COMMENT_DELETION
- COMMENT_EDITION
- COMMENT_MOVED
- CONDITION
- ClassAdd
- ClassRemove
- Completed
- CutPaste
- DeclarationStatementAdd
- DeclarationStatementRemove
- EDIT_FUNCTION_PARAMETERS
- EDIT_RETURN_VALUE
- EmptyLine
- ForAdd
- ForRemove
- FunctionAdd
- FunctionRemove
- IfAdd
- IfRemove
- ImportStatementAdd
- ImportStatementRemove
- InvocationStatementRemove
- LITTERAL_TO_VARIABLE
- LineBreakChange
- LineSpacingChange
- MODIFY_VARIABLE_VALUE
- NotSource
- PackageStatementAdd
- PackageStatementRemove
- REMOVE_FUNCTION_PARAMETER
- RENAME_FUNCTION
- RENAME_VARIABLE
- REPLACE_FUNCTION
- REPLACE_METHOD
- RefactoringMiner
- ReturnStatementAdd
- ReturnStatementRemove
- STRING_EDITION
- SyntaxTypoAdd
- SyntaxTypoRemove
- TYPO_ADD
- TYPO_DEL
- TrimEditionContent
- UNASSIGN_VARIABLE
- UNKNOWN
- USE_NEW_VARIABLE
- USE_OLD_VARIABLE
- VARIABLE_TO_LITTERAL
- VariableAssignStatementAdd
- VariableAssignStatementRemove