{{< details >}}

  • Tier: 基础版,专业版,旗舰版
  • Offering: 极狐 GitLab 私有化部署

{{< /details >}}

以下命令在 Rails 控制台 中运行。

{{< alert type=”warning” >}}

任何直接更改数据的命令如果未正确运行或在正确条件下运行,可能会造成损害。我们强烈建议在测试环境中运行这些命令,并准备好实例的备份以便恢复,以防万一。

{{< /alert >}}

取消所有正在运行的流水线及其作业

admin = User.find(user_id) # replace user_id with the id of the admin you want to cancel the pipeline
# Iterate over each cancelable pipeline
Ci::Pipeline.cancelable.find_each do |pipeline|
  Ci::CancelPipelineService.new(
    pipeline: pipeline,
    current_user: user,
    cascade_to_children: false # the children are included in the outer loop
  )
end

取消卡住的待处理流水线

project = Project.find_by_full_path('<project_path>')
Ci::Pipeline.where(project_id: project.id).where(status: 'pending').count
Ci::Pipeline.where(project_id: project.id).where(status: 'pending').each {|p| p.cancel if p.stuck?}
Ci::Pipeline.where(project_id: project.id).where(status: 'pending').count

尝试合并请求集成

project = Project.find_by_full_path('<project_path>')
mr = project.merge_requests.find_by(iid: <merge_request_iid>)
mr.project.try(:ci_integration)

验证 .gitlab-ci.yml 文件

project = Project.find_by_full_path('<project_path>')
content = project.ci_config_for(project.repository.root_ref_sha)
Gitlab::Ci::Lint.new(project: project, current_user: User.first).validate(content)

禁用现有项目上的 AutoDevOps

Project.all.each do |p|
  p.auto_devops_attributes={"enabled"=>"0"}
  p.save
end

手动运行流水线计划

您可以通过 Rails 控制台手动运行流水线计划,以发现通常不可见的任何错误。

# schedule_id can be obtained from Edit Pipeline Schedule page
schedule = Ci::PipelineSchedule.find_by(id: <schedule_id>)

# Select the user that you want to run the schedule for
user = User.find_by_username('<username>')

# Run the schedule
ps = Ci::CreatePipelineService.new(schedule.project, user, ref: schedule.ref).execute!(:schedule, ignore_skip_ci: true, save_on_errors: false, schedule: schedule)

获取 runners 注册令牌(已弃用)

{{< alert type=”warning” >}}

传递 runner 注册令牌的选项和对某些配置参数的支持在极狐 GitLab 15.6 中已被弃用,并计划在极狐 GitLab 20.0 中移除。使用 runner 创建工作流 来生成身份验证令牌以注册 runners。此过程提供完整的 runner 所有权可追溯性,并增强 runner 队列的安全性。更多信息,请参阅 迁移到新的 runner 注册工作流

{{< /alert >}}

先决条件:

  • 必须在 管理员 区域 启用 runner 注册令牌。
Gitlab::CurrentSettings.current_application_settings.runners_registration_token

种子 runners 注册令牌(已弃用)

{{< alert type=”warning” >}}

传递 runner 注册令牌的选项和对某些配置参数的支持在极狐 GitLab 15.6 中已被弃用,并计划在极狐 GitLab 20.0 中移除。使用 runner 创建工作流 来生成身份验证令牌以注册 runners。此过程提供完整的 runner 所有权可追溯性,并增强 runner 队列的安全性。更多信息,请参阅 迁移到新的 runner 注册工作流

{{< /alert >}}

appSetting = Gitlab::CurrentSettings.current_application_settings
appSetting.set_runners_registration_token('<new-runners-registration-token>')
appSetting.save!