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
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 source{d} Lookout; we recommend to use docker-compose
because it's straightforward, but you can learn more about the different ways to run source{d} Lookout.
Please refer to the Configuring source{d} Lookout guide for documentation about the config.yml
file, and to know how to configure source{d} 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 source{d} 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 source{d} 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 source{d} 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.