CINXE.COM
Merge requests · project / social_course · GitLab
<!DOCTYPE html> <html class="gl-light ui-neutral with-top-bar with-header " lang="en"> <head prefix="og: http://ogp.me/ns#"> <meta charset="utf-8"> <meta content="IE=edge" http-equiv="X-UA-Compatible"> <meta content="width=device-width, initial-scale=1" name="viewport"> <title>Merge requests · project / social_course · GitLab</title> <script> //<![CDATA[ window.gon={};gon.math_rendering_limits_enabled=true;gon.features={"glqlIntegration":false,"mrApprovedFilter":false}; //]]> </script> <link rel="stylesheet" href="/assets/application-af238855527850d779bd76de661da2beaa4cfb68e7aaf1ec9cbfc533532bf72c.css" /> <link rel="stylesheet" href="/assets/page_bundles/issuable_list-9ada3f988b4ac7bac65b42eec3f74ae7dec8121b6df6dbc346d7524f6ed3ba3b.css" /><link rel="stylesheet" href="/assets/page_bundles/merge_request-9425a0575a7ea753ba5cdf36c277147b870fec461e5b7a7bd71dc0f006c7e6eb.css" /><link rel="stylesheet" href="/assets/page_bundles/commit_description-1e2cba4dda3c7b30dd84924809020c569f1308dea51520fe1dd5d4ce31403195.css" /><link rel="stylesheet" href="/assets/page_bundles/work_items-22a76cdd1fe2ae5431b7ff603f86212acaf81b49c4a932f19e3b3222dc1881ee.css" /><link rel="stylesheet" href="/assets/page_bundles/notes_shared-7e727ab1e91b421915feadeb04a1b9d57213cb1b2f8f56f4d894b34d6b42e9b3.css" /> <link rel="stylesheet" href="/assets/application_utilities-58bec0f2dc46133fc9e8548af9854688398e9d7263cc0fd95ec5739f2a069dec.css" /> <link rel="stylesheet" href="/assets/tailwind-70b8bab52dfd7aa6aed60c30df5810ad9f2fc8f45459913a04e921da7ee7f4c9.css" /> <link rel="stylesheet" href="/assets/fonts-fae5d3f79948bd85f18b6513a025f863b19636e85b09a1492907eb4b1bb0557b.css" /> <link rel="stylesheet" href="/assets/highlight/themes/white-e31d355458ead69f8798dbb62f54c60c4ccc7db35289cbbd2353ddfdf5109aac.css" /> <link rel="preload" href="/assets/application_utilities-58bec0f2dc46133fc9e8548af9854688398e9d7263cc0fd95ec5739f2a069dec.css" as="style" type="text/css"> <link rel="preload" href="/assets/application-af238855527850d779bd76de661da2beaa4cfb68e7aaf1ec9cbfc533532bf72c.css" as="style" type="text/css"> <link rel="preload" href="/assets/highlight/themes/white-e31d355458ead69f8798dbb62f54c60c4ccc7db35289cbbd2353ddfdf5109aac.css" as="style" type="text/css"> <script src="/assets/webpack/10.983bd1ac.chunk.js" defer="defer"></script> <script src="/assets/webpack/13.4882db81.chunk.js" defer="defer"></script> <script src="/assets/webpack/14.629d03c2.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.groups.analytics.dashboards-pages.groups.harbor.repositories-pages.groups.iteration_ca-b07ae190.ec7189d6.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.groups.new-pages.import.gitlab_projects.new-pages.import.manifest.new-pages.projects.n-44c6c18e.ddad2718.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.search.show-super_sidebar.5f6b2b7e.chunk.js" defer="defer"></script> <script src="/assets/webpack/super_sidebar.151ba159.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.projects-pages.projects.activity-pages.projects.alert_management.details-pages.project-68d77824.33350df1.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.c-285171be.75af5972.chunk.js" defer="defer"></script> <script src="/assets/webpack/9.d6268fbc.chunk.js" defer="defer"></script> <script src="/assets/webpack/16.996ed1d0.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.dashboard.issues-pages.groups.issues-pages.groups.merge_requests-pages.groups.roadmap.-efcf3b68.f680f9da.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.dashboard.milestones.show-pages.groups.merge_requests-pages.groups.milestones.edit-pag-530c8423.2714b695.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.dashboard.todos.index-pages.groups.merge_requests-pages.groups.roadmap.show-pages.grou-6cefecc0.6e81072c.chunk.js" defer="defer"></script> <script src="/assets/webpack/37.87db4f62.chunk.js" defer="defer"></script> <script src="/assets/webpack/42.49187b26.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.dashboard.issues-pages.groups.merge_requests-pages.groups.work_items-pages.groups.work-268aba78.4b7ee5a8.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.analytics.productivity_analytics-pages.dashboard.issues-pages.dashboard.merge_requests-0cf6ff28.6aa7c36d.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.groups.merge_requests-pages.projects.merge_requests.conflicts-pages.projects.merge_req-1d65eaee.b21e57fe.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.groups.merge_requests-pages.projects.merge_requests.conflicts-pages.projects.merge_req-e3a02231.8b1a9cdb.chunk.js" defer="defer"></script> <script src="/assets/webpack/commons-pages.dashboard.merge_requests-pages.dashboard.search_merge_requests-pages.groups.merge_requ-12012134.43cb86b3.chunk.js" defer="defer"></script> <script src="/assets/webpack/236.dbce8569.chunk.js" defer="defer"></script> <script src="/assets/webpack/pages.projects.merge_requests.index.855b395f.chunk.js" defer="defer"></script> <script src="/assets/webpack/runtime.ef1d5f7d.bundle.js" defer="defer"></script> <script src="/assets/webpack/main.60ef53f4.chunk.js" defer="defer"></script> <script src="/assets/webpack/redirect_listbox.c8f7cd6e.chunk.js" defer="defer"></script> <meta content="object" property="og:type"> <meta content="GitLab" property="og:site_name"> <meta content="Merge requests · project / social_course · GitLab" property="og:title"> <meta content="For more information about this repository, visit the project page at https://www.drupal.org/project/social_course" property="og:description"> <meta content="https://git.drupalcode.org/assets/twitter_card-570ddb06edf56a2312253c5872489847a0f385112ddbcd71ccfa1570febab5d2.jpg" property="og:image"> <meta content="64" property="og:image:width"> <meta content="64" property="og:image:height"> <meta content="https://git.drupalcode.org/project/social_course/-/merge_requests" property="og:url"> <meta content="summary" property="twitter:card"> <meta content="Merge requests · project / social_course · GitLab" property="twitter:title"> <meta content="For more information about this repository, visit the project page at https://www.drupal.org/project/social_course" property="twitter:description"> <meta content="https://git.drupalcode.org/assets/twitter_card-570ddb06edf56a2312253c5872489847a0f385112ddbcd71ccfa1570febab5d2.jpg" property="twitter:image"> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="ROfPn41QFsf6khoaz6sZD3zvgo-3jHDq1zJ-GBTPwzgxFvT-qe68XFzoDK-rdbWRN6-aAuhY7PWjgPX6iY3VXg" /> <meta name="csp-nonce" /> <meta name="action-cable-url" content="/-/cable" /> <link href="/-/manifest.json" rel="manifest"> <link rel="icon" type="image/png" href="/uploads/-/system/appearance/favicon/1/gitlab-drop.png" id="favicon" data-original-href="/uploads/-/system/appearance/favicon/1/gitlab-drop.png" /> <link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-touch-icon-b049d4bc0dd9626f31db825d61880737befc7835982586d015bded10b4435460.png" /> <link href="/search/opensearch.xml" rel="search" title="Search GitLab" type="application/opensearchdescription+xml"> <link rel="alternate" type="application/atom+xml" title="social_course merge requests" href="https://git.drupalcode.org/project/social_course/-/merge_requests.atom?state=opened" /> <meta content="For more information about this repository, visit the project page at https://www.drupal.org/project/social_course" name="description"> <meta content="#ececef" name="theme-color"> </head> <body class="tab-width-8 gl-browser-ie gl-platform-windows" data-group="project" data-group-full-path="project" data-namespace-id="2" data-page="projects:merge_requests:index" data-project="social_course" data-project-full-path="project/social_course" data-project-id="54096"> <script> //<![CDATA[ gl = window.gl || {}; gl.client = {"isIe":true,"isWindows":true}; //]]> </script> <header class="header-logged-out" data-testid="navbar"> <a class="gl-sr-only gl-accessibility" href="#content-body">Skip to content</a> <div class="container-fluid"> <nav aria-label="Explore GitLab" class="header-logged-out-nav gl-flex gl-gap-3 gl-justify-between"> <div class="gl-flex gl-items-center gl-gap-1"> <span class="gl-sr-only">GitLab</span> <a title="Homepage" id="logo" class="header-logged-out-logo has-tooltip" aria-label="Homepage" href="/"><img class="brand-header-logo lazy" alt="" data-src="/uploads/-/system/appearance/header_logo/1/gitlab-drop.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </a></div> <ul class="gl-list-none gl-p-0 gl-m-0 gl-flex gl-gap-3 gl-items-center gl-grow"> <li class="header-logged-out-nav-item"> <a class="" href="/explore">Explore</a> </li> </ul> <ul class="gl-list-none gl-p-0 gl-m-0 gl-flex gl-gap-3 gl-items-center gl-justify-end"> <li class="header-logged-out-nav-item"> <a href="/users/sign_in?redirect_to_referer=yes">Sign in</a> </li> </ul> </nav> </div> </header> <div class="layout-page page-with-super-sidebar"> <aside class="js-super-sidebar super-sidebar super-sidebar-loading" data-command-palette="{"project_files_url":"/project/social_course/-/files/5.1.x?format=json","project_blob_url":"/project/social_course/-/blob/5.1.x"}" data-force-desktop-expanded-sidebar="" data-is-saas="false" data-root-path="/" data-sidebar="{"is_logged_in":false,"context_switcher_links":[{"title":"Explore","link":"/explore","icon":"compass"}],"current_menu_items":[{"id":"project_overview","title":"social_course","entity_id":54096,"link":"/project/social_course","link_classes":"shortcuts-project","is_active":false},{"id":"manage_menu","title":"Manage","icon":"users","avatar_shape":"rect","link":"/project/social_course/activity","is_active":false,"items":[{"id":"activity","title":"Activity","link":"/project/social_course/activity","link_classes":"shortcuts-project-activity","is_active":false},{"id":"members","title":"Members","link":"/project/social_course/-/project_members","is_active":false},{"id":"labels","title":"Labels","link":"/project/social_course/-/labels","is_active":false}],"separated":false},{"id":"plan_menu","title":"Plan","icon":"planning","avatar_shape":"rect","link":"/project/social_course/-/wikis/home","is_active":false,"items":[{"id":"project_wiki","title":"Wiki","link":"/project/social_course/-/wikis/home","link_classes":"shortcuts-wiki","is_active":false},{"id":"external_issue_tracker","title":"Custom issue tracker","link":"https://www.drupal.org/project/social_course","link_classes":"shortcuts-external_tracker","is_active":false}],"separated":false},{"id":"code_menu","title":"Code","icon":"code","avatar_shape":"rect","link":"/project/social_course/-/merge_requests","is_active":true,"items":[{"id":"project_merge_request_list","title":"Merge requests","link":"/project/social_course/-/merge_requests","pill_count_field":"openMergeRequestsCount","link_classes":"shortcuts-merge_requests","is_active":true},{"id":"files","title":"Repository","link":"/project/social_course/-/tree/5.1.x","link_classes":"shortcuts-tree","is_active":false},{"id":"branches","title":"Branches","link":"/project/social_course/-/branches","is_active":false},{"id":"commits","title":"Commits","link":"/project/social_course/-/commits/5.1.x?ref_type=heads","link_classes":"shortcuts-commits","is_active":false},{"id":"tags","title":"Tags","link":"/project/social_course/-/tags","is_active":false},{"id":"graphs","title":"Repository graph","link":"/project/social_course/-/network/5.1.x?ref_type=heads","link_classes":"shortcuts-network","is_active":false},{"id":"compare","title":"Compare revisions","link":"/project/social_course/-/compare?from=5.1.x\u0026to=5.1.x","is_active":false},{"id":"project_snippets","title":"Snippets","link":"/project/social_course/-/snippets","link_classes":"shortcuts-snippets","is_active":false},{"id":"file_locks","title":"Locked files","link":"/project/social_course/path_locks","is_active":false}],"separated":false},{"id":"build_menu","title":"Build","icon":"rocket","avatar_shape":"rect","link":"/project/social_course/-/pipelines","is_active":false,"items":[{"id":"pipelines","title":"Pipelines","link":"/project/social_course/-/pipelines","link_classes":"shortcuts-pipelines","is_active":false},{"id":"jobs","title":"Jobs","link":"/project/social_course/-/jobs","link_classes":"shortcuts-builds","is_active":false},{"id":"pipeline_schedules","title":"Pipeline schedules","link":"/project/social_course/-/pipeline_schedules","link_classes":"shortcuts-builds","is_active":false},{"id":"artifacts","title":"Artifacts","link":"/project/social_course/-/artifacts","link_classes":"shortcuts-builds","is_active":false}],"separated":false},{"id":"deploy_menu","title":"Deploy","icon":"deployments","avatar_shape":"rect","link":"/project/social_course/-/ml/models","is_active":false,"items":[{"id":"model_registry","title":"Model registry","link":"/project/social_course/-/ml/models","is_active":false}],"separated":false},{"id":"analyze_menu","title":"Analyze","icon":"chart","avatar_shape":"rect","link":"/project/social_course/-/value_stream_analytics","is_active":false,"items":[{"id":"cycle_analytics","title":"Value stream analytics","link":"/project/social_course/-/value_stream_analytics","link_classes":"shortcuts-project-cycle-analytics","is_active":false},{"id":"contributors","title":"Contributor analytics","link":"/project/social_course/-/graphs/5.1.x?ref_type=heads","is_active":false},{"id":"ci_cd_analytics","title":"CI/CD analytics","link":"/project/social_course/-/pipelines/charts","is_active":false},{"id":"repository_analytics","title":"Repository analytics","link":"/project/social_course/-/graphs/5.1.x/charts","link_classes":"shortcuts-repository-charts","is_active":false},{"id":"code_review","title":"Code review analytics","link":"/project/social_course/-/analytics/code_reviews","is_active":false},{"id":"insights","title":"Insights","link":"/project/social_course/insights/","link_classes":"shortcuts-project-insights","is_active":false},{"id":"model_experiments","title":"Model experiments","link":"/project/social_course/-/ml/experiments","is_active":false}],"separated":false}],"current_context_header":"Project","support_path":"https://about.gitlab.com/get-help/","docs_path":"/help/docs","display_whats_new":false,"show_version_check":null,"search":{"search_path":"/search","issues_path":"/dashboard/issues","mr_path":"/dashboard/merge_requests","autocomplete_path":"/search/autocomplete","settings_path":"/search/settings","search_context":{"group":{"id":2,"name":"project","full_name":"project"},"group_metadata":{"issues_path":"/groups/project/-/issues","mr_path":"/groups/project/-/merge_requests"},"project":{"id":54096,"name":"social_course"},"project_metadata":{"mr_path":"/project/social_course/-/merge_requests"},"code_search":false,"scope":"merge_requests","for_snippets":null}},"panel_type":"project","shortcut_links":[{"title":"Snippets","href":"/explore/snippets","css_class":"dashboard-shortcuts-snippets"},{"title":"Groups","href":"/explore/groups","css_class":"dashboard-shortcuts-groups"},{"title":"Projects","href":"/explore/projects/starred","css_class":"dashboard-shortcuts-projects"}],"terms":"/-/users/terms"}"></aside> <div class="content-wrapper"> <div class="broadcast-wrapper"> </div> <div class="alert-wrapper alert-wrapper-top-space gl-flex gl-flex-col gl-gap-3 container-fluid container-limited"> <div class="gl-alert gl-alert-danger gl-alert-not-dismissible" role="alert"> <div class="gl-alert-icon-container"> <svg class="s16 gl-alert-icon gl-alert-icon-no-title" data-testid="error-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#error"></use></svg> </div> <div class="gl-alert-content" role="alert"> <div class="gl-alert-body"> GitLab may not work properly, because you are using an outdated web browser. <br> Please install a <a target="_blank" rel="noopener noreferrer" href="/help/install/requirements.md#supported-web-browsers">supported web browser</a> for a better experience. </div> </div> </div> </div> <div class="top-bar-fixed container-fluid" data-testid="top-bar"> <div class="top-bar-container gl-flex gl-items-center gl-gap-2"> <div class="gl-grow gl-basis-0 gl-flex gl-items-center gl-justify-start"> <button class="gl-button btn btn-icon btn-md btn-default btn-default-tertiary js-super-sidebar-toggle-expand super-sidebar-toggle -gl-ml-3" aria-controls="super-sidebar" aria-expanded="false" aria-label="Primary navigation sidebar" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="sidebar-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#sidebar"></use></svg> </button> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"project","item":"https://git.drupalcode.org/project"},{"@type":"ListItem","position":2,"name":"social_course","item":"https://git.drupalcode.org/project/social_course"},{"@type":"ListItem","position":3,"name":"Merge requests","item":"https://git.drupalcode.org/project/social_course/-/merge_requests"}]} </script> <div data-testid="breadcrumb-links" id="js-vue-page-breadcrumbs-wrapper"> <div data-breadcrumbs-json="[{"text":"project","href":"/project","avatarPath":null},{"text":"social_course","href":"/project/social_course","avatarPath":null},{"text":"Merge requests","href":"/project/social_course/-/merge_requests","avatarPath":null}]" id="js-vue-page-breadcrumbs"></div> <div id="js-injected-page-breadcrumbs"></div> </div> </div> <div class="gl-flex-none gl-flex gl-items-center gl-justify-center"> <div id="js-advanced-search-modal"></div> </div> <div class="gl-grow gl-basis-0 gl-flex gl-items-center gl-justify-end"> <div id="js-work-item-feedback"></div> </div> </div> </div> <div class="container-fluid container-limited project-highlight-puc"> <main class="content" id="content-body" itemscope itemtype="http://schema.org/SoftwareSourceCode"> <div class="flash-container flash-container-page sticky" data-testid="flash-container"> <div id="js-global-alerts"></div> </div> <div class="top-area"> <ul class="issues-state-filters gl-border-b-0 gl-grow nav gl-tabs-nav" role="tablist"><li role="presentation" class="nav-item"><a id="state-opened" title="Filter by merge requests that are currently open." data-state="opened" role="tab" class="nav-link gl-tab-nav-item active gl-tab-nav-item-active" href="/project/social_course/-/merge_requests?state=opened"><span>Open</span> <span class="gl-badge badge badge-pill badge-muted gl-tab-counter-badge gl-hidden sm:gl-inline-flex"><span class="gl-badge-content">3</span></span> </a></li><li role="presentation" class="nav-item"><a id="state-merged" title="Filter by merge requests that are currently merged." data-state="merged" role="tab" class="nav-link gl-tab-nav-item" href="/project/social_course/-/merge_requests?state=merged"><span>Merged</span> <span class="gl-badge badge badge-pill badge-muted gl-tab-counter-badge gl-hidden sm:gl-inline-flex"><span class="gl-badge-content">71</span></span> </a></li><li role="presentation" class="nav-item"><a id="state-closed" title="Filter by merge requests that are currently closed and unmerged." data-state="closed" role="tab" class="nav-link gl-tab-nav-item" href="/project/social_course/-/merge_requests?state=closed"><span>Closed</span> <span class="gl-badge badge badge-pill badge-muted gl-tab-counter-badge gl-hidden sm:gl-inline-flex"><span class="gl-badge-content">9</span></span> </a></li><li role="presentation" class="nav-item"><a id="state-all" title="Show all merge requests." data-state="all" role="tab" class="nav-link gl-tab-nav-item" href="/project/social_course/-/merge_requests?state=all"><span>All</span> <span class="gl-badge badge badge-pill badge-muted gl-tab-counter-badge gl-hidden sm:gl-inline-flex"><span class="gl-badge-content">83</span></span> </a></li> </ul> <div class="nav-controls"> <a class="gl-button btn btn-md btn-link !gl-mr-4" href="/project/social_course/-/merge_trains"><span class="gl-button-text"> Merge trains </span> </a> <div data-export-csv-path="/project/social_course/-/merge_requests/export_csv" data-is-signed-in="false" data-issuable-count="3" data-issuable-type="merge_request" data-rss-url="/project/social_course/-/merge_requests.atom?state=opened" id="js-vue-mr-list-more-actions"></div> </div> </div> <div class="issues-filters"> <div class="issues-details-filters filtered-search-block gl-flex gl-flex-col lg:gl-flex-row gl-gap-3 row-content-block second-block "> <div class="gl-flex gl-flex-col md:gl-flex-row gl-grow gl-w-full"> <form class="filter-form js-filter-form gl-w-full" action="/project/social_course/-/merge_requests?" accept-charset="UTF-8" method="get"><div class="issues-other-filters filtered-search-wrapper gl-flex gl-flex-col md:gl-flex-row"> <div class="filtered-search-box"> <div class="dropdown filtered-search-history-dropdown-wrapper"><button class="dropdown-menu-toggle gl-button btn btn-default filtered-search-history-dropdown-toggle-button" type="button" data-toggle="dropdown"><span class="dropdown-toggle-text "><span><svg class="s16" data-testid="history-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#history"></use></svg></span><span class="gl-sr-only">Recent searches</span></span><svg class="s16 dropdown-menu-toggle-icon" data-testid="chevron-down-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#chevron-down"></use></svg></button><div class="dropdown-menu dropdown-select filtered-search-history-dropdown"><div data-testid="dropdown-list-content" class="dropdown-content filtered-search-history-dropdown-content"><div class="js-filtered-search-history-dropdown" data-full-path="project/social_course"></div> </div><div class="dropdown-loading"><div class="gl-spinner-container gl-mt-7" role="status"><span aria-hidden class="gl-spinner gl-spinner-md gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span> </div></div></div></div><div class="filtered-search-box-input-container droplab-dropdown"> <div class="scroll-container"> <ul class="tokens-container list-unstyled"> <li class="input-token"> <input aria-label="Add search filter" autocomplete="off" class="form-control filtered-search" data-environments-endpoint="/project/social_course/unfoldered_environment_names" data-epics-endpoint="/api/v4/groups/2/epics" data-iterations-endpoint="/api/v4/projects/54096/iterations" data-labels-endpoint="/project/social_course/-/labels" data-milestones-endpoint="/project/social_course/-/milestones" data-project-id="54096" data-releases-endpoint="/project/social_course/-/releases" id="filtered-search-merge_requests" placeholder="Search or filter results…"> </li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-hint"> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item" data-action="{{hint === 'search' ? 'submit' : '' }}" data-hint="{{hint}}" data-tag="{{tag}}"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-inline-flex"> <svg> <use xlink:href="{{icon}}"></use> </svg> {{ formattedKey }} </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-operator"> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item" data-value="{{ title }}"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-inline-flex gl-justify-between gl-w-full"> {{ title }} <span class="gl-text-subtle"> {{ help }} </span> </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-author"> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-flex gl-items-center"> <div class="gl-shrink-0"> <img alt="{{name}}'s avatar" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{avatar_url}}" class="avatar s32 lazy" title="{{name}}"> </div> <div class="gl-flex gl-flex-col"> <span class="gl-font-bold gl-whitespace-normal gl-break-words"> {{name}} </span> <span class="js-dropdown-light-content gl-text-subtle gl-whitespace-normal gl-break-all"> @{{username}} </span> </div> </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-assignee"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-flex gl-items-center"> <div class="gl-shrink-0"> <img alt="{{name}}'s avatar" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{avatar_url}}" class="avatar s32 lazy" title="{{name}}"> </div> <div class="gl-flex gl-flex-col"> <span class="gl-font-bold gl-whitespace-normal gl-break-words"> {{name}} </span> <span class="js-dropdown-light-content gl-text-subtle gl-whitespace-normal gl-break-all"> @{{username}} </span> </div> </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-reviewer"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-flex gl-items-center"> <div class="gl-shrink-0"> <img alt="{{name}}'s avatar" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{avatar_url}}" class="avatar s32 lazy" title="{{name}}"> </div> <div class="gl-flex gl-flex-col"> <span class="gl-font-bold gl-whitespace-normal gl-break-words"> {{name}} </span> <span class="js-dropdown-light-content gl-text-subtle gl-whitespace-normal gl-break-all"> @{{username}} </span> </div> </span> </button></li> </ul> </div> <div class="filtered-search-input-dropdown-menu dropdown-menu" id="js-dropdown-approver"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-flex gl-items-center"> <div class="gl-shrink-0"> <img alt="{{name}}'s avatar" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{avatar_url}}" class="avatar s32 lazy" title="{{name}}"> </div> <div class="gl-flex gl-flex-col"> <span class="gl-font-bold gl-whitespace-normal gl-break-words"> {{name}} </span> <span class="js-dropdown-light-content gl-text-subtle gl-whitespace-normal gl-break-all"> @{{username}} </span> </div> </span> </button></li> </ul> </div> <div class="filtered-search-input-dropdown-menu dropdown-menu" id="js-dropdown-approved-by"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-flex gl-items-center"> <div class="gl-shrink-0"> <img alt="{{name}}'s avatar" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{avatar_url}}" class="avatar s32 lazy" title="{{name}}"> </div> <div class="gl-flex gl-flex-col"> <span class="gl-font-bold gl-whitespace-normal gl-break-words"> {{name}} </span> <span class="js-dropdown-light-content gl-text-subtle gl-whitespace-normal gl-break-all"> @{{username}} </span> </div> </span> </button></li> </ul> </div> <div class="filtered-search-input-dropdown-menu dropdown-menu" id="js-dropdown-merge-user"> <ul data-dropdown> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-flex gl-items-center"> <div class="gl-shrink-0"> <img alt="{{name}}'s avatar" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="{{avatar_url}}" class="avatar s32 lazy" title="{{name}}"> </div> <div class="gl-flex gl-flex-col"> <span class="gl-font-bold gl-whitespace-normal gl-break-words"> {{name}} </span> <span class="js-dropdown-light-content gl-text-subtle gl-whitespace-normal gl-break-all"> @{{username}} </span> </div> </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-milestone"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="filter-dropdown-item" data-value="Upcoming"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Upcoming </span> </button></li> <li class="filter-dropdown-item" data-value="Started"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Started </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button class="gl-button btn btn-md btn-link js-data-value" type="button"><span class="gl-button-text"> {{title}} </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-release"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button class="gl-button btn btn-md btn-link js-data-value" type="button"><span class="gl-button-text"> {{title}} </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-label"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-inline-flex gl-gap-3"> <span class="dropdown-label-box gl-m-0" style="background: {{color}}"></span> <span class="label-title js-data-value"> {{title}} </span> </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-my-reaction"> <ul data-dropdown> <li class="filter-dropdown-item" data-value="None"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> None </span> </button></li> <li class="filter-dropdown-item" data-value="Any"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Any </span> </button></li> <li class="divider droplab-item-ignore"></li> </ul> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text gl-inline-flex gl-gap-1"> <gl-emoji></gl-emoji> <span class="js-data-value"> {{name}} </span> </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-wip"> <ul class="filter-dropdown" data-dropdown> <li class="filter-dropdown-item" data-capitalize data-value="yes"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Yes </span> </button></li> <li class="filter-dropdown-item" data-capitalize data-value="no"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> No </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-confidential"> <ul class="filter-dropdown" data-dropdown> <li class="filter-dropdown-item" data-capitalize data-value="yes"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> Yes </span> </button></li> <li class="filter-dropdown-item" data-capitalize data-value="no"> <button type="button" class="gl-button btn btn-md btn-link "><span class="gl-button-text"> No </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-target-branch"> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button class="gl-button btn btn-md btn-link gl-font-monospace js-data-value" type="button"><span class="gl-button-text"> {{title}} </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-source-branch"> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button class="gl-button btn btn-md btn-link gl-font-monospace js-data-value" type="button"><span class="gl-button-text"> {{title}} </span> </button></li> </ul> </div> <div class="gl-filtered-search-suggestion-list dropdown-menu" id="js-dropdown-environment"> <ul class="filter-dropdown" data-dropdown data-dynamic> <li class="filter-dropdown-item"> <button class="gl-button btn btn-md btn-link js-data-value" type="button"><span class="gl-button-text"> {{title}} </span> </button></li> </ul> </div> </div> <button class="gl-button btn btn-icon btn-sm btn-default btn-default-tertiary clear-search hidden gl-self-center gl-mr-1 has-tooltip" title="Clear" type="button"><svg class="s16 gl-icon gl-button-icon clear-search-icon" data-testid="clear-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#clear"></use></svg> </button> </div> </div> </form></div> <div class="filter-dropdown-container gl-flex gl-flex-col md:gl-flex-row gl-items-start"> <div> <div class="btn-group" role="group"> <div class="gl-new-dropdown js-redirect-listbox btn-group" data-placement="right" data-items="[{"value":"priority","text":"Priority","href":"/project/social_course/-/merge_requests?sort=priority"},{"value":"created_date","text":"Created date","href":"/project/social_course/-/merge_requests?sort=created_date"},{"value":"closed_at","text":"Closed date","href":"/project/social_course/-/merge_requests?sort=closed_at"},{"value":"updated_desc","text":"Updated date","href":"/project/social_course/-/merge_requests?sort=updated_desc"},{"value":"milestone","text":"Milestone due date","href":"/project/social_course/-/merge_requests?sort=milestone"},{"value":"popularity","text":"Popularity","href":"/project/social_course/-/merge_requests?sort=popularity"},{"value":"label_priority","text":"Label priority","href":"/project/social_course/-/merge_requests?sort=label_priority"},{"value":"title_asc","text":"Title","href":"/project/social_course/-/merge_requests?sort=title_asc"}]" data-selected="created_date"><button class="gl-button btn btn-md btn-default gl-new-dropdown-toggle" type="button"><span class="gl-button-text"> <span class="gl-new-dropdown-button-text">Created date</span><svg class="s16 gl-button-icon gl-new-dropdown-chevron gl-icon" data-testid="chevron-down-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#chevron-down"></use></svg> </span> </button></div> <a class="gl-button btn btn-icon btn-md btn-default has-tooltip reverse-sort-btn rspec-reverse-sort" title="Sort direction" href="/project/social_course/-/merge_requests?sort=created_asc"><svg class="s16 gl-icon gl-button-icon " data-testid="sort-highest-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#sort-highest"></use></svg> </a> </div> </div> </div> </div> </div> <div class="merge-requests-holder"> <ul class="content-list mr-list issuable-list"> <li class="merge-request" data-id="106565" data-labels="[]" id="merge_request_106565"> <div class="issuable-info-container gl-flex-col md:gl-flex-row gl-gap-3"> <div class="issuable-main-info !gl-mr-0"> <div class="merge-request-title title"> <span class="merge-request-title-text js-onboarding-mr-item"> <a class="js-prefetch-document" href="/project/social_course/-/merge_requests/81">Issue #3502762: Access to courses is controlled by permissions</a> </span> </div> <div class="issuable-info"> <span class="issuable-reference gl-inline-block"> !81 </span> <span class="gl-hidden sm:gl-inline"> <span class="issuable-authored gl-inline-block !gl-text-subtle"> · created <time class="js-timeago" title="Jan 28, 2025 11:02am" datetime="2025-01-28T11:02:28Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Jan 28, 2025</time> by <a class="author-link !gl-text-subtle js-user-link" data-user-id="55509" data-username="nechay-dev" data-name="vnech" href="/nechay-dev"><span class="author">vnech</span></a> </span> <span class="project-ref-path has-tooltip gl-inline-block gl-truncate gl-max-w-26 gl-align-bottom" title="Target branch: 6.2.x"> <a class="ref-name !gl-text-subtle" href="/project/social_course/-/commits/6.2.x"><svg class="s12 fork-sprite" data-testid="branch-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#branch"></use></svg> 6.2.x </a></span> </span> </div> </div> <div class="gl-text-sm gl-flex gl-shrink-0 gl-self-start gl-gap-1 gl-flex-row gl-justify-between gl-w-full md:gl-w-auto md:!gl-flex-col"> <ul class="controls gl-gap-3 gl-pl-0 gl-self-end"> </ul> <div class="issuable-updated-at gl-self-end gl-hidden sm:gl-inline-block gl-text-subtle"> <span> updated <time class="js-timeago merge_request_updated_ago" title="Jan 28, 2025 11:02am" datetime="2025-01-28T11:02:29Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Jan 28, 2025</time> </span> </div> </div> </div> </li> <li class="merge-request" data-id="95736" data-labels="[]" id="merge_request_95736"> <div class="issuable-info-container gl-flex-col md:gl-flex-row gl-gap-3"> <div class="issuable-main-info !gl-mr-0"> <div class="merge-request-title title"> <span class="merge-request-title-text js-onboarding-mr-item"> <a class="js-prefetch-document" href="/project/social_course/-/merge_requests/71">Issue #3480856: Replace node grants with node query alters</a> </span> </div> <div class="issuable-info"> <span class="issuable-reference gl-inline-block"> !71 </span> <span class="gl-hidden sm:gl-inline"> <span class="issuable-authored gl-inline-block !gl-text-subtle"> · created <time class="js-timeago" title="Oct 15, 2024 3:20pm" datetime="2024-10-15T15:20:51Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Oct 15, 2024</time> by <a class="author-link !gl-text-subtle js-user-link" data-user-id="55509" data-username="nechay-dev" data-name="vnech" href="/nechay-dev"><span class="author">vnech</span></a> </span> <span class="project-ref-path has-tooltip gl-inline-block gl-truncate gl-max-w-26 gl-align-bottom" title="Target branch: 6.2.x"> <a class="ref-name !gl-text-subtle" href="/project/social_course/-/commits/6.2.x"><svg class="s12 fork-sprite" data-testid="branch-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#branch"></use></svg> 6.2.x </a></span> </span> </div> </div> <div class="gl-text-sm gl-flex gl-shrink-0 gl-self-start gl-gap-1 gl-flex-row gl-justify-between gl-w-full md:gl-w-auto md:!gl-flex-col"> <ul class="controls gl-gap-3 gl-pl-0 gl-self-end"> <li class="gl-block has-tooltip !gl-mr-0" data-testid="issuable-upvotes" title="Upvotes"> <svg class="s16 gl-align-middle" data-testid="thumb-up-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#thumb-up"></use></svg> 1 </li> </ul> <div class="issuable-updated-at gl-self-end gl-hidden sm:gl-inline-block gl-text-subtle"> <span> updated <time class="js-timeago merge_request_updated_ago" title="Feb 13, 2025 11:05am" datetime="2025-02-13T11:05:08Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Feb 13, 2025</time> </span> </div> </div> </div> </li> <li class="merge-request" data-id="38375" data-labels="[]" id="merge_request_38375"> <div class="issuable-info-container gl-flex-col md:gl-flex-row gl-gap-3"> <div class="issuable-main-info !gl-mr-0"> <div class="merge-request-title title"> <span class="merge-request-title-text js-onboarding-mr-item"> <a class="js-prefetch-document" href="/project/social_course/-/merge_requests/39">Issue #3345506 by zanivdmar: Missing option to accept invite when course...</a> </span> </div> <div class="issuable-info"> <span class="issuable-reference gl-inline-block"> !39 </span> <span class="gl-hidden sm:gl-inline"> <span class="issuable-authored gl-inline-block !gl-text-subtle"> · created <time class="js-timeago" title="Mar 3, 2023 9:09am" datetime="2023-03-03T09:09:58Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Mar 03, 2023</time> by <a class="author-link !gl-text-subtle js-user-link" data-user-id="49031" data-username="zanvidmar" data-name="zanvidmar" href="/zanvidmar"><span class="author">zanvidmar</span></a> </span> </span> </div> </div> <div class="gl-text-sm gl-flex gl-shrink-0 gl-self-start gl-gap-1 gl-flex-row gl-justify-between gl-w-full md:gl-w-auto md:!gl-flex-col"> <ul class="controls gl-gap-3 gl-pl-0 gl-self-end"> <li class="issuable-pipeline-broken gl-flex !gl-mr-0"> <a class="has-tooltip" title="Cannot be merged automatically" href="/project/social_course/-/merge_requests/39"><svg class="s16" data-testid="warning-solid-icon"><use href="/assets/icons-8791a66659d025e0a4c801978c79a1fbd82db1d27d85f044a35728ea7cf0ae80.svg#warning-solid"></use></svg> </a></li> </ul> <div class="issuable-updated-at gl-self-end gl-hidden sm:gl-inline-block gl-text-subtle"> <span> updated <time class="js-timeago merge_request_updated_ago" title="Mar 3, 2023 9:10am" datetime="2023-03-03T09:10:06Z" data-toggle="tooltip" data-placement="bottom" data-container="body">Mar 03, 2023</time> </span> </div> </div> </div> </li> </ul> </div> </main> </div> </div> </div> <script> //<![CDATA[ if ('loading' in HTMLImageElement.prototype) { document.querySelectorAll('img.lazy').forEach(img => { img.loading = 'lazy'; let imgUrl = img.dataset.src; // Only adding width + height for avatars for now if (imgUrl.indexOf('/avatar/') > -1 && imgUrl.indexOf('?') === -1) { const targetWidth = img.getAttribute('width') || img.width; imgUrl += `?width=${targetWidth}`; } img.src = imgUrl; img.removeAttribute('data-src'); img.classList.remove('lazy'); img.classList.add('js-lazy-loaded'); img.dataset.testid = 'js-lazy-loaded-content'; }); } //]]> </script> <script> //<![CDATA[ gl = window.gl || {}; gl.experiments = {}; //]]> </script> </body> </html>