Package: instruqt-converter
instruqt-converterPython based CLI tool to convert Instruqt (https://www.instruqt.com) tracks to and from a temporary state for testing.  This tool utilizes the Instruqt GraphQL API to validate tracks and use existing track and challenge IDs if available.ConfigurationBefore using the tool you will need to do the following:Install instruqt-converterpipinstallinstruqt-converterConfigure Environment VariablescpENVEXAMPLE~/.instruqt-converter.envAfter you have copiedENVEXAMPLEto~/.instruqt-converter.envupdate the following key/value pairs:INSTRUQT_API_KEY- Replace<api-key>with the API key from your Instruqt team settings pageINSTRUQT_ORG_SLUG- Replace<org-slug>with your organizations slugLoad the environment variables:source~/.instruqt-converter.envYou may want to addsource ~/.instruqt-converter.envto your shell profile so the environment variables are loaded every time you log in.UsageHelpvscode➜/workspaces/development/instruqt-converter$convert--helpUsage:convert[OPTIONS]╭─Options────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│*--trackPATHPathtoInstruqttrack[required]│
│*--to[dev|prod]ConvertTo:[dev]-Converttodevfortesting[prod]-Converttoprodforpromotion[required]│
│*--identifierTEXTTrackidentifierusedwhenconvertingtodev[default:dev][required]│
│--helpShowthismessageandexit.│
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯Converting to Dev Trackvscode➜/workspaces/development/instruqt-converter(main✗)$convert--track/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible--todev[21:41:23]INFOConvertingto[dev]withidentifier[dev]convert.py:56[21:41:24]WARNINGTrackwithidentifier:[dev]andID:vbiz8rpaul3walreadyexists.dev.py:50WARNINGFoundExistingAssignment[explore-the-environment]withID:3swpbta9acpwdev.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/01-explore-the-environment/assignment.md]dev.py:103WARNINGFoundExistingAssignment[configure-system]withID:lp2ahqitimsfdev.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/02-configure-system/assignment.md]dev.py:103WARNINGFoundExistingAssignment[configure-ntp]withID:4ju8kkouqiugdev.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/03-configure-ntp/assignment.md]dev.py:103WARNINGFoundExistingAssignment[configure-snmp]withID:ywddqrez9r38dev.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/04-configure-snmp/assignment.md]dev.py:103WARNINGFoundExistingAssignment[configure-interfaces]withID:q1z7o0lg7hpmdev.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/05-configure-interfaces/assignment.md]dev.py:103WARNINGFoundExistingAssignment[configure-ospf]withID:kmf8zc84x83odev.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/06-configure-ospf/assignment.md]dev.py:103INFOSettingidintrack.ymlto:vbiz8rpaul3wdev.py:121INFOCompletedupdateof/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/track.ymldev.py:141INFOTrackconversionto[dev]withidentifier[dev]complete!dev.py:142Converting to Prod Trackvscode➜/workspaces/development/instruqt-converter(main✗)$convert--track/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible--toprod[21:42:20]INFOConvertingto[prod]withidentifier[dev]convert.py:60[21:42:21]WARNINGTrackwithidentifier:[dev]andID:zcr4yrnk5jgralreadyexists.prod.py:50WARNINGFoundExistingAssignment[explore-the-environment]withID:puhvtzr2iij2prod.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/01-explore-the-environment/assignment.md]prod.py:103WARNINGFoundExistingAssignment[configure-system]withID:dlxrwky2yfb7prod.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/02-configure-system/assignment.md]prod.py:103WARNINGFoundExistingAssignment[configure-ntp]withID:qvj2hx3kj1q4prod.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/03-configure-ntp/assignment.md]prod.py:103WARNINGFoundExistingAssignment[configure-snmp]withID:m8lal25bbcqeprod.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/04-configure-snmp/assignment.md]prod.py:103WARNINGFoundExistingAssignment[configure-interfaces]withID:pin7dorfav3yprod.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/05-configure-interfaces/assignment.md]prod.py:103WARNINGFoundExistingAssignment[configure-ospf]withID:n7t3cuwcd9vgprod.py:74INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/06-configure-ospf/assignment.md]prod.py:103INFOSettingidintrack.ymlto:zcr4yrnk5jgrprod.py:121INFOCompletedupdateof/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/track.ymlprod.py:141INFOTrackconversionto[prod]withidentifier[dev]complete!prod.py:142Using a different track identifierThe tool also supports using track identifiers other thandev.  To change the identifier use the--identifiercommand line option.vscode➜/workspaces/development/instruqt-converter(main✗)$convert--track/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible--todev--identifiernick[21:58:22]INFOConvertingto[dev]withidentifier[nick]convert.py:56[21:58:23]ERRORTrackwithidentifier:nickdoesnotexistdev.py:57INFOAssignment[explore-the-environment]doesnotexistRemovingid.dev.py:88INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/01-explore-the-environment/assignment.md]dev.py:103INFOAssignment[configure-system]doesnotexistRemovingid.dev.py:88INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/02-configure-system/assignment.md]dev.py:103INFOAssignment[configure-ntp]doesnotexistRemovingid.dev.py:88INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/03-configure-ntp/assignment.md]dev.py:103INFOAssignment[configure-snmp]doesnotexistRemovingid.dev.py:88INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/04-configure-snmp/assignment.md]dev.py:103INFOAssignment[configure-interfaces]doesnotexistRemovingid.dev.py:88INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/05-configure-interfaces/assignment.md]dev.py:103INFOAssignment[configure-ospf]doesnotexistRemovingid.dev.py:88INFOCompletedupdateof[/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/06-configure-ospf/assignment.md]dev.py:103INFOTrack[network-automation-challenge-lab-nick]notfound.Removingid.dev.py:128INFOCompletedupdateof/workspaces/development/network-automation-challenge-lab/instruqt-challenge-cisco-ansible/track.ymldev.py:141INFOTrackconversionto[dev]withidentifier[nick]complete!VersionVersion: v0.0.1ChangelogSeeCHANGELOG.mdfor changes.ContributorsNick Thompson (@nsthompson)