
LGTM is a simple pull request approval system for GitHub - samber
https://github.com/lgtmco/lgtm
======
bjacobel
I first encountered LGTM on some of Airbnb's open source repos, here's an
example of it at work on a closed [1] and open [2] Enzyme PR:

1:
[https://github.com/airbnb/enzyme/pull/449](https://github.com/airbnb/enzyme/pull/449)

2:
[https://github.com/airbnb/enzyme/pull/459](https://github.com/airbnb/enzyme/pull/459)

I love that this enforces a social practice a lot of teams use already, and
I'm pushing to add it to my own team's workflow (both internal and for open
source contributions).

Edit: another tool in the same vein people might be interested in is
Facebook's mention-bot [3], which analyzes PR diffs and @-mentions people it
thinks would be good reviewers based on git blame of lines touched.

3: [https://github.com/facebook/mention-
bot](https://github.com/facebook/mention-bot)

------
x0rg
Another tool is
[https://github.com/zalando/zappr](https://github.com/zalando/zappr) . We
built this and we are currently quite happy with it and open to suggestions,
issues, PRs.

~~~
agotterer
Why is this being down voted?

~~~
ZalandoTech
Here's a blog post on Zappr explaining its origins and more about how it
works: [https://tech.zalando.de/blog/zappr--enhancing-your-github-
wo...](https://tech.zalando.de/blog/zappr--enhancing-your-github-workflow/)

------
killercup
[http://homu.io](http://homu.io) goes a bit further (it actually triggers CI
builds of the merge results to check they are okay), but it seems it is
currently unmaintained.

BTW, I would gladly pay money for this! Even more in combination with features
from Facebook's mention-bot/Rust's highfive.

~~~
akerro
[https://b.agilob.net/choose-gitlab-for-your-next-
project](https://b.agilob.net/choose-gitlab-for-your-next-project) Point 5.

~~~
Manishearth
IIRC gitlab doesn't queue PRs (so you could potentially get a failing master
branch), but yeah, that covers most use cases.

~~~
sytse
agilob.net is down, probably this feature is referenced
[https://about.gitlab.com/2015/07/29/feature-highlight-
merge-...](https://about.gitlab.com/2015/07/29/feature-highlight-merge-
request-approvals/)

Regarding PR queuing do you mean [https://gitlab.com/gitlab-org/gitlab-
ce/issues/4176](https://gitlab.com/gitlab-org/gitlab-ce/issues/4176) ?

~~~
Manishearth
Basically yes.

~~~
sytse
Cool, [https://gitlab.com/gitlab-org/gitlab-
ce/issues/4176](https://gitlab.com/gitlab-org/gitlab-ce/issues/4176) has our
attention but it doesn't have a milestone yet. Feel free to leave a comment
there with your use case and how you think it should look.

~~~
Manishearth
Commented, thanks!

------
kerneis
I cannot find a way to "undo LGTM" if I was to quick to give approval. Working
at a company where I have to LGTM commits literally every day, believe me that
it is necessary every now and then.

~~~
x0rg
In zappr
([https://github.com/zalando/zappr](https://github.com/zalando/zappr)) you
can, check it out. An example:
[https://github.com/zalando/zappr/blob/master/.zappr-
example....](https://github.com/zalando/zappr/blob/master/.zappr-example.yaml)
.

------
ninjakeyboard
Not talking about the project, but is the term 'LGTM' (looks good to me) used
often in tech? I've heard it from Googlers but otherwise haven't really seen
the term in tech.

~~~
llamataboot
I've always had it as "Looks Good To Merge" \-- we use it every day...

~~~
ninjakeyboard
it's used more generally than in code. eg design doc review you'd say "LGTM"
to say that there are no suggestions.

------
henrikn
Another option is to do away with blocking on pull requests altogether and
review after the fact. It has some benefits (and some downsides).

I blogged about that here: [http://thepugautomatic.com/2014/02/code-
review/](http://thepugautomatic.com/2014/02/code-review/)

We use a home-grown tool on top of GitHub to review commit-by-commit after the
fact: [https://github.com/henrik/remit](https://github.com/henrik/remit)

------
cvburgess
Is this type of functionality planned for an official GitHub feature? Gitlab
and Bitbucket both incorporate some type of similar functionality already...

------
indrekju
We use github-review-helper instead [https://github.com/salemove/github-
review-helper](https://github.com/salemove/github-review-helper) . It also has
fixup commits support which is quite useful in our workflow.

------
eridius
Since we're talking about GitHub pull requests, my favorite tool for this is
[https://reviewable.io/](https://reviewable.io/). It fixes basically
everything about GitHub pull requests.

~~~
piotrkaminski
And of relevance to the original article, in Reviewable you can customize your
review completion condition with a snippet of code it will run on your behalf
and post the result as a GitHub commit status, so you can have basically any
approval system you want. One of the examples is a simple LGTM-based system
like in OP.

(Disclaimer: I run reviewable.io.)

------
caniszczyk
I also recommend checking out PullApprove, we've had some success using it in
some of our open source projects:
[https://pullapprove.com/](https://pullapprove.com/)

------
xgbi
Do you know if there is the same thing in Gitlab?

~~~
samber
yes, I know, but my company is using Github for a long time and migrate is not
planed.

~~~
akerro
You should compare annual costs of GitHub and GitLab CE or EE and start
planning it.

------
silasb
Hmm, I mostly work with Stash nowadays and they have the approve/disapprove
buttons which I like better than LGTM comment.

------
bradrydzewski
I'm a bit late to the party here. I'm the author of the project and happy to
answer any questions.

------
ryancox
The Kubernetes submit-queue munger is also worth a look:
[https://github.com/kubernetes/contrib/tree/master/mungegithu...](https://github.com/kubernetes/contrib/tree/master/mungegithub)

------
fishnchips
I really appreciate when project authors make it so simple for users to
deploy. Thank you, folks!

------
dominsbeard
Does anyone have experience with
[https://github.com/reviewninja/review.ninja](https://github.com/reviewninja/review.ninja)

------
glibgil
Why not make it distributed? Git is distributed

~~~
hk__2
How would you make that distributed? You still need a unique repository that
serves as a reference and on which pull-requests are made.

~~~
glibgil
yes, or a unique branch

------
PuercoPop
It would be nice if instead of having to comment LGTM a thumbs up reaction on
the FP of the PR would suffice

~~~
bjacobel
I believe the actual "LGTM" phrase is configurable via a .lgtm file in the
root of the repo. Airbnb's Enzyme has it configured to work with a :+1:.

~~~
PuercoPop
From reading the manual I saw it was configurable to change the regexp it
matches, not property's of the OP

------
johnwheeler
Is it:

"Looks Good to Me"

or

"Let's Get this Moving"?

:-)

~~~
etjossem
Let's Git This Merged? :D

