Note: This documentation is for the legacy command-line tool odasa.
The final version was released in May 2020. Support for this tool expires in May 2021.

For documentation on the new generation CodeQL CLI, see CodeQL CLI .
In particular, you may find the Notes for legacy QL CLI users useful in planning your migration.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This topic describes projects and how the term is used in Semmle analysis.


Each project analyzed using Semmle analysis is a code base that:

  • builds in a relatively uniform way
  • can be tracked over time
  • is written in a single programming language
  • as far as possible, is a self-contained unit with few external dependencies.

Typically, there is one project for each application being developed, and each branch that you want to track. The configuration for each project is stored in a project configuration file.

How are projects created?

You can create a new project using one of the following methods:

When you create a new project using the bootstrap command, a new sub-directory of the odasa/projects directory is created to store the project and all associated files.When you create a project using the createProject command then you can define an alternative location for the new project. To simplify the administration of ODASA, we recommend that you store all projects within the odasa/projects directory.

Example: A team wants to monitor the quality of two applications: AppOne and AppTwo. They create a separate project to analyze each application. This results in the following directory structure:


Initially, each new sub-directory contains only a project file that defines the basic properties of the project.

What is the project file?

Each project  file contains the configuration details for a single project, including:

  • How to access a new version of the source files for the project, typically from an SCM repository
  • How to build a snapshot of the project from the source files
  • A policy to define snapshot storage requirements.

The entire project configuration is defined using XML. Each project is monitored over time, so each project sub-directory contains multiple snapshots of the code. Typically, a new snapshot is added every day.

What are the main tasks for a project?

Administrator tasks for a project include:

  • No labels