{"action":"created","issue":{"url":"https://api.github.com/repos/OctopusDeploy/Issues/issues/3555","repository_url":"https://api.github.com/repos/OctopusDeploy/Issues","labels_url":"https://api.github.com/repos/OctopusDeploy/Issues/issues/3555/labels{/name}","comments_url":"https://api.github.com/repos/OctopusDeploy/Issues/issues/3555/comments","events_url":"https://api.github.com/repos/OctopusDeploy/Issues/issues/3555/events","html_url":"https://github.com/OctopusDeploy/Issues/issues/3555","id":235105509,"number":3555,"title":"Project overview tenant tag filter URL encoding breaks","user":{"login":"michaelnoonan","id":1627582,"avatar_url":"https://avatars1.githubusercontent.com/u/1627582?v=4","gravatar_id":"","url":"https://api.github.com/users/michaelnoonan","html_url":"https://github.com/michaelnoonan","followers_url":"https://api.github.com/users/michaelnoonan/followers","following_url":"https://api.github.com/users/michaelnoonan/following{/other_user}","gists_url":"https://api.github.com/users/michaelnoonan/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelnoonan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelnoonan/subscriptions","organizations_url":"https://api.github.com/users/michaelnoonan/orgs","repos_url":"https://api.github.com/users/michaelnoonan/repos","events_url":"https://api.github.com/users/michaelnoonan/events{/privacy}","received_events_url":"https://api.github.com/users/michaelnoonan/received_events","type":"User","site_admin":false},"labels":[{"id":509292211,"url":"https://api.github.com/repos/OctopusDeploy/Issues/labels/area/modelling","name":"area/modelling","color":"006b75","default":false},{"id":509292504,"url":"https://api.github.com/repos/OctopusDeploy/Issues/labels/area/scale","name":"area/scale","color":"006b75","default":false},{"id":62440875,"url":"https://api.github.com/repos/OctopusDeploy/Issues/labels/bug","name":"bug","color":"eb6420","default":true},{"id":439248925,"url":"https://api.github.com/repos/OctopusDeploy/Issues/labels/feature/tenants","name":"feature/tenants","color":"0052cc","default":false}],"state":"closed","locked":false,"assignee":{"login":"droyad","id":1687639,"avatar_url":"https://avatars0.githubusercontent.com/u/1687639?v=4","gravatar_id":"","url":"https://api.github.com/users/droyad","html_url":"https://github.com/droyad","followers_url":"https://api.github.com/users/droyad/followers","following_url":"https://api.github.com/users/droyad/following{/other_user}","gists_url":"https://api.github.com/users/droyad/gists{/gist_id}","starred_url":"https://api.github.com/users/droyad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/droyad/subscriptions","organizations_url":"https://api.github.com/users/droyad/orgs","repos_url":"https://api.github.com/users/droyad/repos","events_url":"https://api.github.com/users/droyad/events{/privacy}","received_events_url":"https://api.github.com/users/droyad/received_events","type":"User","site_admin":false},"assignees":[{"login":"droyad","id":1687639,"avatar_url":"https://avatars0.githubusercontent.com/u/1687639?v=4","gravatar_id":"","url":"https://api.github.com/users/droyad","html_url":"https://github.com/droyad","followers_url":"https://api.github.com/users/droyad/followers","following_url":"https://api.github.com/users/droyad/following{/other_user}","gists_url":"https://api.github.com/users/droyad/gists{/gist_id}","starred_url":"https://api.github.com/users/droyad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/droyad/subscriptions","organizations_url":"https://api.github.com/users/droyad/orgs","repos_url":"https://api.github.com/users/droyad/repos","events_url":"https://api.github.com/users/droyad/events{/privacy}","received_events_url":"https://api.github.com/users/droyad/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/OctopusDeploy/Issues/milestones/141","html_url":"https://github.com/OctopusDeploy/Issues/milestone/141","labels_url":"https://api.github.com/repos/OctopusDeploy/Issues/milestones/141/labels","id":1763879,"number":141,"title":"4.0","description":"","creator":{"login":"MJRichardson","id":113759,"avatar_url":"https://avatars1.githubusercontent.com/u/113759?v=4","gravatar_id":"","url":"https://api.github.com/users/MJRichardson","html_url":"https://github.com/MJRichardson","followers_url":"https://api.github.com/users/MJRichardson/followers","following_url":"https://api.github.com/users/MJRichardson/following{/other_user}","gists_url":"https://api.github.com/users/MJRichardson/gists{/gist_id}","starred_url":"https://api.github.com/users/MJRichardson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MJRichardson/subscriptions","organizations_url":"https://api.github.com/users/MJRichardson/orgs","repos_url":"https://api.github.com/users/MJRichardson/repos","events_url":"https://api.github.com/users/MJRichardson/events{/privacy}","received_events_url":"https://api.github.com/users/MJRichardson/received_events","type":"User","site_admin":false},"open_issues":58,"closed_issues":7,"state":"open","created_at":"2016-05-13T05:32:42Z","updated_at":"2017-09-27T07:10:50Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2017-06-12T01:18:09Z","updated_at":"2017-09-27T08:00:13Z","closed_at":"2017-09-27T07:10:50Z","author_association":"CONTRIBUTOR","body":"If you filter the Project Overview by tenant tag you should get a URL looking like this: \r\n`https://master.octopushq.com/app#/projects/mike-s-tenanted-project?tags=Mike%20Test%2FTest%20Tag%201`\r\n\r\nInstead you get this:\r\n`https://master.octopushq.com/app#/projects/mike-s-tenanted-project?tags=Mike%20Test~2FTest%20Tag%201`\r\n\r\nCausing this error message if you refresh the page, or attempt to load this URL directly:\r\n\r\n```\r\nCanonical Tag Name expected in the format of `TagSetName/TagName`\r\nSystem.FormatException\r\n   at Octopus.Core.Model.TagSets.CanonicalTagName.FromFormattedName(String formattedName)\r\n   at System.Linq.Enumerable.<>c__DisplayClass7_0`3.<CombineSelectors>b__0(TSource x)\r\n   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()\r\n   at System.Linq.Lookup`2.Create[TSource](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)\r\n   at System.Linq.GroupedEnumerable`3.GetEnumerator()\r\n   at Octopus.Server.Web.Api.Actions.TenantTagTestActionController.CheckTenantForMissingTags(String[] tags, List`1 allTenants, Dictionary`2 result)\r\n   at Octopus.Server.Web.Api.Actions.TenantTagTestActionController.MatchTenantsWithTags(String[] tenantIds, String[] tags, IOctopusPrincipalInternal principal)\r\n   at Octopus.Server.Web.Api.Components.DashboardBuilder.RemoveBasedOnConfiguration(DashboardResource dashboard, DashboardConfiguration configuration)\r\n   at Octopus.Server.Web.Api.Components.DashboardBuilder.BuildDashboard(DashboardConfiguration configuration, IOctopusPrincipalInternal principal, TenantTagTestActionController tenantTagTestActionController, Boolean highestLatestVersionPerProjectAndEnvironment)\r\n   at Octopus.Server.Web.Api.Actions.DashboardViewAction.Execute()\r\n   at Octopus.Server.Web.Infrastructure.Api.Responder`1.Respond(TDescriptor options, NancyContext context)\r\n   at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)\r\n   at Octopus.Server.Web.Infrastructure.OctopusNancyModule.<>c__DisplayClass14_0.<get_Routes>b__1(Object x)\r\n   at Nancy.Routing.Route.<>c__DisplayClass4.<Wrap>b__3(Object parameters, CancellationToken context)\r\n```\r\n\r\n![](http://g.recordit.co/R1431mvcTJ.gif)\r\n\r\nSource: https://secure.helpscout.net/conversation/377890460/16229/"},"comment":{"url":"https://api.github.com/repos/OctopusDeploy/Issues/issues/comments/332441671","html_url":"https://github.com/OctopusDeploy/Issues/issues/3555#issuecomment-332441671","issue_url":"https://api.github.com/repos/OctopusDeploy/Issues/issues/3555","id":332441671,"user":{"login":"octoreleasebot","id":13617237,"avatar_url":"https://avatars0.githubusercontent.com/u/13617237?v=4","gravatar_id":"","url":"https://api.github.com/users/octoreleasebot","html_url":"https://github.com/octoreleasebot","followers_url":"https://api.github.com/users/octoreleasebot/followers","following_url":"https://api.github.com/users/octoreleasebot/following{/other_user}","gists_url":"https://api.github.com/users/octoreleasebot/gists{/gist_id}","starred_url":"https://api.github.com/users/octoreleasebot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/octoreleasebot/subscriptions","organizations_url":"https://api.github.com/users/octoreleasebot/orgs","repos_url":"https://api.github.com/users/octoreleasebot/repos","events_url":"https://api.github.com/users/octoreleasebot/events{/privacy}","received_events_url":"https://api.github.com/users/octoreleasebot/received_events","type":"User","site_admin":false},"created_at":"2017-09-27T08:00:13Z","updated_at":"2017-09-27T08:00:13Z","author_association":"NONE","body":"Release Note: 4.0"}}
{"actor":{"display_login":"octoreleasebot"}}