Я хочу, чтобы как-тоClone и анализировать все (или как можно больше) GitHub проектов Java
- получить так много проектов GitHub Java, как это возможно, разобрать их исходный код
- извлечь AST с чем-то вроде javaparser, вставьте эти АСТ в базу данных NoSQL (возможно, neo4j) и задайте различные типы запросов анализа статического кода.
Более подробная информация о части 2 здесь:
- Graphlr: indexing antlr3 generated Java AST through a Neo4j graph
- Expressive and Scalable Source Code Queries with Graph Databases
У меня есть некоторые проблемы в отношении части 1 данного проекта.
Я м думал об использовании GitHub API и выполните следующие действия:
- Написать скрипт, который получает столько пользователей GitHub, как это возможно
- Для каждого пользователя, получить все операции РЕПО с языком = Java, и клон их в каталоге ramdisk (чтобы избежать ввода/вывода диска) и преодолеть нехватку места.
- Анализировать каждый .java файл
ли это возможно? Можете ли вы подумать о другом способе, в котором мне не нужно клонировать репо (например, проанализировать «онлайн» исходные файлы java)?
Мне не нужно анализировать все репозитории github сразу. У меня будет узел neo4j, и я смогу добавить узлы (AST) на разумный период времени.