geeklearningio / gl-vsts-tasks-ghost

Bring some devops process to Ghost Pro with VSTS
MIT License
3 stars 0 forks source link

Another feature I'd love #11

Open jessehouwing opened 6 years ago

jessehouwing commented 6 years ago

Probably easy to solve. it's almost the same functionality as the upload theme.

I'd like to be able to upload the redirects.json so I can pt it under source control as well. Since I migrated from Blogger my redirects.json is pretty big and I'd hate to lose it's contents. Having it under source control would make me feel a bit safer :).

Ideally it would also be able to save a backup of the current one to be able to recover from accidental overwrites of manual edits and attach that as a build artefact.

image

jessehouwing commented 6 years ago

having the ability to combine multiple redirect.json files into one would also be a great feature. That way I can put all tag redirects in redirects_tag.json, all posts in redirects_posts.json etc. Would make it much easier to find things.

In the end the thing is just a big json array...

jessehouwing commented 6 years ago

This is what a redirect file looks like from the inside :).

[
    {
        "from": "^\\/vsts-tfs-connect-visual-studio-2005-on-xp\\/$",
        "to": "/vsts-tfs-connect-any-visual-studio-version/",
        "permanent": true
    },
    {
        "from": "^\\/vsts-tfs-connect-visual-studio-2005\\/$",
        "to": "/vsts-tfs-connect-any-visual-studio-version/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/10\\/connecting-visual-studio-2005-to-tfs\\.html$",
        "to": "/vsts-tfs-connect-any-visual-studio-version/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/04\\/connecting-visual-studio-2005-to-tfs\\.html$",
        "to": "/vsts-tfs-connect-any-visual-studio-version/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/10\\/connecting-to-tfs-from-any-version-of\\.html$",
        "to": "/vsts-tfs-connect-any-visual-studio-version/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/10\\/connecting-to-tfs-from-any-version-of$",
        "to": "/vsts-tfs-connect-any-visual-studio-version/",
        "permanent": true
    },
    {
        "from": "^\\/2018\\/04\\/crafting-complex-release-gate\\.html$",
        "to": "/vsts-release-create-complex-release-gate/",
        "permanent": true
    },
    {
        "from": "^\\/2018\\/03\\/disambiguate-msa-and-aad-accounts\\.html$",
        "to": "/azure-disambiguate-msa-and-aad-accounts/",
        "permanent": true
    },
    {
        "from": "^\\/2018\\/03\\/fixing-edge-start-menu-and-cortana\\.html$",
        "to": "/windows-fix-edge-start-menu-and-cortana/",
        "permanent": true
    },
    {
        "from": "^\\/2018\\/03\\/tfs-vsts-build-tasks-updated\\.html$",
        "to": "/vsts-build-task-extensions-updated/",
        "permanent": true
    },
    {
        "from": "^\\/2018\\/03\\/clean-up-your-team-project-collection\\.html$",
        "to": "/tfs-clean-up-your-project-collection/",
        "permanent": true
    },
    {
        "from": "^\\/2018\\/02\\/tfs-2018-update-1-is-available-so-is\\.html$",
        "to": "/tfs-2018u1-and-tfsaggregator-available/",
        "permanent": true
    },
    {
        "from": "^\\/2018\\/02\\/make-group-team-administrator-in-vststfs\\.html$",
        "to": "/vsts-add-security-group-to-team-administrators/",
        "permanent": true
    },
    {
        "from": "^\\/2017\\/06\\/global-devops-bootcamp-2017\\.html$",
        "to": "/community-global-devops-bootcamp-2017/",
        "permanent": true
    },
    {
        "from": "^\\/2017\\/01\\/add-8080-to-your-tfs-2017-bindings\\.html$",
        "to": "/tfs-redirect-old-port-8080-to-ssl/",
        "permanent": true
    },
    {
        "from": "^\\/2017\\/01\\/force-uninstall-visual-studio-2017\\.html$",
        "to": "/visual-studio-2017-force-uninstall/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/08\\/solve-basic-auth-proxy-issues-with\\.html$",
        "to": "/visual-studio-nuget-behind-basic-auth-proxy/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/07\\/a-quick-peek-into-team-foundation-server-15\\.html$",
        "to": "/tfs-2017-quick-peek/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/06\\/publish-your-vsts-extension-using-team\\.html$",
        "to": "/vsts-build-release-publish-your-vsts-extension/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/06\\/publish-your-extension-to-local-tfs\\.html$",
        "to": "/tfs-publish-your-extension-to-local-marketplace/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/05\\/automatically-populate-your-source\\.html$",
        "to": "/vsts-build-set-sourcebranch-for-sonarqube/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/05\\/define-custom-authentication-scheme-for\\.html$",
        "to": "/vsts-build-release-define-custom-authentication-scheme/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/04\\/reference-specific-line-of-file-in-code\\.html$",
        "to": "/vsts-reference-specific-line-of-file-in-code/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/03\\/access-all-available-build-variables\\.html$",
        "to": "/vsts-build-access-all-available-build-variables/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/02\\/configure-ssl-for-sonarqube-on-windows\\.html$",
        "to": "/sonarqube-configure-ssl-on-windows/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/02\\/binary-promotion-of-visual-studio-team\\.html$",
        "to": "/vsts-extension-binary-promotion/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/01\\/publish-build-tasks-to-tfs-2015-without\\.html$",
        "to": "/tfs-2015-publish-build-tasks-without-enabling-basic-auth/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/01\\/mimic-xaml-builds-output-location\\.html$",
        "to": "/vsts-build-mimic-xaml-build-output-location/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/01\\/manipulating-your-tfvc-repository-from\\.html$",
        "to": "/vsts-build-manipulating-your-tfvc-repository/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/01\\/building-multiple-configurations-andor\\.html$",
        "to": "/vsts-build-building-multiple-configuration-platform/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/01\\/upgrading-from-xaml-to-build-2015-with\\.html\\.%2[Aa]$",
        "to": "/vsts-build-upgrading-from-xaml-with-minimal-changes/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/01\\/access-multiple-tfvc-repositories-in-build2015\\.html$",
        "to": "/vsts-build-access-multiple-tfvc-repositories/",
        "permanent": true
    },
    {
        "from": "^\\/2016\\/01\\/add-additional-fields-to-edit-test-case-grid\\.html$",
        "to": "/vsts-add-additional-fields-to-edit-test-case-grid/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/12\\/like-what-you-see-on-windows-spotlight\\.html$",
        "to": "/windows-10-like-what-you-see-on-windows-spotlight/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/11\\/work-around-now-commercial-features-of\\.html$",
        "to": "/tfs-migration-work-around-pricy-features-of-opshub/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/11\\/mount-onedrive-as-network-drive\\.html$",
        "to": "/windows-onedrive-mount-as-network-drive/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/11\\/visual-studio-online-is-now-visual\\.html$",
        "to": "/vsts-visual-studio-online-renamed/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/11\\/debug-your-tfsvso-2015-builds\\.html$",
        "to": "/vsts-build-debug-your-builds/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/11\\/enable-parallel-execution-of-tests\\.html$",
        "to": "/vstest-enable-parallel-execution/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/09\\/c-interpolated-strings-in-older-net\\.html$",
        "to": "/csharp-interpolated-strings-in-older-net/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/09\\/c-6-interpolated-strings-and-code\\.html$",
        "to": "/csharp-interpolated-strings-and-code/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/09\\/c-6-interpolated/$",
        "to": "/csharp-interpolated-strings-and-code/",
        "permanent": true
    },

    {
        "from": "^\\/2015\\/07\\/turn-off-visual-basic-14-language\\.html$",
        "to": "/vbnet-turn-off-v14-language/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/06\\/ndepend-6-offers-native-integration\\.html$",
        "to": "/tfs2013-ndepend-6-native-integration/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/05\\/time-for-new-laptop\\.html$",
        "to": "/windows-devices-time-for-new-laptop/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/05\\/temporarily-bypass-bitlocker-encryption\\.html$",
        "to": "/windows-bitlocker-bypass-temporarily/",
        "permanent": true
    },
    {
        "from": "^\\/2015\\/01\\/staged-execution-of-unit-tests-on-team\\.html$",
        "to": "/xaml-build-staged-execution-of-unit-tests/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/12\\/configure-git-for-visual-studio-to-use\\.html$",
        "to": "/visual-studio-git-configure-proxy/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/12\\/enabling-requirement-based-suites-for\\.html$",
        "to": "/tfs-2015-enable-requirement-based-suites-for-other-wits/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/12\\/enabling-bug-on-backlog-feature-for\\.html$",
        "to": "/tfs-2015-enable-bug-on-backlog-in-scrum-template/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/11\\/agile-chair-game-some-alternate\\.html$",
        "to": "/agile-games-chair-game-alternatives/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/11\\/amazons-entry-into-dutch-book-market-is\\.html$",
        "to": "/amazons-entry-into-dutch-book-market/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/10\\/changes-to-scrum-20134-process-template\\.html$",
        "to": "/tfs-2013-changes-to-scrum-template/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/10\\/removing-device-encryption-from-lg-g2\\.html$",
        "to": "/android-devices-removing-device-encryption/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/09\\/showing-test-results-on-test-case-work\\.html$",
        "to": "/tfs-2013-show-test-results-on-test-case-wit/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/09\\/effectively-use-stackoverflow-as\\.html$",
        "to": "/community-effectively-use-stackoverflow/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/07\\/building-net-application-using\\.html$",
        "to": "/xaml-build-net-application-with-gitupgradetemplate/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/codelens-features-and-visual-studio\\.html$",
        "to": "/visual-studio-2013-codelens-features/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/05\\/controlling-(whether|whe|when|withether)-codelens-runs\\.html$",
        "to": "/tfs-2013-control-codelens-indexing/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/05\\/work-item-customization-doesnt-get\\.html$",
        "to": "/tfs-wit-customization-ignored-when-control-unavailable/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/03\\/book-review-resharper-essentials-or\\.html$",
        "to": "/book-resharper-essentials/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/02\\/ask-developer-for-confirmation-in-tfs\\.html$",
        "to": "/tfvc-checkin-policy-ask-confirmation/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/02\\/avanade-partners-with-scrumorg\\.html$",
        "to": "/scrumorg-avanade-becomes-partner-in-principle/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/01\\/creating-check-in-policy-to-warn-when\\.html$",
        "to": "/tfvc-checkin-policy-warn-when-checkin-in-cross-branch/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/01\\/creating-custom-check-in-policy-pack\\.html$",
        "to": "/tfvc-checkin-policy-support-multiple-visual-studio-versions/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/01\\/creating-%[Ee]5%[Aa][Ee]%9[Aa]%[Ee]5%88%[Bb]6%[Ee]7%[Aa][Dd]%[Bb][Ee]%[Ee]5%85%[Aa]5%[Ee]7%[Aa][Dd]%96%[Ee]7%95%[Aa]5%[Ee][Ff]%[Bb][Cc]%8[Cc]pack\\.html$",
        "to": "/tfvc-checkin-policy-support-multiple-visual-studio-versions/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/01\\/one-of-my-new-favorite-plugins-for\\.html$",
        "to": "/tfvc-checkin-policy-merge-wit-associate/",
        "permanent": true
    },
    {
        "from": "^\\/2014\\/01\\/[Ii]nstall-[Tt]eam-[Ff]oundation-[Ss]erver-[Pp]ower-[Tt]ools-side-by-side\\.html$",
        "to": "/tfs-power-tools-install-side-by-side/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/installing-windows-81-to-samsung-series\\.html$",
        "to": "/windows-devices-install-to-samsung-series-slate/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/resolving-test-run-issues-in-visual\\.html$",
        "to": "/visual-studio-vstest-fix-identity-references/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/red-gate-releases-reflector-net-83\\.html$",
        "to": "/visual-studio-extensions-red-gate-reflector-net-83/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/resharper-81-goes-gold-resharper-cli\\.html$",
        "to": "/visual-studio-resharper-adds-cli/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/upgrade-your-existing-aspnet-mvc4\\.html$",
        "to": "/asp-net-mvc-uprade-v4-to-v5/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/enabling-mighty-moose-for-visual-studio\\.html$",
        "to": "/visual-studio-2013-enable-mighty-moose/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/12\\/alm-rangers-ship-tfs-reporting-guidance\\.html$",
        "to": "/alm-rangers-ships-tfs-reporting-guidance/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/07\\/enabling-resharper-cli-in-team-build\\.html$",
        "to": "/xaml-build-integrate-resharper-cli/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/11\\/updated-msocaf-for-visual-studio-rules\\.html(|my/)$",
        "to": "/visual-studio-code-analysis-updated-msocaf/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/11\\/team-foundation-service-is-now-known-as\\.html$",
        "to": "/vsts-team-foundation-service-renamed/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/11\\/use-git-directly-from-visual-studio\\.html$",
        "to": "/use-git-directly-from-visual-studio/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/11\\/my-must-have-extensions-for-visual\\.html$",
        "to": "/visual-studio-must-have-extensions-2013-11/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/10\\/tip-dont-run-amd-driver-cleaner-utility\\.html$",
        "to": "/windows-8-drivers-amd-driver-cleaner-utility/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/09\\/visual-studio-tip-how-to-always-launch\\.html$",
        "to": "/visual-studio-launch-different-user/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/07\\/change-sources-binaries-and-testresults\\.html$",
        "to": "/xaml-build-change-sources-binaries-testresults-folders/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/07\\/update-to-webtools-20122-to-resolve\\.html$",
        "to": "/visual-studio-update-to-webtools-20122-to-resolve/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/07\\/properly-incorporate-msbuild-arguments\\.html$",
        "to": "/xaml-build-make-msbuild-arguments-configurable/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/07\\/properly-incorporate-msbuild/$",
        "to": "/xaml-build-make-msbuild-arguments-configurable/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/06\\/use-local-nuget-file-repository-to-use\\.html$",
        "to": "/nuget-use-local-file-repository/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/06\\/update-build-quality-and-keep\\.html$",
        "to": "/xaml-build-cli-update-build-quality-keep-indefinitely/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/06\\/connecting-team-explorer-everywhere-to\\.html$",
        "to": "/vsts-tfs-connect-team-explorer-everywhere/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/05\\/first-alm-ranger-guidance-in-ebook\\.html$",
        "to": "/alm-rangers-book-first-guidance-in-ebook/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/05\\/code-review-check-in-policy-for-tfs-2012\\.html$",
        "to": "/tfvc-checkin-policy-code-review/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/04\\/creating-custom-unit-test-generator\\.html$",
        "to": "/specflow-custom-unit-test-generator/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/04\\/combining-codedui-code-first-specflow\\.html$",
        "to": "/specflow-combine-codedui-code-first/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/03\\/techdays-2013-presentation-better-code\\.html$",
        "to": "/conference-techdays-2013-presentation-better-codereviews/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/02\\/bring-back-create-unit-tests-feature\\.html$",
        "to": "/visual-studio-2010-bring-back-create-unit-tests/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/02\\/new-tfs-team-tools-beta-release\\.html$",
        "to": "/tfs-team-tools-new-beta-release/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/02\\/converting-group-to-team-in-tfs-2012\\.html$",
        "to": "/vsts-tfs-team-tools-convert-security-group-to-team/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/microsoft-provides-full-git-support-for\\.html$",
        "to": "/visual-studio-microsoft-provides-full-git/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/convert-tfs-2010-security-group-to-2012\\.html$",
        "to": "/vsts-tfs-convert-security-group-to-team/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/11\\/which-uieditors-are-available-for-team\\.html$",
        "to": "/xaml-build-which-uieditors-are-available/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/which-check-in-policies-do-you-use-with\\.html$",
        "to": "/tfvc-checkin-policy-which-do-you-use/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/red-gate-releases-reflector-80\\.html$",
        "to": "/visual-studio-extensions-red-gate-reflector-net-80/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/fxcopcontrib-alpha-for-visual-studio\\.html$",
        "to": "/visual-studio-code-analysis-fxcopcontrib-alpha/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/make-you-custom-tfs-tools-clever-by\\.html\\.*$",
        "to": "/vsts-tfs-api-auto-detect-connection-details/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/set-your-tfs-profile-or/$",
        "to": "/vsts-tfs-team-tools-set-profile-team-image/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/set-your-tfs-profile-or-team-image-from\\.html$",
        "to": "/vsts-tfs-team-tools-set-profile-team-image/",
        "permanent": true
    },
    {
        "from": "^\\/2013\\/01\\/team-foundation-server-2012-update-1\\.html$",
        "to": "/tfs-2012u1-released/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/12\\/take-screenshot-on-windows-8-slate\\.html$",
        "to": "/windows-devices-screenshot-on-tablet/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/12\\/replace-default-user-logon-screen-in\\.html$",
        "to": "/windows-8-replace-default-user-logon-screen/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/12\\/install-word4tfs-on-machine-with-office\\.html$",
        "to": "/visual-studio-extensions-word4tfs-with-office-2013/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/11\\/net-framework-sdk-45-changes-visual\\.html\\.*$",
        "to": "/dotnet-framework-sdk-45-changes-code-generation/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/11\\/visual-studio-and-team-foundation\\.html$",
        "to": "/visual-studio-tfs-2012-update-1-released/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/11\\/windows-8-remote-desktop-ticks-and\\.html$",
        "to": "/windows-8-remote-desktop-tricks/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/11\\/updating-your-team-foundation-service\\.html$",
        "to": "/vsts-tfs-update-visual-studio-urls-cli/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/10\\/backing-up-your-bitlocker-keys-to\\.html$",
        "to": "/windows-bitlocker-back-up-keys-to-ad/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/10\\/quickly-generate-work-item-query-for\\.html$",
        "to": "/vsts-tfs-generate-work-item-query-for-tfs-api/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/10\\/cisco-responds-to-wpa2-enterprise-issues\\.html$",
        "to": "/windows-drivers-cisco-responds-to-wpa2-enterprise-issues/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/10\\/wpa2-enterprise-and-broadcom-wireless-n\\.html$",
        "to": "/windows-drivers-wpa2-enterprise-and-broadcom-wireless-n/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/08\\/installing-apps-you-loved-from-windows\\.html$",
        "to": "/windows-8-installing-apps-you-loved/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/08\\/windows-8-visual-studio-2012-team\\.html$",
        "to": "/windos-8-visual-studio-2012-tfs-2012-available/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/08\\/installing-windows-8-rtm-on-samsung\\.html$",
        "to": "/windows-devices-installing-windows-8-on-samsung-tablet/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/08\\/will-you-be-installing-leaked-windows-8\\.html$",
        "to": "/windows-will-you-be-installing-leaked-iso/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/07\\/is-ndepend-5-coming-soon\\.html$",
        "to": "/visual-studio-ndepend-5-coming-soon/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/07\\/connecting-visual-studio-2008-to-tfs\\.html$",
        "to": "/vsts-tfs-connect-visual-studio-2008/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/07\\/red-gate-silently-releases-760808\\.html$",
        "to": "/visual-studio-extensions-red-gate-reflector-net-760808/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/07\\/windows-8-freezing-issue-resolved\\.html$",
        "to": "/windows-8-freezing-issue-resolved/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/07\\/enabling-tfs-reporting-requires\\.html$",
        "to": "/tfs-reporting-requires-windows-server/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/07\\/i-just-joined-alm-rangers-program\\.html$",
        "to": "/alm-rangers-i-just-joined/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/07\\/micro-hdmi-to-hdmi-now-available\\.html$",
        "to": "/windows-devices-micro-hdmi-adapters-now-available/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/06\\/project-thermostat-ii\\.html$",
        "to": "/project-thermostat-ii/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/06\\/generating-changelog-from-tfs\\.html$",
        "to": "/tfvc-visual-studio-generate-changelog/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/06\\/just-in-time-updating-of-source-files\\.html$",
        "to": "/visual-studio-msbuild-just-in-time-file-changes/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/06\\/things-id-want-to-change-to-windows-8\\.html$",
        "to": "/windows-8-things-i-want-to-change/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/06\\/installing-windows-8-release-candidate\\.html$",
        "to": "/windows-8-installing-release-candidate/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/05\\/presentation-on-great-agile-teams\\.html$",
        "to": "/community-presentation-great-agile-teams/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/05\\/project-thermostat\\.html$",
        "to": "/project-thermostat/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/05\\/creating-good-app-is-hard-it-seems\\.html$",
        "to": "/android-good-apps-are-hard/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/04\\/why-i-like-tfs\\.html$",
        "to": "/vsts-tfs-why-i-like-them/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/03\\/improving-my-samsung-galaxy-sii\\.html$",
        "to": "/android-devices-improving-samsung-galaxy-sii/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/03\\/did-you-miss-my-techdaysnl-talk-on-code\\.html$",
        "to": "/community-techdaysnl-did-you-miss-my-talk-on-codereviews/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/03\\/using-existing-code-analysis-rules-with\\.html$",
        "to": "/visual-studio-2012-use-code-analysis-rules-from-2010/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/03\\/using-existing-check-in-policies-with\\.html$",
        "to": "/visual-studio-2012-use-tfvc-checkin-policy-from-2010/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/02\\/speaking-at-dutch-techdays-conference\\.html$",
        "to": "/community-conference-speaking-at-techdaysnl-2012/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/01\\/solving-msbuild-error-unable-to-read\\.html$",
        "to": "/msbuild-fix-unable-to-read-code-analysis-output/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/01\\/funny-issue-with-code-coverage-and\\.html$",
        "to": "/mstest-coverage-fix-issue-with-private-reflection/",
        "permanent": true
    },
    {
        "from": "^\\/2012\\/01\\/windows-azure-appfabric\\.html$",
        "to": "/windows-azure-appfabric-filenotfoundexception/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/12\\/take-control-over-your-applications-on\\.html$",
        "to": "/windows-multi-monitor-take-control/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/12\\/xbox-360-wireless-controller-on-windows\\.html$",
        "to": "/xbox-360-wireless-controller-on-windows/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/12\\/referencing-publicprivatereference\\.html$",
        "to": "/visual-studio-reference-from-publicprivatereference-folders/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/12\\/things-that-make-your-unit-tests\\.html$",
        "to": "/visual-studio-testing-unreliable-tests/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/11\\/helpful-visual-studio-add-ins\\.html$",
        "to": "/visual-studio-extension-add-ins-2011-11/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/11\\/where-to-go-with-you-microsoft\\.html$",
        "to": "/community-forums-where-to-ask-your-question/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/10\\/im-going-to-microsoft-alm-summit-in\\.html$",
        "to": "/community-conference-going-to-microsoft-alm-summit-2011/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/10\\/fxcopcontrib-project-and\\.html$",
        "to": "/visual-studio-code-analysis-fxcopcontrib-project/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/10\\/have-your-custom-codeanalysis-rule\\.html$",
        "to": "/visual-studio-code-analysis-integrate-properly/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/10\\/find-id-and-guid-of-any-menu-item-in\\.html$",
        "to": "/visual-studio-extensibility-id-and-guid-for-menu-item/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/10\\/storing-your-tfs-passwords-for-tfs\\.html$",
        "to": "/tfs-store-password-for-server-in-different-ad/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/08\\/maintainable-regular-expressions\\.html$",
        "to": "/quality-code-maintainable-regular-expressions/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/08\\/msocaf-rules\\.html$",
        "to": "/visual-studio-code-analaysis-msocaf-rules/",
        "permanent": true
    },
    {
        "from": "^\\/2011\\/07\\/code-analysis-in-visual-studio-2010-for\\.html$",
        "to": "/xaml-build-visual-studio-integrate-msocaf/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa]gile$",
        "to": "/tag/agile",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]eams$",
        "to": "/tag/teams",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]crum$",
        "to": "/tag/scrum",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/retrospectives$",
        "to": "/tag/retrospective",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/games$",
        "to": "/tag/games",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/agile%20olympics$",
        "to": "/tag/agile",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa]mazon\\.nl$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa]ndroid$",
        "to": "/tag/android",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Dd]evices$",
        "to": "/tag/android-devices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]amsung%20[Gg]alaxy%20[Ss][Ii][Ii]$",
        "to": "/tag/android-devices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ll][Gg]-[Gg]2$",
        "to": "/tag/android-devices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr]oot$",
        "to": "/tag/android",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa]ppfabric%20[Ss]ervice[Bb]us$",
        "to": "/tag/dotnet",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/msbuild$",
        "to": "/tag/msbuild",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm][Ss][Tt]est$",
        "to": "/tag/mstest",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Nn]uget$",
        "to": "/tag/nuget",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Nn]unit$",
        "to": "/tag/nunit",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Pp]ower[Ss]hell$",
        "to": "/tag/powershell",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr]oslyn$",
        "to": "/tag/roslyn",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]%23$",
        "to": "/tag/c-sharp",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa][Ss][Pp]\\.[Nn][Ee][Tt]%20[Mm][Vv][Cc]$",
        "to": "/tag/asp-net-mvc",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa]zure$",
        "to": "/tag/azure",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Bb]ook%20[Rr]eview$",
        "to": "/tag/books",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/ebooks$",
        "to": "/tag/books",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Kk]indle$",
        "to": "/tag/books",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ode[Ll]ens$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ontinuous%20[Tt]est%20[Rr]unner$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/customizing$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Dd]eveloper%20[Pp]roductivity$",
        "to": "/tag/developer-productivity",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]ools$",
        "to": "/tag/tools",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm]ulti%20monitor$",
        "to": "/tag/multi-monitor",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/domotica$",
        "to": "/tag/domotica",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ee]xtensibility$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/opshub$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Pp]roject-[Tt]hermostat$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr]ecursion$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr]emote%20[Dd]esktop$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/reporting$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr][Tt][Mm]$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]ecurity$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/solution%20roundtripping$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]ponsored$",
        "to": "/tag/sponsored",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ommunity$",
        "to": "/tag/community",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm][Ss][Dd][Nn]%20forums$",
        "to": "/tag/msdn-forums",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]ech[Dd]ays[Nn][Ll]$",
        "to": "/tag/conference",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa][Ll][Mm]%20[Rr]angers$",
        "to": "/tag/alm-rangers",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]tack[Oo]verflow$",
        "to": "/tag/stackoverflow",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Bb]logging$",
        "to": "/tag/stackoverflow",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]crum\\.org$",
        "to": "/tag/scrum-org",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm]icrosoft%20[Cc]ommunity%20[Cc]ontributor$",
        "to": "/tag/microsoft-community-contributor",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Pp]resentation$",
        "to": "/tag/presentation",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm]eetup$",
        "to": "/tag/meetup",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]upport$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/%28[Tt][Ff][Ss]%7[Cc]tfs%29$",
        "to": "/tag/tfs",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/team%20foundation%20server%20power%20tools$",
        "to": "/tag/tfs",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/process%20template$",
        "to": "/tag/tfs-work-item-customization",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt][Ff][Ss]%20[Cc]lient%20[Oo]bject%20[Mm]odel$",
        "to": "/tag/tfs-api",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/tfs2005$",
        "to": "/tag/tfs-2005",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/tfs2008$",
        "to": "/tag/tfs-2008",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt][Ff][Ss]2010$",
        "to": "/tag/tfs-2010",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt][Ff][Ss]2012$",
        "to": "/tag/tfs-2012",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt][Ff][Ss]2013$",
        "to": "/tag/tfs-2013",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/tfs2015$",
        "to": "/tag/tfs-2015",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt][Ff][Ss]2017$",
        "to": "/tag/tfs-2017",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt][Ff][Ss]v15$",
        "to": "/tag/tfs-2017",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/tfs2018$",
        "to": "/tag/tfs-2018",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/tfsaggregator$",
        "to": "/tag/tfs-aggregator",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Uu]pgrade$",
        "to": "/tag/tfs-migration",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/migration$",
        "to": "/tag/tfs-migration",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]eam%20[Bb]uild$",
        "to": "/tag/xaml-build",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]ork%20[Ii]tems$",
        "to": "/tag/tfs-work-items",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]onnect-[Tt]o-[Tt][Ff][Ss]$",
        "to": "/tag/tfs",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/team-foundation-server-power-tools$",
        "to": "/tag/tfs",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]ips-n-[Tt]ricks$",
        "to": "/tag/tips-and-tricks",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]echnical%20[Pp]ractices$",
        "to": "/tag/technical-practices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr]egular%20[Ee]xpressions$",
        "to": "/tag/quality-code",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/fast-feedback$",
        "to": "/tag/fast-feedback",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm]aintainability$",
        "to": "/tag/maintainability",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm]etrics$",
        "to": "/tag/metrics",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Dd]ebugging$",
        "to": "/tag/debugging",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ontinuous%20[Dd]elivery$",
        "to": "/tag/continuous-delivery",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ontinuous%20[Ii]ntegration$",
        "to": "/tag/continuous-integration",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]eam[Cc]ity$",
        "to": "/tag/teamcity",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ode%20[Cc]overage$",
        "to": "/tag/code-coverage",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ode%20[Rr]eview$",
        "to": "/tag/code-review",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]tatic%20[Aa]nalysis$",
        "to": "/tag/static-analysis",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/stylecop$",
        "to": "/tag/stylecop",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/fxcop$",
        "to": "/tag/fxcop",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ff]x[Cc]op[Cc]ontrib$",
        "to": "/tag/fxcop",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]onar$",
        "to": "/tag/sonarqube",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Aa]rchitecture%20[Ll]ayer%20[Vv]alidation$",
        "to": "/tag/architecture-layer-validation",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Nn][Dd]epend$",
        "to": "/tag/visual-ndepend",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]ode[Aa]nalysis$",
        "to": "/tag/static-analysis",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/msocaf$",
        "to": "/tag/static-analysis",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Dd]ev[Oo]ps$",
        "to": "/tag/devops",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Bb]ranching%20%26%20[Mm]erging$",
        "to": "/tag/branching",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]esting$",
        "to": "/tag/testing",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]pec[Ff]low$",
        "to": "/tag/specflow",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]oded[Uu][Ii]$",
        "to": "/tag/codedui",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Uu]nit%20testing$",
        "to": "/tag/unit-testing",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]ersion%20[Cc]ontrol$",
        "to": "/tag/source-control",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt][Ff][Vv][Cc]$",
        "to": "/tag/tfvc",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]heck-in%20[Pp]olicy$",
        "to": "/tag/tfvc-checkin-policy",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Gg][Ii][Tt]$",
        "to": "/tag/git",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss][Vv][Nn]$",
        "to": "/tag/svn",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio$",
        "to": "/tag/visual-studio",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Bb][Ii][Dd][Ss]$",
        "to": "/tag/visual-studio",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm]icrosoft%20[Tt]est%20[Mm]anager$",
        "to": "/tag/microsoft-test-manager",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Tt]eam%20[Ee]xplorer%20[Ee]verywhere$",
        "to": "/tag/team-explorer-everywhere",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/vs-te$",
        "to": "/tag/team-explorer-everywhere",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio%202005$",
        "to": "/tag/visual-studio-2005",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/vb\\.net$",
        "to": "/tag/visual-studio",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio%202008$",
        "to": "/tag/visual-studio-2008",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio%202010$",
        "to": "/tag/visual-studio-2010",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio%202012$",
        "to": "/tag/visual-studio-2012",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio%202013$",
        "to": "/tag/visual-studio-2013",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/visual%20studio%202015$",
        "to": "/tag/visual-studio-2015",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/vs2015$",
        "to": "/tag/visual-studio-2015",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio%202017$",
        "to": "/tag/visual-studio-2017",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Vv]isual%20[Ss]tudio%20[Aa]dd-in$",
        "to": "/tag/visual-studio-extensions",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Mm]ighty%20[Mm]oose$",
        "to": "/tag/mighty-moose",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr]eflector$",
        "to": "/tag/reflector",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Rr]esharper$",
        "to": "/tag/resharper",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/vsts$",
        "to": "/tag/vsts",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/vsts-build$",
        "to": "/tag/vsts-build",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/build%202015$",
        "to": "/tag/vsts-build",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/vsts-release$",
        "to": "/tag/vsts-release",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/tfx$",
        "to": "/tag/tfx",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/vs-team-services$",
        "to": "/tag/vsts",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/visual%20studio%20online$",
        "to": "/tag/vsts",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/tfsvc$",
        "to": "/tag/vsts",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]indows$",
        "to": "/tag/windows",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Oo]ne[Dd]rive$",
        "to": "/tag/onedrive",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]indows%20[Ss]erver$",
        "to": "/tag/windows-server",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]indows%20[Ss]erver%202012$",
        "to": "/tag/windows-server-2012",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/wpa2-enterprise$",
        "to": "/tag/windows-drivers",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Dd]rivers$",
        "to": "/tag/windows-drivers",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]ireless$",
        "to": "/tag/windows-drivers",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]ireless%20[Nn]etworking$",
        "to": "/tag/windows-drivers",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Cc]atalyst$",
        "to": "/tag/windows-drivers",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/xbox360$",
        "to": "/tag/windows-drivers",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/samsung%20%2[Ff]%2[Ff]build%20slate$",
        "to": "/tag/windows-devices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]amsung%207%20[Ss]late$",
        "to": "/tag/windows-devices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ss]amsung%20700t%20[Ss]late$",
        "to": "/tag/windows-devices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Hh][Dd][Mm][Ii]$",
        "to": "/tag/windows-devices",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Bb]itlocker$",
        "to": "/tag/bitlocker",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]indows%2010$",
        "to": "/tag/windows-10",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ee]dge%20[Cc]ortana$",
        "to": "/tag/windows-10",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]indows%208$",
        "to": "/tag/windows-8",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]indows%208%20[Rr]elease%20[Cc]andidate$",
        "to": "/tag/windows-8",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/windows%208%20rt$",
        "to": "/tag/windows-8",
        "permanent": true
    },
    {
        "from": "^\\/search\\/label\\/[Ww]indows%208\\.1$",
        "to": "/tag/windows-8",
        "permanent": true
    },
    {
        "from": "^\\/feeds\\/posts\\/default$",
        "to": "/rss/",
        "permanent": true
    },
    {
        "from": "^\\/\\d{4}\\/?(\\d{2}\\/?)?$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/index\\.html$",
        "to": "/",
        "permanent": true
    },
    {
        "from": "^\\/tag\\/tfs2015\\/?$",
        "to": "/tag/tfs-2015/",
        "permanent": true
    }
]
sandorfr commented 6 years ago

Hi,

Extension or not you can source control it :)

That said this would definitely be possible to write an automation for that and add a option to pick the action (upload theme or upload redirects)

I'm not personally using that feature but I'd be happy to receive a PR!

jessehouwing commented 6 years ago

Darn.

On Mon, 30 Jul 2018, 15:55 Sandor, notifications@github.com wrote:

Hi,

Extension or not you can source control it :)

That said this would definitely be possible to write an automation for that and add a option to pick the action (upload theme or upload redirects)

I'm not personally using that feature but I'd be happy to receive a PR!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/geeklearningio/gl-vsts-tasks-ghost/issues/11#issuecomment-408871948, or mute the thread https://github.com/notifications/unsubscribe-auth/AD-uS0jTD6JE0NMuTMHqLSQy9_93uRafks5uLxBlgaJpZM4VmWM1 .