Precommit check-yaml error : "expected a single document in the stream"
Asked Answered
D

2

10

I use precommit with this .pre-commit-config.yaml file (extract) :

-   repo: https://github.com/pre-commit/pre-commit-hooks
    sha: v0.9.2
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml

and I am stuck with this error :

Check Yaml...................Failed
hookid: check-yaml

expected a single document in the stream
  in "modules.yml", line 1, column 1
but found another document
  in "modules.yml", line 4, column 1

The beginning of my yaml file is :

repo: ssh://git.tranquilit.local/odoo-11-oca-tis/OCB.git
root: 8.0
branch: 8.0-tis
---
repo: ssh://git.tranquilit.local/odoo-71-tis/tis-addons.git
origin: tis
branch: 8.0
modules:
    #- attachment_rename
    #- partner_firstname
    - tis_account_analytic_recurrent_invoicing

I tried with and without a leading line --- but it changes only the line nb of the error.

I didn't found any help anywhere on the web, so if anybody can help me, I would be greatefull for that !

Thanks by advance, Herve

Douro answered 6/9, 2017 at 11:44 Comment(0)
D
33

The problem is now solved in pre-commit version 1.1.0 : https://github.com/pre-commit/pre-commit/issues/635 Thanks for your help.

You can enable this new option by setting args: [--allow-multiple-documents], for example:

    hooks:
    -   id: check-yaml
        args: [--allow-multiple-documents]
Douro answered 18/10, 2017 at 18:20 Comment(1)
FYI I had the same issue with v2.5.0 and this setting helped.Fruity
K
3

--- starts a new YAML document in your file. So you have two YAML documents in your file, and this is what the error complains about. Based on the documentation of pre-commit, I assume you want to make it a sequence instead:

- repo: ssh://git.tranquilit.local/odoo-11-oca-tis/OCB.git
  root: 8.0
  branch: 8.0-tis
- repo: ssh://git.tranquilit.local/odoo-71-tis/tis-addons.git
  origin: tis
  branch: 8.0
  modules:
    #- attachment_rename
    #- partner_firstname
    - tis_account_analytic_recurrent_invoicing
Kidnap answered 6/9, 2017 at 14:9 Comment(4)
Your solution is correct, thanks, but in fact I do need to use a multi-document yaml file, so your solution is not appropriate in my context, does anybody has a trick to precommit a multi-document yaml file ?Douro
It may be better to direct a feature request to pre-commit than to ask for a workaround here. However, I wonder why you need a multi-document yaml file. If you process it somewhere else, couldn't you alter that process to take a sequence instead?Kidnap
Sorry, I searched but I didnt find where to put a feature request about pre-commit, can you give the address of the appropriate forum to post it ? Thanks in advance, HerveDouro
There is an issue tracker at GitHub, which I assume is the right place. But I am not a maintainer nor a user of pre-commit.Kidnap

© 2022 - 2024 — McMap. All rights reserved.