diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/administration/logs/index.md | 12 | ||||
-rw-r--r-- | doc/administration/sidekiq/sidekiq_troubleshooting.md | 35 | ||||
-rw-r--r-- | doc/api/graphql/reference/index.md | 1 | ||||
-rw-r--r-- | doc/architecture/blueprints/remote_development/index.md | 58 | ||||
-rw-r--r-- | doc/development/ai_features.md | 9 | ||||
-rw-r--r-- | doc/tutorials/boards_for_teams/img/frontend_board_empty_v16_0.png | bin | 0 -> 12025 bytes | |||
-rw-r--r-- | doc/tutorials/boards_for_teams/img/frontend_board_filled_v16_0.png | bin | 0 -> 16411 bytes | |||
-rw-r--r-- | doc/tutorials/boards_for_teams/img/ux_board_empty_v16_0.png | bin | 0 -> 11205 bytes | |||
-rw-r--r-- | doc/tutorials/boards_for_teams/img/ux_board_filled_v16_0.png | bin | 0 -> 16485 bytes | |||
-rw-r--r-- | doc/tutorials/boards_for_teams/index.md | 25 | ||||
-rw-r--r-- | doc/tutorials/plan_and_track.md | 1 | ||||
-rw-r--r-- | doc/user/profile/notifications.md | 1 | ||||
-rw-r--r-- | doc/user/project/web_ide/index.md | 17 |
13 files changed, 144 insertions, 15 deletions
diff --git a/doc/administration/logs/index.md b/doc/administration/logs/index.md index 7fab97f76da..3533237f946 100644 --- a/doc/administration/logs/index.md +++ b/doc/administration/logs/index.md @@ -1034,6 +1034,18 @@ can be used. } ``` +## `llm.log` **(ULTIMATE SAAS)** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120506) in GitLab 16.0. + +The `llm.log` file logs information related to +[AI features](../../user/ai_features.md). + +Depending on your installation method, this file is located at: + +- Omnibus GitLab: `/var/log/gitlab/gitlab-rails/llm.log` +- Installations from source: `/home/git/gitlab/log/llm.log` + ## Registry logs For Omnibus GitLab installations, Container Registry logs are in `/var/log/gitlab/registry/current`. diff --git a/doc/administration/sidekiq/sidekiq_troubleshooting.md b/doc/administration/sidekiq/sidekiq_troubleshooting.md index 8b95a9f6f0a..cce9420f455 100644 --- a/doc/administration/sidekiq/sidekiq_troubleshooting.md +++ b/doc/administration/sidekiq/sidekiq_troubleshooting.md @@ -494,6 +494,41 @@ has number of drawbacks, as mentioned in [Why Ruby's Timeout is dangerous (and T > > Nobody writes code to defend against an exception being raised on literally any line. That's not even possible. So Thread.raise is basically like a sneak attack on your code that could result in almost anything. It would probably be okay if it were pure-functional code that did not modify any state. But this is Ruby, so that's unlikely :) +## Manually trigger a cron job + +By visiting `/admin/background_jobs`, you can look into what jobs are scheduled/running/pending on your instance. + +You can trigger a cron job from the UI by selecting the "Enqueue Now" button. To trigger a cron job programmatically first open a [Rails console](../operations/rails_console.md). + +To find the cron job you want to test: + +```irb +job = Sidekiq::Cron::Job.find('job-name') + +# get status of job: +job.status + +# enqueue job right now! +job.enque! +``` + +For example, to trigger the `update_all_mirrors_worker` cron job that updates the repository mirrors: + +```irb +irb(main):001:0> job = Sidekiq::Cron::Job.find('update_all_mirrors_worker') +=> +#<Sidekiq::Cron::Job:0x00007f147f84a1d0 +... +irb(main):002:0> job.status +=> "enabled" +irb(main):003:0> job.enque! +=> 257 +``` + +The list of available jobs can be found in the [workers](https://gitlab.com/gitlab-org/gitlab/-/tree/master/app/workers) directory. + +For more information about Sidekiq jobs, see the [Sidekiq-cron](https://github.com/sidekiq-cron/sidekiq-cron#work-with-job) documentation. + ## Omnibus GitLab 14.0 and later: remove the `sidekiq-cluster` service Omnibus GitLab instances that were configured to run `sidekiq-cluster` prior to GitLab 14.0 diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index c52d14f59fe..9a7724932eb 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -19474,6 +19474,7 @@ four standard [pagination arguments](#connection-pagination-arguments): | Name | Type | Description | | ---- | ---- | ----------- | +| <a id="projectdependenciescomponentnames"></a>`componentNames` | [`[String!]`](#string) | Filter dependencies by component names. | | <a id="projectdependenciespackagemanagers"></a>`packageManagers` | [`[PackageManager!]`](#packagemanager) | Filter dependencies by package managers. | | <a id="projectdependenciessort"></a>`sort` | [`DependencySort`](#dependencysort) | Sort dependencies by given criteria. | diff --git a/doc/architecture/blueprints/remote_development/index.md b/doc/architecture/blueprints/remote_development/index.md index f214ef56967..e2647551a95 100644 --- a/doc/architecture/blueprints/remote_development/index.md +++ b/doc/architecture/blueprints/remote_development/index.md @@ -42,6 +42,64 @@ As a [new Software Developer to a team such as Sasha](https://about.gitlab.com/h ![User Flow](img/remote_dev_15_7.png) +## Architecture + +```plantuml +@startuml +node "Kubernetes" { + [Ingress Controller] --> [GitLab Workspaces Proxy] : Decrypt Traffic + + note right of "Ingress Controller" + Customers can choose + an ingress controller + of their choice + end note + + note top of "GitLab Workspaces Proxy" + Authenticate and + authorize user traffic + end note + + [GitLab Workspaces Proxy] ..> [Workspace n] : Forward traffic\nfor workspace n + [GitLab Workspaces Proxy] ..> [Workspace 2] : Forward traffic\nfor workspace 2 + [GitLab Workspaces Proxy] --> [Workspace 1] : Forward traffic\nfor workspace 1 + + [Agentk] .up.> [Workspace n] : Applies kubernetes resources\nfor workspace n + [Agentk] .up.> [Workspace 2] : Applies kubernetes resources\nfor workspace 2 + [Agentk] .up.> [Workspace 1] : Applies kubernetes resources\nfor workspace 1 + + [Agentk] --> [Kubernetes API Server] : Interact and get/apply\nKubernetes resources +} + +node "GitLab" { + [Nginx] --> [GitLab Rails] : Forward + [GitLab Rails] --> [Postgres] : Access database + [GitLab Rails] --> [Gitaly] : Fetch files + [KAS] -up-> [GitLab Rails] : Proxy +} + +[Agentk] -up-> [KAS] : Initiate reconciliation loop +"Load Balancer IP" --> [Ingress Controller] +[Browser] --> [Nginx] : Browse GitLab +[Browser] -right-> "Domain IP" : Browse workspace URL +"Domain IP" .right.> "Load Balancer IP" +[GitLab Workspaces Proxy] ..> [GitLab Rails] : Authenticate and authorize\nthe user accessing the workspace. + +note top of "Domain IP" + For local development, workspace URL + is [workspace-name].workspaces.localdev.me + which resolves to localhost (127.0.0.1) +end note + +note top of "Load Balancer IP" + For local development, + it includes all local loopback interfaces + e.g. 127.0.0.1, 172.16.123.1, 192.168.0.1, etc. +end note + +@enduml +``` + ## Terminology We use the following terms to describe components and properties of the Remote Development architecture. diff --git a/doc/development/ai_features.md b/doc/development/ai_features.md index 6ed1d59c3e0..25da99addc1 100644 --- a/doc/development/ai_features.md +++ b/doc/development/ai_features.md @@ -89,6 +89,15 @@ To populate the embedding database for GitLab chat: 1. Open a rails console 1. Run [this script](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/10588#note_1373586079) to populate the embedding database +### Debugging + +To gather more insights about the full request, use the `Gitlab::Llm::Logger` file to debug logs. +To follow the debugging messages related to the AI requests on the abstraction layer, you can use: + +```shell +tail -f log/llm.log +``` + ### Configure GCP Vertex access In order to obtain a GCP service key for local development, please follow the steps below: diff --git a/doc/tutorials/boards_for_teams/img/frontend_board_empty_v16_0.png b/doc/tutorials/boards_for_teams/img/frontend_board_empty_v16_0.png Binary files differnew file mode 100644 index 00000000000..6521da25754 --- /dev/null +++ b/doc/tutorials/boards_for_teams/img/frontend_board_empty_v16_0.png diff --git a/doc/tutorials/boards_for_teams/img/frontend_board_filled_v16_0.png b/doc/tutorials/boards_for_teams/img/frontend_board_filled_v16_0.png Binary files differnew file mode 100644 index 00000000000..58f39fdfb10 --- /dev/null +++ b/doc/tutorials/boards_for_teams/img/frontend_board_filled_v16_0.png diff --git a/doc/tutorials/boards_for_teams/img/ux_board_empty_v16_0.png b/doc/tutorials/boards_for_teams/img/ux_board_empty_v16_0.png Binary files differnew file mode 100644 index 00000000000..cfce3bf0743 --- /dev/null +++ b/doc/tutorials/boards_for_teams/img/ux_board_empty_v16_0.png diff --git a/doc/tutorials/boards_for_teams/img/ux_board_filled_v16_0.png b/doc/tutorials/boards_for_teams/img/ux_board_filled_v16_0.png Binary files differnew file mode 100644 index 00000000000..c7c32fed841 --- /dev/null +++ b/doc/tutorials/boards_for_teams/img/ux_board_filled_v16_0.png diff --git a/doc/tutorials/boards_for_teams/index.md b/doc/tutorials/boards_for_teams/index.md index e37bf5a2d31..9b34f580e05 100644 --- a/doc/tutorials/boards_for_teams/index.md +++ b/doc/tutorials/boards_for_teams/index.md @@ -31,12 +31,9 @@ After you set up everything, the two teams will be able to hand off issues from 1. A product designer on the UX team: 1. Checks the `Workflow::Ready for design` list on the **UX workflow** board and decides to work on the profile page redesign. - <!-- Image: UX board with lists: - ~Workflow::Ready for design, - ~Workflow::Design - ~Workflow::Ready for development --> + ![Issue board called "UX workflow" with three columns and three issues](img/ux_board_filled_v16_0.png) - 1. Assigns themselves to the issue. + 1. Assigns themselves to the **Redesign user profile page** issue. 1. Drags the issue card to the `Workflow::Design` list. The previous workflow label is automatically removed. 1. Creates the ✨new designs✨. 1. [Adds the designs to the issue](../../user/project/issues/design_management.md). @@ -45,12 +42,9 @@ After you set up everything, the two teams will be able to hand off issues from 1. A developer on the Frontend team: 1. Checks the `Workflow::Ready for development` list on the **Frontend workflow** board and chooses an issue to work on. - <!-- Image: Frontend board, scoped to ~Frontend, with lists: - ~Workflow::Ready for development - ~Workflow::In development - ~Workflow::Complete --> + ![Issue board called "Frontend workflow" with three columns and three issues](img/frontend_board_filled_v16_0.png) - 1. Assigns themselves to the issue. + 1. Assigns themselves to the **Redesign user profile page** issue. 1. Drags the issue card to the `Workflow::In development` list. The previous workflow label is automatically removed. 1. Adds the frontend code in a [merge request](../../user/project/merge_requests/index.md). 1. Adds the `Workflow::Complete` label. @@ -140,15 +134,14 @@ To create the **UX workflow** issue board: 1. In the **Title field**, enter `UX workflow`. 1. Clear the **Show the Open list** and **Show the Closed list** checkboxes. 1. Select **Create board**. You should see an empty board. - - <!-- Image: empty UX workflow board --> - 1. Create a list for the `Workflow::Ready for design` label: 1. In the upper-left corner of the issue board page, select **Create list**. 1. In the column that appears, from the **Value** dropdown list, select the `Workflow::Ready for design` label. 1. Select **Add to board**. 1. Repeat the previous step for labels `Workflow::Design` and `Workflow::Ready for development`. +![Issue board called "UX workflow" with three columns and no issues](img/ux_board_empty_v16_0.png) + To create the **Frontend workflow** board: 1. In the upper-left corner of the issue board page, select the dropdown list with the current board name. @@ -164,6 +157,8 @@ To create the **Frontend workflow** board: 1. Select **Add to board**. 1. Repeat the previous step for labels `Workflow::In development` and `Workflow::Complete`. +![Issue board called "Frontend workflow" with three columns and no issues](img/frontend_board_empty_v16_0.png) + For now, lists in both your boards should be empty. Next, you'll populate them with some issues. ## Create issues for features @@ -193,9 +188,9 @@ Repeat these steps to create a few more issues with the same labels. You should now see at least one issue there, ready for your product designers to start working on! -<!-- Image: UX workflow board with at least one issue in the `Workflow::Ready for design` list --> - Congratulations! Now your teams can start collaborating on amazing software. +As a next step, you can try out [the goal workflow](#the-goal-workflow) for yourself using these boards, +simulating the two teams interacting. ## Learn more about project management in GitLab diff --git a/doc/tutorials/plan_and_track.md b/doc/tutorials/plan_and_track.md index 35b552cdaa5..0206c462cb2 100644 --- a/doc/tutorials/plan_and_track.md +++ b/doc/tutorials/plan_and_track.md @@ -15,4 +15,5 @@ issues, epics, and more. | [Create a project from a template](https://gitlab.com/projects/new#create_from_template) | Choose a project template and create a project with files to get you started. | | | [Migrate to GitLab](../user/project/import/index.md) | If you are coming to GitLab from another platform, you can import or convert your projects. | | | [Run an agile iteration](agile_sprint/index.md) | Use group, projects, and iterations to run an agile development iteration. | +| [Set up issue boards for team hand-off](boards_for_teams/index.md) | Use issue boards and scoped labels to set up collaboration across many teams. | **{star}** | | <i class="fa fa-youtube-play youtube" aria-hidden="true"></i> [Epics and Issue Boards](https://www.youtube.com/watch?v=I1bFIAQBHB8) | Find out how to use epics and issue boards for project management. | | diff --git a/doc/user/profile/notifications.md b/doc/user/profile/notifications.md index 89366c73b16..b60ff8471bf 100644 --- a/doc/user/profile/notifications.md +++ b/doc/user/profile/notifications.md @@ -362,6 +362,7 @@ The following table lists all GitLab-specific email headers: | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | `List-Id` | The path of the project in an RFC 2919 mailing list identifier. You can use it for email organization with filters. | | `X-GitLab-(Resource)-ID` | The ID of the resource the notification is for. The resource, for example, can be `Issue`, `MergeRequest`, `Commit`, or another such resource. | +| `X-GitLab-ConfidentialIssue` | The boolean value indicating issue confidentiality for notifications. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/222908) in GitLab 16.0. | | `X-GitLab-Discussion-ID` | The ID of the thread the comment belongs to, in notification emails for comments. | | `X-GitLab-Group-Id` | The group's ID. Only present on notification emails for [epics](../group/epics/index.md). | | `X-GitLab-Group-Path` | The group's path. Only present on notification emails for [epics](../group/epics/index.md) | diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md index bb1609a74e5..18721c0582d 100644 --- a/doc/user/project/web_ide/index.md +++ b/doc/user/project/web_ide/index.md @@ -131,6 +131,16 @@ To commit changes in the Web IDE: 1. Select **Commit & Push**. 1. Commit to the current branch, or create a new branch. +## Create a merge request + +To create a merge request: + +1. [Commit the changes](index.md#commit-changes). +1. In the pop-up notification in the lower-right corner, select `Create Merge Request`. +This action opens a new window with the [merge request creation form](../merge_requests/index.md). + +To access missed notifications, see the [IDE notification tips](index.md#access-missed-ide-notifications). + ## Use the command palette In the Web IDE, you can access many commands through the command palette. @@ -203,3 +213,10 @@ You cannot use interactive web terminals to interact with a runner. However, you can use a terminal to install dependencies and compile and debug code. For more information about configuring a workspace that supports interactive web terminals, see [remote development](../remote_development/index.md). + +## Access missed IDE notifications + +Actions that you take in the Web IDE trigger notifications that pop up in the lower-right corner. If you missed the pop-up: + +1. In the lower-right corner, select the bell icon (**{notifications}**). This opens a list of notifications. +1. Select the notification you want to access. |