Commit 6179af42 authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

feat: Add URL whitelist check to remote module preparation

parent 5676da33
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -99,6 +99,8 @@ publish-release:
    - if: $CI_COMMIT_TAG
      when: never
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      changes:
        - Cargo.toml
  release: 
    tag_name: "v$PKG_VERSION" 
    description: "PIPE CLI v$PKG_VERSION"
+557 −542
Original line number Diff line number Diff line
@@ -264,74 +264,74 @@ FN:468,Command::test
FN:491,Config::get_environment_variables
FN:503,Config::get_inputs
FN:540,Config::prepare_modules
FN:737,Config::read
FN:761,Config::read_json
FN:782,Config::read_yaml
FN:802,Config::run_workflow
FN:874,Config::set_environment_variables
FN:890,Config::verify_requirements
FN:908,Config::verify_resources
FN:917,<impl PartialEq for Details>::eq
FN:924,EnvironmentValue::from_string
FN:927,EnvironmentValue::from_value
FN:935,EnvironmentValue::prepend_prefix
FN:939,EnvironmentValue::trim_prefix
FN:943,EnvironmentValue::get_from_serde
FN:957,EnvironmentValue::get_all
FN:967,EnvironmentValue::print_all
FN:972,EnvironmentValue::set_variable
FN:982,EnvironmentValue::set_variables
FN:989,Extension::from_string
FN:998,Label::dry_run
FN:1002,Label::invalid
FN:1005,Label::fmt_invalid
FN:1009,Label::fail
FN:1012,Label::fmt_fail
FN:1016,Label::found
FN:1020,Label::not_found
FN:1023,Label::fmt_not_found
FN:1027,Label::output
FN:1030,Label::fmt_output
FN:1034,Label::pass
FN:1038,Label::read
FN:1042,Label::rejected
FN:1046,Label::run
FN:1050,Label::using
FN:1056,ModuleUri<'_>::from
FN:1066,ModuleUri<'_>::hash
FN:1090,ModuleUri<'_>::get_whitelist
FN:1093,ModuleUri<'_>::is_allowed
FN:1096,ModuleUri<'_>::test
FN:1097,ModuleUri<'_>::test::check
FN:1114,ModuleUri<'_>::working_directory
FN:1126,SemanticVersion::from_string
FN:1135,Script::ensure_relative
FN:1154,Script::expand_arguments
FN:1189,Script::expand_arguments_from
FN:1224,Script::from_module
FN:1282,Script::from_path
FN:1297,Script::from_template
FN:1317,Script::get_command
FN:1327,Script::get_arguments
FN:1367,Script::maybe_create_virtual_environment
FN:1408,Script::maybe_git_clone
FN:1415,Script::python_default
FN:1429,Script::run
FN:1496,Script::with_container
FN:1503,Script::with_current_dir
FN:1508,Script::with_envs
FN:1550,Script::with_virtual_environment
FN:1556,ScriptTemplate::from_path
FN:1568,ScriptTemplate::resolve_python_virtual_environment
FN:1596,StringTemplate::new
FN:1605,StringTemplate::expand
FN:1612,StringTemplate::get_variable
FN:1642,StringTemplate::is_handlebars
FN:1677,StringTemplate::remove_spaces
FN:1687,add_dot_slash
FN:1695,add_forward_slash
FN:1702,download_binary
FN:1703,download_binary::download
FN:760,Config::read
FN:784,Config::read_json
FN:805,Config::read_yaml
FN:825,Config::run_workflow
FN:897,Config::set_environment_variables
FN:913,Config::verify_requirements
FN:931,Config::verify_resources
FN:940,<impl PartialEq for Details>::eq
FN:947,EnvironmentValue::from_string
FN:950,EnvironmentValue::from_value
FN:958,EnvironmentValue::prepend_prefix
FN:962,EnvironmentValue::trim_prefix
FN:966,EnvironmentValue::get_from_serde
FN:980,EnvironmentValue::get_all
FN:990,EnvironmentValue::print_all
FN:995,EnvironmentValue::set_variable
FN:1005,EnvironmentValue::set_variables
FN:1012,Extension::from_string
FN:1021,Label::dry_run
FN:1025,Label::invalid
FN:1028,Label::fmt_invalid
FN:1032,Label::fail
FN:1035,Label::fmt_fail
FN:1039,Label::found
FN:1043,Label::not_found
FN:1046,Label::fmt_not_found
FN:1050,Label::output
FN:1053,Label::fmt_output
FN:1057,Label::pass
FN:1061,Label::read
FN:1065,Label::rejected
FN:1069,Label::run
FN:1073,Label::using
FN:1079,ModuleUri<'_>::from
FN:1089,ModuleUri<'_>::hash
FN:1113,ModuleUri<'_>::get_whitelist
FN:1116,ModuleUri<'_>::is_allowed
FN:1119,ModuleUri<'_>::test
FN:1120,ModuleUri<'_>::test::check
FN:1137,ModuleUri<'_>::working_directory
FN:1149,SemanticVersion::from_string
FN:1158,Script::ensure_relative
FN:1177,Script::expand_arguments
FN:1212,Script::expand_arguments_from
FN:1247,Script::from_module
FN:1305,Script::from_path
FN:1320,Script::from_template
FN:1340,Script::get_command
FN:1350,Script::get_arguments
FN:1390,Script::maybe_create_virtual_environment
FN:1431,Script::maybe_git_clone
FN:1438,Script::python_default
FN:1452,Script::run
FN:1519,Script::with_container
FN:1526,Script::with_current_dir
FN:1531,Script::with_envs
FN:1573,Script::with_virtual_environment
FN:1579,ScriptTemplate::from_path
FN:1591,ScriptTemplate::resolve_python_virtual_environment
FN:1619,StringTemplate::new
FN:1628,StringTemplate::expand
FN:1635,StringTemplate::get_variable
FN:1665,StringTemplate::is_handlebars
FN:1700,StringTemplate::remove_spaces
FN:1710,add_dot_slash
FN:1718,add_forward_slash
FN:1725,download_binary
FN:1726,download_binary::download
FNF:72
FNDA:1,Command::test
FNDA:0,Config::get_environment_variables
@@ -393,7 +393,7 @@ FNDA:1,Script::run
FNDA:1,Script::with_container
FNDA:1,Script::with_current_dir
FNDA:0,Script::with_envs
FNDA:2,Script::with_virtual_environment
FNDA:1,Script::with_virtual_environment
FNDA:1,ScriptTemplate::from_path
FNDA:0,ScriptTemplate::resolve_python_virtual_environment
FNDA:2,StringTemplate::new
@@ -444,638 +444,653 @@ DA:541,0
DA:542,0
DA:543,0
DA:545,0
DA:546,0
DA:547,0
DA:548,0
DA:549,0
DA:550,0
DA:551,0
DA:552,0
DA:553,0
DA:554,0
DA:555,0
DA:556,0
DA:557,0
DA:558,0
DA:559,0
DA:560,0
DA:561,0
DA:562,0
DA:563,0
DA:564,0
DA:565,0
DA:566,0
DA:568,0
DA:570,0
DA:573,0
DA:575,0
DA:581,0
DA:583,0
DA:580,0
DA:586,0
DA:588,0
DA:591,0
DA:593,0
DA:597,0
DA:600,0
DA:603,0
DA:596,0
DA:598,0
DA:602,0
DA:605,0
DA:607,0
DA:608,0
DA:609,0
DA:610,0
DA:611,0
DA:612,0
DA:613,0
DA:614,0
DA:615,0
DA:617,0
DA:618,0
DA:619,0
DA:622,0
DA:623,0
DA:624,0
DA:625,0
DA:626,0
DA:628,0
DA:627,0
DA:629,0
DA:630,0
DA:631,0
DA:633,0
DA:634,0
DA:635,0
DA:637,0
DA:636,0
DA:638,0
DA:639,0
DA:640,0
DA:644,0
DA:645,0
DA:646,0
DA:649,0
DA:648,0
DA:650,0
DA:651,0
DA:652,0
DA:654,0
DA:655,0
DA:656,0
DA:657,0
DA:658,0
DA:660,0
DA:661,0
DA:662,0
DA:663,0
DA:664,0
DA:665,0
DA:666,0
DA:667,0
DA:668,0
DA:670,0
DA:671,0
DA:674,0
DA:676,0
DA:677,0
DA:680,0
DA:681,0
DA:682,0
DA:683,0
DA:685,0
DA:684,0
DA:686,0
DA:687,0
DA:688,0
DA:689,0
DA:690,0
DA:691,0
DA:693,0
DA:694,0
DA:698,0
DA:703,0
DA:704,0
DA:705,0
DA:706,0
DA:708,0
DA:709,0
DA:710,0
DA:711,0
DA:713,0
DA:718,0
DA:719,0
DA:723,0
DA:726,0
DA:729,0
DA:712,0
DA:714,0
DA:716,0
DA:717,0
DA:721,0
DA:731,0
DA:732,0
DA:733,0
DA:735,0
DA:737,1
DA:738,2
DA:739,2
DA:740,1
DA:734,0
DA:736,0
DA:741,0
DA:743,2
DA:744,1
DA:745,0
DA:749,2
DA:750,1
DA:742,0
DA:746,0
DA:749,0
DA:752,0
DA:753,0
DA:761,1
DA:754,0
DA:756,0
DA:758,0
DA:760,1
DA:761,2
DA:762,2
DA:763,2
DA:765,0
DA:766,0
DA:769,3
DA:770,2
DA:771,4
DA:772,0
DA:774,6
DA:775,2
DA:782,1
DA:783,2
DA:763,1
DA:764,0
DA:766,2
DA:767,1
DA:768,0
DA:772,2
DA:773,1
DA:775,0
DA:776,0
DA:784,1
DA:786,0
DA:787,0
DA:790,2
DA:791,1
DA:792,2
DA:793,0
DA:795,3
DA:796,1
DA:802,0
DA:803,0
DA:805,0
DA:806,0
DA:807,0
DA:808,0
DA:785,2
DA:786,2
DA:788,0
DA:789,0
DA:792,3
DA:793,2
DA:794,4
DA:795,0
DA:797,6
DA:798,2
DA:805,1
DA:806,2
DA:807,1
DA:809,0
DA:810,0
DA:811,0
DA:813,0
DA:813,2
DA:814,1
DA:815,2
DA:816,0
DA:819,0
DA:822,0
DA:824,0
DA:818,3
DA:819,1
DA:825,0
DA:826,0
DA:827,0
DA:828,0
DA:829,0
DA:830,0
DA:831,0
DA:832,0
DA:835,0
DA:838,0
DA:833,0
DA:834,0
DA:836,0
DA:839,0
DA:842,0
DA:843,0
DA:844,0
DA:845,0
DA:846,0
DA:847,0
DA:848,0
DA:849,0
DA:850,0
DA:851,0
DA:852,0
DA:853,0
DA:854,0
DA:855,0
DA:856,0
DA:857,0
DA:859,0
DA:862,0
DA:858,0
DA:861,0
DA:865,0
DA:866,0
DA:867,0
DA:868,0
DA:870,0
DA:869,0
DA:871,0
DA:872,0
DA:874,0
DA:875,0
DA:876,0
DA:877,0
DA:878,0
DA:879,0
DA:884,0
DA:890,0
DA:880,0
DA:882,0
DA:885,0
DA:888,0
DA:891,0
DA:892,0
DA:893,0
DA:894,0
DA:895,0
DA:896,0
DA:897,0
DA:898,0
DA:899,0
DA:900,0
DA:901,0
DA:902,0
DA:908,0
DA:909,0
DA:917,1
DA:918,1
DA:924,0
DA:907,0
DA:913,0
DA:914,0
DA:915,0
DA:916,0
DA:917,0
DA:918,0
DA:919,0
DA:923,0
DA:925,0
DA:927,0
DA:928,0
DA:929,0
DA:930,0
DA:931,0
DA:932,0
DA:935,0
DA:936,0
DA:939,1
DA:940,1
DA:941,2
DA:943,0
DA:944,0
DA:945,0
DA:946,0
DA:941,1
DA:947,0
DA:948,0
DA:949,0
DA:950,0
DA:951,0
DA:952,0
DA:953,0
DA:954,0
DA:955,0
DA:957,1
DA:958,1
DA:959,2
DA:960,2
DA:961,2
DA:962,2
DA:958,0
DA:959,0
DA:962,1
DA:963,1
DA:964,2
DA:966,0
DA:967,0
DA:968,0
DA:969,0
DA:970,0
DA:971,0
DA:972,0
DA:973,0
DA:974,0
DA:975,0
DA:976,0
DA:977,0
DA:978,0
DA:982,0
DA:983,0
DA:985,0
DA:989,1
DA:990,2
DA:991,2
DA:992,3
DA:993,0
DA:980,1
DA:981,1
DA:982,2
DA:983,2
DA:984,2
DA:985,2
DA:986,1
DA:990,0
DA:991,0
DA:992,0
DA:995,0
DA:996,0
DA:997,0
DA:998,0
DA:999,0
DA:1000,0
DA:1002,0
DA:1003,0
DA:1001,0
DA:1005,0
DA:1006,0
DA:1007,0
DA:1009,0
DA:1010,0
DA:1012,0
DA:1013,0
DA:1014,0
DA:1008,0
DA:1012,1
DA:1013,2
DA:1014,2
DA:1015,3
DA:1016,0
DA:1017,0
DA:1018,0
DA:1020,0
DA:1021,0
DA:1022,0
DA:1023,0
DA:1024,0
DA:1025,0
DA:1027,1
DA:1028,3
DA:1030,3
DA:1031,3
DA:1032,3
DA:1034,0
DA:1026,0
DA:1028,0
DA:1029,0
DA:1030,0
DA:1032,0
DA:1033,0
DA:1035,0
DA:1036,0
DA:1038,0
DA:1037,0
DA:1039,0
DA:1040,0
DA:1042,0
DA:1041,0
DA:1043,0
DA:1044,0
DA:1046,0
DA:1047,0
DA:1048,0
DA:1050,0
DA:1051,0
DA:1052,0
DA:1056,2
DA:1057,2
DA:1058,3
DA:1059,1
DA:1060,2
DA:1050,1
DA:1051,3
DA:1053,3
DA:1054,3
DA:1055,3
DA:1057,0
DA:1058,0
DA:1059,0
DA:1061,0
DA:1063,1
DA:1066,1
DA:1067,1
DA:1068,1
DA:1069,1
DA:1070,1
DA:1062,0
DA:1063,0
DA:1065,0
DA:1066,0
DA:1067,0
DA:1069,0
DA:1070,0
DA:1071,0
DA:1073,2
DA:1077,2
DA:1078,2
DA:1073,0
DA:1074,0
DA:1075,0
DA:1079,2
DA:1080,2
DA:1081,2
DA:1081,3
DA:1082,1
DA:1083,2
DA:1086,0
DA:1090,0
DA:1091,0
DA:1093,0
DA:1084,0
DA:1086,1
DA:1089,1
DA:1090,1
DA:1091,1
DA:1092,1
DA:1093,1
DA:1094,0
DA:1096,0
DA:1097,0
DA:1098,0
DA:1100,0
DA:1101,0
DA:1102,0
DA:1103,0
DA:1104,0
DA:1105,0
DA:1106,0
DA:1108,0
DA:1110,0
DA:1096,2
DA:1100,2
DA:1101,2
DA:1103,2
DA:1104,2
DA:1106,2
DA:1109,0
DA:1113,0
DA:1114,0
DA:1115,0
DA:1116,0
DA:1117,0
DA:1118,0
DA:1119,0
DA:1120,0
DA:1121,0
DA:1126,1
DA:1127,1
DA:1128,3
DA:1129,3
DA:1130,3
DA:1135,1
DA:1136,1
DA:1137,2
DA:1138,1
DA:1154,1
DA:1155,2
DA:1158,2
DA:1123,0
DA:1124,0
DA:1125,0
DA:1126,0
DA:1127,0
DA:1128,0
DA:1129,0
DA:1131,0
DA:1133,0
DA:1137,0
DA:1138,0
DA:1139,0
DA:1140,0
DA:1141,0
DA:1143,0
DA:1144,0
DA:1149,1
DA:1150,1
DA:1151,3
DA:1152,3
DA:1153,3
DA:1158,1
DA:1159,1
DA:1160,2
DA:1161,1
DA:1162,1
DA:1164,2
DA:1168,1
DA:1169,1
DA:1189,1
DA:1190,2
DA:1193,2
DA:1194,1
DA:1195,2
DA:1196,2
DA:1199,2
DA:1201,1
DA:1203,2
DA:1207,1
DA:1208,1
DA:1224,0
DA:1226,0
DA:1227,0
DA:1228,0
DA:1231,0
DA:1232,0
DA:1233,0
DA:1234,0
DA:1235,0
DA:1237,0
DA:1238,0
DA:1239,0
DA:1242,0
DA:1243,0
DA:1244,0
DA:1245,0
DA:1248,0
DA:1177,1
DA:1178,2
DA:1181,2
DA:1182,1
DA:1183,2
DA:1184,1
DA:1185,1
DA:1187,2
DA:1191,1
DA:1192,1
DA:1212,1
DA:1213,2
DA:1216,2
DA:1217,1
DA:1218,2
DA:1219,2
DA:1222,2
DA:1224,1
DA:1226,2
DA:1230,1
DA:1231,1
DA:1247,0
DA:1249,0
DA:1250,0
DA:1253,0
DA:1251,0
DA:1254,0
DA:1255,0
DA:1256,0
DA:1259,0
DA:1257,0
DA:1258,0
DA:1260,0
DA:1261,0
DA:1262,0
DA:1265,0
DA:1266,0
DA:1282,1
DA:1283,1
DA:1284,1
DA:1297,1
DA:1298,1
DA:1299,3
DA:1303,2
DA:1305,2
DA:1307,2
DA:1311,1
DA:1312,1
DA:1313,1
DA:1315,2
DA:1317,1
DA:1318,1
DA:1319,1
DA:1267,0
DA:1268,0
DA:1271,0
DA:1272,0
DA:1273,0
DA:1276,0
DA:1278,0
DA:1279,0
DA:1282,0
DA:1288,0
DA:1289,0
DA:1305,1
DA:1306,1
DA:1307,1
DA:1320,1
DA:1322,1
DA:1323,2
DA:1324,1
DA:1327,1
DA:1328,1
DA:1329,1
DA:1330,1
DA:1331,1
DA:1332,1
DA:1333,0
DA:1335,0
DA:1336,0
DA:1339,2
DA:1340,2
DA:1321,1
DA:1322,3
DA:1326,2
DA:1328,2
DA:1330,2
DA:1334,1
DA:1335,1
DA:1336,1
DA:1338,2
DA:1340,1
DA:1341,1
DA:1342,1
DA:1344,1
DA:1343,1
DA:1345,1
DA:1346,2
DA:1347,2
DA:1348,2
DA:1350,2
DA:1352,4
DA:1353,2
DA:1355,0
DA:1347,1
DA:1350,1
DA:1351,1
DA:1352,1
DA:1353,1
DA:1354,1
DA:1355,1
DA:1356,0
DA:1359,2
DA:1360,2
DA:1362,1
DA:1367,0
DA:1368,0
DA:1369,0
DA:1370,0
DA:1372,0
DA:1373,0
DA:1374,0
DA:1375,0
DA:1376,0
DA:1377,0
DA:1358,0
DA:1359,0
DA:1362,2
DA:1363,1
DA:1365,1
DA:1367,1
DA:1368,1
DA:1369,1
DA:1370,2
DA:1371,2
DA:1373,1
DA:1375,3
DA:1376,2
DA:1378,0
DA:1379,0
DA:1380,0
DA:1381,0
DA:1382,0
DA:1383,0
DA:1384,0
DA:1385,0
DA:1387,0
DA:1388,0
DA:1382,2
DA:1383,2
DA:1385,1
DA:1390,0
DA:1391,0
DA:1392,0
DA:1393,0
DA:1395,0
DA:1396,0
DA:1397,0
DA:1398,0
DA:1399,0
DA:1400,0
DA:1402,0
DA:1403,0
DA:1404,0
DA:1408,1
DA:1409,2
DA:1410,2
DA:1411,2
DA:1412,3
DA:1413,1
DA:1415,0
DA:1416,0
DA:1417,0
DA:1425,0
DA:1429,1
DA:1430,1
DA:1405,0
DA:1406,0
DA:1407,0
DA:1408,0
DA:1410,0
DA:1411,0
DA:1414,0
DA:1418,0
DA:1419,0
DA:1422,0
DA:1427,0
DA:1431,1
DA:1432,2
DA:1433,2
DA:1434,3
DA:1435,1
DA:1436,7
DA:1437,2
DA:1438,1
DA:1439,1
DA:1440,1
DA:1441,1
DA:1446,2
DA:1447,1
DA:1449,0
DA:1450,0
DA:1434,2
DA:1435,3
DA:1436,1
DA:1438,0
DA:1439,0
DA:1440,0
DA:1448,0
DA:1452,1
DA:1453,1
DA:1454,1
DA:1455,2
DA:1456,2
DA:1459,2
DA:1460,1
DA:1462,0
DA:1463,0
DA:1466,1
DA:1467,1
DA:1468,2
DA:1469,3
DA:1470,2
DA:1473,2
DA:1474,1
DA:1475,3
DA:1457,3
DA:1458,1
DA:1459,7
DA:1460,2
DA:1461,1
DA:1462,1
DA:1463,1
DA:1464,1
DA:1469,2
DA:1470,1
DA:1472,0
DA:1473,0
DA:1476,1
DA:1477,3
DA:1478,3
DA:1479,1
DA:1481,0
DA:1482,0
DA:1483,0
DA:1477,1
DA:1478,2
DA:1479,2
DA:1482,2
DA:1483,1
DA:1485,0
DA:1486,0
DA:1487,0
DA:1488,0
DA:1492,0
DA:1493,0
DA:1496,1
DA:1489,1
DA:1490,1
DA:1491,2
DA:1492,3
DA:1493,2
DA:1496,2
DA:1497,1
DA:1498,1
DA:1503,1
DA:1504,2
DA:1505,1
DA:1508,0
DA:1498,3
DA:1499,1
DA:1500,3
DA:1501,3
DA:1502,1
DA:1504,0
DA:1505,0
DA:1506,0
DA:1509,0
DA:1510,0
DA:1550,2
DA:1551,1
DA:1552,1
DA:1556,1
DA:1557,2
DA:1558,1
DA:1560,0
DA:1561,0
DA:1564,2
DA:1566,1
DA:1568,0
DA:1569,0
DA:1570,0
DA:1571,0
DA:1572,0
DA:1573,0
DA:1574,0
DA:1575,0
DA:1577,0
DA:1578,0
DA:1579,0
DA:1511,0
DA:1515,0
DA:1516,0
DA:1519,1
DA:1520,1
DA:1521,1
DA:1526,1
DA:1527,2
DA:1528,1
DA:1531,0
DA:1532,0
DA:1533,0
DA:1573,1
DA:1574,3
DA:1575,3
DA:1579,1
DA:1580,2
DA:1581,1
DA:1583,0
DA:1584,0
DA:1585,0
DA:1586,0
DA:1596,2
DA:1598,2
DA:1605,1
DA:1606,6
DA:1607,5
DA:1612,1
DA:1613,2
DA:1614,2
DA:1615,1
DA:1616,2
DA:1618,0
DA:1642,2
DA:1643,4
DA:1644,4
DA:1645,2
DA:1646,0
DA:1648,0
DA:1677,1
DA:1678,2
DA:1679,1
DA:1680,0
DA:1682,3
DA:1683,1
DA:1687,1
DA:1688,2
DA:1689,2
DA:1691,4
DA:1695,1
DA:1696,2
DA:1697,0
DA:1699,2
DA:1702,0
DA:1587,2
DA:1589,1
DA:1591,0
DA:1592,0
DA:1593,0
DA:1594,0
DA:1595,0
DA:1596,0
DA:1597,0
DA:1598,0
DA:1600,0
DA:1601,0
DA:1602,0
DA:1607,0
DA:1608,0
DA:1609,0
DA:1619,2
DA:1621,2
DA:1628,1
DA:1629,6
DA:1630,5
DA:1635,1
DA:1636,2
DA:1637,2
DA:1638,1
DA:1639,2
DA:1641,0
DA:1665,2
DA:1666,4
DA:1667,4
DA:1668,2
DA:1669,0
DA:1671,0
DA:1700,1
DA:1701,2
DA:1702,1
DA:1703,0
DA:1704,0
DA:1705,0
DA:1706,0
DA:1707,0
DA:1708,0
DA:1709,0
DA:1710,0
DA:1711,0
DA:1712,0
DA:1713,0
DA:1715,0
DA:1717,0
DA:1705,3
DA:1706,1
DA:1710,1
DA:1711,2
DA:1712,2
DA:1714,4
DA:1718,1
DA:1719,2
DA:1720,0
DA:1721,0
DA:1722,0
DA:1723,0
DA:1738,1
DA:1739,1
DA:1740,4
DA:1741,2
DA:1745,1
DA:1746,2
DA:1747,2
DA:1748,2
DA:1749,2
DA:1750,5
DA:1753,1
DA:1755,2
DA:1757,4
DA:1760,0
DA:1787,1
DA:1788,2
DA:1789,2
DA:1790,1
DA:1791,6
DA:1803,1
DA:1805,0
DA:1807,1
DA:1822,1
DA:1823,1
DA:1722,2
DA:1725,0
DA:1726,0
DA:1727,0
DA:1728,0
DA:1729,0
DA:1730,0
DA:1731,0
DA:1732,0
DA:1733,0
DA:1734,0
DA:1735,0
DA:1736,0
DA:1738,0
DA:1740,0
DA:1743,0
DA:1744,0
DA:1745,0
DA:1746,0
DA:1761,1
DA:1762,1
DA:1763,4
DA:1764,2
DA:1768,1
DA:1769,2
DA:1770,2
DA:1771,2
DA:1772,2
DA:1773,5
DA:1776,1
DA:1778,2
DA:1780,4
DA:1783,0
DA:1810,1
DA:1811,2
DA:1812,2
DA:1813,1
DA:1814,6
DA:1826,1
DA:1827,3
DA:1839,1
DA:1840,1
DA:1843,0
DA:1844,0
DA:1845,0
DA:1847,0
DA:1851,0
DA:1852,0
DA:1853,0
DA:1855,0
DA:1859,0
DA:1861,0
DA:1862,0
DA:1869,1
DA:1871,2
DA:1872,1
DA:1873,1
DA:1875,3
DA:1888,2
DA:1889,2
DA:1890,4
DA:1891,4
DA:1892,12
DA:1893,8
DA:1828,0
DA:1830,1
DA:1845,1
DA:1846,1
DA:1849,1
DA:1850,3
DA:1862,1
DA:1863,1
DA:1866,0
DA:1867,0
DA:1868,0
DA:1870,0
DA:1874,0
DA:1875,0
DA:1876,0
DA:1878,0
DA:1882,0
DA:1884,0
DA:1885,0
DA:1892,1
DA:1894,2
DA:1895,1
DA:1896,3
DA:1897,1
DA:1900,1
DA:1902,1
DA:1903,8
LF:671
DA:1896,1
DA:1898,3
DA:1911,2
DA:1912,2
DA:1913,4
DA:1914,4
DA:1915,12
DA:1916,8
DA:1918,1
DA:1919,3
DA:1920,1
DA:1923,1
DA:1925,1
DA:1926,8
LF:686
LH:263
end_of_record
+37 −14
Original line number Diff line number Diff line
@@ -543,9 +543,14 @@ impl Config {
                | ModuleUri::Url(value) if !options.offline => match value.scheme() {
                    | Scheme::HTTP | Scheme::HTTPS | Scheme::SSH => {
                        let url = value.to_string();
                        // TODO: Filter URL using whitelist
                        // TODO: Check that URL exists
                        if ModuleUri::is_allowed(value) {
                            debug!(module = module.name, url, "=> {} Remote binary", Label::found());
                            info!(module = module.name, url, "=> {} Remote binary URL is on whitelist", Label::pass());
                        } else {
                            error!(module = module.name, url, "=> {} Not on whitelist", Label::rejected());
                            std::process::exit(exitcode::NOPERM);
                        }
                        // TODO: Check that URL exists
                        if !options.dry_run {
                            let output = download_binary(url.clone(), options.root.clone());
                            if !options.skip_verify_checksum {
@@ -557,7 +562,9 @@ impl Config {
                                    | Some(value) if value == &calculated_checksum => {
                                        info!(module = module.name, url, "=> {} Checksum verified", Label::pass());
                                        if let Ok(path) = output {
                                            if !make_executable(&path) {
                                            if make_executable(&path) {
                                                info!(module = module.name, url, "=> {} Downloaded binary is executable", Label::pass());
                                            } else {
                                                error!(
                                                    module = module.name,
                                                    url,
@@ -566,8 +573,6 @@ impl Config {
                                                    Label::fail()
                                                );
                                                std::process::exit(exitcode::USAGE);
                                            } else {
                                                info!(module = module.name, url, "=> {} Downloaded binary is executable", Label::pass());
                                            }
                                        }
                                    }
@@ -606,11 +611,11 @@ impl Config {
                    | Ok(true) => {
                        let path = value.into_os_string().into_string().unwrap();
                        debug!(module = module.name, path, "=> {} Local binary", Label::found());
                        if !make_executable(&PathBuf::from(path.clone())) {
                        if make_executable(&PathBuf::from(path.clone())) {
                            info!(module = module.name, path, "=> {} Binary is executable", Label::pass());
                        } else {
                            error!(module = module.name, path, "=> {} Binary is not executable", Label::fail());
                            std::process::exit(exitcode::USAGE);
                        } else {
                            info!(module = module.name, path, "=> {} Binary is executable", Label::pass());
                        }
                    }
                    | _ => {
@@ -625,8 +630,14 @@ impl Config {
                | ModuleLanguage::Generic => match ModuleUri::from(uri) {
                    | ModuleUri::Url(value) if !options.offline => match value.scheme() {
                        | Scheme::HTTP | Scheme::HTTPS | Scheme::SSH => {
                            debug!(uri, "=> {} Remote script repository", Label::found());
                            // TODO: Filter URL using whitelist
                            let url = value.to_string();
                            if ModuleUri::is_allowed(value) {
                                debug!(module = module.name, url, "=> {} Remote script repository", Label::found());
                                info!(module = module.name, url, "=> {} URL is on whitelist", Label::pass());
                            } else {
                                error!(module = module.name, url, "=> {} Not on whitelist", Label::rejected());
                                std::process::exit(exitcode::NOPERM);
                            }
                            // TODO: Check that URL exists
                            // TODO: Git clone module
                            // TODO: Check script repository with is_valid_pipe_module_python
@@ -651,8 +662,20 @@ impl Config {
                | ModuleLanguage::Python => match ModuleUri::from(uri) {
                    | ModuleUri::Url(value) if !options.offline => match value.scheme() {
                        | Scheme::HTTP | Scheme::HTTPS | Scheme::SSH => {
                            debug!(uri, "=> {} Remote {} script repository", Label::found(), programming_language);
                            // TODO: Filter URL using whitelist
                            let url = value.to_string();
                            if ModuleUri::is_allowed(value) {
                                debug!(
                                    module = module.name,
                                    url,
                                    "=> {} Remote {} script repository",
                                    Label::found(),
                                    programming_language
                                );
                                info!(module = module.name, url, "=> {} URL is on whitelist", Label::pass());
                            } else {
                                error!(module = module.name, url, "=> {} Not on whitelist", Label::rejected());
                                std::process::exit(exitcode::NOPERM);
                            }
                            // TODO: Check that URL exists
                            if ModuleUri::from(uri).test() {
                                info!(module = module.name, uri, "=> {}", Label::found());
@@ -1040,8 +1063,8 @@ impl Label {
        "READ".style(style)
    }
    pub fn rejected() -> Styled<&'static &'static str> {
        let style = Style::new().white().on_red();
        " REJECTED ".style(style)
        let style = Style::new().red().on_default_color();
        "🛑 REJECTED ".style(style)
    }
    pub fn run() -> Styled<&'static &'static str> {
        let style = Style::new().black().on_yellow();