def METHOD_NAME(self, issue: dict, url: URL) -> Entity:
    """Create an entity from a Jira issue."""
    # Jira issues have a key and an id. The key consist of the project code and a number, e.g. FOO-42. This means
    # the issue key changes when the issue is moved to another project. The id is an internal key and does not
    # change. Hence, we display the issue key in the UI (issue_key below) but use the id as entity key. This makes
    # sure that when users mark an issue as false positive, it remains false positive even the issue is moved to
    # another project and the issue key changes.
    fields = issue["fields"]
    entity_attributes = {
        "issue_key": issue["key"],
        "created": fields["created"],
        "priority": fields.get("priority", {}).get("name"),
        "status": fields.get("status", {}).get("name"),
        "summary": fields["summary"],
        "type": fields.get("issuetype", {}).get("name", "Unknown issue type"),
        "updated": fields.get("updated"),
        "url": f"{url}/browse/{issue['key']}",
    }
    if sprint_field_id := self._field_ids.get("sprint"):
        entity_attributes["sprint"] = self.__get_sprint_names(fields.get(sprint_field_id) or [])
    return Entity(key=issue["id"], **entity_attributes)