<!DOCTYPE html>
<html class="html-devise-layout gl-system" lang="en">
<head>
<meta charset="utf-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="width=device-width, initial-scale=1" name="viewport">
<title>Sign in · GitLab</title>
<script>
//<![CDATA[
window.gon={};gon.features={"passkeys":true,"twoStepSignIn":false};
//]]>
</script>

<script>
//<![CDATA[
const root = document.documentElement;
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
  root.classList.add('gl-dark');
}

window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
  if (e.matches) {
    root.classList.add('gl-dark');
  } else {
    root.classList.remove('gl-dark');
  }
});

//]]>
</script>




<meta content="light dark" name="color-scheme">
<link rel="stylesheet" href="/assets/application-6cfc5bf1accc7be60a097014ba8b526bd361cfa9f5b0755ec6c38716971f3f05.css" media="(prefers-color-scheme: light)" />
<link rel="stylesheet" href="/assets/application_dark-78fb9312ecec789a0e5325c913c3401bf8b9ca4dac842db0da7f0127028c6117.css" media="(prefers-color-scheme: dark)" />
<link rel="stylesheet" href="/assets/page_bundles/login-7240ec00cf3969b710fe5e8959f8ef8eeff66d635ded28839b1b4256ae8d96a3.css" /><link rel="stylesheet" href="/assets/page_bundles/commit_description-9e7efe20f0cef17d0606edabfad0418e9eb224aaeaa2dae32c817060fa60abcc.css" /><link rel="stylesheet" href="/assets/page_bundles/work_items-fe78a3dcdbc87456d93535d15aa5ef609b9a8623591a687b335e85fa08fdbd12.css" /><link rel="stylesheet" href="/assets/page_bundles/notes_shared-e58f07f39b2c4557134baf9f32b68c875fffb37fe1c5d8808fb7607d19f5690b.css" />
<link rel="stylesheet" href="/assets/tailwind_cqs-ef4824f60d56559339ee7cfc71e29c445ebea667adc766d6ee1f6eb3bfc9f2bc.css" />


<link rel="stylesheet" href="/assets/fonts-deb7ad1d55ca77c0172d8538d53442af63604ff490c74acc2859db295c125bdb.css" />
<link rel="stylesheet" href="/assets/highlight/themes/white-91053d9b33e6ca83f1ccc9f675156756bb42617c9bc1cda4b3915abc0547ceda.css" media="(prefers-color-scheme: light)" />
<link rel="stylesheet" href="/assets/highlight/themes/dark-fa67ecd7679c9e378a28d89e0ab7f2423d7dbba3770b71f213b0453730ea247e.css" media="(prefers-color-scheme: dark)" />

<script src="/assets/webpack/runtime.f0ed7b7d.bundle.js" defer="defer"></script>
<script src="/assets/webpack/main.a61fc596.chunk.js" defer="defer"></script>
<script src="/assets/webpack/tracker.1eb446cb.chunk.js" defer="defer"></script>
<script>
//<![CDATA[
window.snowplowOptions = {"namespace":"gl","hostname":"gitlab.esrf.fr:443","postPath":"/-/collect_events","forceSecureTracker":true,"appId":"gitlab_sm"};
gl = window.gl || {};
gl.snowplowStandardContext = {"schema":"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8","data":{"environment":"self-managed","source":"gitlab-rails","correlation_id":"01KPNGNYX6KY9VNQEREJP4RTN8","extra":{},"user_id":null,"global_user_id":null,"user_type":null,"is_gitlab_team_member":null,"namespace_id":null,"ultimate_parent_namespace_id":null,"project_id":null,"feature_enabled_by_namespace_ids":null,"realm":"self-managed","deployment_type":"self-managed","context_generated_at":"2026-04-20T15:18:37.012+02:00","organization_id":1}};
gl.snowplowPseudonymizedPageUrl = "https://gitlab.esrf.fr/users/sign_in";
gl.maskedDefaultReferrerUrl = null;
gl.ga4MeasurementId = 'G-ENFH3X7M5Y';
gl.duoEvents = [];
gl.onlySendDuoEvents = false;


//]]>
</script>
<link rel="preload" href="/assets/application-6cfc5bf1accc7be60a097014ba8b526bd361cfa9f5b0755ec6c38716971f3f05.css" as="style" type="text/css">
<link rel="preload" href="/assets/highlight/themes/white-91053d9b33e6ca83f1ccc9f675156756bb42617c9bc1cda4b3915abc0547ceda.css" as="style" type="text/css">




<script src="/assets/webpack/commons-pages.explore.catalog-pages.groups.harbor.repositories-pages.groups.issues-pages.groups.new--aa29c505.0ea1bdf9.chunk.js" defer="defer"></script>
<script src="/assets/webpack/commons-pages.search.show-super_sidebar.3d3a4264.chunk.js" defer="defer"></script>
<script src="/assets/webpack/super_sidebar.820fa925.chunk.js" defer="defer"></script>
<script src="/assets/webpack/commons-pages.admin.sessions-pages.ldap.omniauth_callbacks-pages.omniauth_callbacks-pages.profiles.p-27bfc84e.cfe4b2b4.chunk.js" defer="defer"></script>
<script src="/assets/webpack/commons-pages.admin.sessions-pages.ldap.omniauth_callbacks-pages.omniauth_callbacks-pages.sessions-p-ea3be603.4d9a7e0d.chunk.js" defer="defer"></script>
<script src="/assets/webpack/commons-pages.registrations.new-pages.sessions.new.d9de2f1d.chunk.js" defer="defer"></script>
<script src="/assets/webpack/pages.sessions.new.129b9eab.chunk.js" defer="defer"></script>



<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="mqnxDtwYRiy3uKTH5Zrmmbyb6Gsy5rMVc5TxUtU3k7XOp5Fshi0hF3D8eV_FnINuGHRRmZOSrJ5yFFzgZu8jsw" />
<meta name="csp-nonce" />
<meta name="action-cable-url" content="/-/cable" />
<link href="/-/manifest.json" rel="manifest">
<link rel="icon" type="image/png" href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" id="favicon" data-original-href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.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">




<meta content="ESRF&#39;s GitLab instance" name="description">
<meta content="#F1F0F6" media="(prefers-color-scheme: light)" name="theme-color">
<meta content="#232128" media="(prefers-color-scheme: dark)" name="theme-color">
</head>

<body class="gl-h-full login-page gl-browser-generic gl-platform-other" data-page="sessions:new" data-testid="login-page">

<script>
//<![CDATA[
gl = window.gl || {};
gl.client = {"isGeneric":true,"isOther":true};


//]]>
</script>




<div class="gl-h-full gl-flex gl-flex-wrap">
<div class="container gl-self-center">
<main class="content">
<div class="flash-container flash-container-page sticky" data-testid="flash-container">
<div class="gl-alert gl-alert-info 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="information-o-icon"><use href="/assets/icons-41229992eca580608aadaaa9b83b717650b2863442574d0ebb87f859c42a3b6c.svg#information-o"></use></svg>
</div>
<div class="gl-alert-content" role="alert">
<div class="gl-alert-body">
<div class="gl-flex gl-items-center">
<div class="gl-grow">
Sign in before continuing.
</div>
</div>

</div>
</div>
</div>

<div id="js-global-alerts"></div>
</div>

<div class="row gl-mt-5 gl-gap-y-6">
<div class="col-md order-12">
<div class="col-sm-12">
<h1 class="gl-mb-5 gl-text-size-h2 gl-hidden md:gl-block">
ESRF&#39;s GitLab instance
</h1>
<div class="md" id="js-custom-sign-in-description"><h2 data-sourcepos="1:1-1:23" dir="auto">&#x000A;<a href="#esrf-code-repository" aria-hidden="true" class="anchor" id="user-content-esrf-code-repository"></a>ESRF code repository</h2>&#x000A;<p data-sourcepos="2:1-2:34" dir="auto"><gl-emoji title="hammer and wrench" data-name="tools" data-unicode-version="7.0">🛠</gl-emoji>️ Find ESRF code &amp; resources</p>&#x000A;<h4 data-sourcepos="4:1-4:19" dir="auto">&#x000A;<a href="#authentication" aria-hidden="true" class="anchor" id="user-content-authentication"></a>Authentication</h4>&#x000A;<p data-sourcepos="5:1-5:68" dir="auto"><gl-emoji title="bust in silhouette" data-name="bust_in_silhouette" data-unicode-version="6.0">👤</gl-emoji> Please use your individual ESRF user or staff account to log-in</p>&#x000A;<h4 data-sourcepos="7:1-7:20" dir="auto">&#x000A;<a href="#public-projects" aria-hidden="true" class="anchor" id="user-content-public-projects"></a>Public projects</h4>&#x000A;<p data-sourcepos="8:1-8:84" dir="auto"><gl-emoji title="sparkles" data-name="sparkles" data-unicode-version="6.0">✨</gl-emoji> You can also explore publicly visible software at <a href="https://gitlab.esrf.fr/explore">https://gitlab.esrf.fr/explore</a></p></div>
</div>
</div>
<div class="col-md order-md-12">
<div class="col-sm-12 bar">
<div class="gl-text-center gl-mb-5">
<img alt="ESRF&#39;s GitLab instance" class="gl-invisible gl-h-10 js-portrait-logo-detection lazy" data-src="/uploads/-/system/appearance/logo/1/logo-h.png" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
<h1 class="gl-mb-3 gl-text-size-h2 md:gl-hidden">
ESRF&#39;s GitLab instance
</h1>
</div>

<div class="js-non-oauth-login">
<ul class="-gl-mx-5 gl-my-5 nav-justified nav gl-tabs-nav" id="js-signin-tabs" role="tablist"><li role="presentation" class="nav-item"><a data-toggle="tab" data-testid="ldap-tab" role="tab" class="nav-link gl-tab-nav-item active gl-tab-nav-item-active" href="#ldapmain">Deprecated (use SSO)</a></li>

<li role="presentation" class="nav-item"><a data-toggle="tab" data-testid="standard-tab" role="tab" class="nav-link gl-tab-nav-item" href="#login-pane">Standard</a></li>
</ul><div class="tab-content">
<div class="tab-pane active" id="ldapmain" role="tabpanel">
<form class="gl-show-field-errors" aria-live="assertive" data-testid="new_ldap_user" action="/users/auth/ldapmain/callback" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="X5xuPDQDkHAbrwcUz8jIfn6WkFlpHTA5wN1yfq9VXPwLkg5ebjb3S9zr2ozvzq2J2nkpq8hpL7LBXd_MHI3s-g" autocomplete="off" /><div class="form-group">
<label for="ldapmain_username">Username</label>
<input name="username" autocomplete="username" class="form-control gl-form-input" title="This field is required." autofocus="autofocus" data-testid="username-field" required="required" type="text" id="ldapmain_username" />
</div>
<div class="form-group">
<label for="ldapmain_password">Password</label>
<input class="form-control gl-form-input js-password" data-id="ldapmain_password" data-name="password" data-testid="password-field">
</div>
<div class="gl-mb-3">
<div class="gl-form-checkbox custom-control custom-checkbox">
<input name="remember_me" type="hidden" value="0" autocomplete="off" /><input name="remember_me" autocomplete="off" class="custom-control-input" type="checkbox" value="1" id="ldapmain_remember_me" />
<label class="custom-control-label" for="ldapmain_remember_me"><span>Remember me</span></label>
</div>

</div>
<button data-testid="sign-in-button" type="submit" class="gl-button btn btn-block btn-md btn-confirm "><span class="gl-button-text">
Sign in

</span>

</button></form>
</div>

<div class="tab-pane" id="login-pane" role="tabpanel">
<div data-app-data="{&quot;sign_in_path&quot;:&quot;/users/sign_in&quot;,&quot;users_sign_in_path_path&quot;:&quot;/users/sign_in_path&quot;,&quot;passkeys_sign_in_path&quot;:&quot;/users/passkeys/sign_in&quot;,&quot;is_unconfirmed_email&quot;:false,&quot;new_user_confirmation_path&quot;:&quot;/users/confirmation/new&quot;,&quot;new_password_path&quot;:&quot;/users/password/new&quot;,&quot;show_captcha&quot;:false,&quot;is_remember_me_enabled&quot;:true}" id="js-sign-in-form">
<div class="gl-spinner-container gl-my-5" 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>
<form action="/users/sign_in" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="42uC2AkqvffUhpiJ_G7DajkdxkzSGeTolarvN7TG9663ZeK6Ux_azBPCRRHcaKadnfJ_vnNt-2OUKkKFBx5HqA" autocomplete="off" /><input data-js-name="login" autocomplete="off" type="hidden" name="user[login]" id="user_login" />
<input data-js-name="password" autocomplete="off" type="hidden" name="user[password]" id="user_password" />
<input data-js-name="rememberMe" autocomplete="off" type="hidden" name="user[remember_me]" id="user_remember_me" />
</form></div>

</div>
</div>

</div>
<div class="gl-flex gl-items-center gl-gap-5" data-testid="divider">
<hr class="gl-grow gl-border-default">
or sign in with
<hr class="gl-grow gl-border-default">
</div>

<div class="gl-mt-5 gl-text-center gl-flex gl-flex-col gl-gap-3 js-oauth-login">
<form class="js-omniauth-form" method="post" action="/users/auth/saml"><button class="gl-button btn btn-block btn-md btn-default " data-testid="saml-login-button" type="submit"><span class="gl-button-text">
<span class="gl-button-text">
ESRF Single Sign-On
</span>

</span>

</button><input type="hidden" name="authenticity_token" value="EREvWPdOG29jtgkiAyjJtF3pEY-22NelMSuwj2t6P-NFH086rXt8VKTy1LojLqxD-QaofResyC4wqx092KKP5Q" autocomplete="off" /></form>
<div class="gl-form-checkbox custom-control custom-checkbox">
<input type="checkbox" name="js-remember-me-omniauth" id="js-remember-me-omniauth" class="custom-control-input" />
<label class="custom-control-label" for="js-remember-me-omniauth"><span>Remember me
</span></label>
</div>
</div>


</div>
</div>
</div>
</main>
</div>
<div class="footer-container gl-w-full gl-self-end">
<hr class="gl-m-0">
<div class="container gl-py-5 gl-flex gl-justify-between gl-items-start">
<div class="gl-hidden md:gl-flex gl-gap-5 gl-flex-wrap">
<a href="/explore">Explore</a>
<a href="/help">Help</a>
<a href="https://about.gitlab.com">About GitLab</a>
<a target="_blank" class="text-nowrap" rel="noopener noreferrer" href="https://forum.gitlab.com">GitLab community forum</a>
</div>
<div class="js-language-switcher" data-locales="[{&quot;value&quot;:&quot;en&quot;,&quot;percentage&quot;:100,&quot;text&quot;:&quot;English&quot;},{&quot;value&quot;:&quot;ja&quot;,&quot;percentage&quot;:99,&quot;text&quot;:&quot;日本語&quot;},{&quot;value&quot;:&quot;ga_IE&quot;,&quot;percentage&quot;:99,&quot;text&quot;:&quot;Gaeilge&quot;},{&quot;value&quot;:&quot;pt_BR&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;português (Brasil)&quot;},{&quot;value&quot;:&quot;ko&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;한국어&quot;},{&quot;value&quot;:&quot;it&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;italiano&quot;},{&quot;value&quot;:&quot;fr&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;français&quot;},{&quot;value&quot;:&quot;es&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;español&quot;},{&quot;value&quot;:&quot;de&quot;,&quot;percentage&quot;:95,&quot;text&quot;:&quot;Deutsch&quot;},{&quot;value&quot;:&quot;zh_CN&quot;,&quot;percentage&quot;:93,&quot;text&quot;:&quot;简体中文&quot;}]"></div>

</div>
</div>


</div>
</body>
</html>
