---
# Ansible Lint configuration
# Documentation: https://ansible.readthedocs.io/projects/lint/

profile: production  # Use production profile for strict checking

# Exclude paths from linting
exclude_paths:
  - .git/
  - .github/
  - .ansible/
  - .cache/
  - .venv/
  - venv/
  - __pycache__/
  - "*.pyc"
  - group_vars/webservers/vault.yml
  - "**/*vault.yml"
  - deploy_key.pub

# Enable/disable specific rules
# See: https://ansible.readthedocs.io/projects/lint/rules/
skip_list:
  - yaml[line-length]  # Allow longer lines in some cases
  - role-name[path]    # Allow role names based on directory structure
  - galaxy[no-changelog]  # Changelog will be generated by release-please

# Configure specific rules
warn_list:
  - experimental  # Warn about experimental features
  - no-changed-when  # Warn about missing changed_when

# Enforce these rules as errors
enable_list:
  - yaml  # YAML syntax and formatting
  - name  # Task naming
  - jinja  # Jinja2 templating
  - no-free-form  # No free-form command usage

# Mock modules and roles for testing
mock_modules: []
mock_roles: []

# Use specific Ansible version
# Uncomment if you need a specific version
# supported_ansible_also:
#   - "2.14"
#   - "2.15"

# Offline mode for CI
offline: false

# Show progress
progressive: true

# Parseable output format (useful for CI)
parseable: false

# Quiet mode
quiet: false

# Strict mode
strict: false

# Verbosity level (0-2)
verbosity: 1

# Write file with found rules violations
# write_list:
#   - all

# Enable or disable specific rule checking
# You can also use 'skip_list' above
# rules:
#   command-instead-of-shell: enable
#   no-changed-when: enable
#   yaml: enable
