add pre-commit configuration, docs and gitlab-ci integration

3 jobs for master in 12 minutes and 28 seconds (queued for 1 second)
Status Name Job ID Coverage
  Test
passed coverage #74012

00:03:50

passed formatting #74010

00:08:38

passed test #74011

00:08:36