{"id":21357519,"url":"https://github.com/thgossler/aztagger","last_synced_at":"2026-04-26T23:01:49.509Z","repository":{"id":263072857,"uuid":"887960417","full_name":"thgossler/AzTagger","owner":"thgossler","description":"Simple Windows GUI application helping search and tag Azure resources, groups and subscriptions.","archived":false,"fork":false,"pushed_at":"2024-12-02T11:00:25.000Z","size":3284,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-02T12:19:36.009Z","etag":null,"topics":["azure","query","resourcegraph","tagging"],"latest_commit_sha":null,"homepage":"","language":"C#","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/thgossler.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":"2024-11-13T15:20:04.000Z","updated_at":"2024-12-02T11:00:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba342605-3aa0-4058-9145-9dbfcb854ea3","html_url":"https://github.com/thgossler/AzTagger","commit_stats":null,"previous_names":["thgossler/aztagger"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thgossler%2FAzTagger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thgossler%2FAzTagger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thgossler%2FAzTagger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thgossler%2FAzTagger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thgossler","download_url":"https://codeload.github.com/thgossler/AzTagger/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235163273,"owners_count":18945809,"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","query","resourcegraph","tagging"],"created_at":"2024-11-22T05:07:36.516Z","updated_at":"2026-04-26T23:01:49.501Z","avatar_url":"https://github.com/thgossler.png","language":"C#","funding_links":["https://github.com/sponsors/thgossler","https://www.paypal.com/donate/?hosted_button_id=JVG7PFJ8DMW7J"],"categories":[],"sub_categories":[],"readme":"\u003c!-- SHIELDS --\u003e\n\u003cdiv align=\"center\"\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n\n\u003c/div\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/thgossler/AzTagger\"\u003e\n    \u003cimg src=\"images/icon.png\" alt=\"Icon\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch1 align=\"center\"\u003eAzTagger\u003c/h1\u003e\n\n  \u003cp align=\"center\"\u003e\n    Query and filter your Azure resources fast and tag them easily.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/thgossler/AzTagger/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/thgossler/AzTagger/issues\"\u003eRequest Feature\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/thgossler/AzTagger#contributing\"\u003eContribute\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/sponsors/thgossler\"\u003eSponsor project\u003c/a\u003e\n    ·\n    \u003ca href=\"https://www.paypal.com/donate/?hosted_button_id=JVG7PFJ8DMW7J\"\u003eSponsor via PayPal\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n# Introduction\n\nAzTagger is a cross-platform desktop GUI application for fast and flexible\nquerying of Azure resources and tag management. It allows fast search and filtering of all\nresources, resource groups, and subscriptions using Azure Resource Graph for your Entra ID tenant.\nIt runs on latst Windows 11 (WPF), macOS (Mac) and Linux (GTK).\n\n\u003cimg src=\"./images/screenshot.png\" alt=\"Screenshot\" width=\"2049\"\u003e\n\nSee also this AI-auto-generated comprehensive description on [DeepWiki](https://deepwiki.com/thgossler/AzTagger).\n\n## Features\n\n### User Authentication and Tenant Selection\n\n- Interactive sign-in to Entra ID via web browser, support for SSO and multi-factor authentication (MFA)\n- Support for multiple parallel Azure contexts including environment (e.g., AzurePublicCloud, AzureChina), Entra ID tenant and app ID\n- **Note:** The application must be registered in Entra ID with the following authentication redirect URIs configured:\n  - `http://localhost`\n  - `aztagger://auth`\n\n### Search Functionality\n\n- Fast search and filtering of all Azure resources, resource groups, and subscriptions based on in-memory result data from Azure Resource Graph\n- A single input field for easy and flexible rmot querying of resources\n- Multiple input fields for easy and flexible local quick-filtering of resources\n- Comprehensive support of KQL and .NET regular expressions\n\n### Search Results Display\n\n- Support for large numbers of search results\n- Column sorting\n- Double-click on item to open it in the Azure Portal\n- Context menu items to add result values to the search query for filtering\n- Full display of all tags of all levels (subscription, resource group, resource) and combined\n\n### Tag Management\n\n- Easy inline editing and deletion of tags in a table\n- Add new tags by clicking into the last empty line's key or value cells and start typing\n- Use default tag templates and maintain custom ones in a `tagtemplates.json` file in the user's AppData Local folder\n- Support of variables in tag template values such as {Date}, {Time}, {DateTime}, {User} \n- Create and update all specified tags on all selected subscriptions, resource groups, and resources at once\n- Copy any tag cell value via right-click context menu\n- Open all hyperlinks of all tag values of a resource in the browser\n\n### Export Results\n\n- Export current (filtered) search results to JSON or CSV files\n- Remembers the last used export folder\n\n### User Interface\n\n- Dark mode supported on macOS (not yet on Windows and Linux by Eto.Forms)\n\n### Error Handling and Logging\n\n- All errors logged to `errorlog.txt` files in the user's AppData Local folder.\n\n## Used Technologies\n\n- C# .NET 10\n- Eto.Forms, supporting for Windows 11 (WPF), Linux (GTK), and macOS (Mac)\n- SeriLog\n- Azure Identity\n- Azure Resource Manager\n- Azure Resource Graph\n\n## Building and Running\n\nClone the repository, open in VS Code, select the desired target platform and hit F5 to build and run the program.\n\n### Build and Run for Each Platform\n\n#### Windows\n\n```\ndotnet build AzTagger.Wpf/AzTagger.Wpf.csproj -c Release --framework net10.0-windows --runtime win-x64\ndotnet run --project AzTagger.Wpf/AzTagger.Wpf.csproj --framework net10.0-windows --runtime win-x64\n```\n\n#### Linux\n\n```\ndotnet build AzTagger.Gtk/AzTagger.Gtk.csproj -c Release --framework net10.0 --runtime linux-x64\ndotnet run --project AzTagger.Gtk/AzTagger.Gtk.csproj --framework net10.0 --runtime linux-x64\n```\n\n#### macOS\n\n```\nApple Silicon (arm64):\n    dotnet build AzTagger.Mac/AzTagger.Mac.csproj -c Release --framework net10.0 --runtime osx-arm64\n    dotnet run --project AzTagger.Mac/AzTagger.Mac.csproj --framework net10.0 --runtime osx-arm64\n\nIntel (x64):\n    dotnet build AzTagger.Mac/AzTagger.Mac.csproj -c Release --framework net10.0 --runtime osx-x64\n    dotnet run --project AzTagger.Mac/AzTagger.Mac.csproj --framework net10.0 --runtime osx-x64\n```\n\n### Publish\n\nYou can publish self-contained executables for each platform using `dotnet publish` with the same `--framework` and `--runtime` parameters.\n\nYou can also use the `publish.sh` or `publish.cmd` scripts.\n\n#### Windows\n\n```\nx64:\n    dotnet publish AzTagger.Wpf/AzTagger.Wpf.csproj -c Release --framework net10.0-windows --runtime win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o ./publish/win-x64\n\nARM64:\n    dotnet publish AzTagger.Wpf/AzTagger.Wpf.csproj -c Release --framework net10.0-windows --runtime win-arm64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o ./publish/win-arm64\n```\n\n#### Linux\n\n```\nx64:\n    dotnet publish AzTagger.Gtk/AzTagger.Gtk.csproj -c Release --framework net10.0 --runtime linux-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o ./publish/linux-x64\n\nARM64:\n    dotnet publish AzTagger.Gtk/AzTagger.Gtk.csproj -c Release --framework net10.0 --runtime linux-arm64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o ./publish/linux-arm64\n```\n\n#### macOS\n\n```\nApple Silicon (arm64):\n    dotnet publish AzTagger.Mac/AzTagger.Mac.csproj -c Release --framework net10.0 --runtime osx-arm64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o ./publish/mac-arm64\n\nIntel (x64):\n    dotnet publish AzTagger.Mac/AzTagger.Mac.csproj -c Release --framework net10.0 --runtime osx-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o ./publish/mac-x64\n```\n\n## Report Bugs\n\nPlease open an issue on the GitHub repository with the tag \"bug\".\n\n## Donate\n\nIf you are using the tool but are unable to contribute technically, please consider promoting it and donating an amount that reflects its value to you. You can do so either via PayPal\n\n[![Donate via PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=JVG7PFJ8DMW7J)\n\nor via [GitHub Sponsors](https://github.com/sponsors/thgossler).\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star :wink: Thanks!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES (https://www.markdownguide.org/basic-syntax/#reference-style-links) --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/thgossler/AzTagger.svg\n[contributors-url]: https://github.com/thgossler/AzTagger/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/thgossler/AzTagger.svg\n[forks-url]: https://github.com/thgossler/AzTagger/network/members\n[stars-shield]: https://img.shields.io/github/stars/thgossler/AzTagger.svg\n[stars-url]: https://github.com/thgossler/AzTagger/stargazers\n[issues-shield]: https://img.shields.io/github/issues/thgossler/AzTagger.svg\n[issues-url]: https://github.com/thgossler/AzTagger/issues\n[license-shield]: https://img.shields.io/github/license/thgossler/AzTagger.svg\n[license-url]: https://github.com/thgossler/AzTagger/blob/main/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthgossler%2Faztagger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthgossler%2Faztagger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthgossler%2Faztagger/lists"}