.. task:: Blhc

Blhc task
---------

A task to represent a build log check using the ``blhc`` utility.

The ``task_data`` associated to this task can contain the following keys:

* ``input`` (required): a dictionary describing the input data

  * ``artifact`` (:ref:`lookup-single`, required): a
    :artifact:`debian:package-build-log` artifact corresponding to the build
    log to be checked. The file should have a ``.build`` suffix.

* ``extra_flags`` (optional): a list of flags to be passed to the blhc
  command, such as ``--bindnow`` or ``--pie``. If an unsupported flag is
  passed then the request will fail.

* ``environment`` (:ref:`lookup-single` with default category
  :collection:`debian:environments`, required): artifact that will be used
  to run ``blhc`` (it will be installed if necessary).

* ``build_architecture`` (required): the architecture that we want to run
  ``blhc``.

The ``blhc`` output will be provided as a new :artifact:`debian:blhc`
artifact.

The task returns success if ```blhc``` returns an exit code of 0 or 1, and
failure otherwise.

The task computes dynamic metadata as:

.. dynamic_data::
  :method: debusine.tasks.blhc::Blhc.compute_dynamic_data
