summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/administration/logs/index.md12
-rw-r--r--doc/administration/sidekiq/sidekiq_troubleshooting.md35
-rw-r--r--doc/api/graphql/reference/index.md1
-rw-r--r--doc/architecture/blueprints/remote_development/index.md58
-rw-r--r--doc/development/ai_features.md9
-rw-r--r--doc/tutorials/boards_for_teams/img/frontend_board_empty_v16_0.pngbin0 -> 12025 bytes
-rw-r--r--doc/tutorials/boards_for_teams/img/frontend_board_filled_v16_0.pngbin0 -> 16411 bytes
-rw-r--r--doc/tutorials/boards_for_teams/img/ux_board_empty_v16_0.pngbin0 -> 11205 bytes
-rw-r--r--doc/tutorials/boards_for_teams/img/ux_board_filled_v16_0.pngbin0 -> 16485 bytes
-rw-r--r--doc/tutorials/boards_for_teams/index.md25
-rw-r--r--doc/tutorials/plan_and_track.md1
-rw-r--r--doc/user/profile/notifications.md1
-rw-r--r--doc/user/project/web_ide/index.md17
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
new file mode 100644
index 00000000000..6521da25754
--- /dev/null
+++ b/doc/tutorials/boards_for_teams/img/frontend_board_empty_v16_0.png
Binary files differ
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
new file mode 100644
index 00000000000..58f39fdfb10
--- /dev/null
+++ b/doc/tutorials/boards_for_teams/img/frontend_board_filled_v16_0.png
Binary files differ
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
new file mode 100644
index 00000000000..cfce3bf0743
--- /dev/null
+++ b/doc/tutorials/boards_for_teams/img/ux_board_empty_v16_0.png
Binary files differ
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
new file mode 100644
index 00000000000..c7c32fed841
--- /dev/null
+++ b/doc/tutorials/boards_for_teams/img/ux_board_filled_v16_0.png
Binary files differ
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.