{% extends "cacsremoteservice/views/layouts/project-view.html" %} {% block scripts %} {% endblock %} {% block main-container %}
{% include "cacsremoteservice/views/projects/project-header.html" with project=item tabs=tabs %} {% include "cacsremoteservice/views/partials/validation-errors.html" %}

General

{% if item.project-groups|not-empty %}
{% endif %}
Specify a point of contact for this analysis project, e.g. name or email (free text field).
A free text field where you can add notes describing your configuration.
{% ifunequal item.local-path-for-remotes "" %}
{% if item.fixed_repo_roots %} This path is auto generated from your admin settings, and points to a folder where the remotes will be cloned. {% else %} A path to a writeable folder where we'll clone your remotes. If you change the path we'll re-clone each Git remote. {% endif %}
{% endifunequal %}
{% for vcs in item.repo-paths %}
{% endfor %}
The paths to your version-control directories.
{% if item.fixed_results_root %} This path is auto generated from your admin settings. It specifies a folder where the analysis results will be written. This would, typically, be a persistent folder. {% else %} A path to a (writeable) folder for analysis results. Must be a directory outside of the repositories you analyze. {% endif %}
Specifies how far back in time we will go to collect data. Leave empty for the largest possible range.
Specifies how far back in time to collect Hotspot data. When the full history is used, the results will be more complete but might include hotspots that have recently become stable. This option does not affect any other analysis time frames.
Specifies how far back in time to collect Cost and Cost trends from a project/lifecycle tool integration (e.g. Jira, GitHub Issues, Azure DevOps).
Specifies how far back in time to analyse team work (coordination, team coupling, etc.). This should typically be a short time span since teams tend to be more volatile than code, and you want the analyses to reflect recent acitivity, not old team contribution patterns. If the Full option is selected, CodeScene will use the starting date specified below for Start team analyses.
This is used as the start date for team analyses in case the Full option is specified above.
When checked, we use the complete Git history to calculate individual knowledge metrics independent of your analysis period. Uncheck if you want a faster analysis and don't care about individual metrics.
Pulls the latest changes before each analysis. Uncheck if updating repositories is not possible.
By checking this box you improve the accuracy of the knowledge metrics in case you have content that's frequently extracted/copied from other files. The disadvantage is that this operation may slow down the analysis on large projects.
If enabled, VCS data will be stored and reused in subsequent analysis improving performance.
If enabled, Code Health Score data will be stored and reused in subsequent analysis improving performance.
{% include "cacsremoteservice/views/projects/configuration/social.html" %}

Analysis Plan

You need to specify how frequently the analysis shall run. Our recommendation is to run the analysis once every night on an active development project and once a week on stable maintenance projects.

{{ server-timezone }}

Analysis House-Keeping

CodeScene cleans out old analysis results for you to save disk space.

Enable to let CodeScene do the house-keeping.
Just keep this number of historic analyses, delete older ones.
Auto-delete analysis results that are older than the specified number of weeks.

Exclusions & Filters

General exclusions

A semicolon-separated list of file extensions (see docs)
A semicolon-separated list of glob patterns for content you want to exclude (see docs)
Specify a semicolon-separated list of glob patterns for content you want to include. White listed content is applied before the exclusion patterns above (see docs)
Exclude commits that represent an initial import of the whole codebase. Semicolon-separated list of Git commit hashes
Automatic imports from other version-control systems to Git, e.g. git-tfs, can produce duplicate commits. With this option enabled the analysis engine tries to remove all such duplicates.
Check this box to have CodeScene include all text content from your codebase in the analysis. This lets you include programming languages that CodeScene doesn't have native support for. The drawback is potentially longer analysis times. Text content is detected by each file's MIME type.
{% if feature-flags.code-coverage? %}

Code Coverage exclusions

Exclude selected files and folders from the code coverage analytics.

By default, files for which no code coverage data is available are considered to have 0% coverage and are displayed as red in the system map. This also affects the calculation of the code coverage KPIs.

To avoid these false positives, you can provide glob patterns that match the files you wish to exclude from the code coverage analysis. Glob patterns must begin with the repository root. Consult the documentation for more details.

A semicolon-separated list of glob patterns that begin with the repository root for that path.
{% endif %}
{% include "cacsremoteservice/views/projects/configuration/codehealth.html" %}

Ticket ID Mapping

By specifying a Ticket ID pattern, individual commits can be linked to tickets, allowing for measuring Change Coupling Across Commits and Code Churn by Tasks. individual commits can be linked to tickets, allowing for measuring change coupling across commits.

If PM Data Integration is enabled, the pattern used for matching will be created automatically to extract ticket IDs matching the configured integration.

A regular expression with exactly one (1) group. The pattern extracts a Ticket ID from your commit messages. For example, ([A-Z]{2,}-\d+) matches tickets like ARB-782 and BI-231, while the expression #(\d+) matches GitHub's issue numbers.
A URI template, with a single {ticket-id} expression for the ticket ID value, that will be used to hyperlink to your ticket system in analysis result views. https://github.com/owner/name/issues/{ticket-id} links the above mentioned Ticket ID pattern to a GitHub issue tracker for the owner/name repository. Learn more in the documentation.

Change coupling

By Commits

Exclude files with fewer revisions from the coupling analyses.
Excludes commits with more files than your given value in order to ignore accidental coupling.

By Logical Changesets

Specify how you want to measure temporal coupling across multiple projects or across individual commits (learn more in the documentation). The option "By custom Ticket ID" requires Ticket ID Mapping configuration.
Excludes commits with more files than your given value in order to ignore accidental coupling.

File Level

Exclude files with fewer revisions or common Ticket IDs from the coupling analyses.

Architectural Level between Logical Components

Exclude components with fewer revisions or common Ticket IDs from the coupling analyses.

Change Coupling Filters

Add filters to exclude change couplings by default, for example files that you expect to change together. See the documentation for more details and examples.

{% for filter in item.temporal-coupling-filters %} {% endfor %}
Filter Name Pattern (File 1) Pattern (File 2)

Code Churn

The number of days used to calculate a rolling average of your churn.

Architecture

Architectural Components

Specify the logical components in your codebase. The definitions are used for the architectural analyses (see the documentation for examples).

{% if feature-flags.ranked-architectural-components %}

Enable manual match priority for architectural components

BETA: Allows fine-grained nesting of architectural component patterns by controlling the order in which files are matched to components.

{% endif %}

Import/Export Architectural Definitions

Instead of specifying the patterns manually in the section above, you can import a CSV file with the definitions. This is a simpler option in a large system where you can script the generation of the CSV to import.

The CSV file must have two columns, without any header row:

  1. Component Name
  2. Glob Pattern

See the documentation for more details.

Any import will overwrite existing architectural definitions.

Export Architectural Definitions

Architectural Trends

Complexity trends on the architectural level.

Deprecation warning: The architectural trends are deprecated and will be removed in the future. This information is better captured by other KPIs.

CodeScene is able to calculate complexity trends on an architectural level (see the documentation for examples). However, this feature is expensive in terms of analysis time. You toggle the feature on and off here.

Specify if you want CodeScene to calculate an aggregated complexity trend on your overall codebase.

Status Badges

Status badges help stakeholders stay up to date on the health of your project. They can be embedded anywhere, as long as CodeScene is available on the same network.

When you select a badge below, you'll see HTML and Markdown code you can use for embedding badges.

Security: status badges are public. When activated here, the badge image itself is visible to anyone with access to the same network. Activating a badge does not open any other access besides the image itself.

{% for badge in item.status-badges %} {% if badge.identifier %}
Markdown
[![CodeScene {{ badge.display }}](CS_URL/{{ item.id }}/status-badges/{{ badge.identifier|name }})](CS_URL/{{ item.id}}/analyses/latest)
HTML
<a href="CS_URL/{{ item.id }}/analyses/latest">
  <img src="CS_URL/{{ item.id }}/status-badges/{{ badge.identifier|name }}">
</a>
{% comment %} See https://trello.com/c/qcfqrCto/794-provide-missed-goals-badge-on-architectural-component-level {% endcomment %} {% if badge.non-architectural-message %}
Note: {{ badge.non-architectural-message }}
{% else %}
{% endif %}
{% endif %} {% endfor %}

Static badge for remote use

If your code is hosted on GitHub and CodeScene is on your local network, status badges will not work as expected. GitHub serves externally hosted images through a proxy server which requires direct access to the image source.

In these cases, the next best solution is to display a static badge. The image is hosted at codescene.com or you can copy it to your own server. When used with the markup provided here, it will still allow your users to quickly navigate to their project on CodeScene.

Markdown
[![CodeScene {{ badge.display }}](https://codescene.com/status/analyzed-by-codescene-badge.svg)](CS_URL/{{ item.id}}/analyses/latest)
HTML
<a href="CS_URL/{{ item.id }}/analyses/latest">
    <img src="https://codescene.com/status/analyzed-by-codescene-badge.svg">
  </a>

Branch Analyses & CI/CD Process

Measures lead times, developer congestion, and delivery risks on feature branches. Enabling this option may add to the overall analysis duration.
Defines the maximum age of an active branch. Branches that have been modified within this number of weeks are considered active and included in the analysis.
A regular expression that specifies which branches to exclude from the analysis. For example, /release- excludes all release branches for project's using that pattern.
Limit the depth of risk predictions on long lived branches to speed up the analysis time.
Skip risk predictions on branches with more commits than the given limit.
{% include "cacsremoteservice/views/projects/configuration/delta-analysis.html" %}
{% include "cacsremoteservice/views/projects/configuration/delivery-performance.html" %}
{% include "cacsremoteservice/views/partials/default-footer.html" %} {% endblock %}