Label It

A command line tool for adding labels to Github pull requests using a declarative YAML configuration. Written in Go. Available for Mac, Linux, and Windows. Latest release can be found here. Documentations can be found on the project page in Github.

Screenshot showing tool usage, configuration file, and pull request
Link

Features

Automatically add labels based on the following rules:

  • Branch names: both base and head branch.
  • Files changed.
  • Pull request number, title text and body text.
  • User who created the pull request.
  • Time since the pull request was created and last updated.
Link

Powerful and highly customizable

Rules allow you to declare if and when a label should be applied. They are written via a descriptive YAML configuration.

rules:
  # If the base branch is "master" the label "MyLabel" 
  # will be added to the pull request.
  - label: MyLabel
    base-rule:
      exact: master

You can use rules to perform a simple check, like verifying a branch name. Or you can use them to create complex configuration, powered by regular expressions, to check for file names, text content, and more.

file-rule:
  # "exact" checks for this exact file name
  exact: /docs/readme.md
  # "match" check all files using the provided regex pattern
  match: (.md)$
Link

Concurrency and performance

Label-it is written in Go and takes advantage of goroutines for parsing rules, and communicating with the Github API. The concurrent architecture offers a highly optimized algorithm that can easily handle large pull requests and complex rules.

Link

Open source

The project is fully open source and implements a GPL-3.0 License. You can build the project from source using the provided Makefile.


More Work

Thumbnail for McHugh & McHugh Law
Responsive Webdesign, Front End Development, Bootstrap, jQuery
Thumbnail for Guest AdVantage Mobile App
UX / UI Design, Backbone.js, Cordova, Mobile Application, Javascript, Mobile Interface Design
Thumbnail for Guest AdVantage Desktop Portal
UX / UI Design, Javascript, PHP, CodeIgniter, Full Stack Development, MySQL