# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ci.trust-in-soft.com/glossary.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
