FeatureMap is configured via its .feature_map/config.yml
configuration file. Directives are described inline, below. Feel free to copy and paste this into your project as a starting point.
# An array of file globs where FeatureMap expects to find annotations
assigned_globs:
- app/**/*.rb
# An array of file globs that do not require annotations
# even if they're within assigned_globs, below.
# May be an empty array
unassigned_globs:
- app/models/**/*
- app/controllers/admin/**/*
# Enables the identification of teams responsible for each feature based
# on the CodeOwnership team assigned to the files for a feature (see
# https://github.com/rubyatscale/code_ownership for more detail).
skip_code_ownership: false
# Allows the validation check to ignore files assigned to teams other than
# those specified here. Must be null when skipping code ownership.
require_assignment_for_teams:
- Onboarding
# Disables the requirement for the assignments.yml file to be up to date and
# committed to the codebase
skip_features_validation: false
# Supports the retrieval of rolled up test coverage
# statistics from CodeCov. Used by the `test_coverage` CLI
# command.
code_cov:
service: github
owner: Example
repo: example
# GitHub repository information. Required for various interactions
# with git (commit history, file reference links to source in GitHub).
repository:
main_branch: 'main'
url: https://example.com
# This is the URL of your hosted feature map documentation (which is generated by bin/featuremap docs)
# It supports link generation in message construction, e.g., release announcements
documentation_site_url: example.github.io/doc-site-hosted-in-gh-pages
# Various configurations used by the documentation site.
documentation_site:
health:
minimum_thresholds:
good: 95
fair: 80
poor: 0
components:
cyclomatic_complexity:
# The relative proportion of total health score that this component adds
weight: 5
# A threshold measured against the maximum scoring feature, after which
# a given feature should receive a perfect score. For percentile-based
# health components, this allows features to score well when their
# specific score may be in a lower percentile (e.g., a score of 9.6 in the set of scores [9.6, 9.7, 9.8, 9.9])
# but which is still very close to the top score.
percent_of_max_threshold: 90
encapsulation:
weight: 10
percent_of_max_threshold: 90
test_coverage:
weight: 70
# In absolute scoring components, like test coverage, this number is an
# absolute threshold after which a feature receives a perfect score.
percent_of_max_threshold: 95
todo_count:
weight: 15
percent_of_max_threshold: 95
linked_sites:
- name: User Service
url: https://example.github.io/user-service
- name: Gateway Service
url: https://example.github.io/gateway-service
size_percentile:
minimum_thresholds:
xl: 95
l: 75
m: 25
s: 5
xs: 0
title: Example Site
test_coverage:
minimum_thresholds:
good: 98
fair: 95
poor: 0