* Use a flag to determine wether to use techdocs-container or local install of mkdocs
* Updated techdocs generator to look at app-config string instead of argument to decide how to run the generator
* Removed console log...
* Reverted scaffolder file that was accidentally committed.
* Fixed lint issues
* Added config to create-app template
We're deploying backstage to GKE and have had issues getting techdocs
volume mount logic to work because of mixing paths between the host and
the container running the backend. So we added a condition where if
mkdocs is found in the backend container it will use that to generate
the docs rather than spinning it up in a docker container.
Test for docker using ping() before attempting any docker
operations. If this fails we know docker is unavailable
and we can fail with an more descriptive error.
In my testing, attempts to create a docs site with no description would
fail with the error:
```
Unable to create file 'component-info.yaml'
Error message: 'collections.OrderedDict object' has no attribute 'description'
```
Better to mark it required than let the user hit the error.
This adds a GitLab integration for the scaffolder backend.
We're introduceing a preparer and a publisher for GitLab so that we can
read templates from GitLab and publish them to a configured GitLab
instance. The two instances don't need to be the same. For instance,
templates could be public on gitlab.com, but the created repos will live
in a hosted GitLab somewhere else.
The publisher gets its own config object in `app-config.yaml` where the
target instance and token can be specified.
The service catalogue defines both `gitlab` and `gitlab/api` as
processors. They are both handled by the same preparer.
Closes#2372
* Prompt the user for a description in templates
The text "Description of the component" was a little redundant since the
label already says "Description". This description text hints to the
user why they should bother adding an informative description.
* Inform user about lowercase, url-safe constraint
Create React App scaffolding fails when a name with spaces or other
non-url-safe chars are provided. Instead of making the user wait for a
failure, Backstage should tell them about this constraint up front.