{
 "merge_request": {
  "id": 173,
  "iid": 2,
  "project_id": 411,
  "title": "Fix security vulnerability of tool.",
  "description": "@paul please look at yt2mpd/ before rebuilding and updating the docker container in prod. thx.\n- replace unsafe and uncomplete regex with validators.url to check if\n  string is a valid url or not\n- lessen docker container layer\n- add python dependency validators\n- fix pep8 issues in python code\n- replace deprecated and unadvised os.system calls with subprocess\n  calls",
  "state": "merged",
  "created_at": "2022-07-25T18:14:55.437Z",
  "updated_at": "2022-07-25T21:46:59.282Z",
  "merged_by": {
   "id": 47,
   "username": "paul",
   "public_email": "",
   "name": "Paul",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/a4106f6e9909fa9fdadf799a8c6e0382dd30483c01ed2024a82e10d6144d1754?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/paul"
  },
  "merge_user": {
   "id": 47,
   "username": "paul",
   "public_email": "",
   "name": "Paul",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/a4106f6e9909fa9fdadf799a8c6e0382dd30483c01ed2024a82e10d6144d1754?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/paul"
  },
  "merged_at": "2022-07-25T21:46:58.924Z",
  "closed_by": null,
  "closed_at": null,
  "target_branch": "main",
  "source_branch": "maintenance",
  "user_notes_count": 0,
  "upvotes": 1,
  "downvotes": 0,
  "author": {
   "id": 51,
   "username": "commity",
   "public_email": "",
   "name": "commity",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/0844ffa4f80af501da94c73324767c845294b7f569e38831198cd8fb294191e2?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/commity"
  },
  "assignees": [
   {
    "id": 51,
    "username": "commity",
    "public_email": "",
    "name": "commity",
    "state": "active",
    "locked": false,
    "avatar_url": "https://secure.gravatar.com/avatar/0844ffa4f80af501da94c73324767c845294b7f569e38831198cd8fb294191e2?s=80&d=identicon",
    "web_url": "https://git.chaotikum.org/commity"
   }
  ],
  "assignee": {
   "id": 51,
   "username": "commity",
   "public_email": "",
   "name": "commity",
   "state": "active",
   "locked": false,
   "avatar_url": "https://secure.gravatar.com/avatar/0844ffa4f80af501da94c73324767c845294b7f569e38831198cd8fb294191e2?s=80&d=identicon",
   "web_url": "https://git.chaotikum.org/commity"
  },
  "reviewers": [
   {
    "id": 47,
    "username": "paul",
    "public_email": "",
    "name": "Paul",
    "state": "active",
    "locked": false,
    "avatar_url": "https://secure.gravatar.com/avatar/a4106f6e9909fa9fdadf799a8c6e0382dd30483c01ed2024a82e10d6144d1754?s=80&d=identicon",
    "web_url": "https://git.chaotikum.org/paul"
   }
  ],
  "source_project_id": 411,
  "target_project_id": 411,
  "labels": [],
  "draft": false,
  "imported": false,
  "imported_from": "none",
  "work_in_progress": false,
  "milestone": null,
  "merge_when_pipeline_succeeds": false,
  "merge_status": "can_be_merged",
  "detailed_merge_status": "not_open",
  "merge_after": null,
  "sha": "9d46e5336c7d1b25938649608b7a14bb2da40c96",
  "merge_commit_sha": "8c28a893f9f5675b88eff59478abe9fa96257712",
  "squash_commit_sha": null,
  "discussion_locked": null,
  "should_remove_source_branch": true,
  "force_remove_source_branch": true,
  "prepared_at": "2022-07-25T18:14:55.437Z",
  "reference": "!2",
  "references": {
   "short": "!2",
   "relative": "!2",
   "full": "chaotikum/yt2mpd!2"
  },
  "web_url": "https://git.chaotikum.org/chaotikum/yt2mpd/-/merge_requests/2",
  "time_stats": {
   "time_estimate": 0,
   "total_time_spent": 0,
   "human_time_estimate": null,
   "human_total_time_spent": null
  },
  "squash": false,
  "squash_on_merge": false,
  "task_completion_status": {
   "count": 0,
   "completed_count": 0
  },
  "has_conflicts": false,
  "blocking_discussions_resolved": true
 },
 "discussions": [
  {
   "id": "f2844beaaf2bcf13d5178de69451d8cfb2660ab3",
   "reply_id": "f2844beaaf2bcf13d5178de69451d8cfb2660ab3",
   "project_id": 411,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/chaotikum/yt2mpd/-/merge_requests/2/discussions/f2844beaaf2bcf13d5178de69451d8cfb2660ab3/resolve",
   "resolve_with_issue_path": "/chaotikum/yt2mpd/-/issues/new?discussion_to_resolve=f2844beaaf2bcf13d5178de69451d8cfb2660ab3&merge_request_id=173&merge_request_to_resolve_discussions_of=2",
   "notes": [
    {
     "id": "1643",
     "type": null,
     "author": {
      "id": 51,
      "username": "commity",
      "public_email": "",
      "name": "commity",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/0844ffa4f80af501da94c73324767c845294b7f569e38831198cd8fb294191e2?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/commity",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-07-25T18:14:55.620Z",
     "updated_at": "2022-07-25T18:14:55.623Z",
     "system": true,
     "noteable_id": 173,
     "noteable_type": "MergeRequest",
     "project_id": 411,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 2,
     "commands_changes": {},
     "external_author": null,
     "note": "requested review from @paul",
     "note_html": "<p data-sourcepos=\"1:1-1:27\" dir=\"auto\">requested review from <a href=\"/paul\" data-reference-type=\"user\" data-user=\"47\" data-container=\"body\" data-placement=\"top\" class=\"gfm gfm-project_member js-user-link\" title=\"Paul\">@paul</a></p>",
     "body_first_line_html": "<p>requested review from <a href=\"/paul\" data-reference-type=\"user\" data-user=\"47\" class=\"gfm gfm-project_member js-user-link\" title=\"Paul\">@paul</a></p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "user",
     "is_noteable_author": true,
     "discussion_id": "f2844beaaf2bcf13d5178de69451d8cfb2660ab3",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/chaotikum/yt2mpd/-/merge_requests/2#note_1643",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "yt2mpd",
     "path": "/chaotikum/yt2mpd/notes/1643"
    }
   ]
  },
  {
   "id": "8c71b353a4392371c1742f30a6d20c2d9bc9b052",
   "reply_id": "8c71b353a4392371c1742f30a6d20c2d9bc9b052",
   "project_id": 411,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/chaotikum/yt2mpd/-/merge_requests/2/discussions/8c71b353a4392371c1742f30a6d20c2d9bc9b052/resolve",
   "resolve_with_issue_path": "/chaotikum/yt2mpd/-/issues/new?discussion_to_resolve=8c71b353a4392371c1742f30a6d20c2d9bc9b052&merge_request_id=173&merge_request_to_resolve_discussions_of=2",
   "notes": [
    {
     "id": "1644",
     "type": null,
     "author": {
      "id": 51,
      "username": "commity",
      "public_email": "",
      "name": "commity",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/0844ffa4f80af501da94c73324767c845294b7f569e38831198cd8fb294191e2?s=80&d=identicon",
      "status_tooltip_html": null,
      "show_status": false,
      "availability": null,
      "path": "/commity",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-07-25T18:14:55.639Z",
     "updated_at": "2022-07-25T18:14:55.656Z",
     "system": true,
     "noteable_id": 173,
     "noteable_type": "MergeRequest",
     "project_id": 411,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 2,
     "commands_changes": {},
     "external_author": null,
     "note": "assigned to @commity",
     "note_html": "<p data-sourcepos=\"1:1-1:20\" dir=\"auto\">assigned to <a href=\"/commity\" data-reference-type=\"user\" data-user=\"51\" data-container=\"body\" data-placement=\"top\" class=\"gfm gfm-project_member js-user-link\" title=\"commity\">@commity</a></p>",
     "body_first_line_html": "<p>assigned to <a href=\"/commity\" data-reference-type=\"user\" data-user=\"51\" class=\"gfm gfm-project_member js-user-link\" title=\"commity\">@commity</a></p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "user",
     "is_noteable_author": true,
     "discussion_id": "8c71b353a4392371c1742f30a6d20c2d9bc9b052",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/chaotikum/yt2mpd/-/merge_requests/2#note_1644",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "yt2mpd",
     "path": "/chaotikum/yt2mpd/notes/1644"
    }
   ]
  },
  {
   "id": "59fd248080996c7f66f01c353cfd605bd5d46407",
   "reply_id": "59fd248080996c7f66f01c353cfd605bd5d46407",
   "project_id": 411,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/chaotikum/yt2mpd/-/merge_requests/2/discussions/59fd248080996c7f66f01c353cfd605bd5d46407/resolve",
   "resolve_with_issue_path": "/chaotikum/yt2mpd/-/issues/new?discussion_to_resolve=59fd248080996c7f66f01c353cfd605bd5d46407&merge_request_id=173&merge_request_to_resolve_discussions_of=2",
   "notes": [
    {
     "id": "1645",
     "type": null,
     "author": {
      "id": 47,
      "username": "paul",
      "public_email": "",
      "name": "Paul",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/a4106f6e9909fa9fdadf799a8c6e0382dd30483c01ed2024a82e10d6144d1754?s=80&d=identicon",
      "status_tooltip_html": "<span class=\"user-status-emoji has-tooltip\" title=\"\" data-html=\"true\" data-placement=\"top\"><gl-emoji title=\"turtle\" data-name=\"turtle\" data-unicode-version=\"6.0\">\ud83d\udc22</gl-emoji></span>",
      "show_status": true,
      "availability": "not_set",
      "path": "/paul",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-07-25T21:46:43.722Z",
     "updated_at": "2022-07-25T21:46:43.724Z",
     "system": true,
     "noteable_id": 173,
     "noteable_type": "MergeRequest",
     "project_id": 411,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 2,
     "commands_changes": {},
     "external_author": null,
     "note": "approved this merge request",
     "note_html": "<p data-sourcepos=\"1:1-1:27\" dir=\"auto\">approved this merge request</p>",
     "body_first_line_html": "<p>approved this merge request</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "check",
     "is_noteable_author": false,
     "discussion_id": "59fd248080996c7f66f01c353cfd605bd5d46407",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/chaotikum/yt2mpd/-/merge_requests/2#note_1645",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "yt2mpd",
     "path": "/chaotikum/yt2mpd/notes/1645"
    }
   ]
  },
  {
   "id": "23f5123f9e9afe197d44833762be3f914af38323",
   "reply_id": "23f5123f9e9afe197d44833762be3f914af38323",
   "project_id": 411,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/chaotikum/yt2mpd/-/merge_requests/2/discussions/23f5123f9e9afe197d44833762be3f914af38323/resolve",
   "resolve_with_issue_path": "/chaotikum/yt2mpd/-/issues/new?discussion_to_resolve=23f5123f9e9afe197d44833762be3f914af38323&merge_request_id=173&merge_request_to_resolve_discussions_of=2",
   "notes": [
    {
     "id": "1646",
     "type": null,
     "author": {
      "id": 47,
      "username": "paul",
      "public_email": "",
      "name": "Paul",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/a4106f6e9909fa9fdadf799a8c6e0382dd30483c01ed2024a82e10d6144d1754?s=80&d=identicon",
      "status_tooltip_html": "<span class=\"user-status-emoji has-tooltip\" title=\"\" data-html=\"true\" data-placement=\"top\"><gl-emoji title=\"turtle\" data-name=\"turtle\" data-unicode-version=\"6.0\">\ud83d\udc22</gl-emoji></span>",
      "show_status": true,
      "availability": "not_set",
      "path": "/paul",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-07-25T21:46:58.965Z",
     "updated_at": "2022-07-25T21:46:58.967Z",
     "system": true,
     "noteable_id": 173,
     "noteable_type": "MergeRequest",
     "project_id": 411,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 2,
     "commands_changes": {},
     "external_author": null,
     "note": "mentioned in commit 8c28a893f9f5675b88eff59478abe9fa96257712",
     "note_html": "<p data-sourcepos=\"1:1-1:60\" dir=\"auto\">mentioned in commit <a href=\"/chaotikum/yt2mpd/-/commit/8c28a893f9f5675b88eff59478abe9fa96257712\" data-reference-type=\"commit\" data-original=\"8c28a893f9f5675b88eff59478abe9fa96257712\" data-link=\"false\" data-link-reference=\"false\" data-project=\"411\" data-commit=\"8c28a893f9f5675b88eff59478abe9fa96257712\" data-container=\"body\" data-placement=\"top\" title=\"Merge branch 'maintenance' into 'main'\" class=\"gfm gfm-commit has-tooltip\">8c28a893</a></p>",
     "body_first_line_html": "<p>mentioned in commit 8c28a893</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "comment-dots",
     "is_noteable_author": false,
     "discussion_id": "23f5123f9e9afe197d44833762be3f914af38323",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": "https://git.chaotikum.org/chaotikum/yt2mpd/-/merge_requests/2#note_1646",
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "yt2mpd",
     "path": "/chaotikum/yt2mpd/notes/1646"
    }
   ]
  },
  {
   "id": "4b68ee1b3ffe259331083aa271da04dce99e7725",
   "reply_id": "4b68ee1b3ffe259331083aa271da04dce99e7725",
   "project_id": 411,
   "commit_id": null,
   "confidential": false,
   "diff_discussion": false,
   "expanded": true,
   "for_commit": false,
   "individual_note": true,
   "resolvable": false,
   "discussion_path": null,
   "resolved": false,
   "resolved_by_push": false,
   "resolved_by": null,
   "resolved_at": null,
   "resolve_path": "/chaotikum/yt2mpd/-/merge_requests/2/discussions/4b68ee1b3ffe259331083aa271da04dce99e7725/resolve",
   "resolve_with_issue_path": "/chaotikum/yt2mpd/-/issues/new?discussion_to_resolve=4b68ee1b3ffe259331083aa271da04dce99e7725&merge_request_id=173&merge_request_to_resolve_discussions_of=2",
   "notes": [
    {
     "id": "4b68ee1b3ffe259331083aa271da04dce99e7725",
     "type": "StateNote",
     "author": {
      "id": 47,
      "username": "paul",
      "public_email": "",
      "name": "Paul",
      "state": "active",
      "locked": false,
      "avatar_url": "https://secure.gravatar.com/avatar/a4106f6e9909fa9fdadf799a8c6e0382dd30483c01ed2024a82e10d6144d1754?s=80&d=identicon",
      "status_tooltip_html": "<span class=\"user-status-emoji has-tooltip\" title=\"\" data-html=\"true\" data-placement=\"top\"><gl-emoji title=\"turtle\" data-name=\"turtle\" data-unicode-version=\"6.0\">\ud83d\udc22</gl-emoji></span>",
      "show_status": true,
      "availability": "not_set",
      "path": "/paul",
      "bot": false,
      "user_type": "human"
     },
     "created_at": "2022-07-25T21:46:59.018Z",
     "updated_at": "2022-07-25T21:46:59.018Z",
     "system": true,
     "noteable_id": 173,
     "noteable_type": "MergeRequest",
     "project_id": 411,
     "resolvable": false,
     "confidential": false,
     "internal": false,
     "imported": false,
     "imported_from": "none",
     "noteable_iid": 2,
     "commands_changes": {},
     "external_author": null,
     "note": "merged",
     "note_html": "<p data-sourcepos=\"1:1-1:6\" dir=\"auto\">merged</p>",
     "body_first_line_html": "<p>merged</p>",
     "current_user": {
      "can_edit": false,
      "can_award_emoji": false,
      "can_resolve": false,
      "can_resolve_discussion": false
     },
     "suggestions": [],
     "resolved": false,
     "resolved_by": null,
     "resolved_by_push": false,
     "system_note_icon_name": "merge",
     "is_noteable_author": false,
     "discussion_id": "4b68ee1b3ffe259331083aa271da04dce99e7725",
     "emoji_awardable": false,
     "report_abuse_path": "/-/abuse_reports/add_category",
     "noteable_note_url": null,
     "cached_markdown_version": 2162688,
     "human_access": "Owner",
     "is_contributor": false,
     "project_name": "yt2mpd"
    }
   ]
  }
 ]
}