Skip to content
Alexander Bakhtin edited this page May 13, 2024 · 6 revisions

MiSON - MicroService Organisational Network mining tool

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:

These steps can also be combined in a single CLI command (see End-to-end process)

Available backends

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.

File to microservice mapping

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 return None
  • If the function is passed in .py file in a CLI command, the default name is microservice_mapping, but this can be overriden with an argument (See Mining commits)