2017-01-14 2 views
-2

Место, где я работаю, цензурит безопасность кода настолько, что мы проходим проверку безопасности каждый раз, прежде чем мы опубликуем продукт. К сожалению, у нас есть более миллиона LOC, поэтому эта работа стала действительно чем-то вроде мучения.как git print недавно добавленный код с тегов

Для ясности, иногда мы проверяем код таким образом: find . -regex '.*\.java\|.*\.jsp'|xargs egrep -inr "(?:SAXParser|SAXParserFactory|DocumentBuilderFactory|TransformerFactory|XMLReader|DOMParser)"|tee ../result_xml.file

Я планировал сортировать эти result_xxx.file и в следующий раз, когда excuting то же найти команду мы можем сортировать и сравнить эти два файла и извлечения тех новый плохой код. Но это отстой.

Поскольку мы используем мерзавец и большую часть нашего кода являются Java и JavaScript, интересно, есть ли способ, чтобы собрать новый добавленный или измененный код с момента последнего времени мы закончили критик (с мерзавца тэгом) как git log --code --since #lastTag git log --code --between #thisTag #thatTag

Я искал это, но не получил полезной информации. У кого-то есть лучшие идеи? Спасибо.

+0

Существуют программные решения, которые сканируют ваш код на предмет уязвимостей безопасности. Просто используйте один из них в процессе непрерывной интеграции. Если у вас нет процесса CI, то получите один –

+1

взгляните на http://stackoverflow.com/questions/3211809/git-diff-between-given-two-tags – pedrorijo91

ответ

0

Я придумал идею, можем ли мы сделать это с помощью функции git web hook? Недавно я закончил плагин на основе функции git web hook. Каждый раз, когда мы нажимаем или предлагаем запрос на слияние, плагин (разработанный для Intellij Idea) будет выполнять уведомление. Но вот проблема, интерфейс git web hook предоставляет строку json, но я не могу найти код внутри него. В любом случае, я могу получить код, который мы совершили?

обновленного

Я нашел полезную команду: git log -p К сожалению, я редко использую команду непосредственно вызвать идею работу с мерзавцем так хорошо. Команда git log также поддерживает функцию --since, за которой может следовать параметр времени. Две вещи еще осталось сделать:

  1. Форматирование git log -p и получить добавленные или измененные строки, может быть сделано путем проверки того, что начинается линия с.
  2. Сохранить время и в следующий раз, когда мы могли бы добавить эту time мерзавцу команду, как войти: git log --since lastTime -p

В этом случае мы могли бы сканировать код пошагово. Необходимо уточнить множество деталей, получить работу ...