def check_description()

in hack/validate_tekton.py [0:0]


def check_description(yaml_file):
    try:
        with open(yaml_file, 'r') as file:
            documents = yaml.safe_load_all(file)
            for data in documents:
                kind = data.get('kind', '')
                metadata = data.get('metadata', {})
                name = metadata.get('name', 'Unnamed')
                spec = data.get('spec', {})

                if kind == 'Pipeline':
                    mandatory_fields = PIPELINE_MANDATORY_FIELDS
                    expected_order = PIPELINE_EXPECTED_ORDER
                elif kind == 'Task':
                    mandatory_fields = TASK_MANDATORY_FIELDS
                    expected_order = TASK_EXPECTED_ORDER
                else:
                    continue

                # Check for mandatory fields
                for field in mandatory_fields:
                    if field not in spec:
                        print(f"Error: '{kind}' named '{name}' does not have a '{field}' defined.")
                        return False

                if not check_key_order(spec, expected_order):
                    print(f"Error: '{kind}' named '{name}' does not have keys in the correct order.")
                    return False

                print(f"'{kind}' named '{name}' ok")
    except FileNotFoundError:
        print(f"Error: The file '{yaml_file}' does not exist.")
        return False
    except Exception as e:
        print(f"Error: Could not open or read the file '{yaml_file}'. {e}")
        return False

    return True