diff options
Diffstat (limited to 'doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md')
-rw-r--r-- | doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md | 112 |
1 files changed, 104 insertions, 8 deletions
diff --git a/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md b/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md index cae4aa96f75..2482a4fe7ad 100644 --- a/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md +++ b/doc/administration/troubleshooting/gitlab_rails_cheat_sheet.md @@ -1,7 +1,7 @@ --- -stage: none -group: unassigned -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers +stage: Enablement +group: Distribution +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments type: reference --- @@ -14,13 +14,13 @@ having an issue with GitLab, it is highly recommended that you check your [support options](https://about.gitlab.com/support/) first, before attempting to use this information. -CAUTION: **Caution:** +WARNING: Please note that some of these scripts could be damaging if not run correctly, or under the right conditions. We highly recommend running them under the guidance of a Support Engineer, or running them in a test environment with a backup of the instance ready to be restored, just in case. -CAUTION: **Caution:** +WARNING: Please also note that as GitLab changes, changes to the code are inevitable, and so some scripts may not work as they once used to. These are not kept up-to-date as these scripts/commands were added as they were found/needed. As @@ -308,7 +308,7 @@ pp p.statistics # compare with earlier values ### Recreate -CAUTION: **Caution:** +WARNING: This is a destructive operation, the Wiki will be empty. A Projects Wiki can be recreated by this command: @@ -374,6 +374,26 @@ Clear the cache: sudo gitlab-rake cache:clear ``` +### Export a repository + +It's typically recommended to export a project through [the web interface](../../user/project/settings/import_export.md#exporting-a-project-and-its-data) or through [the API](../../api/project_import_export.md). In situations where this is not working as expected, it may be preferable to export a project directly via the Rails console: + +```ruby +user = User.find_by_username('USERNAME') +project = Project.find_by_full_path('PROJECT_PATH') +Projects::ImportExport::ExportService.new(project, user).execute +``` + +If the project you wish to export is available at `https://gitlab.example.com/baltig/pipeline-templates`, the value to use for `PROJECT_PATH` would be `baltig/pipeline-templates`. + +If this all runs successfully, you will see output like the following before being returned to the Rails console prompt: + +```ruby +=> nil +``` + +The exported project will be located within a `.tar.gz` file in `/var/opt/gitlab/gitlab-rails/uploads/-/system/import_export_upload/export_file/`. + ## Repository ### Search sequence of pushes to a repository @@ -464,8 +484,9 @@ User.billable.count ::HistoricalData.max_historical_user_count ``` +Using cURL and jq (up to a max 100, see the [pagination docs](../../api/README.md#pagination)): + ```shell -# Using curl and jq (up to a max 100, see pagination docs https://docs.gitlab.com/ee/api/#pagination curl --silent --header "Private-Token: ********************" "https://gitlab.example.com/api/v4/users?per_page=100&active" | jq --compact-output '.[] | [.id,.name,.username]' ``` @@ -491,10 +512,22 @@ users.each do |user| end ``` +### Deactivate Users that have no recent activity + +```ruby +days_inactive = 90 +inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago) + +inactive_users.each do |user| + puts "user '#{user.username}': #{user.last_activity_on}" + user.deactivate! +end +``` + ### Block Users that have no recent activity ```ruby -days_inactive = 60 +days_inactive = 90 inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago) inactive_users.each do |user| @@ -565,6 +598,17 @@ group = Group.find_by_path_or_name('group-name') group.project_creation_level=0 ``` +### Modify group - disable 2FA requirement + +WARNING: +When disabling the 2FA Requirement on a subgroup, the whole parent group (including all subgroups) is affected by this change. + +```ruby +group = Group.find_by_path_or_name('group-name') +group.require_two_factor_authentication=false +group.save +``` + ## SCIM ### Fixing bad SCIM identities @@ -1015,3 +1059,55 @@ This will also refresh the cached usage ping displayed in the admin area ```ruby Gitlab::UsageData.to_json(force_refresh: true) ``` + +#### Generate and print + +Generates usage ping data in JSON format. + +```shell +rake gitlab:usage_data:generate +``` + +#### Generate and send usage ping + +Prints the metrics saved in `conversational_development_index_metrics`. + +```shell +rake gitlab:usage_data:generate_and_send +``` + +## Elasticsearch + +### Configuration attributes + +Open the rails console (`gitlab rails c`) and run the following command to see all the available attributes: + +```ruby +ApplicationSetting.last.attributes +``` + +Among other attributes, in the output you will notice that all the settings available in the [Elasticsearch Integration page](../../integration/elasticsearch.md), like: `elasticsearch_indexing`, `elasticsearch_url`, `elasticsearch_replicas`, `elasticsearch_pause_indexing`, etc. + +#### Setting attributes + +You can then set anyone of Elasticsearch integration settings by issuing a command similar to: + +```ruby +ApplicationSetting.last.update_attributes(elasticsearch_url: '<your ES URL and port>') + +#or + +ApplicationSetting.last.update_attributes(elasticsearch_indexing: false) +``` + +#### Getting attributes + +You can then check if the settings have been set in the [Elasticsearch Integration page](../../integration/elasticsearch.md) or in the rails console by issuing: + +```ruby +Gitlab::CurrentSettings.elasticsearch_url + +#or + +Gitlab::CurrentSettings.elasticsearch_indexing +``` |