{"id":15010117,"url":"https://github.com/jercle/azgo","last_synced_at":"2025-04-09T18:08:26.998Z","repository":{"id":37410520,"uuid":"503183905","full_name":"jercle/azgo","owner":"jercle","description":"Azure Tooling with enhanced reporting, data aggregation, and UX","archived":false,"fork":false,"pushed_at":"2024-09-08T05:31:25.000Z","size":61980,"stargazers_count":3,"open_issues_count":20,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-28T17:20:53.814Z","etag":null,"topics":["azure","azure-devops","azure-security","cli"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jercle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-14T02:37:20.000Z","updated_at":"2023-08-24T11:15:44.000Z","dependencies_parsed_at":"2023-02-19T04:30:29.027Z","dependency_job_id":"79fbc1b5-debd-437c-9463-4ec5f0613c0f","html_url":"https://github.com/jercle/azgo","commit_stats":{"total_commits":84,"total_committers":3,"mean_commits":28.0,"dds":0.4285714285714286,"last_synced_commit":"a8ff0c0c891810caa6006ae19afcf9d89fec08a9"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jercle%2Fazgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jercle%2Fazgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jercle%2Fazgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jercle%2Fazgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jercle","download_url":"https://codeload.github.com/jercle/azgo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219856090,"owners_count":16556087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azure-devops","azure-security","cli"],"created_at":"2024-09-24T19:30:22.510Z","updated_at":"2024-10-12T09:42:50.581Z","avatar_url":"https://github.com/jercle.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"AZGO\n=================\n\nExtends the functionality, UX, and data aggregation of the Azure CLI.\n\n- [AZGO](#azgo)\n  - [Function of this CLI](#function-of-this-cli)\n  - [Simple example](#simple-example)\n    - [Set current active subscription](#set-current-active-subscription)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n  - [Authentication](#authentication)\n- [Usage](#usage)\n\n## Function of this CLI\nThis CLI has been created to add additional functionality to [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/) such as data aggregation from multiple `az` commands, reporting, and pulling data from both Azure DevOps and Azure.\n\nSome of the reporting functionality is around container vulnerability scanning with the ability to install a web portal as an Azure Web App in development\n\nThis CLI is still very much under development, and functions with the `test-` or `dev-` prefixes are considered mid-development\n\nAny help with testing would be greatly appreciated, as that area is my biggest weakness.\n\n## Simple example\n### Set current active subscription\nProvides a UI wrapper over `az account set --subscription` to select current active subscription. Gives a list of available subscriptions without the need to find the required ID and paste into a flag. This does change the active subscription for Azure CLI\n\n```bash\nazgo subs -s\n```\n![package](https://user-images.githubusercontent.com/10472533/176458369-1ce98ace-7cb8-45ca-a40a-5ecbde21f7dd.gif)\n\n\n## Prerequisites\n[Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) must be installed and logged in.\nFor any Azure DevOps functions, a Personal Access Token must be set at AZURE_DEVOPS_EXT_PAT environment variable\n\nYou can obtain a Personal Access Token from https://dev.azure.com/YOUR_ORGANIZATION/_usersSettings/tokens\n\nThen set the token as your environment variable using the following:\nLinux/macOS:\n```bash\nexport AZURE_DEVOPS_EXT_PAT=TOKEN\n```\nWindows CMD:\n```cmd\nset AZURE_DEVOPS_EXT_PAT=TOKEN\n```\nWinows Powershell:\n```powershell\n$env:AZURE_DEVOPS_EXT_PAT=TOKEN\"\n```\n\n## Installation\n\nFirst clone the repo\n```bash\ngit clone git@github.com:jERCle/azgo.git\n```\n\nCD to repositoriy then install dependencies\n```bash\ncd azgo \u0026\u0026 npm install\n```\n\nUse npm link `azgo` to link to newmain.js\n```bash\nnpm link\n```\n\n## Authentication\nYou must be logged in with `azure cli` as this uses the authentication provided by the user currently logged into Azure CLI\n\nFor Azure DevOps functionality, you must have a Personal Access Token saved to AZURE_DEVOPS_EXT_PAT environment variable as per [Function of this CLI](#function-of-this-cli)\n\n\n# Usage\n\u003c!-- usage --\u003e\n```sh-session\n$ npm install -g azgo\n$ azgo COMMAND\nrunning command...\n$ azgo (--version)\nazgo/0.0.10 darwin-arm64 node-v18.9.1\n$ azgo --help [COMMAND]\nUSAGE\n  $ azgo COMMAND\n...\n```\n\u003c!-- usagestop --\u003e\n# Commands\n\u003c!-- commands --\u003e\n* [`azgo acr repos list`](#azgo-acr-repos-list)\n* [`azgo acr repos purge`](#azgo-acr-repos-purge)\n* [`azgo acr vulns`](#azgo-acr-vulns)\n* [`azgo ado boards`](#azgo-ado-boards)\n* [`azgo ado repos list [FILE]`](#azgo-ado-repos-list-file)\n* [`azgo ado repos pr list [FILE]`](#azgo-ado-repos-pr-list-file)\n* [`azgo commands`](#azgo-commands)\n* [`azgo config devops defaultSub [FILE]`](#azgo-config-devops-defaultsub-file)\n* [`azgo generate azure app`](#azgo-generate-azure-app)\n* [`azgo generate azure platform`](#azgo-generate-azure-platform)\n* [`azgo help [COMMANDS]`](#azgo-help-commands)\n* [`azgo subs`](#azgo-subs)\n\n## `azgo acr repos list`\n\nGet all container vulnerabilities\n\n```\nUSAGE\n  $ azgo acr repos list -a \u003cvalue\u003e [--json] [--debug] [-s \u003cvalue\u003e] [-o \u003cvalue\u003e] [-m] [-r]\n\nFLAGS\n  -a, --acrRegistry=\u003cvalue\u003e  (required) ACR registry to use\n  -m, --includeManifests     Include manifests in output\n  -o, --outfile=\u003cvalue\u003e      Save output to file\n  -r, --resyncData           Resync data from Azure\n\nGLOBAL AZURE FLAGS\n  -s, --subscriptionId=\u003cvalue\u003e  Subscription ID to use.\n                                If not supplied, will use current active Azure CLI subscription.\n\nGLOBAL FLAGS\n  --debug  Testing only. Returns CLI config and, and some other debug info\n  --json   Format output as json.\n\nDESCRIPTION\n  Get all container vulnerabilities\n\nEXAMPLES\n  $ azgo acr repos list\n```\n\n## `azgo acr repos purge`\n\nPurges old container images from ACR\n\n```\nUSAGE\n  $ azgo acr repos purge [--executeDelete] [-r \u003cvalue\u003e]\n\nFLAGS\n  -r, --retentionDays=\u003cvalue\u003e  [default: 30] Only purge images older than number of days provided\n  --executeDelete              Runs the deletion of images\n\nDESCRIPTION\n  Purges old container images from ACR\n```\n\n## `azgo acr vulns`\n\nGet all vulnerabilities related to container images\n\n```\nUSAGE\n  $ azgo acr vulns [--json] [--debug] [-s \u003cvalue\u003e] [-r \u003cvalue\u003e] [-a \u003cvalue\u003e] [--resyncData] [-f \u003cvalue\u003e] [-T ]\n    [-C ] [-l |  | -g repository|category|severity|patchable|os|osDetails|imageDigest|cve|byRepoUnderCve | [-d -c -o\n    \u003cvalue\u003e]] [-U] [-S \u003cvalue\u003e]\n\nFLAGS\n  -C, --formatCsv                   Show output as CSV\n  -S, --dbConnectionString=\u003cvalue\u003e  Connection string for Database\n  -T, --formatTable                 Format output as a table\n  -U, --uploadToDb                  Upload to MongoDB Database\n  -a, --acrRegistry=\u003cvalue\u003e         Name of the ACR.\n                                    If not supplied, will select ACR in the subscription, or list them if there are\n                                    multiple\n  -c, --showCounts                  Show counts of vulnerabilities only, no detailed information.\n  -d, --detailedOutput              When used with the --showCounts -c flag, saves detailed information to output file\n                                    instead of just counts\n  -f, --filter=\u003cvalue\u003e...           [default: ] Fiter results to specific attribute values\n                                    Example: 'severity:high,medium', 'os:linux', patchable:true\n  -g, --groupBy=\u003coption\u003e            Group CVEs by provided attribute\n                                    \u003coptions:\n                                    repository|category|severity|patchable|os|osDetails|imageDigest|cve|byRepoUnderCve\u003e\n  -l, --listAllCves                 List all CVEs found in assessed ACR\n  -o, --outfile=\u003cvalue\u003e             Save output to file\n  -r, --resourceGroup=\u003cvalue\u003e       Resource Group associate with the ACR\n                                    If not supplied, will attempt to acquire from ACR's ID string\n  --resyncData                      Resync data from Azure to cache, and optionally (with -U) upload to MongoDB\n\nGLOBAL AZURE FLAGS\n  -s, --subscriptionId=\u003cvalue\u003e  Subscription ID to use.\n                                If not supplied, will use current active Azure CLI subscription.\n\nGLOBAL FLAGS\n  --debug  Testing only. Returns CLI config and, and some other debug info\n  --json   Format output as json.\n\nDESCRIPTION\n  Get all vulnerabilities related to container images\n\nEXAMPLES\n  $ azgo acr vulns\n\nFLAG DESCRIPTIONS\n  -c, --showCounts  Show counts of vulnerabilities only, no detailed information.\n\n    Show counts of vulnerabilities only, no detailed information.\n\n    Note: Detailed information will still be output to file if the --detailedOutput -d flag is used\n\n    Note: This flag does not currently function when grouping 'byRepoUnderCve'\n\n  -g, --groupBy=repository|category|severity|patchable|os|osDetails|imageDigest|cve|byRepoUnderCve\n\n    Group CVEs by provided attribute\n\n    Only display counts of vulnerabilities, grouped by provided countByAttribute\n    Possible attributes include:\n    repository: Group by repository name\n    category: Can group by values such as 'Windows', 'Ubuntu', 'Debian', etc.\n    severity: Severity of vulnerability, such as 'High', 'Medium', 'Low', etc.\n    patchable: Whether or not the vulnerability is patchable\n    os: Operating System of affected container. e.g. 'Windows', 'Linux'\n    osDetails: Operating System details, e.g. 'Windows Server 2016', 'Ubuntu 16.04', etc.\n    imageDigest: Group by image digest\n    cve: Groups by CVE\n    byRepoUnderCve: Groups by CVE, then by repository name. Example:\n    ...},\n    'CVE-2022-32230': {\n    repo1: [ [Object] ],\n    repo2: [ [Object], [Object] ],\n    repo3: [ [Object], [Object], [Object], [Object], [Object] ]\n    },\n    'CVE-2022-30131': {\n    ...\n```\n\n## `azgo ado boards`\n\nAzure DevOps Boards related commands\n\n```\nUSAGE\n  $ azgo ado boards -o \u003cvalue\u003e [--json] [--debug] [--subscriptionId \u003cvalue\u003e] [-u \u003cvalue\u003e] [-i \u003cvalue\u003e | -l] [-c\n    ] [-g state|type ] [-t bug|task|decision|epic|feature|impediment|pbi|risk ] [--closed | [-s todo|inprogress|done|rem\n    oved|new|approved|committed|considered|identify|analyse|evaluate|treat|monitor|open|closed|all ] |  | --all]\n\nFLAGS\n  -c, --onlyCount\n      Only show count of items\n\n  -g, --groupBy=\u003coption\u003e\n      Group by state or type\n      \u003coptions: state|type\u003e\n\n  -i, --id=\u003cvalue\u003e\n      ID of the work item to display\n\n  -l, --list\n      List all work items assigned to given user\n\n  -s, --filterState=\u003coption\u003e...\n      Filter on state.\n      By default, returns work items in all open states\n\n      Can optionally use --closed (Only closed) or --all (all states)\n      \u003coptions: todo|inprogress|done|removed|new|approved|committed|considered|identify|analyse|evaluate|treat|monitor|ope\n      n|closed|all\u003e\n\n  -t, --filterType=\u003coption\u003e...\n      Filter on type\n      \u003coptions: bug|task|decision|epic|feature|impediment|pbi|risk\u003e\n\n  -u, --user=\u003cvalue\u003e\n      User's full name or Email address used for Azure DevOps login\n      \"John Smith\" or \"john.smith@org.com.au\" to filter by assignment\n\n      NOTE: If not provided, email address used with current active subscription will be used.\n      This can be found or changed with the \"azgo subs\" command.\n\n  --all\n      Return all work items in ANY state\n\n  --closed\n      Return all work items in any CLOSED state\n\nGLOBAL AZURE DEVOPS FLAGS\n  -o, --organization=\u003cvalue\u003e  (required) Organization to use for Azure DevOps related commands\n                              NOTE: Can also be set using AZGO_DEVOPS_ORG environment variable\n  --subscriptionId=\u003cvalue\u003e    Subscription ID to use.\n                              If not supplied, will use current active Azure CLI subscription.\n                              Configurable with \"azgo config devops defaultSub\" command.\n\nGLOBAL FLAGS\n  --debug  Testing only. Returns CLI config and, and some other debug info\n  --json   Format output as json.\n\nDESCRIPTION\n  Azure DevOps Boards related commands\n\n  Current functionality is listing all items, with some filtering\n\nEXAMPLES\n  $ azgo ado boards\n```\n\n## `azgo ado repos list [FILE]`\n\ndescribe the command here\n\n```\nUSAGE\n  $ azgo ado repos list [FILE] [-n \u003cvalue\u003e] [-f]\n\nARGUMENTS\n  FILE  file to read\n\nFLAGS\n  -f, --force\n  -n, --name=\u003cvalue\u003e  name to print\n\nDESCRIPTION\n  describe the command here\n\nEXAMPLES\n  $ azgo ado repos list\n```\n\n## `azgo ado repos pr list [FILE]`\n\ndescribe the command here\n\n```\nUSAGE\n  $ azgo ado repos pr list [FILE] -o \u003cvalue\u003e [--json] [--debug] [--subscriptionId \u003cvalue\u003e] [-u \u003cvalue\u003e] [-n \u003cvalue\u003e]\n    [-f]\n\nARGUMENTS\n  FILE  file to read\n\nFLAGS\n  -f, --force\n  -n, --name=\u003cvalue\u003e  name to print\n  -u, --user=\u003cvalue\u003e  User's full name or Email address used for Azure DevOps login\n                      \"John Smith\" or \"john.smith@org.com.au\" to filter by assignment\n\n                      NOTE: If not provided, email address used with current active subscription will be used.\n                      This can be found or changed with the \"azgo subs\" command.\n\nGLOBAL AZURE DEVOPS FLAGS\n  -o, --organization=\u003cvalue\u003e  (required) Organization to use for Azure DevOps related commands\n                              NOTE: Can also be set using AZGO_DEVOPS_ORG environment variable\n  --subscriptionId=\u003cvalue\u003e    Subscription ID to use.\n                              If not supplied, will use current active Azure CLI subscription.\n                              Configurable with \"azgo config devops defaultSub\" command.\n\nGLOBAL FLAGS\n  --debug  Testing only. Returns CLI config and, and some other debug info\n  --json   Format output as json.\n\nDESCRIPTION\n  describe the command here\n\nEXAMPLES\n  $ azgo ado repos pr list\n```\n\n## `azgo commands`\n\nlist all the commands\n\n```\nUSAGE\n  $ azgo commands [--json] [-h] [--hidden] [--tree] [--columns \u003cvalue\u003e | -x] [--sort \u003cvalue\u003e] [--filter\n    \u003cvalue\u003e] [--output csv|json|yaml |  | [--csv | --no-truncate]] [--no-header | ]\n\nFLAGS\n  -h, --help         Show CLI help.\n  -x, --extended     show extra columns\n  --columns=\u003cvalue\u003e  only show provided columns (comma-separated)\n  --csv              output is csv format [alias: --output=csv]\n  --filter=\u003cvalue\u003e   filter property by partial string matching, ex: name=foo\n  --hidden           show hidden commands\n  --no-header        hide table header from output\n  --no-truncate      do not truncate output to fit screen\n  --output=\u003coption\u003e  output in a more machine friendly format\n                     \u003coptions: csv|json|yaml\u003e\n  --sort=\u003cvalue\u003e     property to sort by (prepend '-' for descending)\n  --tree             show tree of commands\n\nGLOBAL FLAGS\n  --json  Format output as json.\n\nDESCRIPTION\n  list all the commands\n```\n\n_See code: [@oclif/plugin-commands](https://github.com/oclif/plugin-commands/blob/v2.2.14/src/commands/commands.ts)_\n\n## `azgo config devops defaultSub [FILE]`\n\nShows the default subscription for Azure DevOps\n\n```\nUSAGE\n  $ azgo config devops defaultSub [FILE] -o \u003cvalue\u003e [--json] [--debug] [--subscriptionId \u003cvalue\u003e] [-u \u003cvalue\u003e] [-s]\n\nFLAGS\n  -s, --select        Select the default subscription to be used by Azure DevOps commands from currently logged in Azure\n                      CLI subscriptions\n  -u, --user=\u003cvalue\u003e  User's full name or Email address used for Azure DevOps login\n                      \"John Smith\" or \"john.smith@org.com.au\" to filter by assignment\n\n                      NOTE: If not provided, email address used with current active subscription will be used.\n                      This can be found or changed with the \"azgo subs\" command.\n\nGLOBAL AZURE DEVOPS FLAGS\n  -o, --organization=\u003cvalue\u003e  (required) Organization to use for Azure DevOps related commands\n                              NOTE: Can also be set using AZGO_DEVOPS_ORG environment variable\n  --subscriptionId=\u003cvalue\u003e    Subscription ID to use.\n                              If not supplied, will use current active Azure CLI subscription.\n                              Configurable with \"azgo config devops defaultSub\" command.\n\nGLOBAL FLAGS\n  --debug  Testing only. Returns CLI config and, and some other debug info\n  --json   Format output as json.\n\nDESCRIPTION\n  Shows the default subscription for Azure DevOps\n\nEXAMPLES\n  $ azgo config devops defaultSub\n\n  $ azgo config devops defaultSub --select\n```\n\n## `azgo generate azure app`\n\nCreate Azure pipeline and armconfig files from template\n\n```\nUSAGE\n  $ azgo generate azure app [-n \u003cvalue\u003e]\n\nFLAGS\n  -n, --name=\u003cvalue\u003e  Name of Application\n\nDESCRIPTION\n  Create Azure pipeline and armconfig files from template\n\nEXAMPLES\n  $ azgo generate azure app\n```\n\n## `azgo generate azure platform`\n\nCreate Azure pipeline and armconfig files from template\n\n```\nUSAGE\n  $ azgo generate azure platform -n \u003cvalue\u003e -e \u003cvalue\u003e [-s \u003cvalue\u003e] [-b \u003cvalue\u003e] [-d \u003cvalue\u003e] [-i]\n\nFLAGS\n  -b, --baseName=\u003cvalue\u003e\n      Base name of the application.\n      Eg: \"DMZ\" or \"PROD\".\n      Creates naming convention of \u003cbaseName\u003e-\u003cenvName\u003e-\u003csubEnv\u003e-\u003cappName\u003e\n      If not specified, will be left out of the resource names\n\n  -d, --subEnvironments=\u003cvalue\u003e\n      Sub Environment of the application.\n      Eg: \"NonProd\" or \"Prod\".\n      Can be used for creating names such as:\n      Web-NonProd-Dev-AppName\n      Web-NonProd-Test-AppName\n      Web-Prod-Prod-AppName\n      Creates naming convention of \u003cbaseName\u003e-\u003cenvName\u003e-\u003csubEnv\u003e-\u003cappName\u003e\n      If not specified, will be left out of the resource names\n\n  -e, --appEnvironemnts=\u003cvalue\u003e\n      (required) Comma separated list of application environments to build.\n      Eg: dev,prod\n      At least one is required as this creates the pipeline and\n      variable files per environment provided\n\n  -i, --ignoreDuplicates\n      Ignore duplicate names\n      Eg: 'Web-Prod-Prod-AppName' would become 'Web-Prod-AppName'\n\n  -n, --name=\u003cvalue\u003e\n      (required) Name of application\n\n  -s, --subscriptionId=\u003cvalue\u003e\n      [default: bae338c7-6098-4d52-b173-e2147e107dfa]\n      Subscription ID to use.\n      If not supplied, will use current active Azure CLI subscription.\n\nDESCRIPTION\n  Create Azure pipeline and armconfig files from template\n\nEXAMPLES\n  $ azgo generate azure platform\n```\n\n## `azgo help [COMMANDS]`\n\nDisplay help for azgo.\n\n```\nUSAGE\n  $ azgo help [COMMANDS] [-n]\n\nARGUMENTS\n  COMMANDS  Command to show help for.\n\nFLAGS\n  -n, --nested-commands  Include all nested commands in the output.\n\nDESCRIPTION\n  Display help for azgo.\n```\n\n_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.2.9/src/commands/help.ts)_\n\n## `azgo subs`\n\nDisplay current configured Azure CLI subscriptions.\n\n```\nUSAGE\n  $ azgo subs [--json] [--debug] [-s \u003cvalue\u003e] [-a | -x]\n\nFLAGS\n  -a, --showActive  Show current active subscription for Azure CLI\n  -x, --setActive   Set active subscription for Azure CLI\n\nGLOBAL AZURE FLAGS\n  -s, --subscriptionId=\u003cvalue\u003e  Subscription ID to use.\n                                If not supplied, will use current active Azure CLI subscription.\n\nGLOBAL FLAGS\n  --debug  Testing only. Returns CLI config and, and some other debug info\n  --json   Format output as json.\n\nDESCRIPTION\n  Display current configured Azure CLI subscriptions.\n  Lists subscriptinos, grouped by Tenant ID\n```\n\n_See code: [dist/commands/subs.ts](https://github.com/jercle/azgo/blob/v0.0.10/dist/commands/subs.ts)_\n\u003c!-- commandsstop --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjercle%2Fazgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjercle%2Fazgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjercle%2Fazgo/lists"}