  Natural language elements, e.g., todo comments, are frequently used to
communicate among the developers and to describe tasks that need to be
performed (actions) when specific conditions hold in the code repository
(triggers). As projects evolve, development processes change, and development
teams reorganize, these comments, because of their informal nature, frequently
become irrelevant or forgotten.
  We present the first technique, dubbed TrigIt, to specify triggeraction todo
comments as executable statements. Thus, actions are executed automatically
when triggers evaluate to true. TrigIt specifications are written in the host
language (e.g., Java) and are evaluated as part of the build process. The
triggers are specified as query statements over abstract syntax trees and
abstract representation of build configuration scripts, and the actions are
specified as code transformation steps. We implemented TrigIt for the Java
programming language and migrated 20 existing trigger-action comments from 8
popular open-source projects. We evaluate the cost of using TrigIt in terms of
the number of tokens in the executable comments and the time overhead
introduced in the build process.
