Somewhat related to/in support of #2 perhaps, git supports adding metadata to commits via git notes, so we should be able to make a project repo into our database and walk the commit history, calculating the debt score every commit or every X commits and writing it into a git note on that commit. Further, since the score is tied to a particular configuration, if we write the data as a pair of config-hash => score and append to the note or add additional notes, multiple configurations can co-exist in the same repo can be accounted for/ignored as desired. Ideally we'll hash the actual configuration ruby object, or an abstract syntax tree of the .debt_ceiling.rb file, so that trivial whitespace changes don't yield changes to the hash value.
Somewhat related to/in support of #2 perhaps, git supports adding metadata to commits via git notes, so we should be able to make a project repo into our database and walk the commit history, calculating the debt score every commit or every X commits and writing it into a git note on that commit. Further, since the score is tied to a particular configuration, if we write the data as a pair of config-hash => score and append to the note or add additional notes, multiple configurations can co-exist in the same repo can be accounted for/ignored as desired. Ideally we'll hash the actual configuration ruby object, or an abstract syntax tree of the .debt_ceiling.rb file, so that trivial whitespace changes don't yield changes to the hash value.