{"id":485020,"date":"2022-08-16T09:02:09","date_gmt":"2022-08-16T06:02:09","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/"},"modified":"2022-08-16T09:02:09","modified_gmt":"2022-08-16T06:02:09","slug":"how-to-get-started-with-gitlabs-rails-console-for-advanced-administration","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/","title":{"rendered":"#How to Get Started With GitLab\u2019s Rails Console for Advanced Administration"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2aa85d8051f\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2aa85d8051f\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#%E2%80%9CHow_to_Get_Started_With_GitLabs_Rails_Console_for_Advanced_Administration%E2%80%9D\" >&#8220;How to Get Started With GitLab\u2019s Rails Console for Advanced Administration&#8221;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Starting_the_Console\" >Starting the Console<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Basic_Usage\" >Basic Usage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Common_Tasks\" >Common Tasks<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Discover_Methods_Available_On_An_Object\" >Discover Methods Available On An Object<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Retrieve_a_Project_With_Its_Issues_and_Merge_Requests\" >Retrieve a Project With Its Issues and Merge Requests<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Retrieve_a_CI_Pipeline\" >Retrieve a CI Pipeline<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Reset_an_Admins_Password\" >Reset an Admin\u2019s Password<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Make_a_Project_Read-Only\" >Make a Project Read-Only<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Manually_Run_a_Pipeline_Schedule\" >Manually Run a Pipeline Schedule<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Enable_Feature_Flags\" >Enable Feature Flags<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Test_Email_Delivery\" >Test Email Delivery<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Running_Ruby_Scripts_With_the_Rails_Runner\" >Running Ruby Scripts With the Rails Runner<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/#Summary\" >Summary<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CHow_to_Get_Started_With_GitLabs_Rails_Console_for_Advanced_Administration%E2%80%9D\"><\/span>&#8220;How to Get Started With GitLab\u2019s Rails Console for Advanced Administration&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div>\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-813526\" data-pagespeed-no-defer=\"\" src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/06\/GitLab.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"GitLab logo\" width=\"1602\" height=\"902\"\/><\/p>\n<p>GitLab\u2019s Rails console provides an interactive terminal that lets you directly manipulate data in your GitLab instance. You can use it to extract information, troubleshoot problems, and perform advanced administration tasks that aren\u2019t supported in the GitLab web UI or API.<\/p>\n<p>To access the console you must be running your own self-managed GitLab server. You\u2019ll need superuser privileges on the machine that hosts your environment. The console provides unimpeded control over GitLab and your data so only trusted administrators should be allowed to use it. Actions can override normal safeguards and cause unprompted data destruction.<\/p>\n<h2 id=\"starting-the-console\"><span class=\"ez-toc-section\" id=\"Starting_the_Console\"><\/span>Starting the Console<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The method used to start the console depends on the type of GitLab installation you\u2019re running. Omnibus distributions installed from a package manager support the following command:<\/p>\n<pre>$ sudo gitlab-rails console<\/pre>\n<p>Use this alternative if you\u2019ve manually installed GitLab from source:<\/p>\n<pre>$ sudo -u git -H bundle exec rails console -e production<\/pre>\n<p>The console\u2019s also available to cloud-native GitLab instances running in Kubernetes. Use Kubectl to attach to GitLab\u2019s <code>toolbox<\/code> Pod and start a console session:<\/p>\n<pre>$ kubectl --namespace gitlab exec -it toolbox -- \/srv\/gitlab\/bin\/rails console<\/pre>\n<p>GitLab versions older than 14.2 will have a <code>task-runner<\/code> Pod instead of <code>toolbox<\/code>. Substitute <code>task-runner<\/code> into the command shown above if you\u2019re running one of these releases.<\/p>\n<p>The Rails console can take several seconds to start up. It\u2019ll display a summary of your Ruby, GitLab, and PostgreSQL versions before dropping you to a terminal prompt.<\/p>\n<pre>$ sudo gitlab-rails console&#13;\n--------------------------------------------------------------------------------&#13;\n Ruby:         ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]&#13;\n GitLab:       15.0.0 (8a186dedfc1) FOSS&#13;\n GitLab Shell: 14.3.0&#13;\n PostgreSQL:   12.10&#13;\n------------------------------------------------------------[ booted in 22.48s ]&#13;\nLoading production environment (Rails 6.1.4.7)&#13;\nirb(main):001:0&gt;<\/pre>\n<p>You can start issuing Ruby commands when you see the prompt <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>ear.<\/p>\n<h2 id=\"basic-usage\"><span class=\"ez-toc-section\" id=\"Basic_Usage\"><\/span>Basic Usage<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The console provides access to GitLab\u2019s <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/rubyonrails.org\">Ruby on Rails<\/a> environment. In-scope objects let you fetch, update, and query data in your GitLab database. A <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/administration\/troubleshooting\/gitlab_rails_cheat_sheet.html\">basic understanding<\/a> of Ruby and Rails will help you to get started.<\/p>\n<p>Rails uses the Active Record pattern to provide static data mapping methods on objects. You can call the following method to retrieve a user by their username:<\/p>\n<pre>$ demo = User.find_by_username(\"demo\")&#13;\n# &lt;User id:1 @demo&gt;<\/pre>\n<p>You can view the properties of the retrieved object by inspecting its <code>attributes<\/code>:<\/p>\n<pre>$ pp demo.attributes&#13;\n{\"id\"=&gt;1,&#13;\n \"email\"=&gt;\"demo@example.com\",&#13;\n...<\/pre>\n<p>To retrieve a specific property, access it by name:<\/p>\n<pre>$ demo.email&#13;\ndemo@example.com<\/pre>\n<p>You can use Rails methods to conveniently fetch multiple object instances that match a query:<\/p>\n<pre>$ admins = User.where(admin: true).where('email like ?', '%@example.com')<\/pre>\n<p>This fetches all the <code>example.com<\/code> users with GitLab administrator permissions.<\/p>\n<p>You can change the properties of an object instance by assigning new values and calling <code>save<\/code>:<\/p>\n<pre>$ demo.email = \"example@example.com\"&#13;\n$ demo.save<\/pre>\n<p>The <code>save<\/code> method will check the object\u2019s in a valid state before saving it to the database. You can explicitly disable validation in situations where you want to force a particular change to apply:<\/p>\n<pre>$ demo.save!(validate: false)<\/pre>\n<p>This should only be used to investigate issues where the GitLab web UI or API is unexpectedly rejecting data.<\/p>\n<h2 id=\"common-tasks\"><span class=\"ez-toc-section\" id=\"Common_Tasks\"><\/span>Common Tasks<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The GitLab Rails console has limitless applications as you can work with any aspect of your GitLab instance. Here are some useful operations to get you started.<\/p>\n<h3 id=\"discover-methods-available-on-an-object\"><span class=\"ez-toc-section\" id=\"Discover_Methods_Available_On_An_Object\"><\/span>Discover Methods Available On An Object<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The console experience can be daunting to newcomers, especially if you don\u2019t have much familiarity with Rails. Documentation on the console is relatively sparse but you can discover functionality by retrieving the method list associated with each object:<\/p>\n<pre>$ User.methods&#13;\n[:before_add_for_closed_issues, :before_add_for_closed_issues=, :after_add_for_closed_issues, ...]<\/pre>\n<p>You can combine this with <code>grep<\/code> to quickly filter to methods with a particular root:<\/p>\n<pre>$ Project.methods.grep(\/find\/)&#13;\n[:find_by_runners_token, :find_by_url, :find_by_full_path, ...]<\/pre>\n<p>This reveals you can fetch a project by its path with the following command:<\/p>\n<pre>$ Project.find_by_full_path(\"\/user\/project\")<\/pre>\n<h3 id=\"retrieve-a-project-with-its-issues-and-merge-requests\"><span class=\"ez-toc-section\" id=\"Retrieve_a_Project_With_Its_Issues_and_Merge_Requests\"><\/span>Retrieve a Project With Its Issues and Merge Requests<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>First use the <code>Project<\/code> object to get the project by matching on a unique attribute such as its ID, path, or URL:<\/p>\n<pre>$ project = Project.find_by_full_path(\"\/user\/project\")<\/pre>\n<p>Now you can access the project\u2019s issues and merge requests via its relation properties:<\/p>\n<pre># Get all issues&#13;\n$ project.issues.all&#13;\n&#13;\n# Get the first issue&#13;\n$ project.issues.first&#13;\n&#13;\n# Get a specific merge request by its project-level ID&#13;\n$ project.merge_requests.find_by(iid: 10)<\/pre>\n<h3 id=\"retrieve-a-ci-pipeline\"><span class=\"ez-toc-section\" id=\"Retrieve_a_CI_Pipeline\"><\/span>Retrieve a CI Pipeline<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The <code>Pipeline<\/code> object is nested inside the <code>CI<\/code> namespace:<\/p>\n<pre># Get the pipeline with ID 100&#13;\n$ pipeline = Ci::Pipeline.find(100)&#13;\n&#13;\n# Get builds (jobs) associated with the pipeline&#13;\n$ jobs = pipeline.builds<\/pre>\n<h3 id=\"reset-an-admins-password\"><span class=\"ez-toc-section\" id=\"Reset_an_Admins_Password\"><\/span>Reset an Admin\u2019s Password<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The console can rescue you if you ever get locked out of your account. Retrieve the affected user object and then reset its password:<\/p>\n<pre>$ user = User.find_by_username(\"demo\")&#13;\n$ user.password = \"abc123\"&#13;\n$ user.password_confirmation = \"abc123\"&#13;\n$ user.save<\/pre>\n<h3 id=\"make-a-project-read-only\"><span class=\"ez-toc-section\" id=\"Make_a_Project_Read-Only\"><\/span>Make a Project Read-Only<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>GitLab supports read-only projects that keep the repository accessible but prevent modifications from being made. Read-only mode has to be enabled using the console:<\/p>\n<pre>$ project = Project.find_by_full_path(\"\/user\/project\")&#13;\n$ project.repository_read_only = true&#13;\n$ project.save<\/pre>\n<h3 id=\"manually-run-a-pipeline-schedule\"><span class=\"ez-toc-section\" id=\"Manually_Run_a_Pipeline_Schedule\"><\/span>Manually Run a Pipeline Schedule<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Scheduled pipelines can be executed im<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">media<\/a>tely using the console. This can sometimes help to debug issues which aren\u2019t fully reported in the UI and API.<\/p>\n<p>First retrieve the <code>PipelineSchedule<\/code> object:<\/p>\n<pre>$ schedule = Ci::PipelineSchedule.find_by(id: 10)<\/pre>\n<p>Next fetch the user you want to execute the pipeline as:<\/p>\n<pre>$ user = User.find_by_username(\"demo\")<\/pre>\n<p>Now use this command to start a run through the schedule:<\/p>\n<pre>$ Ci::CreatePipelineService.new(schedule.project, user, ref: schedule.ref).execute!(:schedule, ignore_skip_ci: true, save_on_errors: false, schedule: schedule)<\/pre>\n<p>It creates a new pipeline from the schedule and commences its execution.<\/p>\n<h3 id=\"enable-feature-flags\"><span class=\"ez-toc-section\" id=\"Enable_Feature_Flags\"><\/span>Enable Feature Flags<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Some pre-release GitLab features are gated behind <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/administration\/feature_flags.html\">feature flags<\/a>. Flags are also sometimes used to permit temporary reactivation of deprecated capabilities.<\/p>\n<p>The console is the only mechanism by which feature flags can be enabled. Pass the ID of a feature flag to the <code>Feature.enable()<\/code> function:<\/p>\n<pre>$ Feature.enable(:certificate_based_clusters)<\/pre>\n<p>The change applies immediately without restarting GitLab. This example <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/update\/deprecations.html#self-managed-certificate-based-integration-with-kubernetes\">reactivates support for certificate-based Kubernetes clusters<\/a> in GitLab 15.0.<\/p>\n<p>You can check whether a flag\u2019s enabled with a <code>Feature.enabled?()<\/code> call:<\/p>\n<pre>$ Feature.enabled?(:certificate_based_clusters)&#13;\n=&gt; true<\/pre>\n<p>To disable a feature flag, pass its ID to the <code>Feature.disable()<\/code> method:<\/p>\n<pre>$ Feature.disable(:certificate_based_clusters)<\/pre>\n<h3 id=\"test-email-delivery\"><span class=\"ez-toc-section\" id=\"Test_Email_Delivery\"><\/span>Test Email Delivery<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The console lets you directly send test messages to verify your outbound email system is working:<\/p>\n<pre>$ Notify.test_email(\"example@example.com\", \"Test subject\", \"Test body\").deliver_now<\/pre>\n<p>The email will be sent immediately using the same mechanism as messages created by GitLab application functions.<\/p>\n<h2 id=\"running-ruby-scripts-with-the-rails-runner\"><span class=\"ez-toc-section\" id=\"Running_Ruby_Scripts_With_the_Rails_Runner\"><\/span>Running Ruby Scripts With the Rails Runner<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>An interactive console session isn\u2019t always necessary. The <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/guides.rubyonrails.org\/command_line.html#rails-runner\">Rails Runner<\/a> is an alternative which makes it easier to run Ruby scripts in the context of your GitLab environment.<\/p>\n<p>Use the <code>gitlab-rails runner<\/code> command to execute some Ruby code. Your script can reference the same GitLab variables and objects that are available to a Rails console session.<\/p>\n<pre>$ sudo gitlab-rails runner \"puts User.find_by_username('demo').email\"<\/pre>\n<p>Rails will run the script you provide and then terminate the process. The example shown above emits the email address of the GitLab user called <code>demo<\/code>. This alternative runs Ruby code provided as a file:<\/p>\n<pre>$ sudo gitlab-rails runner \/scripts\/gitlab-rails-script.rb<\/pre>\n<p>Scripts saved as Ruby files need to be accessible to the Unix <code>git<\/code> user. GitLab Rails always executes as <code>git:git<\/code> so scripts owned by other users could produce an error. Invalid file paths will be interpreted as Ruby code to run, producing a syntax error that can mask the true problem:<\/p>\n<pre>$ sudo gitlab-rails runner \/scripts\/invalid-file.rb&#13;\nPlease specify a valid ruby command or the path of a script to run.&#13;\nRun 'rails runner -h' for help<\/pre>\n<h2 id=\"summary\"><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/administration\/troubleshooting\/gitlab_rails_cheat_sheet.html\">GitLab Rails console<\/a> is a powerful utility for directly interacting with your GitLab instance. It can be an invaluable debugging tool when you\u2019re experiencing problems with your installation. The console also lets you script admin tasks using plain Ruby code, instead of relying on the GitLab API. Some operations such as feature flag enablement can only be achieved with the console.<\/p>\n<p>With power comes responsibility. The console is capable of ignoring guardrails and accepting operations in contexts which they\u2019re not designed for. Incorrect use could cause data loss and unexpected behavior. By using the console you\u2019re lifting the lid on GitLab\u2019s codebase and its internal operations. The available methods and their effects lack a support guarantee and could change without warning.<\/p>\n<\/div>\n<p><script>\n setTimeout(function(){\n  !function(f,b,e,v,n,t,s)\n  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n  n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n  n.queue=[];t=b.createElement(e);t.async=!0;\n  t.src=v;s=b.getElementsByTagName(e)[0];\n  s.parentNode.insertBefore(t,s) } (window, document,'script',\n  'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n   fbq('init', '335401813750447');\n   fbq('track', 'PageView');\n  },3000);\n<\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.howtogeek.com\/devops\/how-to-get-started-with-gitlabs-rails-console-for-advanced-administration\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;How to Get Started With GitLab\u2019s Rails Console for Advanced Administration&#8221; GitLab\u2019s Rails console provides an interactive terminal that lets you directly manipulate data in your GitLab instance. You can use it to extract information, troubleshoot problems, and perform advanced administration tasks that aren\u2019t supported in the GitLab web UI or API. To access the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":485021,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/06\/GitLab.jpg?height=200p&trim=2,2,2,2","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-485020","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/485020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=485020"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/485020\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/485021"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=485020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=485020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=485020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}