> For the complete documentation index, see [llms.txt](https://docs.ci.trust-in-soft.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ci.trust-in-soft.com/glossary.md).

# Glossary

### Account

An *account* (or also *user*) is either a GitHub user or a [GitHub organization](/reference/github-organizations.md). You can only log-in in TrustInSoft CI as a GitHub user, then your organization will automatically be shown in menus if the correct permissions have been granted.

### Analysis

An analysis is a verification of a program with [TrustInSoft CI Analyzer](/glossary.md#trustinsoft-ci-analyzer). This verification is quite similar to a symbolic execution of the program, starting from a given [entry point](/glossary.md#entry-point), to ensures to detect all [undefined behaviors](/glossary.md#undefined-behavior) by using formal methods.

In TrustInSoft CI, an analysis is a part of a [build](/glossary.md#build). It is recommended to add as many analyses as possible to cover all possible behaviors of the analyzed program.&#x20;

### Analyses configuration

The Analyses configuration is a piece of JSON information describing how to perform [analyses](/glossary.md#analysis). Each [build](/glossary.md#build) require to have an Analysis configuration. The Analyses configuration is a part of the [Configuration files](/configuration-file.md) to configure a [project](/glossary.md#project) inside TrustInSoft CI.

See also [how to write an Analysis configuration](/configuration-file/analyses-configuration-file.md).

### Build

A build is a set of [analyses](/glossary.md#analysis) associated to a particular commit of a [project](/glossary.md#project).

To run analyses, a build uses the [Committed configuration](/glossary.md#committed-configuration) associated to the build's commit if it exist, or the [Global configuration](/glossary.md#global-configuration) otherwise. If no configuration is available for the build, analyses will not be run.

### Build preparation

The Build preparation is an optional stage executed for each [build](/glossary.md#build) before running the [analyses](/glossary.md#analysis). The Build preparation is a part of the [Configuration files](/configuration-file.md) to configure a [project](/glossary.md#project) inside TrustInSoft CI.

Learn more about the [Build preparation stage](/configuration-file/build-preparation-script.md).&#x20;

### Committed configuration

A Committed configuration is one of the [two kinds of configuration](/configuration-file.md). This Committed configuration allows to write the configuration of the [project](/glossary.md#project) inside a `.trustinsoft` directory in the GitHub repository.

Unlike the [Global configuration](/glossary.md#global-configuration), the Committed configuration allows to have a different configuration for each [reference](/glossary.md#reference) and [build](/glossary.md#build) of the project.

### Entry point

The entry point of an analysis is the function where the [analysis](/glossary.md#analysis) begins. Usually, the entry point of programs is the `main`function. With [TrustInSoft CI Analyzer](/glossary.md#trustinsoft-ci-analyzer), any function can be used as the entry point of the analysis as soon as its inputs can be [specified](/configuration-file/analyses-configuration-file.md#adding-inputs-for-the-entry-point-function).

### Global configuration

A Global configuration is one of the [two kinds of configuration](/configuration-file.md). The Global configuration allows to write the configuration directly in TrustInSoft CI in the [project](/glossary.md#project)'s settings page without modifying the associated GitHub repository.

Unlike the [Committed configuration](/glossary.md#committed-configuration), the Global configuration is common to all [references](/glossary.md#reference) and [builds](/glossary.md#build) of the project (except if a Committed configuration is detected for the reference or build).

### Project

A project is a GitHub repository registered in TrustInSoft CI. A project can only be registered by an owner of the associated GitHub repository.

Once a project registered, one or several [references](/glossary.md#reference) should be added in order to run [analyses](/glossary.md#analysis) for the respective reference.

### Reference

A reference is either a branch, a tag or a pull request associated to a [project](/glossary.md#project) or GitHub repository.

### TrustInSoft CI Analyzer

TrustInSoft CI Analyzer is a version of [TrustInSoft Analyzer](https://trust-in-soft.com/product-c-and-c-source-code-analyzer/) dedicated to the TrustInsoft CI online service to analyze GitHub repositories.

TrustInSoft CI Analyzer is run during [builds](/glossary.md#build) for each [analysis](/glossary.md#analysis). Then, its Graphical User Interface can be used to [inspect](/tutorial/find-the-root-cause-of-the-undefined-behaviors.md#launch-trustinsoft-ci-analyzer) in details the result of a single analysis.

### Undefined behavior

Undefined behaviors are defined by the C and C++ standards. They usually correspond to illegal operations and may lead to crashes and security vulnerabilities. Their effects are also highly dependent on the interactions with the compilers and their optimizations.

[TrustInSoft CI Analyzer](/glossary.md#trustinsoft-ci-analyzer) detects all major families of undefined behaviors including but not restricted to buffer overflow, dangling pointer, invalid pointer operation, division by zero, uninitialized memory read and arithmetic overflow.
