Last active
April 19, 2020 11:47
-
-
Save achraf-jeday/bbc2ae272a82961f1ebe4c815d9565d1 to your computer and use it in GitHub Desktop.
Generate a massive CSV file in PHP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$header = array('uid','name','pass','mail','status','created','access','login','timezone','language','init','users_roles','prenom','patronyme','autre_prenoms','civilite','date_naissance','lieu_naissance','nouveau_email','nom_usage'); | |
$line = array('4509','[email protected]','$S$DUOohSWRaHv5IZOpqAQHfFiKFOVBbyo9yogtOIMicsI0jVv8TMR3','[email protected]','1','1479377985','1532625913','1532625913','Europe/Paris','fr','[email protected]','3','jérémy','lacroze','','mr','1991-03-01 00:00:00','enghien-les-bains','',''); | |
$file = fopen("modules/custom/migrate_opm/data/user/usrs.csv","w"); | |
fputcsv($file, $header); | |
for ($i = 2; $i <= 1500001; $i++) { | |
$line[0] = $i; | |
$arr = explode(' ', $this->randomName()); | |
$line[1] = $arr[0] . "_$i"; | |
$arr = explode(' ', $this->randomName()); | |
$line[3] = $arr[0] . "[email protected]"; | |
$line[4] = mt_rand(0, 1); | |
$line[5] = mt_rand(0, 1587248115); | |
$line[6] = mt_rand(0, 1587248115); | |
$line[7] = mt_rand(0, 1587248115); | |
$line[8] = $this->randomTimeZone(); | |
$line[9] = $this->randomLanguage(); | |
$arr = explode(' ', $this->randomName()); | |
$line[10] = $arr[0] . "[email protected]"; | |
$roles = [3, 4, 6]; | |
$key = array_rand($roles); | |
$line[11] = $roles[$key]; | |
$line[12] = $this->randomName(); | |
$line[13] = $this->randomName(); | |
$line[14] = $this->randomName(); | |
$line[17] = $this->randomName(); | |
$arr = explode(' ', $this->randomName()); | |
$line[18] = $arr[0] . "[email protected]"; | |
$line[19] = $this->randomName(); | |
if ($i % 2 == 0) { | |
$line[15] = 'mr'; | |
} | |
else { | |
$line[15] = 'mme'; | |
} | |
$line[16] = $this->rand_date('1930-01-01', '2020-01-01'); | |
fputcsv($file, $line); | |
$this->output()->writeln('Node with nid: ' . $i . ' inserted.'); | |
} | |
function randomTimeZone() { | |
$timezones = [ | |
'America/Puerto_Rico', | |
'America/New_York', | |
'America/Chicago', | |
'America/Denver', | |
'America/Phoenix', | |
'America/Los_Angeles', | |
'America/Anchorage', | |
'Pacific/Honolulu', | |
'America/Adak', | |
'America/Anchorage', | |
'America/Anguilla', | |
'America/Antigua', | |
'America/Araguaina', | |
'America/Argentina/Buenos_Aires', | |
'America/Argentina/Catamarca', | |
'America/Argentina/ComodRivadavia', | |
'America/Argentina/Cordoba', | |
'America/Argentina/Jujuy', | |
'America/Argentina/La_Rioja', | |
'America/Argentina/Mendoza', | |
'America/Argentina/Rio_Gallegos', | |
'America/Argentina/Salta', | |
'America/Argentina/San_Juan', | |
'America/Argentina/San_Luis', | |
'America/Argentina/Tucuman', | |
'America/Argentina/Ushuaia', | |
'America/Aruba', | |
'America/Asuncion', | |
'America/Atikokan', | |
'America/Atka', | |
'America/Bahia', | |
'America/Barbados', | |
'America/Belem', | |
'America/Belize', | |
'America/Blanc-Sablon', | |
'America/Boa_Vista', | |
'America/Bogota', | |
'America/Boise', | |
'America/Buenos_Aires', | |
'America/Cambridge_Bay', | |
'America/Campo_Grande', | |
'America/Cancun', | |
'America/Caracas', | |
'America/Catamarca', | |
'America/Cayenne', | |
'America/Cayman', | |
'America/Chicago', | |
'America/Chihuahua', | |
'America/Coral_Harbour', | |
'America/Cordoba', | |
'America/Costa_Rica', | |
'America/Cuiaba', | |
'America/Curacao', | |
'America/Danmarkshavn', | |
'America/Dawson', | |
'America/Dawson_Creek', | |
'America/Denver', | |
'America/Detroit', | |
'America/Dominica', | |
'America/Edmonton', | |
'America/Eirunepe', | |
'America/El_Salvador', | |
'America/Ensenada', | |
'America/Fortaleza', | |
'America/Fort_Wayne', | |
'America/Glace_Bay', | |
'America/Godthab', | |
'America/Goose_Bay', | |
'America/Grand_Turk', | |
'America/Grenada', | |
'America/Guadeloupe', | |
'America/Guatemala', | |
'America/Guayaquil', | |
'America/Guyana', | |
'America/Halifax', | |
'America/Havana', | |
'America/Hermosillo', | |
'America/Indiana/Indianapolis', | |
'America/Indiana/Knox', | |
'America/Indiana/Marengo', | |
'America/Indiana/Petersburg', | |
'America/Indiana/Tell_City', | |
'America/Indiana/Vevay', | |
'America/Indiana/Vincennes', | |
'America/Indiana/Winamac', | |
'America/Indianapolis', | |
'America/Inuvik', | |
'America/Iqaluit', | |
'America/Jamaica', | |
'America/Jujuy', | |
'America/Juneau', | |
'America/Kentucky/Louisville', | |
'America/Kentucky/Monticello', | |
'America/Knox_IN', | |
'America/La_Paz', | |
'America/Lima', | |
'America/Los_Angeles', | |
'America/Louisville', | |
'America/Maceio', | |
'America/Managua', | |
'America/Manaus', | |
'America/Marigot', | |
'America/Martinique', | |
'America/Matamoros', | |
'America/Mazatlan', | |
'America/Mendoza', | |
'America/Menominee', | |
'America/Merida', | |
'America/Mexico_City', | |
'America/Miquelon', | |
'America/Moncton', | |
'America/Monterrey', | |
'America/Montevideo', | |
'America/Montreal', | |
'America/Montserrat', | |
'America/Nassau', | |
'America/New_York', | |
'America/Nipigon', | |
'America/Nome', | |
'America/Noronha', | |
'America/North_Dakota/Center', | |
'America/North_Dakota/New_Salem', | |
'America/Ojinaga', | |
'America/Panama', | |
'America/Pangnirtung', | |
'America/Paramaribo', | |
'America/Phoenix', | |
'America/Port-au-Prince', | |
'America/Porto_Acre', | |
'America/Port_of_Spain', | |
'America/Porto_Velho', | |
'America/Puerto_Rico', | |
'America/Rainy_River', | |
'America/Rankin_Inlet', | |
'America/Recife', | |
'America/Regina', | |
'America/Resolute', | |
'America/Rio_Branco', | |
'America/Rosario', | |
'America/Santa_Isabel', | |
'America/Santarem', | |
'America/Santiago', | |
'America/Santo_Domingo', | |
'America/Sao_Paulo', | |
'America/Scoresbysund', | |
'America/Shiprock', | |
'America/St_Barthelemy', | |
'America/St_Johns', | |
'America/St_Kitts', | |
'America/St_Lucia', | |
'America/St_Thomas', | |
'America/St_Vincent', | |
'America/Swift_Current', | |
'America/Tegucigalpa', | |
'America/Thule', | |
'America/Thunder_Bay', | |
'America/Tijuana', | |
'America/Toronto', | |
'America/Tortola', | |
'America/Vancouver', | |
'America/Virgin', | |
'America/Whitehorse', | |
'America/Winnipeg', | |
'America/Yakutat', | |
'America/Yellowknife', | |
'Europe/Amsterdam', | |
'Europe/Andorra', | |
'Europe/Athens', | |
'Europe/Belfast', | |
'Europe/Belgrade', | |
'Europe/Berlin', | |
'Europe/Bratislava', | |
'Europe/Brussels', | |
'Europe/Bucharest', | |
'Europe/Budapest', | |
'Europe/Chisinau', | |
'Europe/Copenhagen', | |
'Europe/Dublin', | |
'Europe/Gibraltar', | |
'Europe/Guernsey', | |
'Europe/Helsinki', | |
'Europe/Isle_of_Man', | |
'Europe/Istanbul', | |
'Europe/Jersey', | |
'Europe/Kaliningrad', | |
'Europe/Kiev', | |
'Europe/Lisbon', | |
'Europe/Ljubljana', | |
'Europe/London', | |
'Europe/Luxembourg', | |
'Europe/Madrid', | |
'Europe/Malta', | |
'Europe/Mariehamn', | |
'Europe/Minsk', | |
'Europe/Monaco', | |
'Europe/Moscow', | |
'Europe/Nicosia', | |
'Europe/Oslo', | |
'Europe/Paris', | |
'Europe/Podgorica', | |
'Europe/Prague', | |
'Europe/Riga', | |
'Europe/Rome', | |
'Europe/Samara', | |
'Europe/San_Marino', | |
'Europe/Sarajevo', | |
'Europe/Simferopol', | |
'Europe/Skopje', | |
'Europe/Sofia', | |
'Europe/Stockholm', | |
'Europe/Tallinn', | |
'Europe/Tirane', | |
'Europe/Tiraspol', | |
'Europe/Uzhgorod', | |
'Europe/Vaduz', | |
'Europe/Vatican', | |
'Europe/Vienna', | |
'Europe/Vilnius', | |
'Europe/Volgograd', | |
'Europe/Warsaw', | |
'Europe/Zagreb', | |
'Europe/Zaporozhye', | |
'Europe/Zurich', | |
'Asia/Aden', | |
'Asia/Almaty', | |
'Asia/Amman', | |
'Asia/Anadyr', | |
'Asia/Aqtau', | |
'Asia/Aqtobe', | |
'Asia/Ashgabat', | |
'Asia/Ashkhabad', | |
'Asia/Baghdad', | |
'Asia/Bahrain', | |
'Asia/Baku', | |
'Asia/Bangkok', | |
'Asia/Beirut', | |
'Asia/Bishkek', | |
'Asia/Brunei', | |
'Asia/Calcutta', | |
'Asia/Choibalsan', | |
'Asia/Chongqing', | |
'Asia/Chungking', | |
'Asia/Colombo', | |
'Asia/Dacca', | |
'Asia/Damascus', | |
'Asia/Dhaka', | |
'Asia/Dili', | |
'Asia/Dubai', | |
'Asia/Dushanbe', | |
'Asia/Gaza', | |
'Asia/Harbin', | |
'Asia/Ho_Chi_Minh', | |
'Asia/Hong_Kong', | |
'Asia/Hovd', | |
'Asia/Irkutsk', | |
'Asia/Istanbul', | |
'Asia/Jakarta', | |
'Asia/Jayapura', | |
'Asia/Jerusalem', | |
'Asia/Kabul', | |
'Asia/Kamchatka', | |
'Asia/Karachi', | |
'Asia/Kashgar', | |
'Asia/Kathmandu', | |
'Asia/Katmandu', | |
'Asia/Kolkata', | |
'Asia/Krasnoyarsk', | |
'Asia/Kuala_Lumpur', | |
'Asia/Kuching', | |
'Asia/Kuwait', | |
'Asia/Macao', | |
'Asia/Macau', | |
'Asia/Magadan', | |
'Asia/Makassar', | |
'Asia/Manila', | |
'Asia/Muscat', | |
'Asia/Nicosia', | |
'Asia/Novokuznetsk', | |
'Asia/Novosibirsk', | |
'Asia/Omsk', | |
'Asia/Oral', | |
'Asia/Phnom_Penh', | |
'Asia/Pontianak', | |
'Asia/Pyongyang', | |
'Asia/Qatar', | |
'Asia/Qyzylorda', | |
'Asia/Rangoon', | |
'Asia/Riyadh', | |
'Asia/Saigon', | |
'Asia/Sakhalin', | |
'Asia/Samarkand', | |
'Asia/Seoul', | |
'Asia/Shanghai', | |
'Asia/Singapore', | |
'Asia/Taipei', | |
'Asia/Tashkent', | |
'Asia/Tbilisi', | |
'Asia/Tehran', | |
'Asia/Tel_Aviv', | |
'Asia/Thimbu', | |
'Asia/Thimphu', | |
'Asia/Tokyo', | |
'Asia/Ujung_Pandang', | |
'Asia/Ulaanbaatar', | |
'Asia/Ulan_Bator', | |
'Asia/Urumqi', | |
'Asia/Vientiane', | |
'Asia/Vladivostok', | |
'Asia/Yakutsk', | |
'Asia/Yekaterinburg', | |
'Asia/Yerevan', | |
'Africa/Abidjan', | |
'Africa/Accra', | |
'Africa/Addis_Ababa', | |
'Africa/Algiers', | |
'Africa/Asmara', | |
'Africa/Asmera', | |
'Africa/Bamako', | |
'Africa/Bangui', | |
'Africa/Banjul', | |
'Africa/Bissau', | |
'Africa/Blantyre', | |
'Africa/Brazzaville', | |
'Africa/Bujumbura', | |
'Africa/Cairo', | |
'Africa/Casablanca', | |
'Africa/Ceuta', | |
'Africa/Conakry', | |
'Africa/Dakar', | |
'Africa/Dar_es_Salaam', | |
'Africa/Djibouti', | |
'Africa/Douala', | |
'Africa/El_Aaiun', | |
'Africa/Freetown', | |
'Africa/Gaborone', | |
'Africa/Harare', | |
'Africa/Johannesburg', | |
'Africa/Kampala', | |
'Africa/Khartoum', | |
'Africa/Kigali', | |
'Africa/Kinshasa', | |
'Africa/Lagos', | |
'Africa/Libreville', | |
'Africa/Lome', | |
'Africa/Luanda', | |
'Africa/Lubumbashi', | |
'Africa/Lusaka', | |
'Africa/Malabo', | |
'Africa/Maputo', | |
'Africa/Maseru', | |
'Africa/Mbabane', | |
'Africa/Mogadishu', | |
'Africa/Monrovia', | |
'Africa/Nairobi', | |
'Africa/Ndjamena', | |
'Africa/Niamey', | |
'Africa/Nouakchott', | |
'Africa/Ouagadougou', | |
'Africa/Porto-Novo', | |
'Africa/Sao_Tome', | |
'Africa/Timbuktu', | |
'Africa/Tripoli', | |
'Africa/Tunis', | |
'Africa/Windhoek', | |
'Australia/ACT', | |
'Australia/Adelaide', | |
'Australia/Brisbane', | |
'Australia/Broken_Hill', | |
'Australia/Canberra', | |
'Australia/Currie', | |
'Australia/Darwin', | |
'Australia/Eucla', | |
'Australia/Hobart', | |
'Australia/LHI', | |
'Australia/Lindeman', | |
'Australia/Lord_Howe', | |
'Australia/Melbourne', | |
'Australia/North', | |
'Australia/NSW', | |
'Australia/Perth', | |
'Australia/Queensland', | |
'Australia/South', | |
'Australia/Sydney', | |
'Australia/Tasmania', | |
'Australia/Victoria', | |
'Australia/West', | |
'Australia/Yancowinna', | |
'Indian/Antananarivo', | |
'Indian/Chagos', | |
'Indian/Christmas', | |
'Indian/Cocos', | |
'Indian/Comoro', | |
'Indian/Kerguelen', | |
'Indian/Mahe', | |
'Indian/Maldives', | |
'Indian/Mauritius', | |
'Indian/Mayotte', | |
'Indian/Reunion', | |
'Atlantic/Azores', | |
'Atlantic/Bermuda', | |
'Atlantic/Canary', | |
'Atlantic/Cape_Verde', | |
'Atlantic/Faeroe', | |
'Atlantic/Faroe', | |
'Atlantic/Jan_Mayen', | |
'Atlantic/Madeira', | |
'Atlantic/Reykjavik', | |
'Atlantic/South_Georgia', | |
'Atlantic/Stanley', | |
'Atlantic/St_Helena', | |
'Pacific/Apia', | |
'Pacific/Auckland', | |
'Pacific/Chatham', | |
'Pacific/Easter', | |
'Pacific/Efate', | |
'Pacific/Enderbury', | |
'Pacific/Fakaofo', | |
'Pacific/Fiji', | |
'Pacific/Funafuti', | |
'Pacific/Galapagos', | |
'Pacific/Gambier', | |
'Pacific/Guadalcanal', | |
'Pacific/Guam', | |
'Pacific/Honolulu', | |
'Pacific/Johnston', | |
'Pacific/Kiritimati', | |
'Pacific/Kosrae', | |
'Pacific/Kwajalein', | |
'Pacific/Majuro', | |
'Pacific/Marquesas', | |
'Pacific/Midway', | |
'Pacific/Nauru', | |
'Pacific/Niue', | |
'Pacific/Norfolk', | |
'Pacific/Noumea', | |
'Pacific/Pago_Pago', | |
'Pacific/Palau', | |
'Pacific/Pitcairn', | |
'Pacific/Ponape', | |
'Pacific/Port_Moresby', | |
'Pacific/Rarotonga', | |
'Pacific/Saipan', | |
'Pacific/Samoa', | |
'Pacific/Tahiti', | |
'Pacific/Tarawa', | |
'Pacific/Tongatapu', | |
'Pacific/Truk', | |
'Pacific/Wake', | |
'Pacific/Wallis', | |
'Pacific/Yap', | |
'Antarctica/Casey', | |
'Antarctica/Davis', | |
'Antarctica/DumontDUrville', | |
'Antarctica/Macquarie', | |
'Antarctica/Mawson', | |
'Antarctica/McMurdo', | |
'Antarctica/Palmer', | |
'Antarctica/Rothera', | |
'Antarctica/South_Pole', | |
'Antarctica/Syowa', | |
'Antarctica/Vostok', | |
'Arctic/Longyearbyen', | |
'UTC', | |
'UTC-12', | |
'UTC-11', | |
'UTC-10', | |
'UTC-9', | |
'UTC-8', | |
'UTC-7', | |
'UTC-6', | |
'UTC-5', | |
'UTC-4', | |
'UTC-3', | |
'UTC-2', | |
'UTC-1', | |
'UTC+0', | |
'UTC+1', | |
'UTC+2', | |
'UTC+3', | |
'UTC+4', | |
'UTC+5', | |
'UTC+6', | |
'UTC+7', | |
'UTC+8', | |
'UTC+9', | |
'UTC+10', | |
'UTC+11', | |
'UTC+12', | |
'UTC+13', | |
'UTC+14', | |
]; | |
return $timezones[rand ( 0 , count($timezones) -1)]; | |
} | |
function randomLanguage() { | |
$lang_codes = [ | |
'aa', | |
'ab', | |
'ae', | |
'af', | |
'ak', | |
'am', | |
'an', | |
'ar', | |
'as', | |
'av', | |
'ay', | |
'az', | |
'ba', | |
'be', | |
'bg', | |
'bh', | |
'bi', | |
'bm', | |
'bn', | |
'bo', | |
'br', | |
'bs', | |
'ca', | |
'ce', | |
'ch', | |
'co', | |
'cr', | |
'cs', | |
'cu', | |
'cv', | |
'cy', | |
'da', | |
'de', | |
'dv', | |
'dz', | |
'ee', | |
'el', | |
'en', | |
'eo', | |
'es', | |
'et', | |
'eu', | |
'fa', | |
'ff', | |
'fi', | |
'fj', | |
'fo', | |
'fr', | |
'fy', | |
'ga', | |
'gd', | |
'gl', | |
'gn', | |
'gu', | |
'gv', | |
'ha', | |
'he', | |
'hi', | |
'ho', | |
'hr', | |
'ht', | |
'hu', | |
'hy', | |
'hz', | |
'ia', | |
'id', | |
'ie', | |
'ig', | |
'ii', | |
'ik', | |
'io', | |
'is', | |
'it', | |
'iu', | |
'ja', | |
'jv', | |
'ka', | |
'kg', | |
'ki', | |
'kj', | |
'kk', | |
'kl', | |
'km', | |
'kn', | |
'ko', | |
'kr', | |
'ks', | |
'ku', | |
'kv', | |
'kw', | |
'ky', | |
'la', | |
'lb', | |
'lg', | |
'li', | |
'ln', | |
'lo', | |
'lt', | |
'lu', | |
'lv', | |
'mg', | |
'mh', | |
'mi', | |
'mk', | |
'ml', | |
'mn', | |
'mr', | |
'ms', | |
'mt', | |
'my', | |
'na', | |
'nb', | |
'nd', | |
'ne', | |
'ng', | |
'nl', | |
'nn', | |
'no', | |
'nr', | |
'nv', | |
'ny', | |
'oc', | |
'oj', | |
'om', | |
'or', | |
'os', | |
'pa', | |
'pi', | |
'pl', | |
'ps', | |
'pt', | |
'qu', | |
'rm', | |
'rn', | |
'ro', | |
'ru', | |
'rw', | |
'sa', | |
'sc', | |
'sd', | |
'se', | |
'sg', | |
'si', | |
'sk', | |
'sl', | |
'sm', | |
'sn', | |
'so', | |
'sq', | |
'sr', | |
'ss', | |
'st', | |
'su', | |
'sv', | |
'sw', | |
'ta', | |
'te', | |
'tg', | |
'th', | |
'ti', | |
'tk', | |
'tl', | |
'tn', | |
'to', | |
'tr', | |
'ts', | |
'tt', | |
'tw', | |
'ty', | |
'ug', | |
'uk', | |
'ur', | |
'uz', | |
've', | |
'vi', | |
'vo', | |
'wa', | |
'wo', | |
'xh', | |
'yi', | |
'yo', | |
'za', | |
'zh', | |
'zu', | |
]; | |
return $lang_codes[rand ( 0 , count($lang_codes) -1)]; | |
} | |
function randomName() { | |
$firstname = array( | |
'Johnathon', | |
'Anthony', | |
'Erasmo', | |
'Raleigh', | |
'Nancie', | |
'Tama', | |
'Camellia', | |
'Augustine', | |
'Christeen', | |
'Luz', | |
'Diego', | |
'Lyndia', | |
'Thomas', | |
'Georgianna', | |
'Leigha', | |
'Alejandro', | |
'Marquis', | |
'Joan', | |
'Stephania', | |
'Elroy', | |
'Zonia', | |
'Buffy', | |
'Sharie', | |
'Blythe', | |
'Gaylene', | |
'Elida', | |
'Randy', | |
'Margarete', | |
'Margarett', | |
'Dion', | |
'Tomi', | |
'Arden', | |
'Clora', | |
'Laine', | |
'Becki', | |
'Margherita', | |
'Bong', | |
'Jeanice', | |
'Qiana', | |
'Lawanda', | |
'Rebecka', | |
'Maribel', | |
'Tami', | |
'Yuri', | |
'Michele', | |
'Rubi', | |
'Larisa', | |
'Lloyd', | |
'Tyisha', | |
'Samatha', | |
); | |
$lastname = array( | |
'Mischke', | |
'Serna', | |
'Pingree', | |
'Mcnaught', | |
'Pepper', | |
'Schildgen', | |
'Mongold', | |
'Wrona', | |
'Geddes', | |
'Lanz', | |
'Fetzer', | |
'Schroeder', | |
'Block', | |
'Mayoral', | |
'Fleishman', | |
'Roberie', | |
'Latson', | |
'Lupo', | |
'Motsinger', | |
'Drews', | |
'Coby', | |
'Redner', | |
'Culton', | |
'Howe', | |
'Stoval', | |
'Michaud', | |
'Mote', | |
'Menjivar', | |
'Wiers', | |
'Paris', | |
'Grisby', | |
'Noren', | |
'Damron', | |
'Kazmierczak', | |
'Haslett', | |
'Guillemette', | |
'Buresh', | |
'Center', | |
'Kucera', | |
'Catt', | |
'Badon', | |
'Grumbles', | |
'Antes', | |
'Byron', | |
'Volkman', | |
'Klemp', | |
'Pekar', | |
'Pecora', | |
'Schewe', | |
'Ramage', | |
); | |
$name = $firstname[rand ( 0 , count($firstname) -1)]; | |
$name .= ' '; | |
$name .= $lastname[rand ( 0 , count($lastname) -1)]; | |
return $name; | |
} | |
function rand_date($min_date, $max_date) { | |
/* Gets 2 dates as string, earlier and later date. | |
Returns date in between them. | |
*/ | |
$min_epoch = strtotime($min_date); | |
$max_epoch = strtotime($max_date); | |
$rand_epoch = rand($min_epoch, $max_epoch); | |
return date('d-m-Y', $rand_epoch); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment