Pipeline/root level level tags for runners

We've discovered that we have a high rate of developers who don't know they need to disable the gitlab.com provided runners in their repos to ensure they are using the ones in our network. Our workaround has been to also include tag requirements in our jobs to force jobs to select our provided runners.

Currently if you make a .gitlab-ci file with a tags block, you have to place the tags definition under every single job. In some cases (like our above example) we want to use the same tag on all the jobs in the pipeline. I'd like to be able to set pipeline(root)-level tags.

Currently if you build the below document, you get the error root config contains unknown keys: tags in the yaml validation

tags:
  - ruby
  - postgres

job:
  environment:
    name: foo
  script:
    - echo foo

I propose that the default behavior for tags added at the root level is to have them be inherited by every job in the pipeline. If additional tags are added in the job level it should merge the list.