forked from bakhtos/mison
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Alexander Bakhtin edited this page May 14, 2024
·
1 revision
MiSON is a tool that allows to mine commits of a git/GitHub repository with GitHub API or pydriller and construct a developer collaboration network based on commit information, linking developers with a weight equal to the number of files or microservices that they co-edit.
The MiSON workflow consists of:
- Mining the commits with different backend (See Mining commits)
- Constructing the collaboration network based on the commit information (See Developer collaboration Network)
These steps can also be combined in a single CLI command (see End-to-end process)
Currently, the supported backends are:
- PyDriller
- GitHub API
Feel free to submit a pull request adding a new backend to the tool, see Contributing guidelines.
It is possible to map files modified in a commit to the corresponding microservice during the mining stage. For this, a custom Python function can be provided. The requirements for the function are:
- It maps strings to strings (the signature is
str -> str
), the input is the filename and the output is the microservice - If the input is not mapped to any microservice, the function returns
None
- If the function receives
None
(in case a commit does not contain modified files), it returnNone
- If the function is passed in
.py
file in a CLI command, the default name ismicroservice_mapping
, but this can be overriden with an argument (See Mining commits)