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

This commit is contained in:
upstream-mirror
2026-09-15 15:05:30 +05:00
commit 64898b2c79
8999 changed files with 1757358 additions and 0 deletions

View File

View 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!}
![](/static/images/integrations/gitlab/001.png)
{!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)

View 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
}
}

View 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
}
}

View 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
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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&amp;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"
}

View 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&amp;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"
}

View File

@@ -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&amp;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"
}

View File

@@ -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&amp;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"
}

View File

@@ -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
}
}

View File

@@ -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": []
}
}

View File

@@ -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"
}
}

View File

@@ -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": []
}
}

View File

@@ -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": []
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View 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"
}
}

View File

@@ -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"
}
}

View File

@@ -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]"
}
]
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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]"
}
]
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View 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"
}
}
}

View 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"
}
}

View 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"
}
}

View File

@@ -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"
}
}

View 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"
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}
]
}

View File

@@ -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
}
}
]
}

View File

@@ -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
}
}
]
}

View File

@@ -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
}
}
]
}

View 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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View 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":"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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View 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"
}
}
}

View 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"
}
}
}

View 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"
}
}
}

View 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"]
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View 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
}
}
}

View 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
}
}

View File

@@ -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
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View 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)

View 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)