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

3 jobs for master in 9 minutes and 14 seconds (queued for 3 seconds)
Status Name Job ID Coverage
  Test
passed coverage #74004

00:03:47

passed formatting #74002

00:06:31

passed test #74003

00:05:24