是否有一种方法可以访问GitHub中基于artifactId
或groupId
标记的内容导入给定Maven依赖项的Java项目列表?
例如,我想知道GitHub中的哪些项目正在导入依赖项<artifactId>ApacheJMeter_core</artifactId>
或<groupId>org.apache.jmeter</groupId>
。
有可能吗?怎么做?
粗略的第一个近似值是使用文件名pom.xml
的GitHub搜索:
https://github.com/search?utf8=%E2%9C%93&q=aaaa+extension%3Axml+filename%3Apom.xml+language%3AXML&type=Code&ref=advsearch&l=XML&l=
但是您需要检查每个结果,以查看例如artifctId是否在<dependencies>
部分中列出。
[您可能还会考虑针对Google BigQuery做一个GitHub public dataset,其中包括280万个开源GitHub存储库中内容的完整快照。
关闭的更精确的功能是GitHub Dependency Graph,可用于受支持语言(包括Java / Maven)的公共项目
您可以try its API(目前在预览中,请参阅“ Access to a Repositories Dependency Graph”),但这将是每个项目的项目。
是
GitHub可通过REST API v3使用-您可以在advanced search中搜索所有可用内容。
示例
结果
{
"total_count": 1,
"incomplete_results": false,
"items": [
{
"name": "pom.xml",
...
"repository": {
...
"full_name": "jmeter-maven-plugin/jmeter-maven-plugin",
详细信息
您无法按其内容搜索存储库-这是API的限制。但是,您可以按任意方式选择search for code。并从结果中解析回购信息。
通过单个存储库的简短示例is limited。要摆脱此限制并在所有公共存储库中进行搜索,您必须通过基本身份验证或使用OAuth2令牌authenticate。