How to configure metadata on multi-level repositories when publishing to Kyso.
Meta reports are a mono-folder in which each sub-directory is published as separate project report.
To create a meta report include the following in your kyso.yaml file:
In this case, each sub-folder should have its own yaml/json file for the individual reports.
This is particularly useful for users publishing to Kyso via Git actions, since a lot of companies tend to have one or a few large mono-repos specifically for data science work.
Multi-level Report Configuration
It is quite popular for companies to maintain all there data science research in a single mono-repository (or just a few for much bigger organisations) in which there are multiple sub-directories that pertain to different projects, and within each of these projects are the notebook reports and associated files.
It makes sense to want to import these large repositories such that each sub-project is imported to Kyso as it's own project report. And it is quite straightforward to do this!:)
There are only 2 additional fields you will need to add to the yaml file in the root directory to configure this behaviour.
type: This tells Kyso that there are multiple repositories in the repo
reports: This will be a list of folders you want to import as separate Kyso reports. Currently the child posts must be organised in folders, importing different files from one folder as different child posts is not possible.
You can use wildcards, so for example, if you wanted to include all folders in the root directory just use:
Or if you wanted to include all folders starting with "article" use:
If the meta kyso.yaml file has other properties like:
they will be treated as default values, which means if the report/folder/kyso.yaml doesn't have a specific value for that property, the default one will be used. If not, the report/folder/kyso.yaml properties values will overwrite the defaults.
Overriding configurations in the child reports
You can add a kyso.yaml to each child folder and override any of the defaults the same as you do when you are importing just one repo. For example, you could have a repository with kyso.yaml in the root directory:
Above we've specified the default name for all main files and are pulling in all folders within the repository.
In any given folder, we could have another kyso.yaml like so: