Website • Documentation • Blog • Slack • Twitter
With source{d} Lookout, we’re introducing a service for assisted code review, that allows running custom code analyzers on pull requests.
Jump to the Quickstart section to start using it!
Table of Contents
* [Introduction](#introduction)
* [Motivation and Scope](#motivation-and-scope)
* [Current Status](#current-status)
* [Further Reading](#further-reading)
* [Quickstart](#quickstart)
* [Available Analyzers](#available-analyzers)
* [Create an Analyzer](#create-an-analyzer)
* [Contribute](#contribute)
* [Community](#community)
* [Code of Conduct](#code-of-conduct)
* [License](#license)
source{d} is the company driving the Machine Learning on Code (#MLonCode) movement. Doing Machine Learning on Code consists of applying ML techniques to train models that can cluster, identify and predict useful aspects of source code and software repositories.
source{d} Lookout is the first step towards a full suite of Machine Learning on Code applications for AI-assisted coding, but you can also create your own analyzers without an ML approach.
The benefits of using source{d} Lookout are:
- Keep your code base style/patterns consistent.
- Language agnostic assisted code reviews.
- Identify where to focus your attention on code reviews.
- Automatically warn about common mistakes before human code review.
Currently, source{d} Lookout is in development process.
This repository contains the code of source{d} Lookout and the project documentation, which you can also see properly rendered at https://docs.sourced.tech/lookout.
There are different ways to run Lookout; we recommend to use docker-compose
because it's straightforward, but you can learn more about the different ways to run Lookout.
Please refer to the Configuring source{d} Lookout guide for documentation about the config.yml
file, and to know how to configure Lookout to analyze your repositories, or to use your own analyzers.
Using Docker Compose you can use the provided docker-compose.yml
config file to start Lookout, its dependencies (bblfsh and PostgreSQL) and a dummy
analyzer which will add some stats to the watched pull requests.
To do so, clone this repository or download docker-compose.yml
.
Create the config.yml
file in the same directory where docker-compose.yml
is (you can use config.yml.tpl
as a template), and then run:
$ docker-compose pull
$ GITHUB_USER=<user> GITHUB_TOKEN=<token> docker-compose up --force-recreate
You can stop it pressing ctrl+c
If you want to try source{d} Lookout with your own analyzer instead of dummy
one, you must run it in advance, then set it into config.yml
and then run:
$ docker-compose pull
$ GITHUB_USER=<user> GITHUB_TOKEN=<token> docker-compose up --force-recreate lookout bblfsh postgres
If you need to restart the database to a clean state, you must drop the postgres
container. To do so, stop running Lookout with ctrl+c
and then run:
$ docker rm lookout_postgres_1
This is a list of some of the available analyzers for source{d} Lookout:
Name | Description | Targeted files | Maturity level |
---|---|---|---|
style-analyzer | Code style analyzer | development | |
terraform | Checks if Terraform files are correctly formatted | Terraform | usable |
gometalint | Reports gometalinter results on pull requests | Go | testing and demo |
sonarcheck | Reports SonarSource checks results on pull requests using bblfsh UAST | Java | testing and demo |
flake8 | Reports flake8 results on pull requests | Python | testing and demo |
npm-audit | Reports issues with newly added dependencies using npm-audit | JavaScript | development |
function-name analyzer | Applies a translation model from function identifiers to function names. | development |
If you are developing an Analyzer, or you want more info about how do they work, please check the documentation about Lookout analyzers.
Contributions are more than welcome, if you are interested please take a look at our Contributing Guidelines.
source{d} has an amazing community of developers and contributors who are interested in Code As Data and/or Machine Learning on Code. Please join us! 👋
All activities under source{d} projects are governed by the source{d} code of conduct.
Affero GPL v3.0 or later, see LICENSE.