'use strict' const id = 'metadata-end' module.exports = { id: id , meta: { description: 'enforce that metadata is at the end of commit messages' , recommended: true } , defaults: {} , options: {} , validate: (context, rule) => { const parsed = context.toJSON() const body = parsed.body const end = parsed.metadata.end if (end < body.length) { const extra = body.slice(end + 1) let lineNum = end + 1 for (let i = 0; i < extra.length; i++) { if (extra[i]) { lineNum += i break } } if (lineNum !== end + 1) { context.report({ id: id , message: 'commit metadata at end of message' , string: body[lineNum] , line: lineNum , column: 0 , level: 'fail' }) return } } context.report({ id: id , message: 'metadata is at end of message' , string: '' , level: 'pass' }) } }