Skip to content
Reviews your PR, provides examples of how popular repos did something similar.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bin
config
lib
log
public
spec
tmp
vendor
.gitignore
.rspec
.ruby-version
Gemfile
Gemfile.lock
Procfile
README.md
Rakefile
app.json
config.ru

README.md

idi-o-matic

idi-o-matic reviews your PR and provides examples of how popular repos did something similar.

Example PR review:

example-pr-review

How it works

  • When a PR is opened, idi-o-matic recieves a GitHub webhook payload and queries for the PR's commit messages.
  • The commit messages are submitted to the very cool, experimental GitHub Semantic Search
  • The experimental search results are filtered for match quality.
  • idi-o-matic comments on the PR, suggesting relevant code along with the justification.

Design

GitHub-focused

  • Extends the new, experimental GitHub Semantic Search
  • Ruby-on-Rails based GitHub bot.
  • Uses Octokit for GitHub API interaction.
  • Used the GitHub GraphQL API and starter app for initial research.

Techniques

  • Designed message behavior between classes using the sequence diagram design technique recommended in Practical Object-Oriented Design by Sandi Metz: sequence-diagram

  • Class dependency analysis. Good for now, but can be reduced further through factories once we add other search services: dependency-diagram

Technology

  • Rails 5.2
  • Fully automated CI/CD using Heroku

Limitations

  • The GitHub Semantic Search suggests python repos, so this app is limited to python suggestions as well at the moment.
You can’t perform that action at this time.