Codiga has joined Datadog!

Read the Blog
Skip to main content

Generic Continuous Integration Integration

Triggering new analysis from CI

We support analysis triggers from your continuous integration job. This is very simple to put in place, and we use a generic method that can be adapted to most continuous integration environments such as jenkins or travis-ci.

Installing the CI tools

Our CI tools are distributed using PyPi. You can install them using the following command:

$ pip install codiga

Using the CI tools

Setting your API keys

To use the CI tool, you need to set up one environment variable that identifies you as a user: `CODIGA_API_TOKEN``.

You can get these keys from the web interface, at this link.

Important Note: API keys identify you as a user and not as a project. Actions you can perform are limited by your user permissions.

Trigger an Analysis

To trigger an analysis (and potentially get results from it), use the binary codiga-analyze.

If you pass the -w flag to the codiga-analyze binary, the program will produce the results of the analysis, with the number of violations, duplicates as well as the number of violations per language.

If you are working on a large project that takes time to analyze, you might need to increase the timeout to get the analysis results using the -t flag. This flag defines the value of the timeout (in seconds) before getting the analysis results.

For example, the following line will trigger a new analysis, wait at most 20 minutes to get the analysis results and then print the results:

codiga-analyze -t 1200 -w -p "MY-AWESOME-PROJECT"

Compare a project status with another branch

Sometimes, you want to compare the status of your project with another repository or just another branch. The program codiga-compare is the one you want to use in that case.

The project compares your project against another codebase hosted on another repository. You can specify a revision (flag --target-revision) or specific branch (--target-branch) to compare against.

You can also use your GitHub/Gitlab or Bitbucket credentials to checkout the target repository (flag --kind).

You can use it as follows:

codiga-compare -t 1200 -w -p "MY-AWESOME-PROJECT" --url https://path/to/other/repository.git --target-branch development --kind Github

This will then start a comparison of MY-AWESOME-PROJECT on Codiga with the code on the repository https://path/to/other/repository.git on the development branch. To checkout the target repository, the GitHub credentials of the authenticated user are used.

Integration with GitLab Continuous Integration

Mike Atkinson (@MikeGAtkinson) from JHCTechnology developed a docker image that can be used to integrate Codiga in your GitLab CI pipeline.

The project is available on GitLab:

More information and contributing

For more information about the tool used for continuous integration, you can look at the related GitHub project.