snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
This commit is contained in:
0
zerver/webhooks/gitlab/__init__.py
Normal file
0
zerver/webhooks/gitlab/__init__.py
Normal file
52
zerver/webhooks/gitlab/doc.md
Normal file
52
zerver/webhooks/gitlab/doc.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Zulip GitLab integration
|
||||
|
||||
Receive GitLab notifications in Zulip!
|
||||
|
||||
!!! tip ""
|
||||
|
||||
If you also configure a [custom profile
|
||||
field](/help/custom-profile-fields) for GitLab accounts, this
|
||||
integration will refer to GitLab users using [Zulip silent
|
||||
mentions](/help/mention-a-user-or-group#silently-mention-a-user),
|
||||
rather than their GitLab name.
|
||||
|
||||
|
||||
{start_tabs}
|
||||
|
||||
1. {!create-an-incoming-webhook.md!}
|
||||
|
||||
1. Decide where to send {{ integration_display_name }} notifications, and
|
||||
[generate the integration URL](/help/generate-integration-url). You'll be
|
||||
able to configure which branches you'll receive notifications from,
|
||||
whether to exclude notifications from private projects, and whether to
|
||||
include the merge request title in addition to the merge request ID in
|
||||
the topic name.
|
||||
|
||||
1. Go to your repository on GitLab and click **Settings** on the left
|
||||
sidebar. Click on **Webhooks** and select **Add new webhook**.
|
||||
|
||||
1. Set **URL** to the URL you generated, and **Name** to a name of your
|
||||
choice, such as `Zulip`. Select the [events](#filtering-incoming-events)
|
||||
you would like to receive notifications for, and click **Add Webhook**.
|
||||
|
||||
!!! warn ""
|
||||
|
||||
**Note**: If your GitLab server and your Zulip server are on a local network
|
||||
together, and you're running GitLab 10.5 or newer, you may need to enable
|
||||
GitLab's "Allow requests to the local network from hooks and
|
||||
services" setting (by default, recent GitLab versions refuse to post
|
||||
webhook events to servers on the local network). You can find this
|
||||
setting near the bottom of the GitLab "Settings" page in the "Admin area".
|
||||
|
||||
{end_tabs}
|
||||
|
||||
{!congrats.md!}
|
||||
|
||||

|
||||
|
||||
{!event-filtering-additional-feature.md!}
|
||||
|
||||
### Related documentation
|
||||
|
||||
{!webhooks-url-specification.md!}
|
||||
* [GitLab webhooks documentation](https://docs.gitlab.com/user/project/integrations/webhooks/#create-a-webhook)
|
||||
42
zerver/webhooks/gitlab/fixtures/build_created.json
Normal file
42
zerver/webhooks/gitlab/fixtures/build_created.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"object_kind":"build",
|
||||
"ref":"master",
|
||||
"tag":false,
|
||||
"before_sha":"c4e3d3814490d5f4432a19e874d86c5d0a71451e",
|
||||
"sha":"c4e3d3814490d5f4432a19e874d86c5d0a71451e",
|
||||
"build_id":4537823,
|
||||
"build_name":"job_name",
|
||||
"build_stage":"test",
|
||||
"build_status":"created",
|
||||
"build_started_at":null,
|
||||
"build_finished_at":null,
|
||||
"build_duration":null,
|
||||
"build_allow_failure":true,
|
||||
"project_id":1740047,
|
||||
"project_name":"Tomasz Kolek / my-awesome-project",
|
||||
"user":{
|
||||
"id":745906,
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@go2.pl"
|
||||
},
|
||||
"commit":{
|
||||
"id":4413028,
|
||||
"sha":"c4e3d3814490d5f4432a19e874d86c5d0a71451e",
|
||||
"message":"x\n",
|
||||
"author_name":"Tomasz Kolek",
|
||||
"author_email":"tomasz-kolek@go2.pl",
|
||||
"status":"created",
|
||||
"duration":null,
|
||||
"started_at":null,
|
||||
"finished_at":null
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"description":"abc",
|
||||
"homepage":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"visibility_level":20
|
||||
}
|
||||
}
|
||||
42
zerver/webhooks/gitlab/fixtures/build_started.json
Normal file
42
zerver/webhooks/gitlab/fixtures/build_started.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"object_kind":"build",
|
||||
"ref":"master",
|
||||
"tag":false,
|
||||
"before_sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"build_id":4541112,
|
||||
"build_name":"job_name",
|
||||
"build_stage":"test",
|
||||
"build_status":"running",
|
||||
"build_started_at":"2016-09-28 20:21:04 UTC",
|
||||
"build_finished_at":null,
|
||||
"build_duration":0.159148421,
|
||||
"build_allow_failure":true,
|
||||
"project_id":1740047,
|
||||
"project_name":"Tomasz Kolek / my-awesome-project",
|
||||
"user":{
|
||||
"id":745906,
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@go2.pl"
|
||||
},
|
||||
"commit":{
|
||||
"id":4414206,
|
||||
"sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"message":"a\n",
|
||||
"author_name":"Tomasz Kolek",
|
||||
"author_email":"tomasz-kolek@go2.pl",
|
||||
"status":"running",
|
||||
"duration":0,
|
||||
"started_at":"2016-09-28 20:21:04 UTC",
|
||||
"finished_at":null
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"description":"abc",
|
||||
"homepage":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"visibility_level":20
|
||||
}
|
||||
}
|
||||
42
zerver/webhooks/gitlab/fixtures/build_succeeded.json
Normal file
42
zerver/webhooks/gitlab/fixtures/build_succeeded.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"object_kind":"build",
|
||||
"ref":"master",
|
||||
"tag":false,
|
||||
"before_sha":"c4e3d3814490d5f4432a19e874d86c5d0a71451e",
|
||||
"sha":"c4e3d3814490d5f4432a19e874d86c5d0a71451e",
|
||||
"build_id":4537823,
|
||||
"build_name":"job_name",
|
||||
"build_stage":"test",
|
||||
"build_status":"success",
|
||||
"build_started_at":"2016-09-28 18:33:47 UTC",
|
||||
"build_finished_at":"2016-09-28 18:34:32 UTC",
|
||||
"build_duration":44.711645256,
|
||||
"build_allow_failure":true,
|
||||
"project_id":1740047,
|
||||
"project_name":"Tomasz Kolek / my-awesome-project",
|
||||
"user":{
|
||||
"id":745906,
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@go2.pl"
|
||||
},
|
||||
"commit":{
|
||||
"id":4413028,
|
||||
"sha":"c4e3d3814490d5f4432a19e874d86c5d0a71451e",
|
||||
"message":"x\n",
|
||||
"author_name":"Tomasz Kolek",
|
||||
"author_email":"tomasz-kolek@go2.pl",
|
||||
"status":"success",
|
||||
"duration":44,
|
||||
"started_at":"2016-09-28 18:33:47 UTC",
|
||||
"finished_at":"2016-09-28 18:34:32 UTC"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:TomaszKolek/gitlab-test.git",
|
||||
"description":"abc",
|
||||
"homepage":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"visibility_level":20
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "confidential_issue",
|
||||
"user": {
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 5,
|
||||
"name": "testing",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"git_http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"namespace": "joe.bloggs",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "joe.bloggs/testing",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 2,
|
||||
"closed_at": "2018-09-15 19:05:12 UTC",
|
||||
"confidential": true,
|
||||
"created_at": "2018-09-14 17:48:36 UTC",
|
||||
"description": "Testing Test",
|
||||
"due_date": null,
|
||||
"id": 1,
|
||||
"iid": 1,
|
||||
"last_edited_at": "2018-09-15 19:04:31 UTC",
|
||||
"last_edited_by_id": 2,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 5,
|
||||
"relative_position": 1073742323,
|
||||
"state": "closed",
|
||||
"time_estimate": 0,
|
||||
"title": "Testing Test",
|
||||
"updated_at": "2018-09-15 19:05:12 UTC",
|
||||
"updated_by_id": 2,
|
||||
"url": "https://gitlab.example.co.uk/joe.bloggs/testing/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"action": "close"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"updated_at": {
|
||||
"previous": "2018-09-15 19:05:12 UTC",
|
||||
"current": "2018-09-15 19:05:12 UTC"
|
||||
},
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "confidential_issue",
|
||||
"user": {
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 5,
|
||||
"name": "testing",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"git_http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"namespace": "joe.bloggs",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "joe.bloggs/testing",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 2,
|
||||
"closed_at": null,
|
||||
"confidential": true,
|
||||
"created_at": "2018-09-15 19:33:44 UTC",
|
||||
"description": "Testing",
|
||||
"due_date": null,
|
||||
"id": 2,
|
||||
"iid": 2,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 5,
|
||||
"relative_position": 1073742823,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "Testing",
|
||||
"updated_at": "2018-09-15 19:33:44 UTC",
|
||||
"updated_by_id": null,
|
||||
"url": "https://gitlab.example.co.uk/joe.bloggs/testing/issues/2",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [
|
||||
2
|
||||
],
|
||||
"assignee_id": 2,
|
||||
"action": "open"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"assignees": {
|
||||
"previous": [],
|
||||
"current": [
|
||||
{
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
}
|
||||
]
|
||||
},
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing"
|
||||
},
|
||||
"assignees": [
|
||||
{
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "confidential_issue",
|
||||
"user": {
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 5,
|
||||
"name": "testing",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"git_http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"namespace": "joe.bloggs",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "joe.bloggs/testing",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 2,
|
||||
"closed_at": null,
|
||||
"confidential": true,
|
||||
"created_at": "2018-09-14 17:48:36 UTC",
|
||||
"description": "This description actually has a hidden comment in it!\n\n<!-- This is\na multiline\ncomment -->\n\n<!-- one line comment -->\n\n<!--\nanother\nmultiline\ncomment\n-->",
|
||||
"due_date": null,
|
||||
"id": 1,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 5,
|
||||
"relative_position": 1073742323,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "Testing",
|
||||
"updated_at": "2018-09-14 17:48:36 UTC",
|
||||
"updated_by_id": null,
|
||||
"url": "https://gitlab.example.co.uk/joe.bloggs/testing/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"action": "open"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "confidential_issue",
|
||||
"user": {
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 5,
|
||||
"name": "testing",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"git_http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"namespace": "joe.bloggs",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "joe.bloggs/testing",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 2,
|
||||
"closed_at": null,
|
||||
"confidential": true,
|
||||
"created_at": "2018-09-14 17:48:36 UTC",
|
||||
"description": "Testing",
|
||||
"due_date": null,
|
||||
"id": 1,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 5,
|
||||
"relative_position": 1073742323,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "Testing",
|
||||
"updated_at": "2018-09-14 17:48:36 UTC",
|
||||
"updated_by_id": null,
|
||||
"url": "https://gitlab.example.co.uk/joe.bloggs/testing/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"action": "open"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "confidential_issue",
|
||||
"user": {
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 5,
|
||||
"name": "testing",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"git_http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"namespace": "joe.bloggs",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "joe.bloggs/testing",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"ssh_url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 2,
|
||||
"closed_at": null,
|
||||
"confidential": true,
|
||||
"created_at": "2018-09-14 17:48:36 UTC",
|
||||
"description": "Testing Test",
|
||||
"due_date": null,
|
||||
"id": 1,
|
||||
"iid": 1,
|
||||
"last_edited_at": "2018-09-15 19:04:31 UTC",
|
||||
"last_edited_by_id": 2,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 5,
|
||||
"relative_position": 1073742323,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "Testing Test",
|
||||
"updated_at": "2018-09-15 19:05:15 UTC",
|
||||
"updated_by_id": 2,
|
||||
"url": "https://gitlab.example.co.uk/joe.bloggs/testing/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"action": "reopen"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"closed_at": {
|
||||
"previous": "2018-09-15 19:05:12 UTC",
|
||||
"current": null
|
||||
},
|
||||
"state": {
|
||||
"previous": "closed",
|
||||
"current": "opened"
|
||||
},
|
||||
"updated_at": {
|
||||
"previous": "2018-09-15 19:05:12 UTC",
|
||||
"current": "2018-09-15 19:05:15 UTC"
|
||||
},
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "confidential_issue",
|
||||
"user": {
|
||||
"name": "Joe Bloggs",
|
||||
"username": "joe.bloggs",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/ca4538511817d50e4c64a354537f1135?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 5,
|
||||
"name": "testing",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@gitlab.example.co.uk:1999/joe.bloggs/testing.git",
|
||||
"git_http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git",
|
||||
"namespace": "joe.bloggs",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "joe.bloggs/testing",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk:1999/joe.bloggs/testing.git",
|
||||
"ssh_url": "ssh://git@gitlab.example.co.uk:1999/joe.bloggs/testing.git",
|
||||
"http_url": "https://gitlab.example.co.uk/joe.bloggs/testing.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 2,
|
||||
"closed_at": null,
|
||||
"confidential": true,
|
||||
"created_at": "2018-09-14 17:48:36 UTC",
|
||||
"description": "Testing",
|
||||
"due_date": null,
|
||||
"id": 1,
|
||||
"iid": 1,
|
||||
"last_edited_at": "2018-09-15 19:08:43 UTC",
|
||||
"last_edited_by_id": 2,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 5,
|
||||
"relative_position": 1073742323,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "Testing",
|
||||
"updated_at": "2018-09-15 19:08:43 UTC",
|
||||
"updated_by_id": 2,
|
||||
"url": "https://gitlab.example.co.uk/joe.bloggs/testing/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"action": "update"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"description": {
|
||||
"previous": "Testing Test",
|
||||
"current": "Testing"
|
||||
},
|
||||
"last_edited_at": {
|
||||
"previous": "2018-09-15 19:04:31 UTC",
|
||||
"current": "2018-09-15 19:08:43 UTC"
|
||||
},
|
||||
"title": {
|
||||
"previous": "Testing Test",
|
||||
"current": "Testing"
|
||||
},
|
||||
"updated_at": {
|
||||
"previous": "2018-09-15 19:05:15 UTC",
|
||||
"current": "2018-09-15 19:08:43 UTC"
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing",
|
||||
"url": "ssh://git@gitlab.example.co.uk:1999/joe.bloggs/testing.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.example.co.uk/joe.bloggs/testing"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"object_kind": "note",
|
||||
"event_type": "confidential_note",
|
||||
"user": {
|
||||
"id": 14613894,
|
||||
"name": "Satyam Bansal",
|
||||
"username": "sbansal1999",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/f4dd7cfc79fac91db4d9ecbb443a0519?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 46186758,
|
||||
"project": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"attachment": null,
|
||||
"author_id": 14613894,
|
||||
"change_position": null,
|
||||
"commit_id": null,
|
||||
"created_at": "2023-05-25 17:12:06 UTC",
|
||||
"discussion_id": "0f34ca7c156316d3169dee075808536909857945",
|
||||
"id": 1406130881,
|
||||
"line_code": null,
|
||||
"note": "Some more comments",
|
||||
"noteable_id": 128231959,
|
||||
"noteable_type": "Issue",
|
||||
"original_position": null,
|
||||
"position": null,
|
||||
"project_id": 46186758,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": null,
|
||||
"updated_at": "2023-05-25 17:12:06 UTC",
|
||||
"updated_by_id": null,
|
||||
"description": "Some more comments",
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1#note_1406130881"
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration"
|
||||
},
|
||||
"issue": {
|
||||
"author_id": 14613894,
|
||||
"closed_at": null,
|
||||
"confidential": false,
|
||||
"created_at": "2023-05-20 17:56:18 UTC",
|
||||
"description": "I think we should add a couple of more lines to the file. That will make this a lot better. :eyes:",
|
||||
"discussion_locked": null,
|
||||
"due_date": null,
|
||||
"id": 128231959,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"duplicated_to_id": null,
|
||||
"project_id": 46186758,
|
||||
"relative_position": 513,
|
||||
"state_id": 1,
|
||||
"time_estimate": 0,
|
||||
"title": "Add more lines",
|
||||
"updated_at": "2023-05-25 17:12:06 UTC",
|
||||
"updated_by_id": null,
|
||||
"weight": null,
|
||||
"health_status": null,
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"time_change": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"labels": [],
|
||||
"state": "opened",
|
||||
"severity": "unknown"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"object_kind": "deployment",
|
||||
"status": "canceled",
|
||||
"status_changed_at": "2025-05-02 12:36:52 +0000",
|
||||
"deployment_id": 988610373,
|
||||
"deployable_id": 9905830127,
|
||||
"deployable_url": "https://gitlab.com/vedant8600317/test/-/jobs/9905830127",
|
||||
"environment": "production",
|
||||
"environment_tier": "production",
|
||||
"environment_slug": "production",
|
||||
"environment_external_url": null,
|
||||
"project": {
|
||||
"id": 69310893,
|
||||
"name": "test",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/vedant8600317/test",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"git_http_url": "https://gitlab.com/vedant8600317/test.git",
|
||||
"namespace": "vedant",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "vedant8600317/test",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/vedant8600317/test",
|
||||
"url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"http_url": "https://gitlab.com/vedant8600317/test.git"
|
||||
},
|
||||
"short_sha": "c3cf29e8",
|
||||
"user": {
|
||||
"id": 27470334,
|
||||
"name": "Vedant Joshi",
|
||||
"username": "theofficialvedantjoshi",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/0d29c5c241fe093697c078fbb8abc26b93d4ebbd1609dbbd3835e6b5602fea38?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"user_url": "https://gitlab.com/theofficialvedantjoshi",
|
||||
"commit_url": "https://gitlab.com/vedant8600317/test/-/commit/c3cf29e88c1b0a8a60df37f4687dd5060955d2ae",
|
||||
"commit_title": "Update .gitlab-ci.yml file",
|
||||
"ref": "master"
|
||||
}
|
||||
42
zerver/webhooks/gitlab/fixtures/deployment_hook__failed.json
Normal file
42
zerver/webhooks/gitlab/fixtures/deployment_hook__failed.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"object_kind": "deployment",
|
||||
"status": "failed",
|
||||
"status_changed_at": "2025-05-02 12:30:19 +0000",
|
||||
"deployment_id": 988604916,
|
||||
"deployable_id": 9905759933,
|
||||
"deployable_url": "https://gitlab.com/vedant8600317/test/-/jobs/9905759933",
|
||||
"environment": "production",
|
||||
"environment_tier": "production",
|
||||
"environment_slug": "production",
|
||||
"environment_external_url": null,
|
||||
"project": {
|
||||
"id": 69310893,
|
||||
"name": "test",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/vedant8600317/test",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"git_http_url": "https://gitlab.com/vedant8600317/test.git",
|
||||
"namespace": "vedant",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "vedant8600317/test",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/vedant8600317/test",
|
||||
"url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"http_url": "https://gitlab.com/vedant8600317/test.git"
|
||||
},
|
||||
"short_sha": "846d8de0",
|
||||
"user": {
|
||||
"id": 27470334,
|
||||
"name": "Vedant Joshi",
|
||||
"username": "theofficialvedantjoshi",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/0d29c5c241fe093697c078fbb8abc26b93d4ebbd1609dbbd3835e6b5602fea38?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"user_url": "https://gitlab.com/theofficialvedantjoshi",
|
||||
"commit_url": "https://gitlab.com/vedant8600317/test/-/commit/846d8de0b7b3d694954249d2fd5d87fbe8c84e4c",
|
||||
"commit_title": "Update .gitlab-ci.yml file",
|
||||
"ref": "master"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"object_kind": "deployment",
|
||||
"status": "running",
|
||||
"status_changed_at": "2025-05-02 11:54:46 +0000",
|
||||
"deployment_id": 988572802,
|
||||
"deployable_id": 9905389091,
|
||||
"deployable_url": "https://gitlab.com/vedant8600317/test/-/jobs/9905389091",
|
||||
"environment": "production",
|
||||
"environment_tier": "production",
|
||||
"environment_slug": "production",
|
||||
"environment_external_url": null,
|
||||
"project": {
|
||||
"id": 69310893,
|
||||
"name": "test",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/vedant8600317/test",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"git_http_url": "https://gitlab.com/vedant8600317/test.git",
|
||||
"namespace": "vedant",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "vedant8600317/test",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/vedant8600317/test",
|
||||
"url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"http_url": "https://gitlab.com/vedant8600317/test.git"
|
||||
},
|
||||
"short_sha": "58793660",
|
||||
"user": {
|
||||
"id": 27470334,
|
||||
"name": "Vedant Joshi",
|
||||
"username": "theofficialvedantjoshi",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/0d29c5c241fe093697c078fbb8abc26b93d4ebbd1609dbbd3835e6b5602fea38?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"user_url": "https://gitlab.com/theofficialvedantjoshi",
|
||||
"commit_url": "https://gitlab.com/vedant8600317/test/-/commit/58793660b22d6ceacbdc23b28a0562bca339702c",
|
||||
"commit_title": "Update .gitlab-ci.yml file",
|
||||
"ref": "master"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"object_kind": "deployment",
|
||||
"status": "success",
|
||||
"status_changed_at": "2025-05-02 11:55:16 +0000",
|
||||
"deployment_id": 988572802,
|
||||
"deployable_id": 9905389091,
|
||||
"deployable_url": "https://gitlab.com/vedant8600317/test/-/jobs/9905389091",
|
||||
"environment": "production",
|
||||
"environment_tier": "production",
|
||||
"environment_slug": "production",
|
||||
"environment_external_url": null,
|
||||
"project": {
|
||||
"id": 69310893,
|
||||
"name": "test",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/vedant8600317/test",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"git_http_url": "https://gitlab.com/vedant8600317/test.git",
|
||||
"namespace": "vedant",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "vedant8600317/test",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/vedant8600317/test",
|
||||
"url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"ssh_url": "git@gitlab.com:vedant8600317/test.git",
|
||||
"http_url": "https://gitlab.com/vedant8600317/test.git"
|
||||
},
|
||||
"short_sha": "58793660",
|
||||
"user": {
|
||||
"id": 27470334,
|
||||
"name": "Vedant Joshi",
|
||||
"username": "theofficialvedantjoshi",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/0d29c5c241fe093697c078fbb8abc26b93d4ebbd1609dbbd3835e6b5602fea38?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"user_url": "https://gitlab.com/theofficialvedantjoshi",
|
||||
"commit_url": "https://gitlab.com/vedant8600317/test/-/commit/58793660b22d6ceacbdc23b28a0562bca339702c",
|
||||
"commit_title": "Update .gitlab-ci.yml file",
|
||||
"ref": "master"
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"object_kind": "emoji",
|
||||
"event_type": "award",
|
||||
"user": {
|
||||
"id": 26076637,
|
||||
"name": "Varun Kolanu",
|
||||
"username": "kolanuvarun739",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/dde05c11435528ac083e918ce384c5b943c7ec54be520b7f4a4bcd3863b36060?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 68452408,
|
||||
"project": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"user_id": 26076637,
|
||||
"created_at": "2025-04-05 08:18:27 UTC",
|
||||
"id": 33657545,
|
||||
"name": "heart",
|
||||
"awardable_type": "Note",
|
||||
"awardable_id": 2421525600,
|
||||
"updated_at": "2025-04-05 08:18:27 UTC",
|
||||
"awarded_on_url": null
|
||||
},
|
||||
"note": {
|
||||
"author_id": 26076637,
|
||||
"change_position": {
|
||||
"base_sha": null,
|
||||
"start_sha": null,
|
||||
"head_sha": null,
|
||||
"old_path": null,
|
||||
"new_path": null,
|
||||
"position_type": "text",
|
||||
"old_line": null,
|
||||
"new_line": null,
|
||||
"line_range": null
|
||||
},
|
||||
"commit_id": null,
|
||||
"created_at": "2025-03-28 05:18:17 UTC",
|
||||
"discussion_id": "a16734cac60d334a42d27a471d3ca8e6970bf8b4",
|
||||
"id": 2421525600,
|
||||
"line_code": null,
|
||||
"note": "Hi",
|
||||
"noteable_id": 2819666,
|
||||
"noteable_type": "DesignManagement::Design",
|
||||
"original_position": {
|
||||
"base_sha": "0000000000000000000000000000000000000000",
|
||||
"start_sha": "0000000000000000000000000000000000000000",
|
||||
"head_sha": "e38b95db9dfe59d772b60ce9c99990bb535cbce8",
|
||||
"old_path": null,
|
||||
"new_path": "designs/issue-1/Sample.png",
|
||||
"position_type": "image",
|
||||
"width": 1056,
|
||||
"height": 595,
|
||||
"x": 290,
|
||||
"y": 441
|
||||
},
|
||||
"position": {
|
||||
"base_sha": "0000000000000000000000000000000000000000",
|
||||
"start_sha": "0000000000000000000000000000000000000000",
|
||||
"head_sha": "e38b95db9dfe59d772b60ce9c99990bb535cbce8",
|
||||
"old_path": null,
|
||||
"new_path": "designs/issue-1/Sample.png",
|
||||
"position_type": "image",
|
||||
"width": 1056,
|
||||
"height": 595,
|
||||
"x": 544,
|
||||
"y": 443
|
||||
},
|
||||
"project_id": 68452408,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": "DiffNote",
|
||||
"updated_at": "2025-04-05 08:18:27 UTC",
|
||||
"updated_by_id": 26076637,
|
||||
"description": "Hi",
|
||||
"url": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"object_kind": "emoji",
|
||||
"event_type": "award",
|
||||
"user": {
|
||||
"id": 26076637,
|
||||
"name": "Varun Kolanu",
|
||||
"username": "kolanuvarun739",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/dde05c11435528ac083e918ce384c5b943c7ec54be520b7f4a4bcd3863b36060?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 68452408,
|
||||
"project": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"user_id": 26076637,
|
||||
"created_at": "2025-04-04 01:14:53 UTC",
|
||||
"id": 33633176,
|
||||
"name": "thumbsup",
|
||||
"awardable_type": "MergeRequest",
|
||||
"awardable_id": 373930372,
|
||||
"updated_at": "2025-04-04 01:14:53 UTC",
|
||||
"awarded_on_url": "https://gitlab.com/kolanuvarun/sample/-/merge_requests/1"
|
||||
},
|
||||
"merge_request": {
|
||||
"assignee_id": null,
|
||||
"author_id": 26076637,
|
||||
"created_at": "2025-04-02 17:51:11 UTC",
|
||||
"description": "Some",
|
||||
"draft": false,
|
||||
"head_pipeline_id": null,
|
||||
"id": 373930372,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"merge_commit_sha": null,
|
||||
"merge_error": null,
|
||||
"merge_params": {
|
||||
"force_remove_source_branch": "1"
|
||||
},
|
||||
"merge_status": "can_be_merged",
|
||||
"merge_user_id": null,
|
||||
"merge_when_pipeline_succeeds": false,
|
||||
"milestone_id": null,
|
||||
"source_branch": "for-pr",
|
||||
"source_project_id": 68452408,
|
||||
"state_id": 1,
|
||||
"target_branch": "master",
|
||||
"target_project_id": 68452408,
|
||||
"time_estimate": 0,
|
||||
"title": "Edit README.md",
|
||||
"updated_at": "2025-04-02 17:53:19 UTC",
|
||||
"updated_by_id": null,
|
||||
"prepared_at": "2025-04-02 17:51:13 UTC",
|
||||
"assignee_ids": [],
|
||||
"blocking_discussions_resolved": true,
|
||||
"detailed_merge_status": "mergeable",
|
||||
"first_contribution": true,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"human_total_time_spent": null,
|
||||
"labels": [],
|
||||
"last_commit": {
|
||||
"id": "ed045981aa4105d74ad6b0cb4ac63c5b1a88b158",
|
||||
"message": "Edit README.md",
|
||||
"title": "Edit README.md",
|
||||
"timestamp": "2025-04-02T17:50:49+00:00",
|
||||
"url": "https://gitlab.com/kolanuvarun/sample/-/commit/ed045981aa4105d74ad6b0cb4ac63c5b1a88b158",
|
||||
"author": {
|
||||
"name": "Varun Kolanu",
|
||||
"email": "kolanuvarun739@gmail.com"
|
||||
}
|
||||
},
|
||||
"reviewer_ids": [],
|
||||
"source": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"state": "opened",
|
||||
"target": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"time_change": 0,
|
||||
"total_time_spent": 0,
|
||||
"url": "https://gitlab.com/kolanuvarun/sample/-/merge_requests/1",
|
||||
"work_in_progress": false,
|
||||
"approval_rules": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"object_kind": "emoji",
|
||||
"event_type": "award",
|
||||
"user": {
|
||||
"id": 26076637,
|
||||
"name": "Varun Kolanu",
|
||||
"username": "kolanuvarun739",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/dde05c11435528ac083e918ce384c5b943c7ec54be520b7f4a4bcd3863b36060?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 68452408,
|
||||
"project": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"user_id": 26076637,
|
||||
"created_at": "2025-04-06 03:56:58 UTC",
|
||||
"id": 33658637,
|
||||
"name": "thumbsup",
|
||||
"awardable_type": "Snippet",
|
||||
"awardable_id": 4831194,
|
||||
"updated_at": "2025-04-06 03:56:58 UTC",
|
||||
"awarded_on_url": "https://gitlab.com/kolanuvarun/sample/-/snippets/4831194"
|
||||
},
|
||||
"project_snippet": {
|
||||
"id": 4831194,
|
||||
"title": "Sample Snippet",
|
||||
"description": "Hello",
|
||||
"content": "console.log(\"hello\");",
|
||||
"author_id": 26076637,
|
||||
"project_id": 68452408,
|
||||
"created_at": "2025-04-02 17:57:11 UTC",
|
||||
"updated_at": "2025-04-06 03:56:53 UTC",
|
||||
"file_name": "hello.js",
|
||||
"type": "ProjectSnippet",
|
||||
"visibility_level": 20,
|
||||
"url": "https://gitlab.com/kolanuvarun/sample/-/snippets/4831194"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"object_kind": "emoji",
|
||||
"event_type": "revoke",
|
||||
"user": {
|
||||
"id": 26076637,
|
||||
"name": "Varun Kolanu",
|
||||
"username": "kolanuvarun739",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/dde05c11435528ac083e918ce384c5b943c7ec54be520b7f4a4bcd3863b36060?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 68452408,
|
||||
"project": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"user_id": 26076637,
|
||||
"created_at": "2025-04-06 03:05:26 UTC",
|
||||
"id": 33658617,
|
||||
"name": "thumbsdown",
|
||||
"awardable_type": "Issue",
|
||||
"awardable_id": 164866079,
|
||||
"updated_at": "2025-04-06 03:05:26 UTC",
|
||||
"awarded_on_url": "https://gitlab.com/kolanuvarun/sample/-/issues/1"
|
||||
},
|
||||
"work_item": {
|
||||
"author_id": 26076637,
|
||||
"closed_at": null,
|
||||
"confidential": false,
|
||||
"created_at": "2025-03-28 05:14:04 UTC",
|
||||
"description": "",
|
||||
"discussion_locked": null,
|
||||
"due_date": null,
|
||||
"id": 164866079,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"duplicated_to_id": null,
|
||||
"project_id": 68452408,
|
||||
"relative_position": 513,
|
||||
"state_id": 1,
|
||||
"time_estimate": 0,
|
||||
"title": "Sample Issue",
|
||||
"updated_at": "2025-03-31 10:58:16 UTC",
|
||||
"updated_by_id": null,
|
||||
"weight": null,
|
||||
"health_status": null,
|
||||
"type": "Issue",
|
||||
"url": "https://gitlab.com/kolanuvarun/sample/-/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"time_change": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"labels": [],
|
||||
"state": "opened",
|
||||
"severity": "unknown",
|
||||
"customer_relations_contacts": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"object_kind": "emoji",
|
||||
"event_type": "revoke",
|
||||
"user": {
|
||||
"id": 26076637,
|
||||
"name": "Varun Kolanu",
|
||||
"username": "kolanuvarun739",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/dde05c11435528ac083e918ce384c5b943c7ec54be520b7f4a4bcd3863b36060?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 68452408,
|
||||
"project": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"user_id": 26076637,
|
||||
"created_at": "2025-04-05 08:03:52 UTC",
|
||||
"id": 33657523,
|
||||
"name": "heart",
|
||||
"awardable_type": "Note",
|
||||
"awardable_id": 2431339003,
|
||||
"updated_at": "2025-04-05 08:03:52 UTC",
|
||||
"awarded_on_url": "https://gitlab.com/kolanuvarun/sample/-/merge_requests/1#note_2431339003"
|
||||
},
|
||||
"note": {
|
||||
"author_id": 26076637,
|
||||
"change_position": null,
|
||||
"commit_id": null,
|
||||
"created_at": "2025-04-02 17:53:19 UTC",
|
||||
"discussion_id": "c5291e4d171dc43ccff84e2446e0f07b9c73f8d9",
|
||||
"id": 2431339003,
|
||||
"line_code": null,
|
||||
"note": "hello",
|
||||
"noteable_id": 373930372,
|
||||
"noteable_type": "MergeRequest",
|
||||
"original_position": null,
|
||||
"position": null,
|
||||
"project_id": 68452408,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": null,
|
||||
"updated_at": "2025-04-05 08:04:38 UTC",
|
||||
"updated_by_id": null,
|
||||
"description": "hello",
|
||||
"url": "https://gitlab.com/kolanuvarun/sample/-/merge_requests/1#note_2431339003"
|
||||
},
|
||||
"merge_request": {
|
||||
"assignee_id": null,
|
||||
"author_id": 26076637,
|
||||
"created_at": "2025-04-02 17:51:11 UTC",
|
||||
"description": "Some",
|
||||
"draft": false,
|
||||
"head_pipeline_id": null,
|
||||
"id": 373930372,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"merge_commit_sha": null,
|
||||
"merge_error": null,
|
||||
"merge_params": {
|
||||
"force_remove_source_branch": "1"
|
||||
},
|
||||
"merge_status": "can_be_merged",
|
||||
"merge_user_id": null,
|
||||
"merge_when_pipeline_succeeds": false,
|
||||
"milestone_id": null,
|
||||
"source_branch": "for-pr",
|
||||
"source_project_id": 68452408,
|
||||
"state_id": 1,
|
||||
"target_branch": "master",
|
||||
"target_project_id": 68452408,
|
||||
"time_estimate": 0,
|
||||
"title": "Edit README.md",
|
||||
"updated_at": "2025-04-02 17:53:19 UTC",
|
||||
"updated_by_id": null,
|
||||
"prepared_at": "2025-04-02 17:51:13 UTC",
|
||||
"assignee_ids": [],
|
||||
"blocking_discussions_resolved": true,
|
||||
"detailed_merge_status": "mergeable",
|
||||
"first_contribution": true,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"human_total_time_spent": null,
|
||||
"labels": [],
|
||||
"last_commit": {
|
||||
"id": "ed045981aa4105d74ad6b0cb4ac63c5b1a88b158",
|
||||
"message": "Edit README.md",
|
||||
"title": "Edit README.md",
|
||||
"timestamp": "2025-04-02T17:50:49+00:00",
|
||||
"url": "https://gitlab.com/kolanuvarun/sample/-/commit/ed045981aa4105d74ad6b0cb4ac63c5b1a88b158",
|
||||
"author": {
|
||||
"name": "Varun Kolanu",
|
||||
"email": "kolanuvarun739@gmail.com"
|
||||
}
|
||||
},
|
||||
"reviewer_ids": [],
|
||||
"source": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"state": "opened",
|
||||
"target": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"time_change": 0,
|
||||
"total_time_spent": 0,
|
||||
"url": "https://gitlab.com/kolanuvarun/sample/-/merge_requests/1",
|
||||
"work_in_progress": false,
|
||||
"approval_rules": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"object_kind": "feature_flag",
|
||||
"project": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"user": {
|
||||
"id": 26076637,
|
||||
"name": "Varun Kolanu",
|
||||
"username": "kolanuvarun739",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/dde05c11435528ac083e918ce384c5b943c7ec54be520b7f4a4bcd3863b36060?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"user_url": "https://gitlab.com/kolanuvarun739",
|
||||
"object_attributes": {
|
||||
"id": 2073324,
|
||||
"name": "sample-feature-flag",
|
||||
"description": "",
|
||||
"active": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"object_kind": "feature_flag",
|
||||
"project": {
|
||||
"id": 68452408,
|
||||
"name": "sample",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/kolanuvarun/sample",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"git_http_url": "https://gitlab.com/kolanuvarun/sample.git",
|
||||
"namespace": "kolanuvarun",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "kolanuvarun/sample",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/kolanuvarun/sample",
|
||||
"url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"ssh_url": "git@gitlab.com:kolanuvarun/sample.git",
|
||||
"http_url": "https://gitlab.com/kolanuvarun/sample.git"
|
||||
},
|
||||
"user": {
|
||||
"id": 26076637,
|
||||
"name": "Varun Kolanu",
|
||||
"username": "kolanuvarun739",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/dde05c11435528ac083e918ce384c5b943c7ec54be520b7f4a4bcd3863b36060?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"user_url": "https://gitlab.com/kolanuvarun739",
|
||||
"object_attributes": {
|
||||
"id": 2073324,
|
||||
"name": "sample-feature-flag",
|
||||
"description": "",
|
||||
"active": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"object_kind":"issue",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":2788274,
|
||||
"title":"Issue title_new",
|
||||
"assignee_id":670043,
|
||||
"author_id":670043,
|
||||
"project_id":1534233,
|
||||
"created_at":"2016-08-18 17:47:36 UTC",
|
||||
"updated_at":"2016-08-18 18:14:13 UTC",
|
||||
"position":0,
|
||||
"branch_name":null,
|
||||
"description":"Issue description",
|
||||
"milestone_id":null,
|
||||
"state":"closed",
|
||||
"iid":1,
|
||||
"updated_by_id":670043,
|
||||
"weight":3,
|
||||
"confidential":false,
|
||||
"moved_to_id":null,
|
||||
"deleted_at":null,
|
||||
"due_date":"2016-08-01",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1",
|
||||
"action":"close"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"object_kind":"issue",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":2788274,
|
||||
"title":"Issue title",
|
||||
"assignee_id":670043,
|
||||
"author_id":670043,
|
||||
"project_id":1534233,
|
||||
"created_at":"2016-08-18 17:47:36 UTC",
|
||||
"updated_at":"2016-08-18 17:47:36 UTC",
|
||||
"position":0,
|
||||
"branch_name":null,
|
||||
"description":"Issue description",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"iid":1,
|
||||
"updated_by_id":null,
|
||||
"weight":3,
|
||||
"confidential":false,
|
||||
"moved_to_id":null,
|
||||
"deleted_at":null,
|
||||
"due_date":"2016-08-01",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1",
|
||||
"action":"open"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"user": {
|
||||
"name": "Eeshan Garg",
|
||||
"username": "eeshangarg",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 3319013,
|
||||
"name": "public-repo",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/eeshangarg/public-repo",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"git_http_url": "https://gitlab.com/eeshangarg/public-repo.git",
|
||||
"namespace": "eeshangarg",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "eeshangarg/public-repo",
|
||||
"default_branch": "changes",
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.com/eeshangarg/public-repo",
|
||||
"url": "git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"ssh_url": "git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"http_url": "https://gitlab.com/eeshangarg/public-repo.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 1129123,
|
||||
"closed_at": null,
|
||||
"confidential": false,
|
||||
"created_at": "2018-01-24 00:47:44 UTC",
|
||||
"description": "This description actually has a hidden comment in it!\n\n<!-- This is\na multiline\ncomment -->\n\n<!-- one line comment -->\n\n<!--\nanother\nmultiline\ncomment\n-->",
|
||||
"due_date": null,
|
||||
"id": 8816601,
|
||||
"iid": 3,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 3319013,
|
||||
"relative_position": 1073743323,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "New Issue with hidden comment",
|
||||
"updated_at": "2018-01-24 00:47:44 UTC",
|
||||
"updated_by_id": null,
|
||||
"url": "https://gitlab.com/eeshangarg/public-repo/issues/3",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"action": "open"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "public-repo",
|
||||
"url": "git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/eeshangarg/public-repo"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "issue",
|
||||
"user": {
|
||||
"name": "Adam Birds",
|
||||
"username": "adambirds",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/1e00d93acdfdddc06304143a1dfcd0b4?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 8427506,
|
||||
"name": "Zulip GitLab Test",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.com/adambirds/zulip-gitlab-test",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"git_http_url": "https://gitlab.com/adambirds/zulip-gitlab-test.git",
|
||||
"namespace": "adambirds",
|
||||
"visibility_level": 20,
|
||||
"path_with_namespace": "adambirds/zulip-gitlab-test",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.com/adambirds/zulip-gitlab-test",
|
||||
"url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"ssh_url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"http_url": "https://gitlab.com/adambirds/zulip-gitlab-test.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 1102929,
|
||||
"closed_at": null,
|
||||
"confidential": false,
|
||||
"created_at": "2018-09-17 21:01:30 UTC",
|
||||
"description": "Zulip Test Issue 2",
|
||||
"due_date": null,
|
||||
"id": 14226169,
|
||||
"iid": 2,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 8427506,
|
||||
"relative_position": 1073742823,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "Zulip Test Issue 2",
|
||||
"updated_at": "2018-09-17 21:01:30 UTC",
|
||||
"updated_by_id": null,
|
||||
"weight": null,
|
||||
"url": "https://gitlab.com/adambirds/zulip-gitlab-test/issues/2",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [
|
||||
1102929,
|
||||
1129123
|
||||
],
|
||||
"assignee_id": 1102929,
|
||||
"action": "open"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"author_id": {
|
||||
"previous": null,
|
||||
"current": 1102929
|
||||
},
|
||||
"created_at": {
|
||||
"previous": null,
|
||||
"current": "2018-09-17 21:01:30 UTC"
|
||||
},
|
||||
"description": {
|
||||
"previous": null,
|
||||
"current": "Zulip Test Issue 2"
|
||||
},
|
||||
"id": {
|
||||
"previous": null,
|
||||
"current": 14226169
|
||||
},
|
||||
"iid": {
|
||||
"previous": null,
|
||||
"current": 2
|
||||
},
|
||||
"project_id": {
|
||||
"previous": null,
|
||||
"current": 8427506
|
||||
},
|
||||
"relative_position": {
|
||||
"previous": null,
|
||||
"current": 1073742823
|
||||
},
|
||||
"state": {
|
||||
"previous": null,
|
||||
"current": "opened"
|
||||
},
|
||||
"title": {
|
||||
"previous": null,
|
||||
"current": "Zulip Test Issue 2"
|
||||
},
|
||||
"updated_at": {
|
||||
"previous": null,
|
||||
"current": "2018-09-17 21:01:30 UTC"
|
||||
},
|
||||
"assignees": {
|
||||
"previous": [],
|
||||
"current": [
|
||||
{
|
||||
"name": "Adam Birds",
|
||||
"username": "adambirds",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/1e00d93acdfdddc06304143a1dfcd0b4?s=80&d=identicon"
|
||||
},
|
||||
{
|
||||
"name": "Eeshan Garg",
|
||||
"username": "eeshangarg",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80&d=identicon"
|
||||
},
|
||||
{
|
||||
"name": "Tim Abbott",
|
||||
"username": "timabbott",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80&d=identicon"
|
||||
}
|
||||
]
|
||||
},
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "Zulip GitLab Test",
|
||||
"url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.com/adambirds/zulip-gitlab-test"
|
||||
},
|
||||
"assignees": [
|
||||
{
|
||||
"name": "Adam Birds",
|
||||
"username": "adambirds",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/1e00d93acdfdddc06304143a1dfcd0b4?s=80&d=identicon"
|
||||
},
|
||||
{
|
||||
"name": "Eeshan Garg",
|
||||
"username": "eeshangarg",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80&d=identicon"
|
||||
},
|
||||
{
|
||||
"name": "Tim Abbott",
|
||||
"username": "timabbott",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80&d=identicon"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"object_kind": "issue",
|
||||
"event_type": "issue",
|
||||
"user": {
|
||||
"name": "Adam Birds",
|
||||
"username": "adambirds",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/1e00d93acdfdddc06304143a1dfcd0b4?s=80&d=identicon"
|
||||
},
|
||||
"project": {
|
||||
"id": 8427506,
|
||||
"name": "Zulip GitLab Test",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.com/adambirds/zulip-gitlab-test",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"git_http_url": "https://gitlab.com/adambirds/zulip-gitlab-test.git",
|
||||
"namespace": "adambirds",
|
||||
"visibility_level": 20,
|
||||
"path_with_namespace": "adambirds/zulip-gitlab-test",
|
||||
"default_branch": null,
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://gitlab.com/adambirds/zulip-gitlab-test",
|
||||
"url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"ssh_url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"http_url": "https://gitlab.com/adambirds/zulip-gitlab-test.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"author_id": 1102929,
|
||||
"closed_at": null,
|
||||
"confidential": false,
|
||||
"created_at": "2018-09-17 21:01:30 UTC",
|
||||
"description": "Zulip Test Issue 2",
|
||||
"due_date": null,
|
||||
"id": 14226169,
|
||||
"iid": 2,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"project_id": 8427506,
|
||||
"relative_position": 1073742823,
|
||||
"state": "opened",
|
||||
"time_estimate": 0,
|
||||
"title": "Zulip Test Issue 2",
|
||||
"updated_at": "2018-09-17 21:01:30 UTC",
|
||||
"updated_by_id": null,
|
||||
"weight": null,
|
||||
"url": "https://gitlab.com/adambirds/zulip-gitlab-test/issues/2",
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [
|
||||
1102929,
|
||||
1129123
|
||||
],
|
||||
"assignee_id": 1102929,
|
||||
"action": "open"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"author_id": {
|
||||
"previous": null,
|
||||
"current": 1102929
|
||||
},
|
||||
"created_at": {
|
||||
"previous": null,
|
||||
"current": "2018-09-17 21:01:30 UTC"
|
||||
},
|
||||
"description": {
|
||||
"previous": null,
|
||||
"current": "Zulip Test Issue 2"
|
||||
},
|
||||
"id": {
|
||||
"previous": null,
|
||||
"current": 14226169
|
||||
},
|
||||
"iid": {
|
||||
"previous": null,
|
||||
"current": 2
|
||||
},
|
||||
"project_id": {
|
||||
"previous": null,
|
||||
"current": 8427506
|
||||
},
|
||||
"relative_position": {
|
||||
"previous": null,
|
||||
"current": 1073742823
|
||||
},
|
||||
"state": {
|
||||
"previous": null,
|
||||
"current": "opened"
|
||||
},
|
||||
"title": {
|
||||
"previous": null,
|
||||
"current": "Zulip Test Issue 2"
|
||||
},
|
||||
"updated_at": {
|
||||
"previous": null,
|
||||
"current": "2018-09-17 21:01:30 UTC"
|
||||
},
|
||||
"assignees": {
|
||||
"previous": [],
|
||||
"current": [
|
||||
{
|
||||
"name": "Adam Birds",
|
||||
"username": "adambirds",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/1e00d93acdfdddc06304143a1dfcd0b4?s=80&d=identicon"
|
||||
},
|
||||
{
|
||||
"name": "Eeshan Garg",
|
||||
"username": "eeshangarg",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80&d=identicon"
|
||||
}
|
||||
]
|
||||
},
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "Zulip GitLab Test",
|
||||
"url": "git@gitlab.com:adambirds/zulip-gitlab-test.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.com/adambirds/zulip-gitlab-test"
|
||||
},
|
||||
"assignees": [
|
||||
{
|
||||
"name": "Adam Birds",
|
||||
"username": "adambirds",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/1e00d93acdfdddc06304143a1dfcd0b4?s=80&d=identicon"
|
||||
},
|
||||
{
|
||||
"name": "Eeshan Garg",
|
||||
"username": "eeshangarg",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80&d=identicon"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"object_kind":"issue",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":2788274,
|
||||
"title":"Issue title",
|
||||
"assignee_id":670043,
|
||||
"author_id":670043,
|
||||
"project_id":1534233,
|
||||
"created_at":"2016-08-18 17:47:36 UTC",
|
||||
"updated_at":"2016-08-18 17:47:36 UTC",
|
||||
"position":0,
|
||||
"branch_name":null,
|
||||
"description":"Issue description",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"iid":1,
|
||||
"updated_by_id":null,
|
||||
"weight":3,
|
||||
"confidential":false,
|
||||
"moved_to_id":null,
|
||||
"deleted_at":null,
|
||||
"due_date":"2016-08-01",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1",
|
||||
"action":"open"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"object_kind":"issue",
|
||||
"user":{
|
||||
"name":"Eeshan Garg",
|
||||
"username":"eeshangarg",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"id":3319043,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"author_id":1129123,
|
||||
"closed_at":null,
|
||||
"confidential":false,
|
||||
"created_at":"2018-03-23 17:35:53 UTC",
|
||||
"description":null,
|
||||
"due_date":null,
|
||||
"id":9892394,
|
||||
"iid":7,
|
||||
"last_edited_at":null,
|
||||
"last_edited_by_id":null,
|
||||
"milestone_id":null,
|
||||
"moved_to_id":null,
|
||||
"project_id":3319043,
|
||||
"relative_position":1073745323,
|
||||
"state":"opened",
|
||||
"time_estimate":0,
|
||||
"title":"Issue without description",
|
||||
"updated_at":"2018-03-23 17:35:53 UTC",
|
||||
"updated_by_id":null,
|
||||
"url":"https://gitlab.com/eeshangarg/my-awesome-project/issues/7",
|
||||
"total_time_spent":0,
|
||||
"human_total_time_spent":null,
|
||||
"human_time_estimate":null,
|
||||
"assignee_ids":[
|
||||
|
||||
],
|
||||
"assignee_id":null,
|
||||
"action":"open"
|
||||
},
|
||||
"labels":[
|
||||
|
||||
],
|
||||
"changes":{
|
||||
"total_time_spent":{
|
||||
"previous":null,
|
||||
"current":0
|
||||
}
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"object_kind":"issue",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":2788274,
|
||||
"title":"Issue title_new",
|
||||
"assignee_id":670043,
|
||||
"author_id":670043,
|
||||
"project_id":1534233,
|
||||
"created_at":"2016-08-18 17:47:36 UTC",
|
||||
"updated_at":"2016-08-18 18:15:07 UTC",
|
||||
"position":0,
|
||||
"branch_name":null,
|
||||
"description":"Issue description",
|
||||
"milestone_id":null,
|
||||
"state":"reopened",
|
||||
"iid":1,
|
||||
"updated_by_id":670043,
|
||||
"weight":3,
|
||||
"confidential":false,
|
||||
"moved_to_id":null,
|
||||
"deleted_at":null,
|
||||
"due_date":"2016-08-01",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1",
|
||||
"action":"reopen"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"object_kind":"issue",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":2788274,
|
||||
"title":"Issue title_new",
|
||||
"assignee_id":670043,
|
||||
"author_id":670043,
|
||||
"project_id":1534233,
|
||||
"created_at":"2016-08-18 17:47:36 UTC",
|
||||
"updated_at":"2016-08-18 17:56:30 UTC",
|
||||
"position":0,
|
||||
"branch_name":null,
|
||||
"description":"Issue description",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"iid":1,
|
||||
"updated_by_id":670043,
|
||||
"weight":3,
|
||||
"confidential":false,
|
||||
"moved_to_id":null,
|
||||
"deleted_at":null,
|
||||
"due_date":"2016-08-01",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1",
|
||||
"action":"update"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
50
zerver/webhooks/gitlab/fixtures/job_hook__build_created.json
Normal file
50
zerver/webhooks/gitlab/fixtures/job_hook__build_created.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"object_kind": "build",
|
||||
"ref": "gitlab-script-trigger",
|
||||
"tag": false,
|
||||
"before_sha": "2293ada6b400935a1378653304eaf6221e0fdb8f",
|
||||
"sha": "2293ada6b400935a1378653304eaf6221e0fdb8f",
|
||||
"build_id": 1977,
|
||||
"build_name": "test",
|
||||
"build_stage": "test",
|
||||
"build_status": "created",
|
||||
"build_started_at": null,
|
||||
"build_finished_at": null,
|
||||
"build_duration": null,
|
||||
"build_allow_failure": false,
|
||||
"build_failure_reason": "script_failure",
|
||||
"pipeline_id": 2366,
|
||||
"project_id": 380,
|
||||
"project_name": "gitlab-org/gitlab-test",
|
||||
"user": {
|
||||
"id": 3,
|
||||
"name": "User",
|
||||
"email": "user@gitlab.com",
|
||||
"avatar_url": "http://www.gravatar.com/avatar/e32bd13e2add097461cb96824b7a829c?s=80\u0026d=identicon"
|
||||
},
|
||||
"commit": {
|
||||
"id": 2366,
|
||||
"sha": "2293ada6b400935a1378653304eaf6221e0fdb8f",
|
||||
"message": "test\n",
|
||||
"author_name": "User",
|
||||
"author_email": "user@gitlab.com",
|
||||
"status": "created",
|
||||
"duration": null,
|
||||
"started_at": null,
|
||||
"finished_at": null
|
||||
},
|
||||
"repository": {
|
||||
"name": "gitlab_test",
|
||||
"description": "Atque in sunt eos similique dolores voluptatem.",
|
||||
"homepage": "http://192.168.64.1:3005/gitlab-org/gitlab-test",
|
||||
"git_ssh_url": "git@192.168.64.1:gitlab-org/gitlab-test.git",
|
||||
"git_http_url": "http://192.168.64.1:3005/gitlab-org/gitlab-test.git",
|
||||
"visibility_level": 20
|
||||
},
|
||||
"runner": {
|
||||
"active": true,
|
||||
"is_shared": false,
|
||||
"id": 380987,
|
||||
"description": "shared-runners-manager-6.gitlab.com"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756509,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":670043,
|
||||
"title":"New Merge Request",
|
||||
"created_at":"2016-08-22 20:27:22 UTC",
|
||||
"updated_at":"2016-08-22 20:33:20 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"merge_status":"can_be_merged",
|
||||
"target_project_id":1534233,
|
||||
"iid":3,
|
||||
"description":"updated desc",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":670043,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3",
|
||||
"action":"update",
|
||||
"oldrev":"600060393d326486c12f222ba78d569dab6b4114"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"object_kind": "merge_request",
|
||||
"event_type": "merge_request",
|
||||
"user": {
|
||||
"id": 587951,
|
||||
"name": "Sumit Bhanushali",
|
||||
"username": "sumitbhanu",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/432182d26b23e4b0b2f89bf21263bf321215f562258f2f31dfcd6372789a10a2?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project": {
|
||||
"id": 68500871,
|
||||
"name": "my-awesome-project",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"git_http_url": "https://gitlab.com/sumitb16/my-awesome-project.git",
|
||||
"namespace": "sumitb16",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sumitb16/my-awesome-project",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"http_url": "https://gitlab.com/sumitb16/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"assignee_id": null,
|
||||
"author_id": 26939388,
|
||||
"created_at": "2025-03-30 07:38:58 UTC",
|
||||
"description": "",
|
||||
"draft": false,
|
||||
"head_pipeline_id": null,
|
||||
"id": 373098278,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"merge_commit_sha": null,
|
||||
"merge_error": null,
|
||||
"merge_params": {
|
||||
"force_remove_source_branch": "1"
|
||||
},
|
||||
"merge_status": "can_be_merged",
|
||||
"merge_user_id": null,
|
||||
"merge_when_pipeline_succeeds": false,
|
||||
"milestone_id": null,
|
||||
"source_branch": "t3",
|
||||
"source_project_id": 68500871,
|
||||
"state_id": 1,
|
||||
"target_branch": "main",
|
||||
"target_project_id": 68500871,
|
||||
"time_estimate": 0,
|
||||
"title": "Update the README",
|
||||
"updated_at": "2025-03-30 08:13:27 UTC",
|
||||
"updated_by_id": 26939388,
|
||||
"prepared_at": "2025-03-30 07:38:59 UTC",
|
||||
"assignee_ids": [],
|
||||
"blocking_discussions_resolved": true,
|
||||
"detailed_merge_status": "not_approved",
|
||||
"first_contribution": false,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"human_total_time_spent": null,
|
||||
"labels": [],
|
||||
"last_commit": {
|
||||
"id": "f61e5631699e3b869180fea166fd0968ec2c3992",
|
||||
"message": "Update file README.md",
|
||||
"title": "Update file README.md",
|
||||
"timestamp": "2025-03-30T07:38:04+00:00",
|
||||
"url": "https://gitlab.com/sumitb16/my-awesome-project/-/commit/f61e5631699e3b869180fea166fd0968ec2c3992",
|
||||
"author": {
|
||||
"name": "Sumit Bhanushali",
|
||||
"email": "[REDACTED]"
|
||||
}
|
||||
},
|
||||
"reviewer_ids": [
|
||||
26939388
|
||||
],
|
||||
"source": {
|
||||
"id": 68500871,
|
||||
"name": "my-awesome-project",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"git_http_url": "https://gitlab.com/sumitb16/my-awesome-project.git",
|
||||
"namespace": "sumitb16",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sumitb16/my-awesome-project",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"http_url": "https://gitlab.com/sumitb16/my-awesome-project.git"
|
||||
},
|
||||
"state": "opened",
|
||||
"target": {
|
||||
"id": 68500871,
|
||||
"name": "my-awesome-project",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"git_http_url": "https://gitlab.com/sumitb16/my-awesome-project.git",
|
||||
"namespace": "sumitb16",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sumitb16/my-awesome-project",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"http_url": "https://gitlab.com/sumitb16/my-awesome-project.git"
|
||||
},
|
||||
"time_change": 0,
|
||||
"total_time_spent": 0,
|
||||
"url": "https://gitlab.com/sumitb16/my-awesome-project/merge_requests/1",
|
||||
"work_in_progress": false,
|
||||
"approval_rules": [],
|
||||
"action": "approval"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {},
|
||||
"repository": {
|
||||
"name": "my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project"
|
||||
},
|
||||
"reviewers": [
|
||||
{
|
||||
"id": 26939388,
|
||||
"name": "Sumit Bhanushali",
|
||||
"username": "logancodes16",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/83f4e0baf47f363b6064bf8376d12baabf2ab6b38c1f41a6b1fa41b6d038f254?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Eeshan Garg",
|
||||
"username":"eeshangargtest",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/36cf0dc28c5302bcd68119fcaaf4d4f3?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"id":3319043,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"assignee_id":null,
|
||||
"author_id":1129123,
|
||||
"created_at":"2017-05-31 03:27:26 UTC",
|
||||
"deleted_at":null,
|
||||
"description":"",
|
||||
"head_pipeline_id":null,
|
||||
"id":3673242,
|
||||
"iid":1,
|
||||
"last_edited_at":null,
|
||||
"last_edited_by_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_status":"can_be_merged",
|
||||
"merge_user_id":null,
|
||||
"merge_when_pipeline_succeeds":false,
|
||||
"milestone_id":null,
|
||||
"source_branch":"changes",
|
||||
"source_project_id":3319043,
|
||||
"state":"opened",
|
||||
"target_branch":"feature",
|
||||
"target_project_id":3319043,
|
||||
"time_estimate":0,
|
||||
"title":"Update the README with author name",
|
||||
"updated_at":"2017-12-18 00:39:44 UTC",
|
||||
"updated_by_id":null,
|
||||
"url":"https://gitlab.com/eeshangarg/my-awesome-project/merge_requests/1",
|
||||
"source":{
|
||||
"id":3319043,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"id":3319043,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"b1b2824f280e73c5f57c78da5f8eb3cd19990867",
|
||||
"message":"Update the README with author name\n",
|
||||
"timestamp":"2017-05-31T00:55:38-02:30",
|
||||
"url":"https://gitlab.com/eeshangarg/my-awesome-project/commit/b1b2824f280e73c5f57c78da5f8eb3cd19990867",
|
||||
"author":{
|
||||
"name":"Eeshan Garg",
|
||||
"email":"jerryguitarist@gmail.com"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"total_time_spent":0,
|
||||
"human_total_time_spent":null,
|
||||
"human_time_estimate":null,
|
||||
"action":"approved"
|
||||
},
|
||||
"labels":[
|
||||
|
||||
],
|
||||
"changes":{
|
||||
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756208,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":null,
|
||||
"title":"NEW MR",
|
||||
"created_at":"2016-08-22 20:08:13 UTC",
|
||||
"updated_at":"2016-08-22 20:14:21 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"closed",
|
||||
"merge_status":"can_be_merged",
|
||||
"target_project_id":1534233,
|
||||
"iid":2,
|
||||
"description":"",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2",
|
||||
"action":"close"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756509,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":670043,
|
||||
"title":"New Merge Request",
|
||||
"created_at":"2016-08-22 20:27:22 UTC",
|
||||
"updated_at":"2016-08-22 20:27:22 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"merge_status":"unchecked",
|
||||
"target_project_id":1534233,
|
||||
"iid":3,
|
||||
"description":"description of merge request",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3",
|
||||
"action":"open"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,188 @@
|
||||
{
|
||||
"object_kind": "merge_request",
|
||||
"event_type": "merge_request",
|
||||
"user": {
|
||||
"name": "Hemanth V. Alluri",
|
||||
"username": "Hypro999",
|
||||
"avatar_url": "https://assets.gitlab-static.net/uploads/-/system/user/avatar/2222626/avatar.png",
|
||||
"email": "hdrive1999@gmail.com"
|
||||
},
|
||||
"project": {
|
||||
"id": 20677423,
|
||||
"name": "Demo Project",
|
||||
"description": "Just a sample project for generating webhook fixtures.",
|
||||
"web_url": "https://gitlab.com/Hypro999/demo-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"git_http_url": "https://gitlab.com/Hypro999/demo-project.git",
|
||||
"namespace": "Hemanth V. Alluri",
|
||||
"visibility_level": 20,
|
||||
"path_with_namespace": "Hypro999/demo-project",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/Hypro999/demo-project",
|
||||
"url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"ssh_url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"http_url": "https://gitlab.com/Hypro999/demo-project.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"assignee_id": 2222626,
|
||||
"author_id": 2222626,
|
||||
"created_at": "2020-08-22 09:35:19 UTC",
|
||||
"description": "A trivial change that should probably be ignored.",
|
||||
"head_pipeline_id": null,
|
||||
"id": 68400043,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"merge_commit_sha": null,
|
||||
"merge_error": null,
|
||||
"merge_params": {
|
||||
"force_remove_source_branch": "1"
|
||||
},
|
||||
"merge_status": "unchecked",
|
||||
"merge_user_id": null,
|
||||
"merge_when_pipeline_succeeds": false,
|
||||
"milestone_id": null,
|
||||
"source_branch": "devel",
|
||||
"source_project_id": 20677423,
|
||||
"state_id": 1,
|
||||
"target_branch": "master",
|
||||
"target_project_id": 20677423,
|
||||
"time_estimate": 0,
|
||||
"title": "Make a trivial change to the README.",
|
||||
"updated_at": "2020-08-22 09:35:19 UTC",
|
||||
"updated_by_id": null,
|
||||
"url": "https://gitlab.com/Hypro999/demo-project/-/merge_requests/1",
|
||||
"source": {
|
||||
"id": 20677423,
|
||||
"name": "Demo Project",
|
||||
"description": "Just a sample project for generating webhook fixtures.",
|
||||
"web_url": "https://gitlab.com/Hypro999/demo-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"git_http_url": "https://gitlab.com/Hypro999/demo-project.git",
|
||||
"namespace": "Hemanth V. Alluri",
|
||||
"visibility_level": 20,
|
||||
"path_with_namespace": "Hypro999/demo-project",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/Hypro999/demo-project",
|
||||
"url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"ssh_url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"http_url": "https://gitlab.com/Hypro999/demo-project.git"
|
||||
},
|
||||
"target": {
|
||||
"id": 20677423,
|
||||
"name": "Demo Project",
|
||||
"description": "Just a sample project for generating webhook fixtures.",
|
||||
"web_url": "https://gitlab.com/Hypro999/demo-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"git_http_url": "https://gitlab.com/Hypro999/demo-project.git",
|
||||
"namespace": "Hemanth V. Alluri",
|
||||
"visibility_level": 20,
|
||||
"path_with_namespace": "Hypro999/demo-project",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/Hypro999/demo-project",
|
||||
"url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"ssh_url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"http_url": "https://gitlab.com/Hypro999/demo-project.git"
|
||||
},
|
||||
"last_commit": {
|
||||
"id": "1499daa03599c6781f427ee683d2969f39cad4d0",
|
||||
"message": "Make a trivial change to the README.\n",
|
||||
"title": "Make a trivial change to the README.",
|
||||
"timestamp": "2020-08-22T14:21:01+05:30",
|
||||
"url": "https://gitlab.com/Hypro999/demo-project/-/commit/1499daa03599c6781f427ee683d2969f39cad4d0",
|
||||
"author": {
|
||||
"name": "Hemanth V. Alluri",
|
||||
"email": "hdrive1999@gmail.com"
|
||||
}
|
||||
},
|
||||
"work_in_progress": false,
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [
|
||||
2222626,
|
||||
2808044
|
||||
],
|
||||
"state": "opened",
|
||||
"action": "open"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {
|
||||
"author_id": {
|
||||
"previous": null,
|
||||
"current": 2222626
|
||||
},
|
||||
"created_at": {
|
||||
"previous": null,
|
||||
"current": "2020-08-22 09:35:19 UTC"
|
||||
},
|
||||
"description": {
|
||||
"previous": null,
|
||||
"current": "A trivial change that should probably be ignored."
|
||||
},
|
||||
"id": {
|
||||
"previous": null,
|
||||
"current": 68400043
|
||||
},
|
||||
"iid": {
|
||||
"previous": null,
|
||||
"current": 1
|
||||
},
|
||||
"merge_params": {
|
||||
"previous": {},
|
||||
"current": {
|
||||
"force_remove_source_branch": "1"
|
||||
}
|
||||
},
|
||||
"source_branch": {
|
||||
"previous": null,
|
||||
"current": "devel"
|
||||
},
|
||||
"source_project_id": {
|
||||
"previous": null,
|
||||
"current": 20677423
|
||||
},
|
||||
"target_branch": {
|
||||
"previous": null,
|
||||
"current": "master"
|
||||
},
|
||||
"target_project_id": {
|
||||
"previous": null,
|
||||
"current": 20677423
|
||||
},
|
||||
"title": {
|
||||
"previous": null,
|
||||
"current": "Make a trivial change to the README."
|
||||
},
|
||||
"updated_at": {
|
||||
"previous": null,
|
||||
"current": "2020-08-22 09:35:19 UTC"
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"name": "Demo Project",
|
||||
"url": "git@gitlab.com:Hypro999/demo-project.git",
|
||||
"description": "Just a sample project for generating webhook fixtures.",
|
||||
"homepage": "https://gitlab.com/Hypro999/demo-project"
|
||||
},
|
||||
"assignees": [
|
||||
{
|
||||
"name": "Hemanth V. Alluri",
|
||||
"username": "Hypro999",
|
||||
"avatar_url": "https://assets.gitlab-static.net/uploads/-/system/user/avatar/2222626/avatar.png",
|
||||
"email": "hdrive1999@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Hemanth V. Alluri",
|
||||
"username": "f20171170",
|
||||
"avatar_url": "https://assets.gitlab-static.net/uploads/-/system/user/avatar/2808044/avatar.png",
|
||||
"email": "f20171170@pilani.bits-pilani.ac.in"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756208,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":null,
|
||||
"title":"NEW MR",
|
||||
"created_at":"2016-08-22 20:08:13 UTC",
|
||||
"updated_at":"2016-08-22 20:08:13 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"merge_status":"unchecked",
|
||||
"target_project_id":1534233,
|
||||
"iid":2,
|
||||
"description":"description of merge request",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2",
|
||||
"action":"open"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756509,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":670043,
|
||||
"title":"New Merge Request",
|
||||
"created_at":"2016-08-22 20:27:22 UTC",
|
||||
"updated_at":"2016-08-22 20:41:06 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"merged",
|
||||
"merge_status":"can_be_merged",
|
||||
"target_project_id":1534233,
|
||||
"iid":3,
|
||||
"description":"updated desc",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":670043,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":"5bcfb805534d13224e8fa7698a2819bf0d055f29",
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"f423fe3fedbc09f64ef438bedbde12caa161ee14",
|
||||
"message":"new\n",
|
||||
"timestamp":"2016-08-22T22:34:57+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/f423fe3fedbc09f64ef438bedbde12caa161ee14",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3",
|
||||
"action":"merge"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Eeshan Garg",
|
||||
"username":"eeshangarg",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":3673242,
|
||||
"target_branch":"feature",
|
||||
"source_branch":"changes",
|
||||
"source_project_id":3319043,
|
||||
"author_id":1129123,
|
||||
"assignee_id":null,
|
||||
"title":"Update the README with author name",
|
||||
"created_at":"2017-05-31 03:27:26 UTC",
|
||||
"updated_at":"2017-05-31 03:29:52 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"reopened",
|
||||
"merge_status":"can_be_merged",
|
||||
"target_project_id":3319043,
|
||||
"iid":1,
|
||||
"description":"",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_pipeline_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"lock_version":null,
|
||||
"time_estimate":0,
|
||||
"squash":false,
|
||||
"last_edited_at":null,
|
||||
"last_edited_by_id":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"b1b2824f280e73c5f57c78da5f8eb3cd19990867",
|
||||
"message":"Update the README with author name\n",
|
||||
"timestamp":"2017-05-31T00:55:38-02:30",
|
||||
"url":"https://gitlab.com/eeshangarg/my-awesome-project/commit/b1b2824f280e73c5f57c78da5f8eb3cd19990867",
|
||||
"author":{
|
||||
"name":"Eeshan Garg",
|
||||
"email":"jerryguitarist@gmail.com"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"total_time_spent":0,
|
||||
"human_total_time_spent":null,
|
||||
"human_time_estimate":null,
|
||||
"url":"https://gitlab.com/eeshangarg/my-awesome-project/merge_requests/1",
|
||||
"action":"reopen"
|
||||
},
|
||||
"labels":[
|
||||
|
||||
],
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"object_kind": "merge_request",
|
||||
"event_type": "merge_request",
|
||||
"user": {
|
||||
"id": 26939734,
|
||||
"name": "Sumit Bhanushali",
|
||||
"username": "gunner.sumit",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/62375142d03eb8b07a511a443f8d2af36497e8f36f24b71b6ffabecadda41598?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project": {
|
||||
"id": 68500871,
|
||||
"name": "my-awesome-project",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"git_http_url": "https://gitlab.com/sumitb16/my-awesome-project.git",
|
||||
"namespace": "sumitb16",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sumitb16/my-awesome-project",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"http_url": "https://gitlab.com/sumitb16/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"assignee_id": null,
|
||||
"author_id": 26939388,
|
||||
"created_at": "2025-03-30 07:38:58 UTC",
|
||||
"description": "",
|
||||
"draft": false,
|
||||
"head_pipeline_id": null,
|
||||
"id": 373098278,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"merge_commit_sha": null,
|
||||
"merge_error": null,
|
||||
"merge_params": {
|
||||
"force_remove_source_branch": "1"
|
||||
},
|
||||
"merge_status": "can_be_merged",
|
||||
"merge_user_id": null,
|
||||
"merge_when_pipeline_succeeds": false,
|
||||
"milestone_id": null,
|
||||
"source_branch": "t3",
|
||||
"source_project_id": 68500871,
|
||||
"state_id": 1,
|
||||
"target_branch": "main",
|
||||
"target_project_id": 68500871,
|
||||
"time_estimate": 0,
|
||||
"title": "Update the README",
|
||||
"updated_at": "2025-03-30 08:22:36 UTC",
|
||||
"updated_by_id": 26939388,
|
||||
"prepared_at": "2025-03-30 07:38:59 UTC",
|
||||
"assignee_ids": [],
|
||||
"blocking_discussions_resolved": true,
|
||||
"detailed_merge_status": "not_approved",
|
||||
"first_contribution": false,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"human_total_time_spent": null,
|
||||
"labels": [],
|
||||
"last_commit": {
|
||||
"id": "f61e5631699e3b869180fea166fd0968ec2c3992",
|
||||
"message": "Update file README.md",
|
||||
"title": "Update file README.md",
|
||||
"timestamp": "2025-03-30T07:38:04+00:00",
|
||||
"url": "https://gitlab.com/sumitb16/my-awesome-project/-/commit/f61e5631699e3b869180fea166fd0968ec2c3992",
|
||||
"author": {
|
||||
"name": "Sumit Bhanushali",
|
||||
"email": "[REDACTED]"
|
||||
}
|
||||
},
|
||||
"reviewer_ids": [
|
||||
26939388
|
||||
],
|
||||
"source": {
|
||||
"id": 68500871,
|
||||
"name": "my-awesome-project",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"git_http_url": "https://gitlab.com/sumitb16/my-awesome-project.git",
|
||||
"namespace": "sumitb16",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sumitb16/my-awesome-project",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"http_url": "https://gitlab.com/sumitb16/my-awesome-project.git"
|
||||
},
|
||||
"state": "opened",
|
||||
"target": {
|
||||
"id": 68500871,
|
||||
"name": "my-awesome-project",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"git_http_url": "https://gitlab.com/sumitb16/my-awesome-project.git",
|
||||
"namespace": "sumitb16",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sumitb16/my-awesome-project",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"ssh_url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"http_url": "https://gitlab.com/sumitb16/my-awesome-project.git"
|
||||
},
|
||||
"time_change": 0,
|
||||
"total_time_spent": 0,
|
||||
"url": "https://gitlab.com/sumitb16/my-awesome-project/merge_requests/1",
|
||||
"work_in_progress": false,
|
||||
"approval_rules": [],
|
||||
"action": "unapproval"
|
||||
},
|
||||
"labels": [],
|
||||
"changes": {},
|
||||
"repository": {
|
||||
"name": "my-awesome-project",
|
||||
"url": "git@gitlab.com:sumitb16/my-awesome-project.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sumitb16/my-awesome-project"
|
||||
},
|
||||
"reviewers": [
|
||||
{
|
||||
"id": 26939388,
|
||||
"name": "Sumit Bhanushali",
|
||||
"username": "logancodes16",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/83f4e0baf47f363b6064bf8376d12baabf2ab6b38c1f41a6b1fa41b6d038f254?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Eeshan Garg",
|
||||
"username":"eeshangargtest",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/36cf0dc28c5302bcd68119fcaaf4d4f3?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"id":3319043,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"assignee_id":null,
|
||||
"author_id":1129123,
|
||||
"created_at":"2017-05-31 03:27:26 UTC",
|
||||
"deleted_at":null,
|
||||
"description":"",
|
||||
"head_pipeline_id":null,
|
||||
"id":3673242,
|
||||
"iid":1,
|
||||
"last_edited_at":null,
|
||||
"last_edited_by_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_status":"can_be_merged",
|
||||
"merge_user_id":null,
|
||||
"merge_when_pipeline_succeeds":false,
|
||||
"milestone_id":null,
|
||||
"source_branch":"changes",
|
||||
"source_project_id":3319043,
|
||||
"target_branch":"feature",
|
||||
"target_project_id":3319043,
|
||||
"time_estimate":0,
|
||||
"title":"Update the README with author name",
|
||||
"updated_at":"2017-12-18 00:39:44 UTC",
|
||||
"updated_by_id":null,
|
||||
"url":"https://gitlab.com/eeshangarg/my-awesome-project/merge_requests/1",
|
||||
"source":{
|
||||
"id":3319043,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"id":3319043,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"b1b2824f280e73c5f57c78da5f8eb3cd19990867",
|
||||
"message":"Update the README with author name\n",
|
||||
"timestamp":"2017-05-31T00:55:38-02:30",
|
||||
"url":"https://gitlab.com/eeshangarg/my-awesome-project/commit/b1b2824f280e73c5f57c78da5f8eb3cd19990867",
|
||||
"author":{
|
||||
"name":"Eeshan Garg",
|
||||
"email":"jerryguitarist@gmail.com"
|
||||
}
|
||||
},
|
||||
"work_in_progress": false,
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [
|
||||
3655283
|
||||
],
|
||||
"state": "opened",
|
||||
"action": "unapproved"
|
||||
},
|
||||
"labels":[
|
||||
|
||||
],
|
||||
"changes": {
|
||||
"updated_at": {
|
||||
"previous": "2020-04-25 07:40:54 UTC",
|
||||
"current": "2020-04-25 07:44:00 UTC"
|
||||
},
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756509,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":670043,
|
||||
"title":"New Merge Request",
|
||||
"created_at":"2016-08-22 20:27:22 UTC",
|
||||
"updated_at":"2016-08-22 20:33:20 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"merge_status":"can_be_merged",
|
||||
"target_project_id":1534233,
|
||||
"iid":3,
|
||||
"description":"updated desc",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":670043,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3",
|
||||
"action":"update"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
73
zerver/webhooks/gitlab/fixtures/note_hook__commit_note.json
Normal file
73
zerver/webhooks/gitlab/fixtures/note_hook__commit_note.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"object_kind": "note",
|
||||
"event_type": "note",
|
||||
"user": {
|
||||
"id": 14613894,
|
||||
"name": "Satyam Bansal",
|
||||
"username": "sbansal1999",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/f4dd7cfc79fac91db4d9ecbb443a0519?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 46186758,
|
||||
"project": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"attachment": null,
|
||||
"author_id": 14613894,
|
||||
"change_position": null,
|
||||
"commit_id": "82689ddf00fd7bdadb5c2afb3b94bd555edc9d01",
|
||||
"created_at": "2023-05-25 18:18:17 UTC",
|
||||
"discussion_id": "10ffd7c627f00f19cc2fa9cbbed9d13f3ff91375",
|
||||
"id": 1406241063,
|
||||
"line_code": null,
|
||||
"note": "Wow what a beautiful commit.",
|
||||
"noteable_id": null,
|
||||
"noteable_type": "Commit",
|
||||
"original_position": null,
|
||||
"position": null,
|
||||
"project_id": 46186758,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": null,
|
||||
"updated_at": "2023-05-25 18:18:17 UTC",
|
||||
"updated_by_id": null,
|
||||
"description": "Wow what a beautiful commit.",
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/commit/82689ddf00fd7bdadb5c2afb3b94bd555edc9d01#note_1406241063"
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration"
|
||||
},
|
||||
"commit": {
|
||||
"id": "82689ddf00fd7bdadb5c2afb3b94bd555edc9d01",
|
||||
"message": "added some lines in second file\n",
|
||||
"title": "added some lines in second file",
|
||||
"timestamp": "2023-05-25T22:21:16+05:30",
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/commit/82689ddf00fd7bdadb5c2afb3b94bd555edc9d01",
|
||||
"author": {
|
||||
"name": "Satyam Bansal",
|
||||
"email": "sbansal1999@gmail.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
94
zerver/webhooks/gitlab/fixtures/note_hook__design_note.json
Normal file
94
zerver/webhooks/gitlab/fixtures/note_hook__design_note.json
Normal file
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"object_kind": "note",
|
||||
"event_type": "note",
|
||||
"user": {
|
||||
"id": 14613894,
|
||||
"name": "Satyam Bansal",
|
||||
"username": "sbansal1999",
|
||||
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/14613894/avatar.png",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 46186758,
|
||||
"project": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"attachment": null,
|
||||
"author_id": 14613894,
|
||||
"change_position": {
|
||||
"base_sha": null,
|
||||
"start_sha": null,
|
||||
"head_sha": null,
|
||||
"old_path": null,
|
||||
"new_path": null,
|
||||
"position_type": "text",
|
||||
"old_line": null,
|
||||
"new_line": null,
|
||||
"line_range": null
|
||||
},
|
||||
"commit_id": null,
|
||||
"created_at": "2023-07-05 16:38:53 UTC",
|
||||
"discussion_id": "90c3bd62a51e132229eb2433a42af0707c1b7091",
|
||||
"id": 1458583152,
|
||||
"line_code": null,
|
||||
"note": "hello",
|
||||
"noteable_id": 601586,
|
||||
"noteable_type": "DesignManagement::Design",
|
||||
"original_position": {
|
||||
"base_sha": "0000000000000000000000000000000000000000",
|
||||
"start_sha": "0000000000000000000000000000000000000000",
|
||||
"head_sha": "3e8137cae02e78675cd220ae1dd2ced26feba62f",
|
||||
"old_path": null,
|
||||
"new_path": "designs/issue-1/Screenshot.png",
|
||||
"position_type": "image",
|
||||
"width": 740,
|
||||
"height": 499,
|
||||
"x": 413,
|
||||
"y": 315
|
||||
},
|
||||
"position": {
|
||||
"base_sha": "0000000000000000000000000000000000000000",
|
||||
"start_sha": "0000000000000000000000000000000000000000",
|
||||
"head_sha": "3e8137cae02e78675cd220ae1dd2ced26feba62f",
|
||||
"old_path": null,
|
||||
"new_path": "designs/issue-1/Screenshot.png",
|
||||
"position_type": "image",
|
||||
"width": 740,
|
||||
"height": 499,
|
||||
"x": 413,
|
||||
"y": 315
|
||||
},
|
||||
"project_id": 46186758,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": "DiffNote",
|
||||
"updated_at": "2023-07-05 16:38:53 UTC",
|
||||
"updated_by_id": null,
|
||||
"description": "hello",
|
||||
"url": null
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration"
|
||||
}
|
||||
}
|
||||
98
zerver/webhooks/gitlab/fixtures/note_hook__issue_note.json
Normal file
98
zerver/webhooks/gitlab/fixtures/note_hook__issue_note.json
Normal file
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"object_kind": "note",
|
||||
"event_type": "note",
|
||||
"user": {
|
||||
"id": 14613894,
|
||||
"name": "Satyam Bansal",
|
||||
"username": "sbansal1999",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/f4dd7cfc79fac91db4d9ecbb443a0519?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 46186758,
|
||||
"project": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"attachment": null,
|
||||
"author_id": 14613894,
|
||||
"change_position": null,
|
||||
"commit_id": null,
|
||||
"created_at": "2023-05-25 18:41:09 UTC",
|
||||
"discussion_id": "d85e085fd1fbf70a166d9aebd27933112a25a072",
|
||||
"id": 1406279810,
|
||||
"line_code": null,
|
||||
"note": "This is again a random comment.",
|
||||
"noteable_id": 128231959,
|
||||
"noteable_type": "Issue",
|
||||
"original_position": null,
|
||||
"position": null,
|
||||
"project_id": 46186758,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": null,
|
||||
"updated_at": "2023-05-25 18:41:09 UTC",
|
||||
"updated_by_id": null,
|
||||
"description": "This is again a random comment.",
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1#note_1406279810"
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration"
|
||||
},
|
||||
"issue": {
|
||||
"author_id": 14613894,
|
||||
"closed_at": null,
|
||||
"confidential": false,
|
||||
"created_at": "2023-05-20 17:56:18 UTC",
|
||||
"description": "I think we should add a couple of more lines to the file. That will make this a lot better. :eyes:",
|
||||
"discussion_locked": null,
|
||||
"due_date": null,
|
||||
"id": 128231959,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"milestone_id": null,
|
||||
"moved_to_id": null,
|
||||
"duplicated_to_id": null,
|
||||
"project_id": 46186758,
|
||||
"relative_position": 513,
|
||||
"state_id": 1,
|
||||
"time_estimate": 0,
|
||||
"title": "Add more lines",
|
||||
"updated_at": "2023-05-25 18:41:09 UTC",
|
||||
"updated_by_id": null,
|
||||
"weight": null,
|
||||
"health_status": null,
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1",
|
||||
"total_time_spent": 0,
|
||||
"time_change": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"assignee_id": null,
|
||||
"labels": [],
|
||||
"state": "opened",
|
||||
"severity": "unknown"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"object_kind": "note",
|
||||
"event_type": "note",
|
||||
"user": {
|
||||
"id": 14613894,
|
||||
"name": "Satyam Bansal",
|
||||
"username": "sbansal1999",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/f4dd7cfc79fac91db4d9ecbb443a0519?s=80&d=identicon",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 46186758,
|
||||
"project": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"attachment": null,
|
||||
"author_id": 14613894,
|
||||
"change_position": null,
|
||||
"commit_id": null,
|
||||
"created_at": "2023-05-25 19:04:19 UTC",
|
||||
"discussion_id": "547c7f02ebb7bbdef59e006756cc5b4a09de710a",
|
||||
"id": 1406328457,
|
||||
"line_code": null,
|
||||
"note": "I am not sure if this new feature is even required or not.",
|
||||
"noteable_id": 226323715,
|
||||
"noteable_type": "MergeRequest",
|
||||
"original_position": null,
|
||||
"position": null,
|
||||
"project_id": 46186758,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": null,
|
||||
"updated_at": "2023-05-25 19:04:19 UTC",
|
||||
"updated_by_id": null,
|
||||
"description": "I am not sure if this new feature is even required or not.",
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/merge_requests/1#note_1406328457"
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration"
|
||||
},
|
||||
"merge_request": {
|
||||
"assignee_id": null,
|
||||
"author_id": 14613894,
|
||||
"created_at": "2023-05-25 19:03:52 UTC",
|
||||
"description": "",
|
||||
"head_pipeline_id": null,
|
||||
"id": 226323715,
|
||||
"iid": 1,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"merge_commit_sha": null,
|
||||
"merge_error": null,
|
||||
"merge_params": {
|
||||
"force_remove_source_branch": "1"
|
||||
},
|
||||
"merge_status": "can_be_merged",
|
||||
"merge_user_id": null,
|
||||
"merge_when_pipeline_succeeds": false,
|
||||
"milestone_id": null,
|
||||
"source_branch": "feature",
|
||||
"source_project_id": 46186758,
|
||||
"state_id": 1,
|
||||
"target_branch": "main",
|
||||
"target_project_id": 46186758,
|
||||
"time_estimate": 0,
|
||||
"title": "add new-feature",
|
||||
"updated_at": "2023-05-25 19:03:53 UTC",
|
||||
"updated_by_id": null,
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/merge_requests/1",
|
||||
"source": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"target": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"last_commit": {
|
||||
"id": "b7d5e68a840f73be14f580e88bc8e37181805f64",
|
||||
"message": "add new-feature\n",
|
||||
"title": "add new-feature",
|
||||
"timestamp": "2023-05-26T00:32:24+05:30",
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/commit/b7d5e68a840f73be14f580e88bc8e37181805f64",
|
||||
"author": {
|
||||
"name": "Satyam Bansal",
|
||||
"email": "sbansal1999@gmail.com"
|
||||
}
|
||||
},
|
||||
"work_in_progress": false,
|
||||
"total_time_spent": 0,
|
||||
"time_change": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_change": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [],
|
||||
"reviewer_ids": [],
|
||||
"labels": [],
|
||||
"state": "opened",
|
||||
"blocking_discussions_resolved": true,
|
||||
"first_contribution": true,
|
||||
"detailed_merge_status": "mergeable"
|
||||
}
|
||||
}
|
||||
81
zerver/webhooks/gitlab/fixtures/note_hook__snippet_note.json
Normal file
81
zerver/webhooks/gitlab/fixtures/note_hook__snippet_note.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"object_kind": "note",
|
||||
"event_type": "note",
|
||||
"user": {
|
||||
"id": 14613894,
|
||||
"name": "Satyam Bansal",
|
||||
"username": "sbansal1999",
|
||||
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/14613894/avatar.png",
|
||||
"email": "[REDACTED]"
|
||||
},
|
||||
"project_id": 46186758,
|
||||
"project": {
|
||||
"id": 46186758,
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"description": null,
|
||||
"web_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"git_http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"namespace": "Satyam Bansal",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "sbansal1999/testing-zulip-gitlab-integration",
|
||||
"default_branch": "main",
|
||||
"ci_config_path": "",
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"ssh_url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"http_url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"attachment": null,
|
||||
"author_id": 14613894,
|
||||
"change_position": null,
|
||||
"commit_id": null,
|
||||
"created_at": "2023-06-08 19:25:03 UTC",
|
||||
"discussion_id": "d3348140b5483090551f0e4cce3a08f2faf041a3",
|
||||
"id": 1424268837,
|
||||
"line_code": null,
|
||||
"note": "some comment",
|
||||
"noteable_id": 2547713,
|
||||
"noteable_type": "Snippet",
|
||||
"original_position": null,
|
||||
"position": null,
|
||||
"project_id": 46186758,
|
||||
"resolved_at": null,
|
||||
"resolved_by_id": null,
|
||||
"resolved_by_push": null,
|
||||
"st_diff": null,
|
||||
"system": false,
|
||||
"type": null,
|
||||
"updated_at": "2023-06-08 19:25:03 UTC",
|
||||
"updated_by_id": null,
|
||||
"description": "some comment",
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/snippets/2547713#note_1424268837"
|
||||
},
|
||||
"repository": {
|
||||
"name": "testing-zulip-gitlab-integration",
|
||||
"url": "git@gitlab.com:sbansal1999/testing-zulip-gitlab-integration.git",
|
||||
"description": null,
|
||||
"homepage": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration"
|
||||
},
|
||||
"snippet": {
|
||||
"id": 2547713,
|
||||
"title": "a very new new feature",
|
||||
"content": "a very new new feature\na very new new feature\na very new new feature\na very new new feature\na very new new feature",
|
||||
"author_id": 14613894,
|
||||
"project_id": 46186758,
|
||||
"created_at": "2023-05-25 19:13:05 UTC",
|
||||
"updated_at": "2023-06-08 19:25:03 UTC",
|
||||
"file_name": "",
|
||||
"type": "ProjectSnippet",
|
||||
"visibility_level": 0,
|
||||
"description": "",
|
||||
"encrypted_secret_token": null,
|
||||
"encrypted_secret_token_iv": null,
|
||||
"secret": false,
|
||||
"repository_read_only": false,
|
||||
"secret_token": null,
|
||||
"url": "https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/snippets/2547713"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"object_kind": "note",
|
||||
"user": {
|
||||
"name": "Tomasz Kolek",
|
||||
"username": "tomaszkolek0",
|
||||
"avatar_url": "https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project_id": 1534233,
|
||||
"project": {
|
||||
"name": "my-awesome-project",
|
||||
"description": "",
|
||||
"web_url": "https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url": "https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace": "tomaszkolek0",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "tomaszkolek0/my-awesome-project",
|
||||
"default_branch": "master",
|
||||
"homepage": "https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url": "git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url": "git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url": "https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"repository": {
|
||||
"name": "my-awesome-project",
|
||||
"url": "git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description": "",
|
||||
"homepage": "https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"object_attributes": {
|
||||
"id": 14172058,
|
||||
"note": "Nice snippet",
|
||||
"noteable_type": "Snippet",
|
||||
"author_id": 670043,
|
||||
"created_at": "2016-08-22 19:46:01 UTC",
|
||||
"updated_at": "2016-08-22 19:46:01 UTC",
|
||||
"project_id": 1534233,
|
||||
"attachment": null,
|
||||
"line_code": null,
|
||||
"commit_id": "",
|
||||
"noteable_id": 2788404,
|
||||
"system": false,
|
||||
"st_diff": null,
|
||||
"url": "https://gitlab.com/tomaszkolek0/my-awesome-project/snippets/2#note_14172058"
|
||||
},
|
||||
"snippet": {
|
||||
"id": 2,
|
||||
"title": "test",
|
||||
"content": "puts 'Hello world'",
|
||||
"author_id": 670043,
|
||||
"project_id": 1534233,
|
||||
"created_at": "2016-08-21 17:36:01 UTC",
|
||||
"updated_at": "2016-08-22 19:46:01 UTC",
|
||||
"file_name": "README.md",
|
||||
"expires_at": null,
|
||||
"type": "ProjectSnippet",
|
||||
"visibility_level": 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"object_kind":"pipeline",
|
||||
"object_attributes":{
|
||||
"id":4414206,
|
||||
"ref":"master",
|
||||
"tag":false,
|
||||
"sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"before_sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"status":"pending",
|
||||
"stages":[
|
||||
"test"
|
||||
],
|
||||
"created_at":"2016-09-28 20:04:55 UTC",
|
||||
"finished_at":null,
|
||||
"duration":null
|
||||
},
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"abc",
|
||||
"web_url":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"namespace":"TomaszKolek",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"TomaszKolek/my-awesome-project",
|
||||
"default_branch":"master"
|
||||
},
|
||||
"commit":{
|
||||
"id":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"message":"a\n",
|
||||
"timestamp":"2016-09-28T22:04:48+02:00",
|
||||
"url":"https://gitlab.com/TomaszKolek/my-awesome-project/commit/6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@go2.pl"
|
||||
}
|
||||
},
|
||||
"builds":[
|
||||
{
|
||||
"id":4541113,
|
||||
"stage":"test",
|
||||
"name":"job_name2",
|
||||
"status":"pending",
|
||||
"created_at":"2016-09-28 20:04:56 UTC",
|
||||
"started_at":null,
|
||||
"finished_at":null,
|
||||
"when":"on_success",
|
||||
"manual":false,
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"runner":null,
|
||||
"artifacts_file":{
|
||||
"filename":null,
|
||||
"size":null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id":4541112,
|
||||
"stage":"test",
|
||||
"name":"job_name",
|
||||
"status":"created",
|
||||
"created_at":"2016-09-28 20:04:55 UTC",
|
||||
"started_at":null,
|
||||
"finished_at":null,
|
||||
"when":"on_success",
|
||||
"manual":false,
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"runner":null,
|
||||
"artifacts_file":{
|
||||
"filename":null,
|
||||
"size":null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"object_kind":"pipeline",
|
||||
"object_attributes":{
|
||||
"id":4414206,
|
||||
"ref":"master",
|
||||
"tag":false,
|
||||
"sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"before_sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"status":"running",
|
||||
"stages":[
|
||||
"test"
|
||||
],
|
||||
"created_at":"2016-09-28 20:04:55 UTC",
|
||||
"finished_at":null,
|
||||
"duration":0
|
||||
},
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"abc",
|
||||
"web_url":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"namespace":"TomaszKolek",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"TomaszKolek/my-awesome-project",
|
||||
"default_branch":"master"
|
||||
},
|
||||
"commit":{
|
||||
"id":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"message":"a\n",
|
||||
"timestamp":"2016-09-28T22:04:48+02:00",
|
||||
"url":"https://gitlab.com/TomaszKolek/my-awesome-project/commit/6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@go2.pl"
|
||||
}
|
||||
},
|
||||
"builds":[
|
||||
{
|
||||
"id":4541112,
|
||||
"stage":"test",
|
||||
"name":"job_name",
|
||||
"status":"running",
|
||||
"created_at":"2016-09-28 20:04:55 UTC",
|
||||
"started_at":"2016-09-28 20:21:04 UTC",
|
||||
"finished_at":null,
|
||||
"when":"on_success",
|
||||
"manual":false,
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"runner":{
|
||||
"id":21099,
|
||||
"description":"shared-runners-manager-2.gitlab.com",
|
||||
"active":true,
|
||||
"is_shared":true
|
||||
},
|
||||
"artifacts_file":{
|
||||
"filename":null,
|
||||
"size":null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id":4541113,
|
||||
"stage":"test",
|
||||
"name":"job_name2",
|
||||
"status":"pending",
|
||||
"created_at":"2016-09-28 20:04:56 UTC",
|
||||
"started_at":null,
|
||||
"finished_at":null,
|
||||
"when":"on_success",
|
||||
"manual":false,
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"runner":null,
|
||||
"artifacts_file":{
|
||||
"filename":null,
|
||||
"size":null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"object_kind":"pipeline",
|
||||
"object_attributes":{
|
||||
"id":4414206,
|
||||
"ref":"master",
|
||||
"tag":false,
|
||||
"sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"before_sha":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"status":"success",
|
||||
"stages":[
|
||||
"test"
|
||||
],
|
||||
"created_at":"2016-09-28 20:04:55 UTC",
|
||||
"finished_at":"2016-09-28 20:22:34 UTC",
|
||||
"duration":84
|
||||
},
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"abc",
|
||||
"web_url":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"namespace":"TomaszKolek",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"TomaszKolek/my-awesome-project",
|
||||
"default_branch":"master"
|
||||
},
|
||||
"commit":{
|
||||
"id":"6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"message":"a\n",
|
||||
"timestamp":"2016-09-28T22:04:48+02:00",
|
||||
"url":"https://gitlab.com/TomaszKolek/my-awesome-project/commit/6f88e719ccde3804b1b669cef9dfb236a92fbbff",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@go2.pl"
|
||||
}
|
||||
},
|
||||
"builds":[
|
||||
{
|
||||
"id":4541113,
|
||||
"stage":"test",
|
||||
"name":"job_name2",
|
||||
"status":"success",
|
||||
"created_at":"2016-09-28 20:04:56 UTC",
|
||||
"started_at":"2016-09-28 20:21:52 UTC",
|
||||
"finished_at":"2016-09-28 20:22:34 UTC",
|
||||
"when":"on_success",
|
||||
"manual":false,
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"runner":{
|
||||
"id":21099,
|
||||
"description":"shared-runners-manager-2.gitlab.com",
|
||||
"active":true,
|
||||
"is_shared":true
|
||||
},
|
||||
"artifacts_file":{
|
||||
"filename":null,
|
||||
"size":null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id":4541112,
|
||||
"stage":"test",
|
||||
"name":"job_name",
|
||||
"status":"success",
|
||||
"created_at":"2016-09-28 20:04:55 UTC",
|
||||
"started_at":"2016-09-28 20:21:04 UTC",
|
||||
"finished_at":"2016-09-28 20:21:47 UTC",
|
||||
"when":"on_success",
|
||||
"manual":false,
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"TomaszKolek",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon"
|
||||
},
|
||||
"runner":{
|
||||
"id":21099,
|
||||
"description":"shared-runners-manager-2.gitlab.com",
|
||||
"active":true,
|
||||
"is_shared":true
|
||||
},
|
||||
"artifacts_file":{
|
||||
"filename":null,
|
||||
"size":null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,256 @@
|
||||
{
|
||||
"object_kind": "pipeline",
|
||||
"object_attributes": {
|
||||
"id": 22668,
|
||||
"ref": "test/links-in-zulip-pipeline-message",
|
||||
"tag": false,
|
||||
"sha": "fdf1367fcd3a3b18a465eeb719e397607c1b38dc",
|
||||
"before_sha": "3321a6c3aa5f6ef636ab46d39638d67bdf24074b",
|
||||
"source": "push",
|
||||
"status": "success",
|
||||
"detailed_status": "passed",
|
||||
"stages": [
|
||||
"setup",
|
||||
"test",
|
||||
"test_updated_packages",
|
||||
"release",
|
||||
"cleanup",
|
||||
"deploy"
|
||||
],
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"finished_at": "2020-05-26 14:50:13 UTC",
|
||||
"duration": 215,
|
||||
"variables": [
|
||||
|
||||
]
|
||||
},
|
||||
"merge_request": null,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"project": {
|
||||
"id": 345,
|
||||
"name": "onlysomeproject",
|
||||
"description": "just awesome",
|
||||
"web_url": "https://gitlab.example.com/group1/onlysomeproject",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/project/avatar/345/onlysomeproject.jpg",
|
||||
"git_ssh_url": "git@gitlab.example.com:group1/onlysomeproject.git",
|
||||
"git_http_url": "https://gitlab.example.com/group1/onlysomeproject.git",
|
||||
"namespace": "Group1",
|
||||
"visibility_level": 10,
|
||||
"path_with_namespace": "group1/onlysomeproject",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": ""
|
||||
},
|
||||
"commit": {
|
||||
"id": "fdf1367fcd3a3b18a465eeb719e397607c1b38dc",
|
||||
"message": "fixed this, tested that",
|
||||
"timestamp": "2020-05-26T16:46:18+02:00",
|
||||
"url": "https://gitlab.example.com/group1/onlysomeproject/-/commit/fdf1367fcd3a3b18a465eeb719e397607c1b38dc",
|
||||
"author": {
|
||||
"name": "Great Maintainer",
|
||||
"email": "maintainer@example.com"
|
||||
}
|
||||
},
|
||||
"builds": [
|
||||
{
|
||||
"id": 58592,
|
||||
"stage": "cleanup",
|
||||
"name": "cleanup:cleanup docker image",
|
||||
"status": "success",
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"started_at": "2020-05-26 14:49:54 UTC",
|
||||
"finished_at": "2020-05-26 14:50:13 UTC",
|
||||
"when": "always",
|
||||
"manual": false,
|
||||
"allow_failure": true,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"runner": {
|
||||
"id": 22,
|
||||
"description": "global-runner",
|
||||
"active": true,
|
||||
"is_shared": true
|
||||
},
|
||||
"artifacts_file": {
|
||||
"filename": null,
|
||||
"size": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 58591,
|
||||
"stage": "release",
|
||||
"name": "pages",
|
||||
"status": "success",
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"started_at": "2020-05-26 14:49:36 UTC",
|
||||
"finished_at": "2020-05-26 14:49:51 UTC",
|
||||
"when": "on_success",
|
||||
"manual": false,
|
||||
"allow_failure": false,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"runner": {
|
||||
"id": 22,
|
||||
"description": "global-runner",
|
||||
"active": true,
|
||||
"is_shared": true
|
||||
},
|
||||
"artifacts_file": {
|
||||
"filename": "artifacts.zip",
|
||||
"size": 7049623
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 58590,
|
||||
"stage": "test_updated_packages",
|
||||
"name": "black+pytest:future environment",
|
||||
"status": "success",
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"started_at": "2020-05-26 14:48:34 UTC",
|
||||
"finished_at": "2020-05-26 14:49:36 UTC",
|
||||
"when": "on_success",
|
||||
"manual": false,
|
||||
"allow_failure": false,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"runner": {
|
||||
"id": 22,
|
||||
"description": "global-runner",
|
||||
"active": true,
|
||||
"is_shared": true
|
||||
},
|
||||
"artifacts_file": {
|
||||
"filename": null,
|
||||
"size": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 58589,
|
||||
"stage": "test",
|
||||
"name": "docs:anaconda environment",
|
||||
"status": "success",
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"started_at": "2020-05-26 14:48:15 UTC",
|
||||
"finished_at": "2020-05-26 14:48:33 UTC",
|
||||
"when": "on_success",
|
||||
"manual": false,
|
||||
"allow_failure": false,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"runner": {
|
||||
"id": 22,
|
||||
"description": "global-runner",
|
||||
"active": true,
|
||||
"is_shared": true
|
||||
},
|
||||
"artifacts_file": {
|
||||
"filename": "sphinx-docs.zip",
|
||||
"size": 7050633
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 58588,
|
||||
"stage": "test",
|
||||
"name": "pytest:current environment",
|
||||
"status": "success",
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"started_at": "2020-05-26 14:47:56 UTC",
|
||||
"finished_at": "2020-05-26 14:48:15 UTC",
|
||||
"when": "on_success",
|
||||
"manual": false,
|
||||
"allow_failure": false,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"runner": {
|
||||
"id": 22,
|
||||
"description": "global-runner",
|
||||
"active": true,
|
||||
"is_shared": true
|
||||
},
|
||||
"artifacts_file": {
|
||||
"filename": null,
|
||||
"size": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 58587,
|
||||
"stage": "test",
|
||||
"name": "black:current environment",
|
||||
"status": "success",
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"started_at": "2020-05-26 14:47:36 UTC",
|
||||
"finished_at": "2020-05-26 14:47:56 UTC",
|
||||
"when": "on_success",
|
||||
"manual": false,
|
||||
"allow_failure": false,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"runner": {
|
||||
"id": 22,
|
||||
"description": "global-runner",
|
||||
"active": true,
|
||||
"is_shared": true
|
||||
},
|
||||
"artifacts_file": {
|
||||
"filename": null,
|
||||
"size": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 58586,
|
||||
"stage": "setup",
|
||||
"name": "setup:docker image",
|
||||
"status": "success",
|
||||
"created_at": "2020-05-26 14:46:28 UTC",
|
||||
"started_at": "2020-05-26 14:46:30 UTC",
|
||||
"finished_at": "2020-05-26 14:47:33 UTC",
|
||||
"when": "on_success",
|
||||
"manual": false,
|
||||
"allow_failure": false,
|
||||
"user": {
|
||||
"name": "Great Maintainer",
|
||||
"username": "maintainer",
|
||||
"avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/130/avatar.png",
|
||||
"email": "maintainer@example.com"
|
||||
},
|
||||
"runner": {
|
||||
"id": 22,
|
||||
"description": "global-runner",
|
||||
"active": true,
|
||||
"is_shared": true
|
||||
},
|
||||
"artifacts_file": {
|
||||
"filename": null,
|
||||
"size": null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
81
zerver/webhooks/gitlab/fixtures/push_hook.json
Normal file
81
zerver/webhooks/gitlab/fixtures/push_hook.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"object_kind":"push",
|
||||
"event_name":"push",
|
||||
"before":"5fcdd5551fc3085df79bece2c32b1400802ac407",
|
||||
"after":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"ref":"refs/heads/tomek",
|
||||
"checkout_sha":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":null,
|
||||
"user_id":670043,
|
||||
"user_name":"Tomasz Kolek",
|
||||
"user_username":"tomaszkolek0",
|
||||
"user_email":"tomaszkolek0@gmail.com",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon",
|
||||
"project_id":1534233,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"c\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_commits_count":2,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"visibility_level":0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,993 @@
|
||||
{
|
||||
"object_kind":"push",
|
||||
"event_name":"push",
|
||||
"before":"5fcdd5551fc3085df79bece2c32b1400802ac407",
|
||||
"after":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"ref":"refs/heads/tomek",
|
||||
"checkout_sha":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":null,
|
||||
"user_id":670043,
|
||||
"user_name":"Tomasz Kolek",
|
||||
"user_username":"tomaszkolek0",
|
||||
"user_email":"tomaszkolek0@gmail.com",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon",
|
||||
"project_id":1534233,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_commits_count":2,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"visibility_level":0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"object_kind":"push",
|
||||
"event_name":"push",
|
||||
"before":"0000000000000000000000000000000000000000",
|
||||
"after":"68d7a5528cf423dfaac37dd62a56ac9cc8a884e3",
|
||||
"ref":"refs/heads/changes",
|
||||
"checkout_sha":"68d7a5528cf423dfaac37dd62a56ac9cc8a884e3",
|
||||
"message":null,
|
||||
"user_id":1129123,
|
||||
"user_name":"Eeshan Garg",
|
||||
"user_username":"eeshangarg",
|
||||
"user_email":"jerryguitarist@gmail.com",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80\u0026d=identicon",
|
||||
"project_id":3319043,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"eeshangarg/my-awesome-project",
|
||||
"default_branch":"feature",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
|
||||
],
|
||||
"total_commits_count":0,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/eeshangarg/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/my-awesome-project.git",
|
||||
"visibility_level":20
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"object_kind":"push",
|
||||
"event_name":"push",
|
||||
"before":"5fcdd5551fc3085df79bece2c32b1400802ac407",
|
||||
"after":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"ref":"refs/heads/tomek",
|
||||
"checkout_sha":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":null,
|
||||
"user_id":670043,
|
||||
"user_name":"Tomasz Kolek",
|
||||
"user_username":"tomaszkolek0",
|
||||
"user_email":"tomaszkolek0@gmail.com",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon",
|
||||
"project_id":1534233,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"id":"66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"c\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"Ben",
|
||||
"email":"ben@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_commits_count":2,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"visibility_level":0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
{
|
||||
"object_kind":"push",
|
||||
"event_name":"push",
|
||||
"before":"5fcdd5551fc3085df79bece2c32b1400802ac407",
|
||||
"after":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"ref":"refs/heads/tomek",
|
||||
"checkout_sha":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":null,
|
||||
"user_id":670043,
|
||||
"user_name":"Tomasz Kolek",
|
||||
"user_username":"tomaszkolek0",
|
||||
"user_email":"tomaszkolek0@gmail.com",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon",
|
||||
"project_id":1534233,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:17:54+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"Ben",
|
||||
"email":"ben@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"Ben",
|
||||
"email":"ben@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"Ben",
|
||||
"email":"ben@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"James",
|
||||
"email":"james@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"baxterthehacker",
|
||||
"email":"bax@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":"b\n",
|
||||
"timestamp":"2016-08-17T21:18:06+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"author":{
|
||||
"name":"baxterthehacker",
|
||||
"email":"bax@o2.pl"
|
||||
},
|
||||
"added":[
|
||||
|
||||
],
|
||||
"modified":[
|
||||
"a.txt"
|
||||
],
|
||||
"removed":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_commits_count":5,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"visibility_level":0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"object_kind":"push",
|
||||
"event_name":"push",
|
||||
"before":"68595bc36ba5561c86c73c34ca7a3aae5a0dcfd8",
|
||||
"after":"0000000000000000000000000000000000000000",
|
||||
"ref":"refs/heads/tomek",
|
||||
"checkout_sha":null,
|
||||
"message":null,
|
||||
"user_id":745906,
|
||||
"user_name":"Tomasz Kolek",
|
||||
"user_username":"tomaszkolek",
|
||||
"user_email":"tomasz-kolek@go2.pl",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/c80a7a8454ed7d9e3c5618f1748385c2?s=80\u0026d=identicon",
|
||||
"project_id":1740047,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"abc",
|
||||
"web_url":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"namespace":"TomaszKolek",
|
||||
"visibility_level":20,
|
||||
"path_with_namespace":"TomaszKolek/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
|
||||
],
|
||||
"total_commits_count":0,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"description":"abc",
|
||||
"homepage":"https://gitlab.com/TomaszKolek/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/TomaszKolek/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:TomaszKolek/my-awesome-project.git",
|
||||
"visibility_level":20
|
||||
}
|
||||
}
|
||||
69
zerver/webhooks/gitlab/fixtures/release_hook__create.json
Normal file
69
zerver/webhooks/gitlab/fixtures/release_hook__create.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"id": 1,
|
||||
"created_at": "2020-11-02 12:55:12 UTC",
|
||||
"description": "## v1.1 (2024-09-06)\n\n- Feature added",
|
||||
"name": "v1.1",
|
||||
"released_at": "2020-11-02 12:55:12 UTC",
|
||||
"tag": "v1.1",
|
||||
"object_kind": "release",
|
||||
"project": {
|
||||
"id": 2,
|
||||
"name": "release-webhook-example",
|
||||
"description": "",
|
||||
"web_url": "https://example.com/gitlab-org/release-webhook-example",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"git_http_url": "https://example.com/gitlab-org/release-webhook-example.git",
|
||||
"namespace": "Gitlab",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "gitlab-org/release-webhook-example",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://example.com/gitlab-org/release-webhook-example",
|
||||
"url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"ssh_url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"http_url": "https://example.com/gitlab-org/release-webhook-example.git"
|
||||
},
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/releases/v1.1",
|
||||
"action": "create",
|
||||
"assets": {
|
||||
"count": 5,
|
||||
"links": [
|
||||
{
|
||||
"id": 1,
|
||||
"link_type": "other",
|
||||
"name": "Changelog",
|
||||
"url": "https://example.net/changelog"
|
||||
}
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"format": "zip",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.zip"
|
||||
},
|
||||
{
|
||||
"format": "tar.gz",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar.gz"
|
||||
},
|
||||
{
|
||||
"format": "tar.bz2",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar.bz2"
|
||||
},
|
||||
{
|
||||
"format": "tar",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar"
|
||||
}
|
||||
]
|
||||
},
|
||||
"commit": {
|
||||
"id": "ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8",
|
||||
"message": "Release v1.1",
|
||||
"title": "Release v1.1",
|
||||
"timestamp": "2020-10-31T14:58:32+11:00",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/commit/ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8",
|
||||
"author": {
|
||||
"name": "Example User",
|
||||
"email": "user@example.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
69
zerver/webhooks/gitlab/fixtures/release_hook__delete.json
Normal file
69
zerver/webhooks/gitlab/fixtures/release_hook__delete.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"id": 1,
|
||||
"created_at": "2020-11-02 12:55:12 UTC",
|
||||
"description": "## v1.1 (2024-09-06)\n\n- Feature added",
|
||||
"name": "v1.1",
|
||||
"released_at": "2020-11-02 12:55:12 UTC",
|
||||
"tag": "v1.1",
|
||||
"object_kind": "release",
|
||||
"project": {
|
||||
"id": 2,
|
||||
"name": "release-webhook-example",
|
||||
"description": "",
|
||||
"web_url": "https://example.com/gitlab-org/release-webhook-example",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"git_http_url": "https://example.com/gitlab-org/release-webhook-example.git",
|
||||
"namespace": "Gitlab",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "gitlab-org/release-webhook-example",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://example.com/gitlab-org/release-webhook-example",
|
||||
"url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"ssh_url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"http_url": "https://example.com/gitlab-org/release-webhook-example.git"
|
||||
},
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/releases/v1.1",
|
||||
"action": "delete",
|
||||
"assets": {
|
||||
"count": 5,
|
||||
"links": [
|
||||
{
|
||||
"id": 1,
|
||||
"link_type": "other",
|
||||
"name": "Changelog",
|
||||
"url": "https://example.net/changelog"
|
||||
}
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"format": "zip",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.zip"
|
||||
},
|
||||
{
|
||||
"format": "tar.gz",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar.gz"
|
||||
},
|
||||
{
|
||||
"format": "tar.bz2",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar.bz2"
|
||||
},
|
||||
{
|
||||
"format": "tar",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar"
|
||||
}
|
||||
]
|
||||
},
|
||||
"commit": {
|
||||
"id": "ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8",
|
||||
"message": "Release v1.1",
|
||||
"title": "Release v1.1",
|
||||
"timestamp": "2020-10-31T14:58:32+11:00",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/commit/ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8",
|
||||
"author": {
|
||||
"name": "Example User",
|
||||
"email": "user@example.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
69
zerver/webhooks/gitlab/fixtures/release_hook__update.json
Normal file
69
zerver/webhooks/gitlab/fixtures/release_hook__update.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"id": 1,
|
||||
"created_at": "2020-11-02 12:55:12 UTC",
|
||||
"description": "## v1.1 (2024-09-06)\n\n- Feature added",
|
||||
"name": "v1.1",
|
||||
"released_at": "2020-11-02 12:55:12 UTC",
|
||||
"tag": "v1.1",
|
||||
"object_kind": "release",
|
||||
"project": {
|
||||
"id": 2,
|
||||
"name": "release-webhook-example",
|
||||
"description": "",
|
||||
"web_url": "https://example.com/gitlab-org/release-webhook-example",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"git_http_url": "https://example.com/gitlab-org/release-webhook-example.git",
|
||||
"namespace": "Gitlab",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "gitlab-org/release-webhook-example",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://example.com/gitlab-org/release-webhook-example",
|
||||
"url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"ssh_url": "ssh://git@example.com/gitlab-org/release-webhook-example.git",
|
||||
"http_url": "https://example.com/gitlab-org/release-webhook-example.git"
|
||||
},
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/releases/v1.1",
|
||||
"action": "update",
|
||||
"assets": {
|
||||
"count": 5,
|
||||
"links": [
|
||||
{
|
||||
"id": 1,
|
||||
"link_type": "other",
|
||||
"name": "Changelog",
|
||||
"url": "https://example.net/changelog"
|
||||
}
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"format": "zip",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.zip"
|
||||
},
|
||||
{
|
||||
"format": "tar.gz",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar.gz"
|
||||
},
|
||||
{
|
||||
"format": "tar.bz2",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar.bz2"
|
||||
},
|
||||
{
|
||||
"format": "tar",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/archive/v1.1/release-webhook-example-v1.1.tar"
|
||||
}
|
||||
]
|
||||
},
|
||||
"commit": {
|
||||
"id": "ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8",
|
||||
"message": "Release v1.1",
|
||||
"title": "Release v1.1",
|
||||
"timestamp": "2020-10-31T14:58:32+11:00",
|
||||
"url": "https://example.com/gitlab-org/release-webhook-example/-/commit/ee0a3fb31ac16e11b9dbb596ad16d4af654d08f8",
|
||||
"author": {
|
||||
"name": "Example User",
|
||||
"email": "user@example.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
32
zerver/webhooks/gitlab/fixtures/repository_update.json
Normal file
32
zerver/webhooks/gitlab/fixtures/repository_update.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"event_name": "repository_update",
|
||||
"user_id": 1,
|
||||
"user_name": "John Smith",
|
||||
"user_email": "admin@example.com",
|
||||
"user_avatar": "https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80",
|
||||
"project_id": 1,
|
||||
"project": {
|
||||
"name":"Example",
|
||||
"description":"",
|
||||
"web_url":"http://example.com/jsmith/example",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@example.com:jsmith/example.git",
|
||||
"git_http_url":"http://example.com/jsmith/example.git",
|
||||
"namespace":"Jsmith",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"jsmith/example",
|
||||
"default_branch":"master",
|
||||
"homepage":"http://example.com/jsmith/example",
|
||||
"url":"git@example.com:jsmith/example.git",
|
||||
"ssh_url":"git@example.com:jsmith/example.git",
|
||||
"http_url":"http://example.com/jsmith/example.git"
|
||||
},
|
||||
"changes": [
|
||||
{
|
||||
"before":"8205ea8d81ce0c6b90fbe8280d118cc9fdad6130",
|
||||
"after":"4045ea7a3df38697b3730a20fb73c8bed8a3e69e",
|
||||
"ref":"refs/heads/master"
|
||||
}
|
||||
],
|
||||
"refs":["refs/heads/master"]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"object_kind": "access_token",
|
||||
"group": {
|
||||
"group_name": "Twitter",
|
||||
"group_path": "twitter",
|
||||
"group_id": 35,
|
||||
"full_path": "twitter"
|
||||
},
|
||||
"object_attributes": {
|
||||
"user_id": 90,
|
||||
"created_at": "2024-01-24 16:27:40 UTC",
|
||||
"id": 25,
|
||||
"name": "acd",
|
||||
"expires_at": "2024-01-26"
|
||||
},
|
||||
"event_name": "expiring_access_token"
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"object_kind": "access_token",
|
||||
"project": {
|
||||
"id": 7,
|
||||
"name": "Flight",
|
||||
"description": "Eum dolore maxime atque reprehenderit voluptatem.",
|
||||
"web_url": "https://example.com/flightjs/Flight",
|
||||
"avatar_url": null,
|
||||
"git_ssh_url": "ssh://git@example.com/flightjs/Flight.git",
|
||||
"git_http_url": "https://example.com/flightjs/Flight.git",
|
||||
"namespace": "Flightjs",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "flightjs/Flight",
|
||||
"default_branch": "master",
|
||||
"ci_config_path": null,
|
||||
"homepage": "https://example.com/flightjs/Flight",
|
||||
"url": "ssh://git@example.com/flightjs/Flight.git",
|
||||
"ssh_url": "ssh://git@example.com/flightjs/Flight.git",
|
||||
"http_url": "https://example.com/flightjs/Flight.git"
|
||||
},
|
||||
"object_attributes": {
|
||||
"user_id": 90,
|
||||
"created_at": "2024-01-24 16:27:40 UTC",
|
||||
"id": 25,
|
||||
"name": "acd",
|
||||
"expires_at": "2024-01-26"
|
||||
},
|
||||
"event_name": "expiring_access_token"
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"object_kind": "merge_request",
|
||||
"event_type": "merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon",
|
||||
"email": "test@test.com.au"
|
||||
},
|
||||
"project":{
|
||||
"id": 241,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"ci_config_path": null,
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"head_pipeline_id": null,
|
||||
"state_id": 2,
|
||||
"last_edited_at": null,
|
||||
"last_edited_by_id": null,
|
||||
"time_estimate": 0,
|
||||
"id":756208,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":null,
|
||||
"title":"NEW MR",
|
||||
"created_at":"2016-08-22 20:08:13 UTC",
|
||||
"updated_at":"2016-08-22 20:14:21 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"closed",
|
||||
"merge_status":"can_be_merged",
|
||||
"target_project_id":1534233,
|
||||
"iid":2,
|
||||
"description":"",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"id": 241,
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"total_time_spent": 0,
|
||||
"human_total_time_spent": null,
|
||||
"human_time_estimate": null,
|
||||
"assignee_ids": [
|
||||
|
||||
],
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2",
|
||||
"action":"close",
|
||||
"changes": {
|
||||
"state_id": {
|
||||
"previous": 1,
|
||||
"current": 2
|
||||
},
|
||||
"updated_at": {
|
||||
"previous": "2020-04-22 10:12:52 UTC",
|
||||
"current": "2020-04-22 10:59:42 UTC"
|
||||
},
|
||||
"total_time_spent": {
|
||||
"previous": null,
|
||||
"current": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756509,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":670043,
|
||||
"title":"New Merge Request",
|
||||
"created_at":"2016-08-22 20:27:22 UTC",
|
||||
"updated_at":"2016-08-22 20:27:22 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"merge_status":"unchecked",
|
||||
"target_project_id":1534233,
|
||||
"iid":3,
|
||||
"description":"description of merge request",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3",
|
||||
"action":"open"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756208,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":null,
|
||||
"title":"NEW MR",
|
||||
"created_at":"2016-08-22 20:08:13 UTC",
|
||||
"updated_at":"2016-08-22 20:08:13 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"merge_status":"unchecked",
|
||||
"target_project_id":1534233,
|
||||
"iid":2,
|
||||
"description":"description of merge request",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":null,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":null,
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"600060393d326486c12f222ba78d569dab6b4114",
|
||||
"message":"new commit\n",
|
||||
"timestamp":"2016-08-22T21:31:34+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/600060393d326486c12f222ba78d569dab6b4114",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2",
|
||||
"action":"open"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"object_kind":"merge_request",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":756509,
|
||||
"target_branch":"master",
|
||||
"source_branch":"tomek",
|
||||
"source_project_id":1534233,
|
||||
"author_id":670043,
|
||||
"assignee_id":670043,
|
||||
"title":"New Merge Request",
|
||||
"created_at":"2016-08-22 20:27:22 UTC",
|
||||
"updated_at":"2016-08-22 20:41:06 UTC",
|
||||
"milestone_id":null,
|
||||
"state":"merged",
|
||||
"merge_status":"can_be_merged",
|
||||
"target_project_id":1534233,
|
||||
"iid":3,
|
||||
"description":"updated desc",
|
||||
"position":0,
|
||||
"locked_at":null,
|
||||
"updated_by_id":670043,
|
||||
"merge_error":null,
|
||||
"merge_params":{
|
||||
"force_remove_source_branch":null
|
||||
},
|
||||
"merge_when_build_succeeds":false,
|
||||
"merge_user_id":null,
|
||||
"merge_commit_sha":"5bcfb805534d13224e8fa7698a2819bf0d055f29",
|
||||
"deleted_at":null,
|
||||
"approvals_before_merge":null,
|
||||
"rebase_commit_sha":null,
|
||||
"in_progress_merge_commit_sha":null,
|
||||
"source":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"target":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"last_commit":{
|
||||
"id":"f423fe3fedbc09f64ef438bedbde12caa161ee14",
|
||||
"message":"new\n",
|
||||
"timestamp":"2016-08-22T22:34:57+02:00",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/commit/f423fe3fedbc09f64ef438bedbde12caa161ee14",
|
||||
"author":{
|
||||
"name":"Tomasz Kolek",
|
||||
"email":"tomasz-kolek@o2.pl"
|
||||
}
|
||||
},
|
||||
"work_in_progress":false,
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3",
|
||||
"action":"merge"
|
||||
},
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project"
|
||||
},
|
||||
"assignee":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
}
|
||||
}
|
||||
47
zerver/webhooks/gitlab/fixtures/system_hook__push_hook.json
Normal file
47
zerver/webhooks/gitlab/fixtures/system_hook__push_hook.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"object_kind": "push",
|
||||
"event_name": "push",
|
||||
"before": "95790bf891e76fee5e1747ab589903a6a1f80f22",
|
||||
"after": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
|
||||
"ref": "refs/heads/master",
|
||||
"checkout_sha": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
|
||||
"message": "Hello World",
|
||||
"user_id": 4,
|
||||
"user_name": "John Smith",
|
||||
"user_username": "jsmith",
|
||||
"user_email": "john@example.com",
|
||||
"user_avatar": "https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80",
|
||||
"project_id": 15,
|
||||
"project": {
|
||||
"id": 15,
|
||||
"name": "gitlab",
|
||||
"description": "",
|
||||
"web_url": "http://test.example.com/gitlab/gitlab",
|
||||
"avatar_url": "https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80",
|
||||
"git_ssh_url": "git@test.example.com:gitlab/gitlab.git",
|
||||
"git_http_url": "http://test.example.com/gitlab/gitlab.git",
|
||||
"namespace": "gitlab",
|
||||
"visibility_level": 0,
|
||||
"path_with_namespace": "gitlab/gitlab",
|
||||
"default_branch": "master"
|
||||
},
|
||||
"commits": [
|
||||
{
|
||||
"id": "c5feabde2d8cd023215af4d2ceeb7a64839fc428",
|
||||
"message": "Add simple search to projects in public area\n\ncommit message body",
|
||||
"title": "Add simple search to projects in public area",
|
||||
"timestamp": "2013-05-13T18:18:08+00:00",
|
||||
"url": "https://test.example.com/gitlab/gitlab/-/commit/c5feabde2d8cd023215af4d2ceeb7a64839fc428",
|
||||
"author": {
|
||||
"name": "Test User",
|
||||
"email": "test@example.com"
|
||||
}
|
||||
}
|
||||
],
|
||||
"total_commits_count": 1,
|
||||
"push_options": {
|
||||
"ci": {
|
||||
"skip": true
|
||||
}
|
||||
}
|
||||
}
|
||||
44
zerver/webhooks/gitlab/fixtures/tag_push_hook__add_tag.json
Normal file
44
zerver/webhooks/gitlab/fixtures/tag_push_hook__add_tag.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"object_kind":"tag_push",
|
||||
"event_name":"tag_push",
|
||||
"before":"0000000000000000000000000000000000000000",
|
||||
"after":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"ref":"refs/tags/xyz",
|
||||
"checkout_sha":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"message":null,
|
||||
"user_id":670043,
|
||||
"user_name":"Tomasz Kolek",
|
||||
"user_username":"tomaszkolek0",
|
||||
"user_email":"tomaszkolek0@gmail.com",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon",
|
||||
"project_id":1534233,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
|
||||
],
|
||||
"total_commits_count":0,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"visibility_level":0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"object_kind":"tag_push",
|
||||
"event_name":"tag_push",
|
||||
"before":"0000000000000000000000000000000000000000",
|
||||
"after":"eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9",
|
||||
"ref":"refs/tags/xyz",
|
||||
"checkout_sha": null,
|
||||
"message":null,
|
||||
"user_id":670043,
|
||||
"user_name":"Tomasz Kolek",
|
||||
"user_username":"tomaszkolek0",
|
||||
"user_email":"tomaszkolek0@gmail.com",
|
||||
"user_avatar":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon",
|
||||
"project_id":1534233,
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"commits":[
|
||||
|
||||
],
|
||||
"total_commits_count":0,
|
||||
"repository":{
|
||||
"name":"my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"description":"",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"visibility_level":0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"object_kind":"issue",
|
||||
"user":{
|
||||
"name":"Eeshan Garg",
|
||||
"username":"eeshangarg",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/cd181af88d928dab53c55600c9f7551d?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"public-repo",
|
||||
"description":null,
|
||||
"web_url":"https://gitlab.com/eeshangarg/public-repo",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"git_http_url":"https://gitlab.com/eeshangarg/public-repo.git",
|
||||
"namespace":"eeshangarg",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"eeshangarg/public-repo",
|
||||
"default_branch":"changes",
|
||||
"ci_config_path":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/public-repo",
|
||||
"url":"git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"ssh_url":"git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"http_url":"https://gitlab.com/eeshangarg/public-repo.git"
|
||||
},
|
||||
"object_attributes":{
|
||||
"id":7755253,
|
||||
"title":"New issue that needs to be fixed",
|
||||
"assignee_id":null,
|
||||
"author_id":1129123,
|
||||
"project_id":3319013,
|
||||
"created_at":"2017-11-15T02:35:38.035Z",
|
||||
"updated_at":"2017-11-15T02:46:32.196Z",
|
||||
"branch_name":null,
|
||||
"description":"",
|
||||
"milestone_id":null,
|
||||
"state":"opened",
|
||||
"iid":1,
|
||||
"updated_by_id":1129123,
|
||||
"weight":null,
|
||||
"confidential":false,
|
||||
"moved_to_id":null,
|
||||
"deleted_at":null,
|
||||
"due_date":null,
|
||||
"lock_version":null,
|
||||
"time_estimate":0,
|
||||
"relative_position":1073742323,
|
||||
"service_desk_reply_to":null,
|
||||
"closed_at":null,
|
||||
"last_edited_at":null,
|
||||
"last_edited_by_id":null,
|
||||
"discussion_locked":null,
|
||||
"total_time_spent":0,
|
||||
"human_total_time_spent":null,
|
||||
"human_time_estimate":null,
|
||||
"assignee_ids":[
|
||||
|
||||
]
|
||||
},
|
||||
"labels":[
|
||||
|
||||
],
|
||||
"repository":{
|
||||
"name":"public-repo",
|
||||
"url":"git@gitlab.com:eeshangarg/public-repo.git",
|
||||
"description":null,
|
||||
"homepage":"https://gitlab.com/eeshangarg/public-repo"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"object_kind":"wiki_page",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"wiki":{
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project/wikis/home",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.wiki.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.wiki.git",
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project.wiki",
|
||||
"default_branch":"master"
|
||||
},
|
||||
"object_attributes":{
|
||||
"slug":"how-to",
|
||||
"title":"how to",
|
||||
"format":"markdown",
|
||||
"content":"abcaaa",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/wikis/how-to",
|
||||
"action":"update"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"object_kind":"wiki_page",
|
||||
"user":{
|
||||
"name":"Tomasz Kolek",
|
||||
"username":"tomaszkolek0",
|
||||
"avatar_url":"https://secure.gravatar.com/avatar/116a6fdbcfd00466297a39174da11fbb?s=80\u0026d=identicon"
|
||||
},
|
||||
"project":{
|
||||
"name":"my-awesome-project",
|
||||
"description":"",
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"avatar_url":null,
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git",
|
||||
"namespace":"tomaszkolek0",
|
||||
"visibility_level":0,
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project",
|
||||
"default_branch":"master",
|
||||
"homepage":"https://gitlab.com/tomaszkolek0/my-awesome-project",
|
||||
"url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.git",
|
||||
"http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.git"
|
||||
},
|
||||
"wiki":{
|
||||
"web_url":"https://gitlab.com/tomaszkolek0/my-awesome-project/wikis/home",
|
||||
"git_ssh_url":"git@gitlab.com:tomaszkolek0/my-awesome-project.wiki.git",
|
||||
"git_http_url":"https://gitlab.com/tomaszkolek0/my-awesome-project.wiki.git",
|
||||
"path_with_namespace":"tomaszkolek0/my-awesome-project.wiki",
|
||||
"default_branch":"master"
|
||||
},
|
||||
"object_attributes":{
|
||||
"title":"how to",
|
||||
"content":"abc",
|
||||
"format":"markdown",
|
||||
"message":"",
|
||||
"slug":"how-to",
|
||||
"url":"https://gitlab.com/tomaszkolek0/my-awesome-project/wikis/how-to",
|
||||
"action":"create"
|
||||
}
|
||||
}
|
||||
884
zerver/webhooks/gitlab/tests.py
Normal file
884
zerver/webhooks/gitlab/tests.py
Normal file
@@ -0,0 +1,884 @@
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from zerver.actions.custom_profile_fields import try_add_realm_default_custom_profile_field
|
||||
from zerver.lib.test_classes import WebhookTestCase
|
||||
from zerver.lib.webhooks.git import COMMITS_LIMIT
|
||||
from zerver.models.realms import get_realm
|
||||
|
||||
|
||||
class GitlabHookTests(WebhookTestCase):
|
||||
def test_push_event_specified_topic(self) -> None:
|
||||
self.url = self.build_webhook_url("topic=Specific%20topic")
|
||||
expected_topic_name = "Specific topic"
|
||||
expected_message = "[[my-awesome-project](https://gitlab.com/tomaszkolek0/my-awesome-project)] Tomasz Kolek [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 2 commits to branch tomek.\n\n* b ([66abd2da288](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7))\n* c ([eb6ae1e591e](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9))"
|
||||
self.check_webhook("push_hook", expected_topic_name, expected_message)
|
||||
|
||||
def test_push_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
expected_message = "Tomasz Kolek [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 2 commits to branch tomek.\n\n* b ([66abd2da288](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7))\n* c ([eb6ae1e591e](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9))"
|
||||
self.check_webhook("push_hook", expected_topic_name, expected_message)
|
||||
|
||||
def test_push_event_private_project_ignored(self) -> None:
|
||||
self.url = self.build_webhook_url(ignore_private_projects="true")
|
||||
self.check_webhook(fixture_name="push_hook", expect_noop=True)
|
||||
|
||||
def test_push_local_branch_without_commits(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / changes"
|
||||
expected_message = "Eeshan Garg [pushed](https://gitlab.com/eeshangarg/my-awesome-project/-/compare/0000000000000000000000000000000000000000...68d7a5528cf423dfaac37dd62a56ac9cc8a884e3) the branch changes."
|
||||
self.check_webhook(
|
||||
"push_hook__push_local_branch_without_commits", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_push_event_message_filtered_by_branches(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,tomek")
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
expected_message = "Tomasz Kolek [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 2 commits to branch tomek.\n\n* b ([66abd2da288](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7))\n* c ([eb6ae1e591e](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9))"
|
||||
self.check_webhook("push_hook", expected_topic_name, expected_message)
|
||||
|
||||
def test_push_multiple_committers(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
expected_message = "Tomasz Kolek [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 2 commits to branch tomek. Commits by Ben (1) and Tomasz Kolek (1).\n\n* b ([66abd2da288](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7))\n* c ([eb6ae1e591e](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9))"
|
||||
self.check_webhook(
|
||||
"push_hook__push_multiple_committers", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_push_multiple_committers_with_others(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
commit_info = "* b ([eb6ae1e591e](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9))\n"
|
||||
expected_message = f"Tomasz Kolek [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 7 commits to branch tomek. Commits by Ben (3), baxterthehacker (2), James (1) and others (1).\n\n{commit_info * 6}* b ([eb6ae1e591e](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9))"
|
||||
self.check_webhook(
|
||||
"push_hook__push_multiple_committers_with_others", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_push_commits_more_than_limit_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
commits_info = "* b ([66abd2da288](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7))\n"
|
||||
expected_message = f"Tomasz Kolek [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 50 commits to branch tomek.\n\n{commits_info * COMMITS_LIMIT}[and {50 - COMMITS_LIMIT} more commit(s)]"
|
||||
self.check_webhook(
|
||||
"push_hook__push_commits_more_than_limit", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_push_commits_more_than_limit_message_filtered_by_branches(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,tomek")
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
commits_info = "* b ([66abd2da288](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7))\n"
|
||||
expected_message = f"Tomasz Kolek [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 50 commits to branch tomek.\n\n{commits_info * COMMITS_LIMIT}[and {50 - COMMITS_LIMIT} more commit(s)]"
|
||||
self.check_webhook(
|
||||
"push_hook__push_commits_more_than_limit", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_remove_branch_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
expected_message = "Tomasz Kolek deleted branch tomek."
|
||||
|
||||
self.check_webhook("push_hook__remove_branch", expected_topic_name, expected_message)
|
||||
|
||||
def test_add_tag_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project"
|
||||
expected_message = "Tomasz Kolek pushed tag xyz."
|
||||
|
||||
self.check_webhook(
|
||||
"tag_push_hook__add_tag",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Tag Push Hook",
|
||||
)
|
||||
|
||||
def test_remove_tag_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project"
|
||||
expected_message = "Tomasz Kolek removed tag xyz."
|
||||
|
||||
self.check_webhook("tag_push_hook__remove_tag", expected_topic_name, expected_message)
|
||||
|
||||
def test_create_issue_without_assignee_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / issue #1 Issue title"
|
||||
expected_message = "Tomasz Kolek created [issue #1](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1):\n\n``` quote\nIssue description\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"issue_hook__issue_created_without_assignee", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_create_confidential_issue_without_assignee_event_message(self) -> None:
|
||||
expected_subject = "testing / issue #1 Testing"
|
||||
expected_message = "Joe Bloggs created [issue #1](https://gitlab.example.co.uk/joe.bloggs/testing/issues/1):\n\n``` quote\nTesting\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"confidential_issue_hook__issue_created_without_assignee",
|
||||
expected_subject,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_create_issue_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[my-awesome-project](https://gitlab.com/tomaszkolek0/my-awesome-project)] Tomasz Kolek created [issue #1 Issue title](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1):\n\n``` quote\nIssue description\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"issue_hook__issue_created_without_assignee", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_create_issue_with_assignee_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / issue #1 Issue title"
|
||||
expected_message = "Tomasz Kolek created [issue #1](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1) (assigned to Tomasz Kolek):\n\n``` quote\nIssue description\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"issue_hook__issue_created_with_assignee", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_create_issue_with_two_assignees_event_message(self) -> None:
|
||||
expected_subject = "Zulip GitLab Test / issue #2 Zulip Test Issue 2"
|
||||
expected_message = "Adam Birds created [issue #2](https://gitlab.com/adambirds/zulip-gitlab-test/issues/2) (assigned to Adam Birds and Eeshan Garg):\n\n``` quote\nZulip Test Issue 2\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"issue_hook__issue_created_with_two_assignees", expected_subject, expected_message
|
||||
)
|
||||
|
||||
def test_create_issue_with_three_assignees_event_message(self) -> None:
|
||||
expected_subject = "Zulip GitLab Test / issue #2 Zulip Test Issue 2"
|
||||
expected_message = "Adam Birds created [issue #2](https://gitlab.com/adambirds/zulip-gitlab-test/issues/2) (assigned to Adam Birds, Eeshan Garg and Tim Abbott):\n\n``` quote\nZulip Test Issue 2\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"issue_hook__issue_created_with_three_assignees", expected_subject, expected_message
|
||||
)
|
||||
|
||||
def test_create_confidential_issue_with_assignee_event_message(self) -> None:
|
||||
expected_subject = "testing / issue #2 Testing"
|
||||
expected_message = "Joe Bloggs created [issue #2](https://gitlab.example.co.uk/joe.bloggs/testing/issues/2) (assigned to Joe Bloggs):\n\n``` quote\nTesting\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"confidential_issue_hook__issue_created_with_assignee",
|
||||
expected_subject,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_create_issue_with_hidden_comment_in_description(self) -> None:
|
||||
expected_topic_name = "public-repo / issue #3 New Issue with hidden comment"
|
||||
expected_message = "Eeshan Garg created [issue #3](https://gitlab.com/eeshangarg/public-repo/issues/3):\n\n``` quote\nThis description actually has a hidden comment in it!\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"issue_hook__issue_created_with_hidden_comment_in_description",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_create_confidential_issue_with_hidden_comment_in_description(self) -> None:
|
||||
expected_subject = "testing / issue #1 Testing"
|
||||
expected_message = "Joe Bloggs created [issue #1](https://gitlab.example.co.uk/joe.bloggs/testing/issues/1):\n\n``` quote\nThis description actually has a hidden comment in it!\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"confidential_issue_hook__issue_created_with_hidden_comment_in_description",
|
||||
expected_subject,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_create_issue_with_null_description(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / issue #7 Issue without description"
|
||||
expected_message = "Eeshan Garg created [issue #7](https://gitlab.com/eeshangarg/my-awesome-project/issues/7)."
|
||||
self.check_webhook(
|
||||
"issue_hook__issue_opened_with_null_description", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_update_issue_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / issue #1 Issue title_new"
|
||||
expected_message = "Tomasz Kolek updated [issue #1](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1)."
|
||||
|
||||
self.check_webhook("issue_hook__issue_updated", expected_topic_name, expected_message)
|
||||
|
||||
def test_update_confidential_issue_event_message(self) -> None:
|
||||
expected_subject = "testing / issue #1 Testing"
|
||||
expected_message = "Joe Bloggs updated [issue #1](https://gitlab.example.co.uk/joe.bloggs/testing/issues/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"confidential_issue_hook__issue_updated", expected_subject, expected_message
|
||||
)
|
||||
|
||||
def test_update_issue_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[my-awesome-project](https://gitlab.com/tomaszkolek0/my-awesome-project)] Tomasz Kolek updated [issue #1 Issue title_new](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1)."
|
||||
|
||||
self.check_webhook("issue_hook__issue_updated", expected_topic_name, expected_message)
|
||||
|
||||
def test_close_issue_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / issue #1 Issue title_new"
|
||||
expected_message = "Tomasz Kolek closed [issue #1](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1)."
|
||||
|
||||
self.check_webhook("issue_hook__issue_closed", expected_topic_name, expected_message)
|
||||
|
||||
def test_close_confidential_issue_event_message(self) -> None:
|
||||
expected_subject = "testing / issue #1 Testing Test"
|
||||
expected_message = "Joe Bloggs closed [issue #1](https://gitlab.example.co.uk/joe.bloggs/testing/issues/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"confidential_issue_hook__issue_closed", expected_subject, expected_message
|
||||
)
|
||||
|
||||
def test_reopen_issue_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / issue #1 Issue title_new"
|
||||
expected_message = "Tomasz Kolek reopened [issue #1](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1)."
|
||||
|
||||
self.check_webhook("issue_hook__issue_reopened", expected_topic_name, expected_message)
|
||||
|
||||
def test_reopen_confidential_issue_event_message(self) -> None:
|
||||
expected_subject = "testing / issue #1 Testing Test"
|
||||
expected_message = "Joe Bloggs reopened [issue #1](https://gitlab.example.co.uk/joe.bloggs/testing/issues/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"confidential_issue_hook__issue_reopened", expected_subject, expected_message
|
||||
)
|
||||
|
||||
def test_note_commit_event_message(self) -> None:
|
||||
expected_topic_name = "testing-zulip-gitlab-integration"
|
||||
expected_message = "Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/commit/82689ddf00fd7bdadb5c2afb3b94bd555edc9d01#note_1406241063) on [82689ddf00f](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/commit/82689ddf00fd7bdadb5c2afb3b94bd555edc9d01):\n``` quote\nWow what a beautiful commit.\n```"
|
||||
|
||||
self.check_webhook("note_hook__commit_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_merge_request_event_message(self) -> None:
|
||||
expected_topic_name = "testing-zulip-gitlab-integration / MR #1 add new-feature"
|
||||
expected_message = "Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/merge_requests/1#note_1406328457):\n\n``` quote\nI am not sure if this new feature is even required or not.\n```"
|
||||
|
||||
self.check_webhook("note_hook__merge_request_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_merge_request_event_message_without_merge_request_title(self) -> None:
|
||||
expected_topic_name = "testing-zulip-gitlab-integration / MR #1"
|
||||
expected_message = "Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/merge_requests/1#note_1406328457):\n\n``` quote\nI am not sure if this new feature is even required or not.\n```"
|
||||
# To keep things as valid JSON.
|
||||
self.url = self.build_webhook_url(use_merge_request_title="false")
|
||||
self.check_webhook("note_hook__merge_request_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_merge_request_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[testing-zulip-gitlab-integration](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration)] Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/merge_requests/1#note_1406328457) on [MR #1 add new-feature](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/merge_requests/1):\n\n``` quote\nI am not sure if this new feature is even required or not.\n```"
|
||||
|
||||
self.check_webhook("note_hook__merge_request_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_issue_event_message(self) -> None:
|
||||
expected_topic_name = "testing-zulip-gitlab-integration / issue #1 Add more lines"
|
||||
expected_message = "Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1#note_1406279810):\n\n``` quote\nThis is again a random comment.\n```"
|
||||
|
||||
self.check_webhook("note_hook__issue_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_design_event_message(self) -> None:
|
||||
expected_topic_name = "testing-zulip-gitlab-integration / design Screenshot.png"
|
||||
expected_message = "Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1/designs/Screenshot.png#note_1458583152):\n\n``` quote\nhello\n```"
|
||||
|
||||
self.check_webhook("note_hook__design_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_confidential_issue_event_message(self) -> None:
|
||||
expected_subject = "testing-zulip-gitlab-integration / issue #1 Add more lines"
|
||||
expected_message = "Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1#note_1406130881):\n\n``` quote\nSome more comments\n```"
|
||||
|
||||
self.check_webhook("confidential_note_hook__issue_note", expected_subject, expected_message)
|
||||
|
||||
def test_note_issue_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[testing-zulip-gitlab-integration](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration)] Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1#note_1406279810) on [issue #1 Add more lines](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1):\n\n``` quote\nThis is again a random comment.\n```"
|
||||
|
||||
self.check_webhook("note_hook__issue_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_design_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[testing-zulip-gitlab-integration](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration)] Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1/designs/Screenshot.png#note_1458583152) on design [Screenshot.png](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/issues/1/designs/Screenshot.png):\n\n``` quote\nhello\n```"
|
||||
|
||||
self.check_webhook("note_hook__design_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_snippet_old_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / snippet #2 test"
|
||||
expected_message = "Tomasz Kolek [commented](https://gitlab.com/tomaszkolek0/my-awesome-project/snippets/2#note_14172058):\n\n``` quote\nNice snippet\n```"
|
||||
|
||||
self.check_webhook("note_hook__snippet_note_old", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_snippet_event_message(self) -> None:
|
||||
expected_topic_name = "testing-zulip-gitlab-integration / snippet #2547713 a ver..."
|
||||
expected_message = "Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/snippets/2547713#note_1424268837):\n\n``` quote\nsome comment\n```"
|
||||
|
||||
self.check_webhook("note_hook__snippet_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_note_snippet_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[testing-zulip-gitlab-integration](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration)] Satyam Bansal [commented](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/snippets/2547713#note_1424268837) on [snippet #2547713 a very new new feature](https://gitlab.com/sbansal1999/testing-zulip-gitlab-integration/-/snippets/2547713):\n\n``` quote\nsome comment\n```"
|
||||
|
||||
self.check_webhook("note_hook__snippet_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_merge_request_created_without_assignee_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #2 NEW MR"
|
||||
expected_message = "Tomasz Kolek created [MR #2](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2) from `tomek` to `master`:\n\n``` quote\ndescription of merge request\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_created_without_assignee",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_merge_request_created_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[my-awesome-project](https://gitlab.com/tomaszkolek0/my-awesome-project)] Tomasz Kolek created [MR #2 NEW MR](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2) from `tomek` to `master`:\n\n``` quote\ndescription of merge request\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_created_without_assignee",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_merge_request_created_with_assignee_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #3 New Merge Request"
|
||||
expected_message = "Tomasz Kolek created [MR #3](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3) from `tomek` to `master` (assigned to Tomasz Kolek):\n\n``` quote\ndescription of merge request\n```"
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_created_with_assignee",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_merge_request_created_with_multiple_assignees_event_message(self) -> None:
|
||||
expected_topic_name = "Demo Project / MR #1 Make a trivial change to the README."
|
||||
expected_message = """
|
||||
Hemanth V. Alluri created [MR #1](https://gitlab.com/Hypro999/demo-project/-/merge_requests/1) from `devel` to `master` (assigned to Hemanth V. Alluri and Hemanth V. Alluri):
|
||||
|
||||
``` quote
|
||||
A trivial change that should probably be ignored.
|
||||
```
|
||||
""".strip()
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_created_with_multiple_assignees",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_merge_request_closed_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #2 NEW MR"
|
||||
expected_message = "Tomasz Kolek closed [MR #2](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2)."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_closed", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_closed_event_message_without_using_title(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #2"
|
||||
expected_message = "Tomasz Kolek closed [MR #2](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2)."
|
||||
self.url = self.build_webhook_url(use_merge_request_title="false")
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_closed", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_closed_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[my-awesome-project](https://gitlab.com/tomaszkolek0/my-awesome-project)] Tomasz Kolek closed [MR #2 NEW MR](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2)."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_closed", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_reopened_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #1 Update the README with author ..."
|
||||
expected_message = "Eeshan Garg reopened [MR #1](https://gitlab.com/eeshangarg/my-awesome-project/merge_requests/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_reopened", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_approved_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #1 Update the README with author ..."
|
||||
expected_message = "Eeshan Garg approved [MR #1](https://gitlab.com/eeshangarg/my-awesome-project/merge_requests/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_approved", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_approval_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #1 Update the README"
|
||||
expected_message = "Sumit Bhanushali added their approval for [MR #1](https://gitlab.com/sumitb16/my-awesome-project/merge_requests/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_approval", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_unapproval_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #1 Update the README"
|
||||
expected_message = "Sumit Bhanushali removed their approval for [MR #1](https://gitlab.com/sumitb16/my-awesome-project/merge_requests/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_unapproval", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_updated_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #3 New Merge Request"
|
||||
expected_message = "Tomasz Kolek updated [MR #3](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3) (assigned to Tomasz Kolek):\n\n``` quote\nupdated desc\n```"
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_updated", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_added_commit_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #3 New Merge Request"
|
||||
expected_message = "Tomasz Kolek added commit(s) to [MR #3](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3)."
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_added_commit", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_merged_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #3 New Merge Request"
|
||||
expected_message = "Tomasz Kolek merged [MR #3](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3) from `tomek` to `master`."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_merged", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_merged_event_message_ignored(self) -> None:
|
||||
self.url = self.build_webhook_url(ignore_private_projects="true")
|
||||
self.check_webhook(
|
||||
fixture_name="merge_request_hook__merge_request_merged",
|
||||
expect_noop=True,
|
||||
)
|
||||
|
||||
def test_wiki_page_opened_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project"
|
||||
expected_message = 'Tomasz Kolek created [wiki page "how to"](https://gitlab.com/tomaszkolek0/my-awesome-project/wikis/how-to).'
|
||||
|
||||
self.check_webhook(
|
||||
"wiki_page_hook__wiki_page_opened", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_wiki_page_edited_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project"
|
||||
expected_message = 'Tomasz Kolek updated [wiki page "how to"](https://gitlab.com/tomaszkolek0/my-awesome-project/wikis/how-to).'
|
||||
|
||||
self.check_webhook(
|
||||
"wiki_page_hook__wiki_page_edited", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_build_created_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "Build job_name from test stage was created."
|
||||
|
||||
self.check_webhook(
|
||||
"build_created",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Job Hook",
|
||||
)
|
||||
|
||||
def test_build_started_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "Build job_name from test stage started."
|
||||
|
||||
self.check_webhook(
|
||||
"build_started",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Job Hook",
|
||||
)
|
||||
|
||||
def test_build_succeeded_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "Build job_name from test stage changed status to success."
|
||||
|
||||
self.check_webhook(
|
||||
"build_succeeded",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Job Hook",
|
||||
)
|
||||
|
||||
def test_build_created_event_message_legacy_event_name(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "Build job_name from test stage was created."
|
||||
|
||||
self.check_webhook(
|
||||
"build_created",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Build Hook",
|
||||
)
|
||||
|
||||
def test_build_started_event_message_legacy_event_name(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "Build job_name from test stage started."
|
||||
|
||||
self.check_webhook(
|
||||
"build_started",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Build Hook",
|
||||
)
|
||||
|
||||
def test_build_succeeded_event_message_legacy_event_name(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "Build job_name from test stage changed status to success."
|
||||
|
||||
self.check_webhook(
|
||||
"build_succeeded",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Build Hook",
|
||||
)
|
||||
|
||||
def test_pipeline_succeeded_with_artifacts_event_message(self) -> None:
|
||||
expected_topic_name = "onlysomeproject / test/links-in-zulip-pipeline-message"
|
||||
expected_message = "[Pipeline (22668)](https://gitlab.example.com/group1/onlysomeproject/-/pipelines/22668) changed status to success with build(s):\n* [cleanup:cleanup docker image](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58592) - success\n* [pages](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58591) - success\n * built artifact: *artifacts.zip* [[Browse](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58591/artifacts/browse)|[Download](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58591/artifacts/download)]\n* [black+pytest:future environment](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58590) - success\n* [docs:anaconda environment](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58589) - success\n * built artifact: *sphinx-docs.zip* [[Browse](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58589/artifacts/browse)|[Download](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58589/artifacts/download)]\n* [pytest:current environment](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58588) - success\n* [black:current environment](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58587) - success\n* [setup:docker image](https://gitlab.example.com/group1/onlysomeproject/-/jobs/58586) - success."
|
||||
|
||||
self.check_webhook(
|
||||
"pipeline_hook__pipeline_succeeded_with_artifacts",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_pipeline_succeeded_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "[Pipeline (4414206)](https://gitlab.com/TomaszKolek/my-awesome-project/-/pipelines/4414206) changed status to success with build(s):\n* [job_name2](https://gitlab.com/TomaszKolek/my-awesome-project/-/jobs/4541113) - success\n* [job_name](https://gitlab.com/TomaszKolek/my-awesome-project/-/jobs/4541112) - success."
|
||||
|
||||
self.check_webhook(
|
||||
"pipeline_hook__pipeline_succeeded",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_pipeline_started_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "[Pipeline (4414206)](https://gitlab.com/TomaszKolek/my-awesome-project/-/pipelines/4414206) started with build(s):\n* [job_name](https://gitlab.com/TomaszKolek/my-awesome-project/-/jobs/4541112) - running\n* [job_name2](https://gitlab.com/TomaszKolek/my-awesome-project/-/jobs/4541113) - pending."
|
||||
|
||||
self.check_webhook(
|
||||
"pipeline_hook__pipeline_started",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_pipeline_pending_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / master"
|
||||
expected_message = "[Pipeline (4414206)](https://gitlab.com/TomaszKolek/my-awesome-project/-/pipelines/4414206) was created with build(s):\n* [job_name2](https://gitlab.com/TomaszKolek/my-awesome-project/-/jobs/4541113) - pending\n* [job_name](https://gitlab.com/TomaszKolek/my-awesome-project/-/jobs/4541112) - created."
|
||||
|
||||
self.check_webhook(
|
||||
"pipeline_hook__pipeline_pending",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_issue_type_test_payload(self) -> None:
|
||||
expected_topic_name = "public-repo"
|
||||
expected_message = "Webhook for **public-repo** has been configured successfully! :tada:"
|
||||
|
||||
self.check_webhook(
|
||||
"test_hook__issue_test_payload",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
@patch("zerver.lib.webhooks.common.check_send_webhook_message")
|
||||
def test_push_event_message_filtered_by_branches_ignore(
|
||||
self, check_send_webhook_message_mock: MagicMock
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
payload = self.get_body("push_hook")
|
||||
result = self.client_post(
|
||||
self.url, payload, HTTP_X_GITLAB_EVENT="Push Hook", content_type="application/json"
|
||||
)
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
@patch("zerver.lib.webhooks.common.check_send_webhook_message")
|
||||
def test_push_commits_more_than_limit_message_filtered_by_branches_ignore(
|
||||
self, check_send_webhook_message_mock: MagicMock
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
payload = self.get_body("push_hook__push_commits_more_than_limit")
|
||||
result = self.client_post(
|
||||
self.url, payload, HTTP_X_GITLAB_EVENT="Push Hook", content_type="application/json"
|
||||
)
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
def test_job_hook_event(self) -> None:
|
||||
expected_topic_name = "gitlab_test / gitlab-script-trigger"
|
||||
expected_message = "Build test from test stage was created."
|
||||
self.check_webhook("job_hook__build_created", expected_topic_name, expected_message)
|
||||
|
||||
def test_job_hook_event_topic(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="provided topic")
|
||||
expected_topic_name = "provided topic"
|
||||
expected_message = "[[gitlab_test](http://192.168.64.1:3005/gitlab-org/gitlab-test)] Build test from test stage was created."
|
||||
self.check_webhook("job_hook__build_created", expected_topic_name, expected_message)
|
||||
|
||||
def test_system_push_event_message(self) -> None:
|
||||
expected_topic_name = "gitlab / master"
|
||||
expected_message = "John Smith [pushed](http://test.example.com/gitlab/gitlab/-/compare/95790bf891e76fee5e1747ab589903a6a1f80f22...da1560886d4f094c3e6c9ef40349f7d38b5d27d7) 1 commit to branch master. Commits by Test User (1).\n\n* Add simple search to projects in public area ([c5feabde2d8](https://test.example.com/gitlab/gitlab/-/commit/c5feabde2d8cd023215af4d2ceeb7a64839fc428))"
|
||||
self.check_webhook("system_hook__push_hook", expected_topic_name, expected_message)
|
||||
|
||||
def test_system_merge_request_created_without_assignee_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #2 NEW MR"
|
||||
expected_message = "Tomasz Kolek created [MR #2](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2) from `tomek` to `master`:\n\n``` quote\ndescription of merge request\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"system_hook__merge_request_created_without_assignee",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_system_merge_request_created_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[my-awesome-project](https://gitlab.com/tomaszkolek0/my-awesome-project)] Tomasz Kolek created [MR #2 NEW MR](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2) from `tomek` to `master`:\n\n``` quote\ndescription of merge request\n```"
|
||||
|
||||
self.check_webhook(
|
||||
"system_hook__merge_request_created_without_assignee",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_system_merge_request_created_with_assignee_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #3 New Merge Request"
|
||||
expected_message = "Tomasz Kolek created [MR #3](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3) from `tomek` to `master` (assigned to Tomasz Kolek):\n\n``` quote\ndescription of merge request\n```"
|
||||
self.check_webhook(
|
||||
"system_hook__merge_request_created_with_assignee",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_system_merge_request_closed_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #2 NEW MR"
|
||||
expected_message = "Tomasz Kolek closed [MR #2](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2)."
|
||||
|
||||
self.check_webhook(
|
||||
"system_hook__merge_request_closed", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_system_merge_request_merged_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #3 New Merge Request"
|
||||
expected_message = "Tomasz Kolek merged [MR #3](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/3) from `tomek` to `master`."
|
||||
|
||||
self.check_webhook(
|
||||
"system_hook__merge_request_merged", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_system_merge_request_closed_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[my-awesome-project](https://gitlab.com/tomaszkolek0/my-awesome-project)] Tomasz Kolek closed [MR #2 NEW MR](https://gitlab.com/tomaszkolek0/my-awesome-project/merge_requests/2)."
|
||||
|
||||
self.check_webhook(
|
||||
"system_hook__merge_request_closed", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_merge_request_unapproved_event_message(self) -> None:
|
||||
expected_topic_name = "my-awesome-project / MR #1 Update the README with author ..."
|
||||
expected_message = "Eeshan Garg unapproved [MR #1](https://gitlab.com/eeshangarg/my-awesome-project/merge_requests/1)."
|
||||
|
||||
self.check_webhook(
|
||||
"merge_request_hook__merge_request_unapproved", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_release_created_event_message(self) -> None:
|
||||
expected_topic_name = "release-webhook-example"
|
||||
expected_message = "Release [v1.1](https://example.com/gitlab-org/release-webhook-example/-/releases/v1.1) for tag v1.1 was created.\n``` quote\n## v1.1 (2024-09-06)\n\n- Feature added\n```"
|
||||
|
||||
self.check_webhook("release_hook__create", expected_topic_name, expected_message)
|
||||
|
||||
def test_release_created_event_message_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url("topic=Specific%20topic")
|
||||
expected_topic_name = "Specific topic"
|
||||
expected_message = "[[release-webhook-example](https://example.com/gitlab-org/release-webhook-example)] Release [v1.1](https://example.com/gitlab-org/release-webhook-example/-/releases/v1.1) for tag v1.1 was created.\n``` quote\n## v1.1 (2024-09-06)\n\n- Feature added\n```"
|
||||
|
||||
self.check_webhook("release_hook__create", expected_topic_name, expected_message)
|
||||
|
||||
def test_release_update_event_message(self) -> None:
|
||||
expected_topic_name = "release-webhook-example"
|
||||
expected_message = "Release [v1.1](https://example.com/gitlab-org/release-webhook-example/-/releases/v1.1) for tag v1.1 was updated.\n``` quote\n## v1.1 (2024-09-06)\n\n- Feature added\n```"
|
||||
|
||||
self.check_webhook("release_hook__update", expected_topic_name, expected_message)
|
||||
|
||||
def test_release_delete_event_message(self) -> None:
|
||||
expected_topic_name = "release-webhook-example"
|
||||
expected_message = "Release v1.1 for tag v1.1 was deleted."
|
||||
|
||||
self.check_webhook("release_hook__delete", expected_topic_name, expected_message)
|
||||
|
||||
def test_feature_flag_activate_event_message(self) -> None:
|
||||
expected_topic_name = "sample"
|
||||
expected_message = "Varun Kolanu activated the feature flag [sample-feature-flag](https://gitlab.com/kolanuvarun/sample/-/feature_flags)."
|
||||
|
||||
self.check_webhook("feature_flag_hook__activated", expected_topic_name, expected_message)
|
||||
|
||||
def test_feature_flag_deactivate_event_message(self) -> None:
|
||||
expected_topic_name = "sample"
|
||||
expected_message = "Varun Kolanu deactivated the feature flag [sample-feature-flag](https://gitlab.com/kolanuvarun/sample/-/feature_flags)."
|
||||
|
||||
self.check_webhook("feature_flag_hook__deactivated", expected_topic_name, expected_message)
|
||||
|
||||
def test_resource_access_token_project_expiry(self) -> None:
|
||||
expected_topic_name = "Flight"
|
||||
expected_message = "The access token [acd](https://example.com/flightjs/Flight/-/settings/access_tokens) will expire on Jan 26, 2024."
|
||||
|
||||
self.check_webhook(
|
||||
"resource_access_token_hook__project_expiry", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_resource_access_token_group_expiry(self) -> None:
|
||||
expected_topic_name = "Twitter"
|
||||
expected_message = "The access token [acd](https://gitlab.com/groups/twitter/-/settings/access_tokens) will expire on Jan 26, 2024."
|
||||
|
||||
self.check_webhook(
|
||||
"resource_access_token_hook__group_expiry", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_resource_access_token_group_expiry_with_custom_topic(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[Twitter](https://gitlab.com/groups/twitter)] The access token [acd](https://gitlab.com/groups/twitter/-/settings/access_tokens) will expire on Jan 26, 2024."
|
||||
|
||||
self.check_webhook(
|
||||
"resource_access_token_hook__group_expiry", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_deployment_started_event_message(self) -> None:
|
||||
expected_topic_name = "test / production"
|
||||
expected_message = "[Vedant Joshi](https://gitlab.com/theofficialvedantjoshi) started a new [deployment](https://gitlab.com/vedant8600317/test/-/jobs/9905389091):\n> [5879366](https://gitlab.com/vedant8600317/test/-/commit/58793660b22d6ceacbdc23b28a0562bca339702c) Update .gitlab-ci.yml file"
|
||||
|
||||
self.check_webhook(
|
||||
"deployment_hook__running",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Deployment Hook",
|
||||
)
|
||||
|
||||
def test_deployment_succeeded_event_message(self) -> None:
|
||||
expected_topic_name = "test / production"
|
||||
expected_message = "The [deployment](https://gitlab.com/vedant8600317/test/-/jobs/9905389091) was successful."
|
||||
|
||||
self.check_webhook(
|
||||
"deployment_hook__success",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Deployment Hook",
|
||||
)
|
||||
|
||||
def test_deployment_failed_event_message(self) -> None:
|
||||
expected_topic_name = "test / production"
|
||||
expected_message = (
|
||||
"The [deployment](https://gitlab.com/vedant8600317/test/-/jobs/9905759933) failed."
|
||||
)
|
||||
|
||||
self.check_webhook(
|
||||
"deployment_hook__failed",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Deployment Hook",
|
||||
)
|
||||
|
||||
def test_deployment_canceled_event_message(self) -> None:
|
||||
expected_topic_name = "test / production"
|
||||
expected_message = "The [deployment](https://gitlab.com/vedant8600317/test/-/jobs/9905830127) was canceled."
|
||||
|
||||
self.check_webhook(
|
||||
"deployment_hook__canceled",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_GITLAB_EVENT="Deployment Hook",
|
||||
)
|
||||
|
||||
def test_emoji_award_in_snippet(self) -> None:
|
||||
expected_topic_name = "sample / snippet #4831194 Sample Snippet"
|
||||
expected_message = "Varun Kolanu added the emoji :thumbsup:."
|
||||
|
||||
self.check_webhook("emoji_hook__award__snippet", expected_topic_name, expected_message)
|
||||
|
||||
def test_emoji_award_in_snippet_with_custom_topic(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[sample](https://gitlab.com/kolanuvarun/sample)] Varun Kolanu added the emoji :thumbsup: to [snippet #4831194](https://gitlab.com/kolanuvarun/sample/-/snippets/4831194)."
|
||||
|
||||
self.check_webhook(
|
||||
"emoji_hook__award__snippet",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_emoji_revoke_in_issue(self) -> None:
|
||||
expected_topic_name = "sample / issue #1 Sample Issue"
|
||||
expected_message = "Varun Kolanu removed the emoji :thumbsdown:."
|
||||
|
||||
self.check_webhook("emoji_hook__revoke__issue", expected_topic_name, expected_message)
|
||||
|
||||
def test_emoji_award_in_merge_request_without_merge_request_title(self) -> None:
|
||||
expected_topic_name = "sample / MR #1"
|
||||
expected_message = "Varun Kolanu added the emoji :thumbsup:."
|
||||
|
||||
self.url = self.build_webhook_url(use_merge_request_title="false")
|
||||
self.check_webhook(
|
||||
"emoji_hook__award__merge_request", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_emoji_award_in_merge_request_with_custom_topic(self) -> None:
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[sample](https://gitlab.com/kolanuvarun/sample)] Varun Kolanu added the emoji :thumbsup: to [MR #1](https://gitlab.com/kolanuvarun/sample/-/merge_requests/1)."
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
self.check_webhook(
|
||||
"emoji_hook__award__merge_request",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_emoji_revoke_in_merge_request_note(self) -> None:
|
||||
expected_topic_name = "sample / MR #1 Edit README.md"
|
||||
expected_message = "Varun Kolanu removed the emoji :heart: from [a comment](https://gitlab.com/kolanuvarun/sample/-/merge_requests/1#note_2431339003)."
|
||||
|
||||
self.check_webhook(
|
||||
"emoji_hook__revoke__merge_request_note", expected_topic_name, expected_message
|
||||
)
|
||||
|
||||
def test_emoji_award_in_design_note(self) -> None:
|
||||
expected_topic_name = "sample / design Sample.png"
|
||||
expected_message = "Varun Kolanu added the emoji :heart: to [a comment](https://gitlab.com/kolanuvarun/sample/-/issues/1/designs/Sample.png#note_2421525600)."
|
||||
|
||||
self.check_webhook("emoji_hook__award__design_note", expected_topic_name, expected_message)
|
||||
|
||||
def test_emoji_revoke_in_merge_request_note_with_custom_topic(self) -> None:
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "[[sample](https://gitlab.com/kolanuvarun/sample)] Varun Kolanu removed the emoji :heart: from [a comment](https://gitlab.com/kolanuvarun/sample/-/merge_requests/1#note_2431339003)."
|
||||
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
self.check_webhook(
|
||||
"emoji_hook__revoke__merge_request_note",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
)
|
||||
|
||||
def test_push_event_message_silent_mention(self) -> None:
|
||||
realm = get_realm("zulip")
|
||||
gitlab_field = try_add_realm_default_custom_profile_field(realm, "gitlab")
|
||||
hamlet = self.example_user("hamlet")
|
||||
self.set_user_custom_profile_data(
|
||||
hamlet, [{"id": gitlab_field.id, "value": "tomaszkolek0"}]
|
||||
)
|
||||
expected_topic_name = "my-awesome-project / tomek"
|
||||
expected_message = f"@_**{hamlet.full_name}|{hamlet.id}** [pushed](https://gitlab.com/tomaszkolek0/my-awesome-project/-/compare/5fcdd5551fc3085df79bece2c32b1400802ac407...eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9) 2 commits to branch tomek. Commits by Tomasz Kolek (2).\n\n* b ([66abd2da288](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/66abd2da28809ffa128ed0447965cf11d7f863a7))\n* c ([eb6ae1e591e](https://gitlab.com/tomaszkolek0/my-awesome-project/commit/eb6ae1e591e0819dc5bf187c6bfe18ec065a80e9))"
|
||||
self.check_webhook("push_hook", expected_topic_name, expected_message)
|
||||
|
||||
def test_update_issue_event_message_silent_mention(self) -> None:
|
||||
realm = get_realm("zulip")
|
||||
gitlab_field = try_add_realm_default_custom_profile_field(realm, "gitlab")
|
||||
hamlet = self.example_user("hamlet")
|
||||
self.set_user_custom_profile_data(
|
||||
hamlet, [{"id": gitlab_field.id, "value": "tomaszkolek0"}]
|
||||
)
|
||||
expected_topic_name = "my-awesome-project / issue #1 Issue title_new"
|
||||
expected_message = f"@_**{hamlet.full_name}|{hamlet.id}** updated [issue #1](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1)."
|
||||
self.check_webhook("issue_hook__issue_updated", expected_topic_name, expected_message)
|
||||
|
||||
def test_update_issue_event_message_silent_mention_multiple_matches(self) -> None:
|
||||
realm = get_realm("zulip")
|
||||
gitlab_field = try_add_realm_default_custom_profile_field(realm, "gitlab")
|
||||
hamlet = self.example_user("hamlet")
|
||||
self.set_user_custom_profile_data(
|
||||
hamlet, [{"id": gitlab_field.id, "value": "tomaszkolek0"}]
|
||||
)
|
||||
cordelia = self.example_user("cordelia")
|
||||
self.set_user_custom_profile_data(
|
||||
cordelia, [{"id": gitlab_field.id, "value": "tomaszkolek0"}]
|
||||
)
|
||||
expected_topic_name = "my-awesome-project / issue #1 Issue title_new"
|
||||
expected_message = "Tomasz Kolek updated [issue #1](https://gitlab.com/tomaszkolek0/my-awesome-project/issues/1)."
|
||||
self.check_webhook("issue_hook__issue_updated", expected_topic_name, expected_message)
|
||||
894
zerver/webhooks/gitlab/view.py
Normal file
894
zerver/webhooks/gitlab/view.py
Normal file
@@ -0,0 +1,894 @@
|
||||
import re
|
||||
from datetime import datetime
|
||||
from typing import Protocol
|
||||
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
from pydantic import Json
|
||||
|
||||
from zerver.decorator import webhook_view
|
||||
from zerver.lib.exceptions import UnsupportedWebhookEventTypeError
|
||||
from zerver.lib.external_accounts import DEFAULT_EXTERNAL_ACCOUNTS
|
||||
from zerver.lib.markdown.fenced_code import get_unused_fence
|
||||
from zerver.lib.mention import silent_mention_syntax_for_user
|
||||
from zerver.lib.partial import partial
|
||||
from zerver.lib.response import json_success
|
||||
from zerver.lib.typed_endpoint import JsonBodyPayload, typed_endpoint
|
||||
from zerver.lib.validator import WildValue, check_int, check_none_or, check_string
|
||||
from zerver.lib.webhooks.common import (
|
||||
OptionalUserSpecifiedTopicStr,
|
||||
check_send_webhook_message,
|
||||
get_event_header,
|
||||
guess_zulip_user_from_external_account,
|
||||
)
|
||||
from zerver.lib.webhooks.git import (
|
||||
CONTENT_MESSAGE_TEMPLATE,
|
||||
EMPTY_SHA,
|
||||
RELEASE_MESSAGE_TEMPLATE_WITHOUT_USER_NAME,
|
||||
RELEASE_MESSAGE_TEMPLATE_WITHOUT_USER_NAME_WITHOUT_URL,
|
||||
TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE,
|
||||
get_commits_comment_action_message,
|
||||
get_issue_event_message,
|
||||
get_pull_request_event_message,
|
||||
get_push_commits_event_message,
|
||||
get_push_tag_event_message,
|
||||
get_remove_branch_event_message,
|
||||
is_branch_name_notifiable,
|
||||
)
|
||||
from zerver.models import Realm, UserProfile
|
||||
|
||||
TOPIC_WITH_DESIGN_INFO_TEMPLATE = "{repo} / {type} {design_name}"
|
||||
DESIGN_COMMENT_MESSAGE_TEMPLATE = (
|
||||
"{user_name} {action} on design [{design_name}]({design_url}):\n{content_message}"
|
||||
)
|
||||
DESIGN_COMMENT_MESSAGE_TEMPLATE_WITHOUT_REFERENCE = "{user_name} {action}:\n{content_message}"
|
||||
|
||||
FEATURE_FLAG_MESSAGE_TEMPLATE = "{user} {action} the feature flag [{name}]({url})."
|
||||
|
||||
ACCESS_TOKEN_EXPIRY_MESSAGE_TEMPLATE = "The access token [{name}]({url}) will expire on {date}."
|
||||
|
||||
EMOJI_MESSAGE_TEMPLATE = "{user_name} {action} the emoji :{emoji_text}:{suffix}."
|
||||
|
||||
|
||||
def fixture_to_headers(fixture_name: str) -> dict[str, str]:
|
||||
if fixture_name.startswith("build"):
|
||||
return {} # Since there are 2 possible event types.
|
||||
|
||||
# Map "push_hook__push_commits_more_than_limit.json" into GitLab's
|
||||
# HTTP event title "Push Hook".
|
||||
return {"HTTP_X_GITLAB_EVENT": fixture_name.split("__", 1)[0].replace("_", " ").title()}
|
||||
|
||||
|
||||
def get_push_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
after = payload.get("after")
|
||||
if after:
|
||||
stringified_after = after.tame(check_string)
|
||||
if stringified_after == EMPTY_SHA:
|
||||
return get_remove_branch_event_body(payload, realm)
|
||||
return get_normal_push_event_body(payload, realm)
|
||||
|
||||
|
||||
def get_normal_push_event_body(payload: WildValue, realm: Realm) -> str:
|
||||
compare_url = "{}/-/compare/{}...{}".format(
|
||||
get_project_homepage(payload),
|
||||
payload["before"].tame(check_string),
|
||||
payload["after"].tame(check_string),
|
||||
)
|
||||
|
||||
commits = [
|
||||
{
|
||||
"name": commit["author"]["name"].tame(check_string),
|
||||
"sha": commit["id"].tame(check_string),
|
||||
"message": commit["message"].tame(check_string),
|
||||
"url": commit["url"].tame(check_string),
|
||||
}
|
||||
for commit in payload["commits"]
|
||||
]
|
||||
|
||||
return get_push_commits_event_message(
|
||||
get_user_name(payload, realm),
|
||||
compare_url,
|
||||
get_branch_name(payload),
|
||||
commits,
|
||||
)
|
||||
|
||||
|
||||
def get_remove_branch_event_body(payload: WildValue, realm: Realm) -> str:
|
||||
return get_remove_branch_event_message(
|
||||
get_user_name(payload, realm),
|
||||
get_branch_name(payload),
|
||||
)
|
||||
|
||||
|
||||
def get_tag_push_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
return get_push_tag_event_message(
|
||||
get_user_name(payload, realm),
|
||||
get_tag_name(payload),
|
||||
action="pushed" if payload.get("checkout_sha") else "removed",
|
||||
)
|
||||
|
||||
|
||||
def get_issue_created_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
description = payload["object_attributes"].get("description")
|
||||
# Filter out multiline hidden comments
|
||||
if description:
|
||||
stringified_description = description.tame(check_string)
|
||||
stringified_description = re.sub(
|
||||
r"<!--.*?-->", "", stringified_description, count=0, flags=re.DOTALL
|
||||
)
|
||||
stringified_description = stringified_description.rstrip()
|
||||
else:
|
||||
stringified_description = None
|
||||
|
||||
return get_issue_event_message(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action="created",
|
||||
url=get_object_url(payload),
|
||||
number=payload["object_attributes"]["iid"].tame(check_int),
|
||||
message=stringified_description,
|
||||
assignees=replace_assignees_username_with_name(get_assignees(payload)),
|
||||
title=payload["object_attributes"]["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_issue_event_body(action: str, payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
return get_issue_event_message(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=action,
|
||||
url=get_object_url(payload),
|
||||
number=payload["object_attributes"]["iid"].tame(check_int),
|
||||
title=payload["object_attributes"]["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_merge_request_updated_event_body(
|
||||
payload: WildValue, include_title: bool, realm: Realm
|
||||
) -> str:
|
||||
if payload["object_attributes"].get("oldrev"):
|
||||
return get_merge_request_event_body(
|
||||
"added commit(s) to",
|
||||
payload,
|
||||
include_title=include_title,
|
||||
realm=realm,
|
||||
)
|
||||
|
||||
return get_merge_request_open_or_updated_body(
|
||||
"updated",
|
||||
payload,
|
||||
include_title=include_title,
|
||||
realm=realm,
|
||||
)
|
||||
|
||||
|
||||
def get_merge_request_event_body(
|
||||
action: str, payload: WildValue, include_title: bool, realm: Realm
|
||||
) -> str:
|
||||
pull_request = payload["object_attributes"]
|
||||
target_branch = None
|
||||
base_branch = None
|
||||
if action == "merged":
|
||||
target_branch = pull_request["source_branch"].tame(check_string)
|
||||
base_branch = pull_request["target_branch"].tame(check_string)
|
||||
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=action,
|
||||
url=pull_request["url"].tame(check_string),
|
||||
number=pull_request["iid"].tame(check_int),
|
||||
target_branch=target_branch,
|
||||
base_branch=base_branch,
|
||||
type="MR",
|
||||
title=payload["object_attributes"]["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_merge_request_open_or_updated_body(
|
||||
action: str,
|
||||
payload: WildValue,
|
||||
include_title: bool,
|
||||
realm: Realm,
|
||||
) -> str:
|
||||
pull_request = payload["object_attributes"]
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=action,
|
||||
url=pull_request["url"].tame(check_string),
|
||||
number=pull_request["iid"].tame(check_int),
|
||||
target_branch=(
|
||||
pull_request["source_branch"].tame(check_string) if action == "created" else None
|
||||
),
|
||||
base_branch=(
|
||||
pull_request["target_branch"].tame(check_string) if action == "created" else None
|
||||
),
|
||||
message=pull_request["description"].tame(check_none_or(check_string)),
|
||||
assignees=replace_assignees_username_with_name(get_assignees(payload)),
|
||||
type="MR",
|
||||
title=payload["object_attributes"]["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_assignees(payload: WildValue) -> list[WildValue] | WildValue:
|
||||
assignee_details = payload.get("assignees")
|
||||
if not assignee_details:
|
||||
single_assignee_details = payload.get("assignee")
|
||||
if not single_assignee_details:
|
||||
transformed_assignee_details = []
|
||||
else:
|
||||
transformed_assignee_details = [single_assignee_details]
|
||||
return transformed_assignee_details
|
||||
return assignee_details
|
||||
|
||||
|
||||
def replace_assignees_username_with_name(
|
||||
assignees: list[WildValue] | WildValue,
|
||||
) -> list[dict[str, str]]:
|
||||
"""Replace the username of each assignee with their (full) name.
|
||||
|
||||
This is a hack-like adaptor so that when assignees are passed to
|
||||
`get_pull_request_event_message` we can use the assignee's name
|
||||
and not their username (for more consistency).
|
||||
"""
|
||||
formatted_assignees = []
|
||||
for assignee in assignees:
|
||||
formatted_assignee = {}
|
||||
formatted_assignee["username"] = assignee["name"].tame(check_string)
|
||||
formatted_assignees.append(formatted_assignee)
|
||||
return formatted_assignees
|
||||
|
||||
|
||||
def parse_design_comment(comment: WildValue, repository_url: str) -> tuple[str, str, str]:
|
||||
note_id = comment["id"].tame(check_int)
|
||||
|
||||
# As there is no issue field in the payloads related to designs,
|
||||
# we need to parse the issue number from the new_path field.
|
||||
design_path = comment["position"]["new_path"].tame(check_string)
|
||||
|
||||
# Sample design_path: "designs/issue-1/Screenshot_20250302_230445.png"
|
||||
_, issue_subpath, design_name = design_path.split("/")
|
||||
|
||||
issue_number = issue_subpath.split("-")[-1]
|
||||
design_url = f"{repository_url}/-/issues/{issue_number}/designs/{design_name}"
|
||||
comment_url = f"{design_url}#note_{note_id}"
|
||||
|
||||
return comment_url, design_url, design_name
|
||||
|
||||
|
||||
def get_commented_commit_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
comment = payload["object_attributes"]
|
||||
action = "[commented]({})".format(comment["url"].tame(check_string))
|
||||
return get_commits_comment_action_message(
|
||||
get_user_name(payload, realm),
|
||||
action,
|
||||
payload["commit"]["url"].tame(check_string),
|
||||
payload["commit"]["id"].tame(check_string),
|
||||
comment["note"].tame(check_string),
|
||||
)
|
||||
|
||||
|
||||
def get_commented_merge_request_event_body(
|
||||
payload: WildValue, include_title: bool, realm: Realm
|
||||
) -> str:
|
||||
comment = payload["object_attributes"]
|
||||
comment_url = comment["url"].tame(check_string)
|
||||
action = f"[commented]({comment_url}) on" if include_title else f"[commented]({comment_url})"
|
||||
url = payload["merge_request"]["url"].tame(check_string)
|
||||
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=action,
|
||||
url=url,
|
||||
number=payload["merge_request"]["iid"].tame(check_int),
|
||||
message=comment["note"].tame(check_string),
|
||||
type="MR",
|
||||
title=payload["merge_request"]["title"].tame(check_string),
|
||||
include_topic_reference=include_title,
|
||||
)
|
||||
|
||||
|
||||
def get_commented_issue_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
comment = payload["object_attributes"]
|
||||
comment_url = comment["url"].tame(check_string)
|
||||
action = f"[commented]({comment_url}) on" if include_title else f"[commented]({comment_url})"
|
||||
url = payload["issue"]["url"].tame(check_string)
|
||||
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=action,
|
||||
url=url,
|
||||
number=payload["issue"]["iid"].tame(check_int),
|
||||
message=comment["note"].tame(check_string),
|
||||
type="issue",
|
||||
title=payload["issue"]["title"].tame(check_string),
|
||||
include_topic_reference=include_title,
|
||||
)
|
||||
|
||||
|
||||
def get_commented_design_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
comment = payload["object_attributes"]
|
||||
repository_url = payload["repository"]["homepage"].tame(check_string)
|
||||
|
||||
comment_url, design_url, design_name = parse_design_comment(comment, repository_url)
|
||||
action = f"[commented]({comment_url})"
|
||||
message = comment["note"].tame(check_string)
|
||||
content_message = CONTENT_MESSAGE_TEMPLATE.format(
|
||||
message=message, fence=get_unused_fence(message)
|
||||
)
|
||||
message_template = (
|
||||
DESIGN_COMMENT_MESSAGE_TEMPLATE
|
||||
if include_title
|
||||
else DESIGN_COMMENT_MESSAGE_TEMPLATE_WITHOUT_REFERENCE
|
||||
)
|
||||
|
||||
return message_template.format(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=action,
|
||||
design_name=design_name,
|
||||
design_url=design_url,
|
||||
content_message=content_message,
|
||||
)
|
||||
|
||||
|
||||
def get_commented_snippet_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
comment = payload["object_attributes"]
|
||||
comment_url = comment["url"].tame(check_string)
|
||||
action = f"[commented]({comment_url}) on" if include_title else f"[commented]({comment_url})"
|
||||
# Snippet URL is only available in GitLab 16.1+
|
||||
if "url" in payload["snippet"]:
|
||||
url = payload["snippet"]["url"].tame(check_string)
|
||||
else:
|
||||
url = "{}/-/snippets/{}".format(
|
||||
payload["project"]["web_url"].tame(check_string),
|
||||
payload["snippet"]["id"].tame(check_int),
|
||||
)
|
||||
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=action,
|
||||
url=url,
|
||||
number=payload["snippet"]["id"].tame(check_int),
|
||||
message=comment["note"].tame(check_string),
|
||||
type="snippet",
|
||||
title=payload["snippet"]["title"].tame(check_string),
|
||||
include_topic_reference=include_title,
|
||||
)
|
||||
|
||||
|
||||
def get_wiki_page_event_body(
|
||||
action: str, payload: WildValue, include_title: bool, realm: Realm
|
||||
) -> str:
|
||||
return '{} {} [wiki page "{}"]({}).'.format(
|
||||
get_user_name(payload, realm),
|
||||
action,
|
||||
payload["object_attributes"]["title"].tame(check_string),
|
||||
payload["object_attributes"]["url"].tame(check_string),
|
||||
)
|
||||
|
||||
|
||||
def get_build_hook_event_body(
|
||||
payload: WildValue, include_title: bool, realm: Realm | None = None
|
||||
) -> str:
|
||||
build_status = payload["build_status"].tame(check_string)
|
||||
if build_status == "created":
|
||||
action = "was created"
|
||||
elif build_status == "running":
|
||||
action = "started"
|
||||
else:
|
||||
action = f"changed status to {build_status}"
|
||||
return "Build {} from {} stage {}.".format(
|
||||
payload["build_name"].tame(check_string),
|
||||
payload["build_stage"].tame(check_string),
|
||||
action,
|
||||
)
|
||||
|
||||
|
||||
def get_test_event_body(payload: WildValue, include_title: bool, realm: Realm | None = None) -> str:
|
||||
return f"Webhook for **{get_repo_name(payload)}** has been configured successfully! :tada:"
|
||||
|
||||
|
||||
def get_pipeline_event_body(
|
||||
payload: WildValue, include_title: bool, realm: Realm | None = None
|
||||
) -> str:
|
||||
pipeline_status = payload["object_attributes"]["status"].tame(check_string)
|
||||
if pipeline_status == "pending":
|
||||
action = "was created"
|
||||
elif pipeline_status == "running":
|
||||
action = "started"
|
||||
else:
|
||||
action = f"changed status to {pipeline_status}"
|
||||
|
||||
project_homepage = get_project_homepage(payload)
|
||||
pipeline_url = "{}/-/pipelines/{}".format(
|
||||
project_homepage,
|
||||
payload["object_attributes"]["id"].tame(check_int),
|
||||
)
|
||||
|
||||
builds_status = ""
|
||||
for build in payload["builds"]:
|
||||
build_url = "{}/-/jobs/{}".format(
|
||||
project_homepage,
|
||||
build["id"].tame(check_int),
|
||||
)
|
||||
artifact_filename = build.get("artifacts_file", {}).get("filename", None)
|
||||
if artifact_filename:
|
||||
artifact_download_url = f"{build_url}/artifacts/download"
|
||||
artifact_browse_url = f"{build_url}/artifacts/browse"
|
||||
artifact_string = f" * built artifact: *{artifact_filename.tame(check_string)}* [[Browse]({artifact_browse_url})|[Download]({artifact_download_url})]\n"
|
||||
else:
|
||||
artifact_string = ""
|
||||
builds_status += "* [{}]({}) - {}\n{}".format(
|
||||
build["name"].tame(check_string),
|
||||
build_url,
|
||||
build["status"].tame(check_string),
|
||||
artifact_string,
|
||||
)
|
||||
return "[Pipeline ({})]({}) {} with build(s):\n{}.".format(
|
||||
payload["object_attributes"]["id"].tame(check_int),
|
||||
pipeline_url,
|
||||
action,
|
||||
builds_status[:-1],
|
||||
)
|
||||
|
||||
|
||||
def get_release_event_body(
|
||||
payload: WildValue, include_title: bool, realm: Realm | None = None
|
||||
) -> str:
|
||||
action = payload["action"].tame(check_string)
|
||||
name = payload["name"].tame(check_string)
|
||||
tag = payload["tag"].tame(check_string)
|
||||
message_action = f"{action}d"
|
||||
|
||||
if action == "delete":
|
||||
body = RELEASE_MESSAGE_TEMPLATE_WITHOUT_USER_NAME_WITHOUT_URL.format(
|
||||
release_name=name, tagname=tag, action=message_action
|
||||
)
|
||||
else:
|
||||
url = payload["url"].tame(check_string)
|
||||
body = RELEASE_MESSAGE_TEMPLATE_WITHOUT_USER_NAME.format(
|
||||
release_name=name, url=url, tagname=tag, action=message_action
|
||||
)
|
||||
|
||||
if "description" in payload:
|
||||
description = payload["description"].tame(check_string)
|
||||
body += CONTENT_MESSAGE_TEMPLATE.format(
|
||||
message=description, fence=get_unused_fence(description)
|
||||
)
|
||||
|
||||
return body
|
||||
|
||||
|
||||
def get_feature_flag_event_body(
|
||||
payload: WildValue,
|
||||
include_title: bool,
|
||||
realm: Realm,
|
||||
) -> str:
|
||||
repo_url = payload["project"]["web_url"].tame(check_string)
|
||||
feature_flag = payload["object_attributes"]
|
||||
action = "activated" if feature_flag["active"] else "deactivated"
|
||||
|
||||
return FEATURE_FLAG_MESSAGE_TEMPLATE.format(
|
||||
user=get_user_name(payload, realm),
|
||||
action=action,
|
||||
name=feature_flag["name"].tame(check_string),
|
||||
url=f"{repo_url}/-/feature_flags",
|
||||
)
|
||||
|
||||
|
||||
def get_access_token_page_url(payload: WildValue) -> str:
|
||||
"""
|
||||
Generate the URL for the access tokens based on whether it's
|
||||
for a group or a project.
|
||||
"""
|
||||
if "group" in payload:
|
||||
group_path = payload["group"]["group_path"].tame(check_string)
|
||||
return f"https://gitlab.com/groups/{group_path}/-/settings/access_tokens"
|
||||
|
||||
project_url = payload["project"]["web_url"].tame(check_string)
|
||||
return f"{project_url}/-/settings/access_tokens"
|
||||
|
||||
|
||||
def get_resource_access_token_expiry_event_body(
|
||||
payload: WildValue, include_title: bool, realm: Realm | None = None
|
||||
) -> str:
|
||||
access_token = payload["object_attributes"]
|
||||
expiry_date = access_token["expires_at"].tame(check_string)
|
||||
formatted_date = datetime.fromisoformat(expiry_date).strftime("%b %d, %Y")
|
||||
|
||||
return ACCESS_TOKEN_EXPIRY_MESSAGE_TEMPLATE.format(
|
||||
name=access_token["name"].tame(check_string),
|
||||
url=get_access_token_page_url(payload),
|
||||
date=formatted_date,
|
||||
)
|
||||
|
||||
|
||||
def get_deployment_event_body(payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
user_text = f"[{get_user_name(payload, realm)}]({payload['user_url'].tame(check_string)})"
|
||||
|
||||
deployment_status = payload["status"].tame(check_string)
|
||||
deployable_url = payload.get("deployable_url", "").tame(check_string)
|
||||
deployment_text = f"[deployment]({deployable_url})" if deployable_url else "deployment"
|
||||
|
||||
commit_title = payload["commit_title"].tame(check_string)
|
||||
commit_url = payload["commit_url"].tame(check_string)
|
||||
commit_sha = commit_url.split("/")[-1][:7]
|
||||
|
||||
deployment_event_body_map = {
|
||||
"running": f"{user_text} started a new {deployment_text}:\n> [{commit_sha}]({commit_url}) {commit_title}",
|
||||
"success": f"The {deployment_text} was successful.",
|
||||
"failed": f"The {deployment_text} failed.",
|
||||
"canceled": f"The {deployment_text} was canceled.",
|
||||
}
|
||||
|
||||
return deployment_event_body_map[deployment_status]
|
||||
|
||||
|
||||
def get_emoji_event_transformed_type(payload: WildValue, type: str) -> str:
|
||||
if type == "MergeRequest":
|
||||
return "MR"
|
||||
elif type == "Note":
|
||||
event_type = payload["note"]["noteable_type"].tame(check_string)
|
||||
return get_emoji_event_transformed_type(payload, event_type)
|
||||
elif type == "DesignManagement::Design":
|
||||
return "design"
|
||||
return type.lower()
|
||||
|
||||
|
||||
def get_emoji_event_subtype_message(type: str) -> str:
|
||||
return "a comment" if type == "Note" else ""
|
||||
|
||||
|
||||
def get_emoji_event_url_id(payload: WildValue, type: str) -> tuple[str, str]:
|
||||
if type == "design":
|
||||
comment_url, _, design_name = parse_design_comment(
|
||||
payload["note"], payload["project"]["web_url"].tame(check_string)
|
||||
)
|
||||
return comment_url, design_name
|
||||
|
||||
url = payload["object_attributes"]["awarded_on_url"].tame(check_string)
|
||||
|
||||
# Extract the last numeric ID in the URL path before any '#' fragment.
|
||||
# Example:
|
||||
# https://gitlab.com/abc/def/issues/123 → "123"
|
||||
# https://gitlab.com/abc/def/-/merge_requests/456#note_789 → "456"
|
||||
clean_url = url.split("#")[0]
|
||||
match = re.search(r"/(\d+)(?:/)?$", clean_url)
|
||||
assert match is not None
|
||||
return url, match.group(1)
|
||||
|
||||
|
||||
def get_emoji_event_topic_title(
|
||||
payload: WildValue, awardable_type: str, type: str, use_merge_request_title: bool
|
||||
) -> str:
|
||||
"""
|
||||
The payload format depends on the event target type (MR / issue / snippet).
|
||||
Get topic from the corresponding payload section's title.
|
||||
"""
|
||||
event_type = ""
|
||||
if type == "MR":
|
||||
event_type = "merge_request" if use_merge_request_title else ""
|
||||
elif type == "issue":
|
||||
event_type = "issue" if awardable_type == "Note" else "work_item"
|
||||
elif type == "snippet":
|
||||
event_type = "project_snippet"
|
||||
|
||||
if event_type:
|
||||
return payload[event_type]["title"].tame(check_string)
|
||||
|
||||
return ""
|
||||
|
||||
|
||||
def get_emoji_event_number_sign(type: str) -> str:
|
||||
return "" if type == "design" else "#"
|
||||
|
||||
|
||||
def get_emoji_event_body(action: str, payload: WildValue, include_title: bool, realm: Realm) -> str:
|
||||
transformed_action = {"award": "added", "revoke": "removed"}.get(action, "reacted")
|
||||
preposition = {"award": "to", "revoke": "from"}.get(action, "to")
|
||||
emoji = payload["object_attributes"]
|
||||
awardable_type = emoji["awardable_type"].tame(check_string)
|
||||
transformed_type = get_emoji_event_transformed_type(payload, awardable_type)
|
||||
url, id = get_emoji_event_url_id(payload, transformed_type)
|
||||
subtype = get_emoji_event_subtype_message(awardable_type)
|
||||
number_sign = get_emoji_event_number_sign(transformed_type)
|
||||
suffix = ""
|
||||
|
||||
if include_title or awardable_type == "Note":
|
||||
target = "" if awardable_type == "Note" else f"{transformed_type} {number_sign}{id}"
|
||||
suffix = f" {preposition} [{subtype}{target}]({url})"
|
||||
|
||||
return EMOJI_MESSAGE_TEMPLATE.format(
|
||||
user_name=get_user_name(payload, realm),
|
||||
action=transformed_action,
|
||||
emoji_text=emoji["name"].tame(check_string),
|
||||
suffix=suffix,
|
||||
)
|
||||
|
||||
|
||||
def get_repo_name(payload: WildValue) -> str:
|
||||
if "project" in payload:
|
||||
return payload["project"]["name"].tame(check_string)
|
||||
|
||||
if "repository" in payload:
|
||||
# Job Hook payloads don't have a `project` section,
|
||||
# but the repository name is accessible from the `repository`
|
||||
# section.
|
||||
return payload["repository"]["name"].tame(check_string)
|
||||
|
||||
# Group-level events (e.g. group access token expiry) have neither
|
||||
# `project` nor `repository`, but have a `group` section.
|
||||
return payload["group"]["group_name"].tame(check_string)
|
||||
|
||||
|
||||
def get_user_mention(realm: Realm, username: str, fallback_name: str) -> str:
|
||||
external_account_field_name = str(DEFAULT_EXTERNAL_ACCOUNTS["gitlab"].name)
|
||||
zulip_user = guess_zulip_user_from_external_account(
|
||||
realm, username, external_account_field_name, external_username_case_insensitive=True
|
||||
)
|
||||
|
||||
if zulip_user is not None:
|
||||
return silent_mention_syntax_for_user(zulip_user)
|
||||
return fallback_name
|
||||
|
||||
|
||||
def get_user_name(payload: WildValue, realm: Realm) -> str:
|
||||
# Push and tag events don't have a `user` section.
|
||||
user_data = payload["user"] if "user" in payload else payload
|
||||
username = user_data["username" if "user" in payload else "user_username"].tame(check_string)
|
||||
full_name = user_data["name" if "user" in payload else "user_name"].tame(check_string)
|
||||
return get_user_mention(realm, username, full_name)
|
||||
|
||||
|
||||
def get_project_homepage(payload: WildValue) -> str:
|
||||
if "project" in payload:
|
||||
return payload["project"]["web_url"].tame(check_string)
|
||||
if "repository" in payload:
|
||||
return payload["repository"]["homepage"].tame(check_string)
|
||||
# Group-level events have a group path instead of a project URL.
|
||||
group_path = payload["group"]["full_path"].tame(check_string)
|
||||
return f"https://gitlab.com/groups/{group_path}"
|
||||
|
||||
|
||||
def get_branch_name(payload: WildValue) -> str:
|
||||
return payload["ref"].tame(check_string).replace("refs/heads/", "")
|
||||
|
||||
|
||||
def get_tag_name(payload: WildValue) -> str:
|
||||
return payload["ref"].tame(check_string).replace("refs/tags/", "")
|
||||
|
||||
|
||||
def get_object_url(payload: WildValue) -> str:
|
||||
return payload["object_attributes"]["url"].tame(check_string)
|
||||
|
||||
|
||||
def skip_previews(event: str) -> bool:
|
||||
# Add event names to this array for which previews should be skipped.
|
||||
return event in [
|
||||
# Design events link to images, but the images cannot be
|
||||
# accessed without authentication, so trying to preview them
|
||||
# doesn't work.
|
||||
"Note Hook DesignManagement::Design",
|
||||
"Confidential Note Hook DesignManagement::Design",
|
||||
"Emoji Hook award",
|
||||
"Emoji Hook revoke",
|
||||
]
|
||||
|
||||
|
||||
class EventFunction(Protocol):
|
||||
def __call__(self, payload: WildValue, include_title: bool, realm: Realm) -> str: ...
|
||||
|
||||
|
||||
EVENT_FUNCTION_MAPPER: dict[str, EventFunction] = {
|
||||
"Push Hook": get_push_event_body,
|
||||
"Tag Push Hook": get_tag_push_event_body,
|
||||
"Test Hook": get_test_event_body,
|
||||
"Issue Hook open": get_issue_created_event_body,
|
||||
"Issue Hook close": partial(get_issue_event_body, "closed"),
|
||||
"Issue Hook reopen": partial(get_issue_event_body, "reopened"),
|
||||
"Issue Hook update": partial(get_issue_event_body, "updated"),
|
||||
"Confidential Issue Hook open": get_issue_created_event_body,
|
||||
"Confidential Issue Hook close": partial(get_issue_event_body, "closed"),
|
||||
"Confidential Issue Hook reopen": partial(get_issue_event_body, "reopened"),
|
||||
"Confidential Issue Hook update": partial(get_issue_event_body, "updated"),
|
||||
"Note Hook Commit": get_commented_commit_event_body,
|
||||
"Note Hook MergeRequest": get_commented_merge_request_event_body,
|
||||
"Note Hook Issue": get_commented_issue_event_body,
|
||||
"Confidential Note Hook Issue": get_commented_issue_event_body,
|
||||
"Note Hook DesignManagement::Design": get_commented_design_event_body,
|
||||
"Confidential Note Hook DesignManagement::Design": get_commented_design_event_body,
|
||||
"Note Hook Snippet": get_commented_snippet_event_body,
|
||||
"Merge Request Hook approved": partial(get_merge_request_event_body, "approved"),
|
||||
"Merge Request Hook unapproved": partial(get_merge_request_event_body, "unapproved"),
|
||||
# approval and unapproval events are triggered only if there's more than one required approver
|
||||
# ref: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8742
|
||||
"Merge Request Hook approval": partial(get_merge_request_event_body, "approval"),
|
||||
"Merge Request Hook unapproval": partial(get_merge_request_event_body, "unapproval"),
|
||||
"Merge Request Hook open": partial(get_merge_request_open_or_updated_body, "created"),
|
||||
"Merge Request Hook update": get_merge_request_updated_event_body,
|
||||
"Merge Request Hook merge": partial(get_merge_request_event_body, "merged"),
|
||||
"Merge Request Hook close": partial(get_merge_request_event_body, "closed"),
|
||||
"Merge Request Hook reopen": partial(get_merge_request_event_body, "reopened"),
|
||||
"Wiki Page Hook create": partial(get_wiki_page_event_body, "created"),
|
||||
"Wiki Page Hook update": partial(get_wiki_page_event_body, "updated"),
|
||||
"Job Hook": get_build_hook_event_body,
|
||||
"Build Hook": get_build_hook_event_body,
|
||||
"Pipeline Hook": get_pipeline_event_body,
|
||||
"Release Hook": get_release_event_body,
|
||||
"Feature Flag Hook": get_feature_flag_event_body,
|
||||
"Resource Access Token Hook": get_resource_access_token_expiry_event_body,
|
||||
"Deployment Hook": get_deployment_event_body,
|
||||
"Emoji Hook award": partial(get_emoji_event_body, "award"),
|
||||
"Emoji Hook revoke": partial(get_emoji_event_body, "revoke"),
|
||||
}
|
||||
|
||||
ALL_EVENT_TYPES = list(EVENT_FUNCTION_MAPPER.keys())
|
||||
|
||||
|
||||
@webhook_view("GitLab", all_event_types=ALL_EVENT_TYPES)
|
||||
@typed_endpoint
|
||||
def api_gitlab_webhook(
|
||||
request: HttpRequest,
|
||||
user_profile: UserProfile,
|
||||
*,
|
||||
payload: JsonBodyPayload[WildValue],
|
||||
branches: str | None = None,
|
||||
use_merge_request_title: Json[bool] = True,
|
||||
user_specified_topic: OptionalUserSpecifiedTopicStr = None,
|
||||
ignore_private_projects: Json[bool] = False,
|
||||
) -> HttpResponse:
|
||||
event = get_event(request, payload, branches)
|
||||
|
||||
# Ignore events from private projects if the URL option is set
|
||||
if (
|
||||
"project" in payload
|
||||
and payload["project"]["visibility_level"].tame(check_int) == 0
|
||||
and ignore_private_projects
|
||||
):
|
||||
return json_success(request)
|
||||
|
||||
if event is not None:
|
||||
event_body_function = get_body_based_on_event(event)
|
||||
body = event_body_function(
|
||||
payload,
|
||||
include_title=user_specified_topic is not None,
|
||||
realm=user_profile.realm,
|
||||
)
|
||||
|
||||
# Add a link to the project if a custom topic is set
|
||||
if user_specified_topic is not None:
|
||||
project_url = f"[{get_repo_name(payload)}]({get_project_homepage(payload)})"
|
||||
body = f"[{project_url}] {body}"
|
||||
|
||||
topic_name = get_topic_based_on_event(event, payload, use_merge_request_title)
|
||||
check_send_webhook_message(
|
||||
request, user_profile, topic_name, body, event, no_previews=skip_previews(event)
|
||||
)
|
||||
return json_success(request)
|
||||
|
||||
|
||||
def get_body_based_on_event(event: str) -> EventFunction:
|
||||
return EVENT_FUNCTION_MAPPER[event]
|
||||
|
||||
|
||||
def get_topic_based_on_event(event: str, payload: WildValue, use_merge_request_title: bool) -> str:
|
||||
if event == "Push Hook":
|
||||
return f"{get_repo_name(payload)} / {get_branch_name(payload)}"
|
||||
elif event in ("Job Hook", "Build Hook"):
|
||||
return "{} / {}".format(
|
||||
payload["repository"]["name"].tame(check_string), get_branch_name(payload)
|
||||
)
|
||||
elif event == "Pipeline Hook":
|
||||
return "{} / {}".format(
|
||||
get_repo_name(payload),
|
||||
payload["object_attributes"]["ref"].tame(check_string).replace("refs/heads/", ""),
|
||||
)
|
||||
elif event.startswith("Merge Request Hook"):
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload),
|
||||
type="MR",
|
||||
id=payload["object_attributes"]["iid"].tame(check_int),
|
||||
title=(
|
||||
payload["object_attributes"]["title"].tame(check_string)
|
||||
if use_merge_request_title
|
||||
else ""
|
||||
),
|
||||
)
|
||||
elif event.startswith(("Issue Hook", "Confidential Issue Hook")):
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload),
|
||||
type="issue",
|
||||
id=payload["object_attributes"]["iid"].tame(check_int),
|
||||
title=payload["object_attributes"]["title"].tame(check_string),
|
||||
)
|
||||
elif event in ("Note Hook Issue", "Confidential Note Hook Issue"):
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload),
|
||||
type="issue",
|
||||
id=payload["issue"]["iid"].tame(check_int),
|
||||
title=payload["issue"]["title"].tame(check_string),
|
||||
)
|
||||
elif event in (
|
||||
"Note Hook DesignManagement::Design",
|
||||
"Confidential Note Hook DesignManagement::Design",
|
||||
):
|
||||
design_path = payload["object_attributes"]["position"]["new_path"].tame(check_string)
|
||||
design_name = design_path.split("/")[-1]
|
||||
|
||||
return TOPIC_WITH_DESIGN_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload),
|
||||
type="design",
|
||||
design_name=design_name,
|
||||
)
|
||||
elif event == "Note Hook MergeRequest":
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload),
|
||||
type="MR",
|
||||
id=payload["merge_request"]["iid"].tame(check_int),
|
||||
title=(
|
||||
payload["merge_request"]["title"].tame(check_string)
|
||||
if use_merge_request_title
|
||||
else ""
|
||||
),
|
||||
)
|
||||
|
||||
elif event == "Note Hook Snippet":
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload),
|
||||
type="snippet",
|
||||
id=payload["snippet"]["id"].tame(check_int),
|
||||
title=payload["snippet"]["title"].tame(check_string),
|
||||
)
|
||||
|
||||
elif event == "Resource Access Token Hook" and payload.get("group"):
|
||||
return payload["group"]["group_name"].tame(check_string)
|
||||
elif event == "Deployment Hook":
|
||||
return "{} / {}".format(
|
||||
get_repo_name(payload),
|
||||
payload["environment"].tame(check_string),
|
||||
)
|
||||
|
||||
elif event.startswith("Emoji Hook"):
|
||||
awardable_type = payload["object_attributes"]["awardable_type"].tame(check_string)
|
||||
transformed_type = get_emoji_event_transformed_type(payload, awardable_type)
|
||||
id = get_emoji_event_url_id(payload, transformed_type)[1]
|
||||
if transformed_type == "design":
|
||||
return TOPIC_WITH_DESIGN_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload), type="design", design_name=id
|
||||
)
|
||||
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repo_name(payload),
|
||||
type=transformed_type,
|
||||
id=id,
|
||||
title=get_emoji_event_topic_title(
|
||||
payload, awardable_type, transformed_type, use_merge_request_title
|
||||
),
|
||||
)
|
||||
return get_repo_name(payload)
|
||||
|
||||
|
||||
def get_event(request: HttpRequest, payload: WildValue, branches: str | None) -> str | None:
|
||||
event = get_event_header(request, "X-GitLab-Event", "GitLab")
|
||||
if event == "System Hook":
|
||||
# Convert the event name to a GitLab event title
|
||||
if "event_name" in payload:
|
||||
event_name = payload["event_name"].tame(check_string)
|
||||
else:
|
||||
event_name = payload["object_kind"].tame(check_string)
|
||||
event = event_name.split("__")[0].replace("_", " ").title()
|
||||
event = f"{event} Hook"
|
||||
if event in ["Confidential Issue Hook", "Issue Hook", "Merge Request Hook", "Wiki Page Hook"]:
|
||||
action = payload["object_attributes"].get("action", "open").tame(check_string)
|
||||
event = f"{event} {action}"
|
||||
elif event in ["Confidential Note Hook", "Note Hook"]:
|
||||
action = payload["object_attributes"]["noteable_type"].tame(check_string)
|
||||
event = f"{event} {action}"
|
||||
elif event == "Push Hook" and branches is not None:
|
||||
branch = get_branch_name(payload)
|
||||
if not is_branch_name_notifiable(branch, branches):
|
||||
return None
|
||||
elif event == "Emoji Hook":
|
||||
action = payload["event_type"].tame(check_string)
|
||||
event = f"{event} {action}"
|
||||
|
||||
if event in EVENT_FUNCTION_MAPPER:
|
||||
return event
|
||||
|
||||
raise UnsupportedWebhookEventTypeError(event)
|
||||
Reference in New Issue
Block a user