Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2014a85

Browse files
committed
Add schema-based rules for tools data of package index
These are the JSON schema-based rules to check the tool level data.
1 parentc1fd3df commit2014a85

File tree

33 files changed

+3406
-1
lines changed

33 files changed

+3406
-1
lines changed

‎internal/rule/ruleconfiguration/ruleconfiguration.go‎

Lines changed: 481 additions & 1 deletion
Large diffs are not rendered by default.

‎internal/rule/rulefunction/packageindex.go‎

Lines changed: 600 additions & 0 deletions
Large diffs are not rendered by default.

‎internal/rule/rulefunction/packageindex_test.go‎

Lines changed: 300 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -922,6 +922,196 @@ func TestPackageIndexPackagesPlatformsToolsDependenciesVersionNonSemver(t *testi
922922
checkPackageIndexRuleFunction(PackageIndexPackagesPlatformsToolsDependenciesVersionNonSemver,testTables,t)
923923
}
924924

925+
funcTestPackageIndexPackagesToolsMissing(t*testing.T) {
926+
testTables:= []packageIndexRuleFunctionTestTable{
927+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
928+
{"packages[].tools missing","packages-tools-missing",ruleresult.Fail,"^foopackager$"},
929+
{"Valid","valid-package-index",ruleresult.Pass,""},
930+
}
931+
932+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsMissing,testTables,t)
933+
}
934+
935+
funcTestPackageIndexPackagesToolsIncorrectType(t*testing.T) {
936+
testTables:= []packageIndexRuleFunctionTestTable{
937+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
938+
{"Incorrect packages[].tools type","packages-tools-incorrect-type",ruleresult.Fail,"^foopackager$"},
939+
{"Valid","valid-package-index",ruleresult.Pass,""},
940+
}
941+
942+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsIncorrectType,testTables,t)
943+
}
944+
945+
funcTestPackageIndexPackagesToolsAdditionalProperties(t*testing.T) {
946+
testTables:= []packageIndexRuleFunctionTestTable{
947+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
948+
{"Additional packages[].tools[] properties","packages-tools-additional-properties",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2$"},
949+
{"Valid","valid-package-index",ruleresult.Pass,""},
950+
}
951+
952+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsAdditionalProperties,testTables,t)
953+
}
954+
955+
funcTestPackageIndexPackagesToolsNameMissing(t*testing.T) {
956+
testTables:= []packageIndexRuleFunctionTestTable{
957+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
958+
{"packages[].tools[].name missing","packages-tools-name-missing",ruleresult.Fail,"^/packages/0/tools/0$"},
959+
{"Valid","valid-package-index",ruleresult.Pass,""},
960+
}
961+
962+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsNameMissing,testTables,t)
963+
}
964+
965+
funcTestPackageIndexPackagesToolsNameIncorrectType(t*testing.T) {
966+
testTables:= []packageIndexRuleFunctionTestTable{
967+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
968+
{"Incorrect packages[].tools.name type","packages-tools-name-incorrect-type",ruleresult.Fail,"^/packages/0/tools/0$"},
969+
{"Valid","valid-package-index",ruleresult.Pass,""},
970+
}
971+
972+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsNameIncorrectType,testTables,t)
973+
}
974+
975+
funcTestPackageIndexPackagesToolsNameLTMinLength(t*testing.T) {
976+
testTables:= []packageIndexRuleFunctionTestTable{
977+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
978+
{"packages[].tools[].name < min length","packages-tools-name-length-lt",ruleresult.Fail,"^/packages/0/tools/0$"},
979+
{"Valid","valid-package-index",ruleresult.Pass,""},
980+
}
981+
982+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsNameLTMinLength,testTables,t)
983+
}
984+
985+
funcTestPackageIndexPackagesToolsVersionMissing(t*testing.T) {
986+
testTables:= []packageIndexRuleFunctionTestTable{
987+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
988+
{"packages[].tools[].version missing","packages-tools-version-missing",ruleresult.Fail,"^/packages/0/tools/0$"},
989+
{"Valid","valid-package-index",ruleresult.Pass,""},
990+
}
991+
992+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsVersionMissing,testTables,t)
993+
}
994+
995+
funcTestPackageIndexPackagesToolsVersionIncorrectType(t*testing.T) {
996+
testTables:= []packageIndexRuleFunctionTestTable{
997+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
998+
{"Incorrect packages[].tools[].version type","packages-tools-version-incorrect-type",ruleresult.Fail,"^/packages/0/tools/0$"},
999+
{"Valid","valid-package-index",ruleresult.Pass,""},
1000+
}
1001+
1002+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsVersionIncorrectType,testTables,t)
1003+
}
1004+
1005+
funcTestPackageIndexPackagesToolsVersionNonRelaxedSemver(t*testing.T) {
1006+
testTables:= []packageIndexRuleFunctionTestTable{
1007+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1008+
{"packages[].tools[].version not relaxed semver","packages-tools-version-non-relaxed-semver",ruleresult.Fail,"^foopackager:openocd@foo$"},
1009+
{"Valid","valid-package-index",ruleresult.Pass,""},
1010+
}
1011+
1012+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsVersionNonRelaxedSemver,testTables,t)
1013+
}
1014+
1015+
funcTestPackageIndexPackagesToolsVersionNonSemver(t*testing.T) {
1016+
testTables:= []packageIndexRuleFunctionTestTable{
1017+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1018+
{"packages[].tools[].version not semver","packages-tools-version-not-semver",ruleresult.Fail,"^foopackager:openocd@1.0$"},
1019+
{"Valid","valid-package-index",ruleresult.Pass,""},
1020+
}
1021+
1022+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsVersionNonSemver,testTables,t)
1023+
}
1024+
1025+
funcTestPackageIndexPackagesToolsSystemsMissing(t*testing.T) {
1026+
testTables:= []packageIndexRuleFunctionTestTable{
1027+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1028+
{"packages[].tools[].systems[] missing","packages-tools-systems-missing",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2$"},
1029+
{"Valid","valid-package-index",ruleresult.Pass,""},
1030+
}
1031+
1032+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsMissing,testTables,t)
1033+
}
1034+
1035+
funcTestPackageIndexPackagesToolsSystemsIncorrectType(t*testing.T) {
1036+
testTables:= []packageIndexRuleFunctionTestTable{
1037+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1038+
{"Incorrect packages[].tools[].systems type","packages-tools-systems-incorrect-type",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2$"},
1039+
{"Valid","valid-package-index",ruleresult.Pass,""},
1040+
}
1041+
1042+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsIncorrectType,testTables,t)
1043+
}
1044+
1045+
funcTestPackageIndexPackagesToolsSystemsAdditionalProperties(t*testing.T) {
1046+
testTables:= []packageIndexRuleFunctionTestTable{
1047+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1048+
{"Additional packages[].tools[].systems[] properties","packages-tools-systems-additional-properties",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1049+
{"Valid","valid-package-index",ruleresult.Pass,""},
1050+
}
1051+
1052+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsAdditionalProperties,testTables,t)
1053+
}
1054+
1055+
funcTestPackageIndexPackagesToolsSystemsHostMissing(t*testing.T) {
1056+
testTables:= []packageIndexRuleFunctionTestTable{
1057+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1058+
{"packages[].tools[].systems[].host missing","packages-tools-systems-host-missing",ruleresult.Fail,"^/packages/0/tools/0/systems/0$"},
1059+
{"Valid","valid-package-index",ruleresult.Pass,""},
1060+
}
1061+
1062+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsHostMissing,testTables,t)
1063+
}
1064+
1065+
funcTestPackageIndexPackagesToolsSystemsHostIncorrectType(t*testing.T) {
1066+
testTables:= []packageIndexRuleFunctionTestTable{
1067+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1068+
{"Incorrect packages[].tools[].systems[].host type","packages-tools-systems-host-incorrect-type",ruleresult.Fail,"^/packages/0/tools/0/systems/0$"},
1069+
{"Valid","valid-package-index",ruleresult.Pass,""},
1070+
}
1071+
1072+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsHostIncorrectType,testTables,t)
1073+
}
1074+
1075+
funcTestPackageIndexPackagesToolsSystemsHostInvalid(t*testing.T) {
1076+
testTables:= []packageIndexRuleFunctionTestTable{
1077+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1078+
{"Invalid packages[].tools[].systems[].host format","packages-tools-systems-host-invalid",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - foo$"},
1079+
{"Valid","valid-package-index",ruleresult.Pass,""},
1080+
}
1081+
1082+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsHostInvalid,testTables,t)
1083+
}
1084+
1085+
funcTestPackageIndexPackagesToolsSystemsUrlMissing(t*testing.T) {
1086+
testTables:= []packageIndexRuleFunctionTestTable{
1087+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1088+
{"packages[].tools[].systems[].url missing","packages-tools-systems-url-missing",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1089+
{"Valid","valid-package-index",ruleresult.Pass,""},
1090+
}
1091+
1092+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsUrlMissing,testTables,t)
1093+
}
1094+
1095+
funcTestPackageIndexPackagesToolsSystemsUrlIncorrectType(t*testing.T) {
1096+
testTables:= []packageIndexRuleFunctionTestTable{
1097+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1098+
{"Incorrect packages[].tools[].systems[].url type","packages-tools-systems-url-incorrect-type",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1099+
{"Valid","valid-package-index",ruleresult.Pass,""},
1100+
}
1101+
1102+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsUrlIncorrectType,testTables,t)
1103+
}
1104+
1105+
funcTestPackageIndexPackagesToolsSystemsUrlInvalidFormat(t*testing.T) {
1106+
testTables:= []packageIndexRuleFunctionTestTable{
1107+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1108+
{"Incorrect packages[].tools[].systems[].url format","packages-tools-systems-url-invalid-format",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1109+
{"Valid","valid-package-index",ruleresult.Pass,""},
1110+
}
1111+
1112+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsUrlInvalidFormat,testTables,t)
1113+
}
1114+
9251115
funcTestPackageIndexPackagesToolsSystemsURLDeadLink(t*testing.T) {
9261116
testTables:= []packageIndexRuleFunctionTestTable{
9271117
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
@@ -931,3 +1121,113 @@ func TestPackageIndexPackagesToolsSystemsURLDeadLink(t *testing.T) {
9311121

9321122
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsURLDeadLink,testTables,t)
9331123
}
1124+
1125+
funcTestPackageIndexPackagesToolsSystemsArchiveFileNameMissing(t*testing.T) {
1126+
testTables:= []packageIndexRuleFunctionTestTable{
1127+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1128+
{"packages[].tools[].systems[].archiveFileName missing","packages-tools-systems-archivefilename-missing",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1129+
{"Valid","valid-package-index",ruleresult.Pass,""},
1130+
}
1131+
1132+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsArchiveFileNameMissing,testTables,t)
1133+
}
1134+
1135+
funcTestPackageIndexPackagesToolsSystemsArchiveFileNameIncorrectType(t*testing.T) {
1136+
testTables:= []packageIndexRuleFunctionTestTable{
1137+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1138+
{"Incorrect packages[].tools[].systems[].archiveFileName type","packages-tools-systems-archivefilename-incorrect-type",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1139+
{"Valid","valid-package-index",ruleresult.Pass,""},
1140+
}
1141+
1142+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsArchiveFileNameIncorrectType,testTables,t)
1143+
}
1144+
1145+
funcTestPackageIndexPackagesToolsSystemsArchiveFileNameLTMinLength(t*testing.T) {
1146+
testTables:= []packageIndexRuleFunctionTestTable{
1147+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1148+
{"packages[].tools[].systems[].archiveFileName < min length","packages-tools-systems-archivefilename-length-lt",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1149+
{"Valid","valid-package-index",ruleresult.Pass,""},
1150+
}
1151+
1152+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsArchiveFileNameLTMinLength,testTables,t)
1153+
}
1154+
1155+
funcTestPackageIndexPackagesToolsSystemsArchiveFileNameInvalid(t*testing.T) {
1156+
testTables:= []packageIndexRuleFunctionTestTable{
1157+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1158+
{"Invalid packages[].tools[].systems[].archiveFileName format","packages-tools-systems-archivefilename-invalid",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1159+
{"Valid","valid-package-index",ruleresult.Pass,""},
1160+
}
1161+
1162+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsArchiveFileNameInvalid,testTables,t)
1163+
}
1164+
1165+
funcTestPackageIndexPackagesToolsSystemsChecksumMissing(t*testing.T) {
1166+
testTables:= []packageIndexRuleFunctionTestTable{
1167+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1168+
{"packages[].tools[].systems[].checksum missing","packages-tools-systems-checksum-missing",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1169+
{"Valid","valid-package-index",ruleresult.Pass,""},
1170+
}
1171+
1172+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsChecksumMissing,testTables,t)
1173+
}
1174+
1175+
funcTestPackageIndexPackagesToolsSystemsChecksumIncorrectType(t*testing.T) {
1176+
testTables:= []packageIndexRuleFunctionTestTable{
1177+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1178+
{"Incorrect packages[].tools[].systems[].checksum type","packages-tools-systems-checksum-incorrect-type",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1179+
{"Valid","valid-package-index",ruleresult.Pass,""},
1180+
}
1181+
1182+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsChecksumIncorrectType,testTables,t)
1183+
}
1184+
1185+
funcTestPackageIndexPackagesToolsSystemsChecksumInvalid(t*testing.T) {
1186+
testTables:= []packageIndexRuleFunctionTestTable{
1187+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1188+
{"Invalid packages[].tools[].systems[].checksum format","packages-tools-systems-checksum-invalid",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1189+
{"Valid","valid-package-index",ruleresult.Pass,""},
1190+
}
1191+
1192+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsChecksumInvalid,testTables,t)
1193+
}
1194+
1195+
funcTestPackageIndexPackagesToolsSystemsChecksumDiscouragedAlgorithm(t*testing.T) {
1196+
testTables:= []packageIndexRuleFunctionTestTable{
1197+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1198+
{"packages[].tools[].systems[].checksum uses discouraged algorithm","packages-tools-systems-checksum-discouraged",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1199+
{"Valid","valid-package-index",ruleresult.Pass,""},
1200+
}
1201+
1202+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsChecksumDiscouragedAlgorithm,testTables,t)
1203+
}
1204+
1205+
funcTestPackageIndexPackagesToolsSystemsSizeMissing(t*testing.T) {
1206+
testTables:= []packageIndexRuleFunctionTestTable{
1207+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1208+
{"packages[].tools[].systems[].size missing","packages-tools-systems-size-missing",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1209+
{"Valid","valid-package-index",ruleresult.Pass,""},
1210+
}
1211+
1212+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsSizeMissing,testTables,t)
1213+
}
1214+
1215+
funcTestPackageIndexPackagesToolsSystemsSizeIncorrectType(t*testing.T) {
1216+
testTables:= []packageIndexRuleFunctionTestTable{
1217+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1218+
{"Incorrect packages[].tools[].systems[].size type","packages-tools-systems-size-incorrect-type",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1219+
{"Valid","valid-package-index",ruleresult.Pass,""},
1220+
}
1221+
1222+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsSizeIncorrectType,testTables,t)
1223+
}
1224+
1225+
funcTestPackageIndexPackagesToolsSystemsSizeInvalid(t*testing.T) {
1226+
testTables:= []packageIndexRuleFunctionTestTable{
1227+
{"Invalid JSON","invalid-JSON",ruleresult.NotRun,""},
1228+
{"Invalid packages[].tools[].systems[].size format","packages-tools-systems-size-invalid",ruleresult.Fail,"^foopackager:openocd@0\\.11\\.0-arduino2 - aarch64-linux-gnu$"},
1229+
{"Valid","valid-package-index",ruleresult.Pass,""},
1230+
}
1231+
1232+
checkPackageIndexRuleFunction(PackageIndexPackagesToolsSystemsSizeInvalid,testTables,t)
1233+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{
2+
"packages": [
3+
{
4+
"name":"foopackager",
5+
"maintainer":"Jane Developer",
6+
"websiteURL":"http://example.com",
7+
"email":"jane@example.com",
8+
"help": {
9+
"online":"http://example.com"
10+
},
11+
"platforms": [
12+
{
13+
"name":"My Board",
14+
"architecture":"avr",
15+
"version":"1.0.0",
16+
"category":"Contributed",
17+
"help": {
18+
"online":"http://example.com"
19+
},
20+
"url":"http://example.com",
21+
"archiveFileName":"myboard-1.0.0.zip",
22+
"checksum":"MD5:6c0f556759894aa1a45e8af423a08ce8",
23+
"size":"15005",
24+
"boards": [],
25+
"toolsDependencies": []
26+
}
27+
],
28+
"tools": [
29+
{
30+
"foo":"bar",
31+
"name":"openocd",
32+
"version":"0.11.0-arduino2",
33+
"systems": [
34+
{
35+
"size":"1902818",
36+
"checksum":"SHA-256:a1aa7f1435a61eafb72ee90722f2496d6a34a7a0f085d0315c2613e4a548b824",
37+
"host":"aarch64-linux-gnu",
38+
"archiveFileName":"openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2",
39+
"url":"http://example.com"
40+
},
41+
{
42+
"size":"1986716",
43+
"checksum":"SHA-256:57041130160be086e69387cceb4616eefc9819a0ef75de1f7c11aea57fb92699",
44+
"host":"arm-linux-gnueabihf",
45+
"archiveFileName":"openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2",
46+
"url":"http://example.com"
47+
}
48+
]
49+
},
50+
{
51+
"name":"CMSIS",
52+
"version":"4.0.0-atmel",
53+
"systems": [
54+
{
55+
"host":"arm-linux-gnueabihf",
56+
"url":"http://example.com",
57+
"archiveFileName":"CMSIS-4.0.0.tar.bz2",
58+
"checksum":"SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7",
59+
"size":"17642623"
60+
},
61+
{
62+
"host":"i686-mingw32",
63+
"url":"http://example.com",
64+
"archiveFileName":"CMSIS-4.0.0.tar.bz2",
65+
"checksum":"SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7",
66+
"size":"17642623"
67+
}
68+
]
69+
}
70+
]
71+
}
72+
]
73+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp