Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
db30e094f2
commit
f06d16d23c
7 changed files with 140 additions and 3 deletions
|
@ -22,6 +22,10 @@ Using serializers, instead of `to_json` method, has several benefits:
|
|||
* it makes it easier to reduce merge conflicts between CE -> EE
|
||||
* it makes it easier to benefit from domain driven development techniques
|
||||
|
||||
## Security considerations
|
||||
|
||||
Consult the `Serialization` section of our [Secure Coding Guidelines](../../doc/development/secure_coding_guidelines.md#serialization) to help avoiding leaking sensitive attributes when using serializers.
|
||||
|
||||
## What is a serializer?
|
||||
|
||||
A serializer is a class that encapsulates all business rules for building a
|
||||
|
|
|
@ -5,7 +5,10 @@ module Projects
|
|||
def execute(fork_to_project = nil)
|
||||
forked_project = fork_to_project ? link_existing_project(fork_to_project) : fork_new_project
|
||||
|
||||
refresh_forks_count if forked_project&.saved?
|
||||
if forked_project&.saved?
|
||||
refresh_forks_count
|
||||
stream_audit_event(forked_project)
|
||||
end
|
||||
|
||||
forked_project
|
||||
end
|
||||
|
@ -133,5 +136,11 @@ module Projects
|
|||
def target_mr_default_target_self
|
||||
@target_mr_default_target_self ||= params[:mr_default_target_self]
|
||||
end
|
||||
|
||||
def stream_audit_event(forked_project)
|
||||
# Defined in EE
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Projects::ForkService.prepend_mod
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
= form_for [@project, @milestone],
|
||||
html: { class: 'milestone-form common-note-form js-quick-submit js-requires-input' } do |f|
|
||||
= form_errors(@milestone)
|
||||
= form_errors(@milestone, pajamas_alert: true)
|
||||
.form-group.row
|
||||
.col-form-label.col-sm-2
|
||||
= f.label :title, _('Title')
|
||||
|
|
|
@ -555,3 +555,52 @@ X-Gitlab-Event-Streaming-Token: <DESTINATION_TOKEN>
|
|||
"event_type": "merge_request_create"
|
||||
}
|
||||
```
|
||||
|
||||
## Audit event streaming on project fork actions
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90916) in GitLab 15.2.
|
||||
|
||||
Stream audit events that relate to project fork actions using the `/logs` endpoint.
|
||||
|
||||
Send API requests that contain the `X-Gitlab-Audit-Event-Type` header with value `project_fork_operation`. GitLab responds with JSON payloads with an
|
||||
`event_type` field set to `project_fork_operation`.
|
||||
|
||||
### Headers
|
||||
|
||||
Headers are formatted as follows:
|
||||
|
||||
```plaintext
|
||||
POST /logs HTTP/1.1
|
||||
Host: <DESTINATION_HOST>
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
X-Gitlab-Audit-Event-Type: project_fork_operation
|
||||
X-Gitlab-Event-Streaming-Token: <DESTINATION_TOKEN>
|
||||
```
|
||||
|
||||
### Example payload
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 1,
|
||||
"author_id": 1,
|
||||
"entity_id": 24,
|
||||
"entity_type": "Project",
|
||||
"details": {
|
||||
"author_name": "example_username",
|
||||
"target_id": 24,
|
||||
"target_type": "Project",
|
||||
"target_details": "example-project",
|
||||
"custom_message": "Forked project to another-group/example-project-forked",
|
||||
"ip_address": "127.0.0.1",
|
||||
"entity_path": "example-group/example-project"
|
||||
},
|
||||
"ip_address": "127.0.0.1",
|
||||
"author_name": "example_username",
|
||||
"entity_path": "example-group/example-project",
|
||||
"target_details": "example-project",
|
||||
"created_at": "2022-06-30T03:43:35.384Z",
|
||||
"target_type": "Project",
|
||||
"target_id": 24,
|
||||
"event_type": "project_fork_operation"
|
||||
}
|
||||
```
|
||||
|
|
65
doc/administration/postgresql/moving.md
Normal file
65
doc/administration/postgresql/moving.md
Normal file
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
stage: Data Stores
|
||||
group: Database
|
||||
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
|
||||
---
|
||||
|
||||
# Moving GitLab databases to a different PostgreSQL instance **(FREE SELF)**
|
||||
|
||||
Sometimes it is necessary to move your databases from one PostgreSQL instance to
|
||||
another. For example, if you are using AWS Aurora and are preparing to
|
||||
enable Database Load Balancing, you will need to move your databases to
|
||||
RDS for PostgreSQL.
|
||||
|
||||
To move databases from one instance to another:
|
||||
|
||||
1. Gather the source and destination PostgreSQL endpoint information:
|
||||
|
||||
```shell
|
||||
SRC_PGHOST=<source postgresql host>
|
||||
SRC_PGUSER=<source postgresql user>
|
||||
|
||||
DST_PGHOST=<destination postgresql host>
|
||||
DST_PGUSER=<destination postgresql user>
|
||||
```
|
||||
|
||||
1. Stop GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl stop
|
||||
```
|
||||
|
||||
1. Dump the databases from the source:
|
||||
|
||||
```shell
|
||||
/opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f gitlabhq_production.sql gitlabhq_production
|
||||
/opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f praefect_production.sql praefect_production
|
||||
```
|
||||
|
||||
1. Restore the databases to the destination (this will overwrite any existing databases with the same names):
|
||||
|
||||
```shell
|
||||
/opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f praefect_production.sql postgres
|
||||
/opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f gitlabhq_production.sql postgres
|
||||
```
|
||||
|
||||
1. Configure the GitLab application servers with the appropriate connection details
|
||||
for your destination PostgreSQL instance in your `/etc/gitlab/gitlab.rb` file:
|
||||
|
||||
```ruby
|
||||
gitlab_rails['db_host'] = '<destination postgresql host>'
|
||||
```
|
||||
|
||||
For more information on GitLab multi-node setups, refer to the [reference architectures](../reference_architectures/index.md).
|
||||
|
||||
1. Reconfigure for the changes to take effect:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl reconfigure
|
||||
```
|
||||
|
||||
1. Restart GitLab:
|
||||
|
||||
```shell
|
||||
sudo gitlab-ctl start
|
||||
```
|
|
@ -51,7 +51,7 @@ RSpec.describe 'Milestone' do
|
|||
end
|
||||
find('input[name="commit"]').click
|
||||
|
||||
expect(find('.alert-danger')).to have_content('already being used for another group or project milestone.')
|
||||
expect(find('.gl-alert-danger')).to have_content('already being used for another group or project milestone.')
|
||||
end
|
||||
|
||||
it 'displays validation message when there is a group milestone with same title' do
|
||||
|
|
|
@ -454,6 +454,16 @@ RSpec.describe Gitlab::BackgroundMigration::RecalculateVulnerabilitiesOccurrence
|
|||
allow(Gitlab::ErrorTracking).to receive(:track_and_raise_exception)
|
||||
expect(Gitlab::ErrorTracking).to have_received(:track_and_raise_exception).with(expected_error).once
|
||||
end
|
||||
|
||||
it_behaves_like 'marks background migration job records' do
|
||||
let(:arguments) { [1, 4] }
|
||||
subject { described_class.new }
|
||||
end
|
||||
end
|
||||
|
||||
it_behaves_like 'marks background migration job records' do
|
||||
let(:arguments) { [1, 4] }
|
||||
subject { described_class.new }
|
||||
end
|
||||
|
||||
private
|
||||
|
|
Loading…
Reference in a new issue