{"componentChunkName":"component---src-templates-doc-tsx","path":"/product/error-monitoring/issue-owners/","result":{"data":{"file":{"id":"c934fec7-d8e5-5a4d-90af-bad881f5fee6","relativePath":"product/error-monitoring/issue-owners/index.mdx","sourceInstanceName":"docs","childMarkdownRemark":null,"childMdx":{"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Issue Ownership Rules\",\n  \"sidebar_order\": 2,\n  \"redirect_from\": [\"/product/issue-owners/\", \"/workflow/issue-owners/\", \"/learn/issue-owners/\", \"/features/owners/\", \"/product/sentry-basics/issue-owners/\"],\n  \"description\": \"Rules for Issue Ownership help you decide which user or team should own an issue, resembling a typical code owners file in a repository. Learn how to automatically assign issues to their respective owners, or alert the owners about the issue, allowing you to find the developer with the most context about a fix.\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"The Issue Owners feature allows you to create rules to decide which user or team should own an \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/platform-redirect/?next=/data-management/event-grouping/\"\n  }), \"Issue\"), \". These rules resemble a typical code owners file in a repository, and can match on file paths of files in the stack trace, URL of the request, or event tags. You can automatically assign issues to their respective owners, or alert the owners about the issue, allowing you to find the developer with the most context about a fix.\"), mdx(\"h2\", {\n    \"id\": \"how-it-works\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#how-it-works\",\n    \"aria-label\": \"how it works permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"How It Works\"), mdx(\"p\", null, \"Sentry matches ownership rules against individual events in an issue. This matching is relied upon in other areas of Sentry, described in the following sections. One key item: Issue owners are set for an issue, not a project or organization.\"), mdx(\"h3\", {\n    \"id\": \"creating-rules\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#creating-rules\",\n    \"aria-label\": \"creating rules permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Creating Rules\"), mdx(\"p\", null, \"You define ownership rules per project. To configure ownership rules, navigate to your\\xA0\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Project Settings > Issue Owners\"), \", or click on the \\\"Create Ownership Rule\\\" button on an issue details page.\"), mdx(\"p\", null, \"Types of matchers available:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Path: matches against all file paths in the event's stack trace\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"URL: matches against the event's \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"url\"), \" tag\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Tag: matches against event tags\")), mdx(\"p\", null, \"The general format of a rule is: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"type:pattern owners\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"type\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"Can be either \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"path\"), \", which matches on paths, \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"url\"), \", which matches the specified URL, or \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"tags.TAG_NAME\"), \" which matches the specified tag.\"))), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"pattern\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"The pattern you're matching on. For example, \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"src/javascript/*\"), \" for \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"path\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"[https://www.example.io/checkout](https://www.example.io/checkout)\"), \" for \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"url\"), \", or \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"Chrome 81.0.*\"), \" for \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"tags.browser\"), \".\"))), mdx(\"p\", null, \": \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pattern\"), \" matching supports unix-style \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://en.wikipedia.org/wiki/Glob_(programming)\"\n  }), \"glob syntax\"), \". For example, \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"*\"), \" to match anything and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"?\"), \"\\xA0to match a single character.\\xA0\", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"This is not a regex.\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"owners\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"The owner, or list of owners, identified by either the email of the Sentry user or the name of the team, prefixed with \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"#\"), \". Thus, the owner may be \", mdx(\"a\", _extends({\n    parentName: \"dd\"\n  }, {\n    \"href\": \"mailto:example@company.com\"\n  }), \"example@company.com\"), \" or \", mdx(\"a\", _extends({\n    parentName: \"dd\"\n  }, {\n    \"href\": \"mailto:example1@company.com\"\n  }), \"example1@company.com\"), \" \", mdx(\"a\", _extends({\n    parentName: \"dd\"\n  }, {\n    \"href\": \"mailto:example2@company.com\"\n  }), \"example2@company.com\"), \" or \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"#backend-team\"), \". A space separates each owner in the list of owners.\"))), mdx(\"p\", null, \": Teams \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"must\"), \" have access to the project to become owners. To grant a team access to a project, navigate to \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Project Settings > Project Teams\"), \", and click 'Add Team to \", \"[project]\", \"'.\"), mdx(\"p\", null, \": To grant a user access to a project, the user must be a member of a team with access to the project. To add a user to a team, navigate to \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Settings > Teams\"), \", select a team, then click \\\"Add Member\\\".\"), mdx(\"p\", null, \"Adding a rule from project settings:\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/b29cebf228c740214a83a427ffe5036b/aa440/ownership_rules.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"59.66666666666667%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsSAAALEgHS3X78AAABL0lEQVQoz32RyW7DIBRF+f9v6aq7rvoRlbqMojghisEDmMlM7jW2UqSmfjp6Qtj3vgEihepYL6Vyzj+xdgb14SVETXroBzFKMU5STEJIgEtjLDKYVt95+RM5ZzJNivO+63rWsseDsZZz3imlnXVLXg5iFcMbgnEUs/chhD2XSDkfkRIq69v13rZ8GEatTYjRh5UQIowOQBGCVTHWQYb+ARrGtNY6AH2MqWKL5zkRrRSGpZReG9o09HK59f2IdmBqYOHmGledUZtwps4nQa/Y0AxSTGUbJaV1sN+ICYK1YsolJ/L9xd/fzp8fd6Nd8MEXQpkZP2Cl9Zag3w/Fl8CwrD0bZQzmNVajX22gxuejp0qZxAg/tAH5slHecM//kEvna+XSWxXbRWksvwxItrl+ANOiu7Vj03VFAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Configuration options for defining ownership rules in project settings.\",\n    \"title\": \"Configuration options for defining ownership rules in project settings.\",\n    \"src\": \"/static/b29cebf228c740214a83a427ffe5036b/c1b63/ownership_rules.png\",\n    \"srcSet\": [\"/static/b29cebf228c740214a83a427ffe5036b/5a46d/ownership_rules.png 300w\", \"/static/b29cebf228c740214a83a427ffe5036b/0a47e/ownership_rules.png 600w\", \"/static/b29cebf228c740214a83a427ffe5036b/c1b63/ownership_rules.png 1200w\", \"/static/b29cebf228c740214a83a427ffe5036b/aa440/ownership_rules.png 1500w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Adding a rule from an issue page:\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/90ae15e3720ee16c4ca0909d1ad051b9/aa440/create_ownership_rule.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"41%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAIAAAB2/0i6AAAACXBIWXMAAAsSAAALEgHS3X78AAAA50lEQVQY041Q20oDMRDN//+LT36FDyL40ooWKu3u5rq5Te7ZraMLglKlh8MwCTlz5oS87A/nEz0ez+PAlDRSaimNkFqI+So5nzlTarb73YEIrmJMACGEhE0uNWEp5fI31nXFyqggnEmtLY6UXwRI3ocYUd9+s7ZaOzY5197XcaCEU+kcoMBoq6T2LjjrUyqtLfj0B0vD+20QiqeRoVh4Byiw1unZtNpwq6UvV9lb3yquTSdO6MRyzjFEDI2ZLzdgy/zpjG7f5xsBUI1up3dKpoGipXPee0wO8C/xR1KKz0/j/d3b48PrB85mzAH5zzapAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Configuration options for defining ownership rules from an issue page.\",\n    \"title\": \"Configuration options for defining ownership rules from an issue page.\",\n    \"src\": \"/static/90ae15e3720ee16c4ca0909d1ad051b9/c1b63/create_ownership_rule.png\",\n    \"srcSet\": [\"/static/90ae15e3720ee16c4ca0909d1ad051b9/5a46d/create_ownership_rule.png 300w\", \"/static/90ae15e3720ee16c4ca0909d1ad051b9/0a47e/create_ownership_rule.png 600w\", \"/static/90ae15e3720ee16c4ca0909d1ad051b9/c1b63/create_ownership_rule.png 1200w\", \"/static/90ae15e3720ee16c4ca0909d1ad051b9/aa440/create_ownership_rule.png 1500w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"When creating a rule from the issue page, you'll see some suggested paths and URLs based on the events in the issue. Note that Sentry doesn't suggest tags.\"), mdx(\"h3\", {\n    \"id\": \"suggested-assignees\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#suggested-assignees\",\n    \"aria-label\": \"suggested assignees permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Suggested Assignees\"), mdx(\"p\", null, \"On the issue page, you'll see suggested assignees based on ownership rules matching the event you're looking at (by default, the issue page shows the latest event). Suggested assignees can also be based on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/product/releases/#after-associating-commits\"\n  }), \"suspect commits\"), \". You can assign the \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"issue\"), \" to a suggested assignee by clicking on the suggestion. An event can have multiple suggested assignees if it matches multiple ownership rules.\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/44a93825db84766214e1cba74cb3106d/aa440/suggested_assignees.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"32.666666666666664%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAIAAACHqfpvAAAACXBIWXMAAAsSAAALEgHS3X78AAAAzklEQVQY06WOSwuCQBSF/f/9gmjXMmgRFAUtiuhF2UNS08S00bIi03yMjjpjU9GiXdHhcrkc7v3uYfI/xKiKdjCPO82gnc6augO6qWtgb1r6FpjgAHTjcrbDAMIQRhGKHxXDMErTjJFEhR0v2s0uz60lQVktRUVWqSkJm1F/KvIyN+cp2rv5V9v1XN91PMd2rf2J4pi/Ynfag8lwRlaNhK3iLCUkJ5/CGJOH+/Lz98LzuFyq1Cp13CuiVoFkyZNIvv2MEEqSNI8DAr1fY98BN92PMWUJweYAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Avatar icons of suggested assignees and ability to click on them for assignment.\",\n    \"title\": \"Avatar icons of suggested assignees and ability to click on them for assignment.\",\n    \"src\": \"/static/44a93825db84766214e1cba74cb3106d/c1b63/suggested_assignees.png\",\n    \"srcSet\": [\"/static/44a93825db84766214e1cba74cb3106d/5a46d/suggested_assignees.png 300w\", \"/static/44a93825db84766214e1cba74cb3106d/0a47e/suggested_assignees.png 600w\", \"/static/44a93825db84766214e1cba74cb3106d/c1b63/suggested_assignees.png 1200w\", \"/static/44a93825db84766214e1cba74cb3106d/aa440/suggested_assignees.png 1500w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"h3\", {\n    \"id\": \"auto-assign\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#auto-assign\",\n    \"aria-label\": \"auto assign permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Auto-Assign\"), mdx(\"p\", null, \"You can automatically assign issues to their owners by enabling the following setting in \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Project Settings > Issue Owners\"), \".\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/53fbd79965a1374b9ba77093a9507655/aa440/new_event_matches.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"18.333333333333336%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAIAAAABPYjBAAAACXBIWXMAAAsSAAALEgHS3X78AAAAbElEQVQI132O2w6EIAwF+f9PVaH2giJF8Gx42mTdZtJMmvS0gaLEdU8bTyhJirwuhCGTXaX+ISib7IrOpMJmkqdDsmav7rW9EUwPUyzkT4SYQNjOo/Texxju7W73eKnw/ckFyglDcgO4POUnD9YJ6EdPvSxeAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Toggle to automatically assign issues to their owners.\",\n    \"title\": \"Toggle to automatically assign issues to their owners.\",\n    \"src\": \"/static/53fbd79965a1374b9ba77093a9507655/c1b63/new_event_matches.png\",\n    \"srcSet\": [\"/static/53fbd79965a1374b9ba77093a9507655/5a46d/new_event_matches.png 300w\", \"/static/53fbd79965a1374b9ba77093a9507655/0a47e/new_event_matches.png 600w\", \"/static/53fbd79965a1374b9ba77093a9507655/c1b63/new_event_matches.png 1200w\", \"/static/53fbd79965a1374b9ba77093a9507655/aa440/new_event_matches.png 1500w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"If an issue is already assigned, a new event for that issue will not re-assign the issue even if it has a different owner. If an issue is not assigned, but a new event has multiple owners, Sentry assigns it to the owner matching the longest \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pattern\"), \" in the rules that matched (regardless of the rule \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"type\"), \").\"), mdx(\"h3\", {\n    \"id\": \"issue-alerts\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#issue-alerts\",\n    \"aria-label\": \"issue alerts permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Issue Alerts\"), mdx(\"p\", null, \"You can send \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/product/alerts-notifications/alerts/#issue-alerts\"\n  }), \"Issue Alerts\"), \" to issue owners. Issue alerts are event-driven: when Sentry receives an event, it evaluates issue alert rules for the issue for that event. If the alert conditions match, Sentry sends an alert to the \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"owners of the event that triggered the alert\"), \".\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/6cc0d4092686f15b0ec076e6bc46d4e0/aa440/perform_these_actions.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"23%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAAm0lEQVQY042MWQ7DIAwFuf8xs2CDATs0CWWpVKdRv1tp9DTy8sw6gwNC6xHIY2i1/485jlJKPc+nUsqz1q60Nnr/jYEFgg9okWOSxOS8+r7vrzF0fzf11pXxya9c9YYDZPaZnSQnUStgY7cld+TwEK9yp97cmcVzRPVEYDbWZ8yCKpJs8HOiRTMzcFwl2msercKXo27JTZFmwukNB8ocT8upypcAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Dropdown indicating choices for Issue Alert recipients.\",\n    \"title\": \"Dropdown indicating choices for Issue Alert recipients.\",\n    \"src\": \"/static/6cc0d4092686f15b0ec076e6bc46d4e0/c1b63/perform_these_actions.png\",\n    \"srcSet\": [\"/static/6cc0d4092686f15b0ec076e6bc46d4e0/5a46d/perform_these_actions.png 300w\", \"/static/6cc0d4092686f15b0ec076e6bc46d4e0/0a47e/perform_these_actions.png 600w\", \"/static/6cc0d4092686f15b0ec076e6bc46d4e0/c1b63/perform_these_actions.png 1200w\", \"/static/6cc0d4092686f15b0ec076e6bc46d4e0/aa440/perform_these_actions.png 1500w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"If no ownership rules match the event, the alert will either be sent to nobody or all members of the project, depending on the following setting in \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Project Settings > Issue Owners:\")), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1164px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/a0bdc5b196c6c2554f430e4e2df77aae/d74fe/ownership_not_determined.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"31.333333333333336%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAIAAABM9SnKAAAACXBIWXMAAAsSAAALEgHS3X78AAAArElEQVQY03WQWQ7DIAxEe/9zplkgYd9tSA1VP1pU62kYWYyNeKSYrfFGO9KPcVZ7q50z3o2mtyGnMvNIIXEm1oWx7WT7dWx86Lkux75yMvuTnUyWDD/0MB3OhuCid+EN+eBju7+qTgUFKFwursSplDDiUoS8dPAJAGttrbaQIyDcUyFg36yV1bKjpJXCkKFx1EREukRvxFb/hlPK9G1dh4kxkRmbK5IMcKIUeAHLdFugFosEWQAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Toggle that auto-assigns issue owners if no ownership rules match the event.\",\n    \"title\": \"Toggle that auto-assigns issue owners if no ownership rules match the event.\",\n    \"src\": \"/static/a0bdc5b196c6c2554f430e4e2df77aae/d74fe/ownership_not_determined.png\",\n    \"srcSet\": [\"/static/a0bdc5b196c6c2554f430e4e2df77aae/5a46d/ownership_not_determined.png 300w\", \"/static/a0bdc5b196c6c2554f430e4e2df77aae/0a47e/ownership_not_determined.png 600w\", \"/static/a0bdc5b196c6c2554f430e4e2df77aae/d74fe/ownership_not_determined.png 1164w\"],\n    \"sizes\": \"(max-width: 1164px) 100vw, 1164px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Alerts sent to Issue Owners only support email.\"), mdx(\"h2\", {\n    \"id\": \"troubleshooting\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#troubleshooting\",\n    \"aria-label\": \"troubleshooting permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Troubleshooting\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Make sure that all teams and users have access to the project; if they do not have the correct access, the Issue Owners rules will fail to save. To grant a team access to a project, navigate to \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Project Settings > Project Teams\"), \", and click 'Add Team to \", \"[project]\", \"'. To grant a user access to a project, the user must have at least member access to a team associated with the project. To add a user to a project's team, navigate to \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Settings > Teams\"), \", select a team, then click \\\"Add Member\\\".\")));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#how-it-works","title":"How It Works","items":[{"url":"#creating-rules","title":"Creating Rules"},{"url":"#suggested-assignees","title":"Suggested Assignees"},{"url":"#auto-assign","title":"Auto-Assign"},{"url":"#issue-alerts","title":"Issue Alerts"}]},{"url":"#troubleshooting","title":"Troubleshooting"}]},"internal":{"type":"Mdx"}}}},"pageContext":{"excerpt":"The Issue Owners feature allows you to create rules to decide which user or team should own an  Issue . These rules resemble a typical code owners file in a repository, and can match on file paths of files in the stack trace, URL of the request, or event tags. You can automatically assign issues to their respective owners, or alert the owners about the issue, allowing you to find the developer with the most context about a fix. How It Works Sentry matches ownership rules against individual events in an issue. This matching is relied upon in other areas of Sentry, described in the following sections. One key item: Issue owners are set for an issue, not a project or organization. Creating Rules You define ownership rules per project. To configure ownership rules, navigate to your  Project Settings > Issue Owners , or click on the \"Create Ownership Rule\" button on an issue details page. Types of matchers available: Path: matches against all file paths in the event's stack trace URL: matches against the event's  url  tag Tag: matches against event tags The general format of a rule is:  type:pattern owners type : Can be either  path , which matches on paths,  url , which matches the specified URL, or  tags.TAG_NAME  which matches the specified tag. pattern : The pattern you're matching on. For example,  src/javascript/*  for  path ,  [https://www.example.io/checkout](https://www.example.io/checkout)  for  url , or  Chrome 81.0.*  for  tags.browser . :  pattern  matching supports unix-style  glob syntax . For example,  *  to match anything and  ?  to match a single character.  This is not a regex. owners : The owner, or list of owners, identified by either the email of the Sentry user or the name of the team, prefixed with  # . Thus, the owner may be  example@company.com  or  example1@company.com   example2@company.com  or  #backend-team . A space separates each owner in the list of owners. : Teams  must  have access to the project to become owners. To grant a team access to a project, navigate to  Project Settings > Project Teams , and click 'Add Team to  project '. : To grant a user access to a project, the user must be a member of a team with access to the project. To add a user to a team, navigate to  Settings > Teams , select a team, then click \"Add Member\". Adding a rule from project settings: Adding a rule from an issue page: When creating a rule from the issue page, you'll see some suggested paths and URLs based on the events in the issue. Note that Sentry doesn't suggest tags. Suggested Assignees On the issue page, you'll see suggested assignees based on ownership rules matching the event you're looking at (by default, the issue page shows the latest event). Suggested assignees can also be based on  suspect commits . You can assign the  issue  to a suggested assignee by clicking on the suggestion. An event can have multiple suggested assignees if it matches multiple ownership rules. Auto-Assign You can automatically assign issues to their owners by enabling the following setting in  Project Settings > Issue Owners . If an issue is already assigned, a new event for that issue will not re-assign the issue even if it has a different owner. If an issue is not assigned, but a new event has multiple owners, Sentry assigns it to the owner matching the longest  pattern  in the rules that matched (regardless of the rule  type ). Issue Alerts You can send  Issue Alerts  to issue owners. Issue alerts are event-driven: when Sentry receives an event, it evaluates issue alert rules for the issue for that event. If the alert conditions match, Sentry sends an alert to the  owners of the event that triggered the alert . If no ownership rules match the event, the alert will either be sent to nobody or all members of the project, depending on the following setting in  Project Settings > Issue Owners: Alerts sent to Issue Owners only support email. Troubleshooting Make sure that all teams and users have access to the project; if they do not have the correct access, the Issue Owners rules will fail to save. To grant a team access to a project, navigate to  Project Settings > Project Teams , and click 'Add Team to  project '. To grant a user access to a project, the user must have at least member access to a team associated with the project. To add a user to a project's team, navigate to  Settings > Teams , select a team, then click \"Add Member\".","title":"Issue Ownership Rules","description":"Rules for Issue Ownership help you decide which user or team should own an issue, resembling a typical code owners file in a repository. Learn how to automatically assign issues to their respective owners, or alert the owners about the issue, allowing you to find the developer with the most context about a fix.","draft":null,"noindex":null,"notoc":null,"sidebar_order":2,"redirect_from":["/product/issue-owners/","/workflow/issue-owners/","/learn/issue-owners/","/features/owners/","/product/sentry-basics/issue-owners/"],"keywords":null,"id":"c934fec7-d8e5-5a4d-90af-bad881f5fee6","legacy":false}},"staticQueryHashes":["1218203755","1222113826","1222113826","1766336459","2158593473","2764967025","3345802723","3818502851","3990806462","4015007367","4192517163","4264099332","518019976"]}