1
0
mirror of https://github.com/woodpecker-ci/woodpecker.git synced 2025-11-23 21:44:44 +02:00

New event pull request metadata (#5214)

Co-authored-by: qwerty287 <qwerty287@posteo.de>
This commit is contained in:
6543
2025-09-25 00:07:45 +02:00
committed by GitHub
parent e9c545e25b
commit 388557d94a
99 changed files with 11505 additions and 415 deletions

View File

@@ -47,6 +47,7 @@
"datacenter",
"DATASOURCE",
"Debugf",
"Demilestoned",
"desaturate",
"devx",
"dind",
@@ -116,6 +117,7 @@
"mapstructure",
"markdownlint",
"mdbook",
"Milestoned",
"memswap",
"Metas",
"mhmxs",

View File

@@ -4913,6 +4913,12 @@ const docTemplate = `{
"event": {
"$ref": "#/definitions/WebhookEvent"
},
"event_reason": {
"type": "array",
"items": {
"type": "string"
}
},
"finished": {
"type": "integer"
},
@@ -5551,6 +5557,7 @@ const docTemplate = `{
"push",
"pull_request",
"pull_request_closed",
"pull_request_metadata",
"tag",
"release",
"deployment",
@@ -5561,6 +5568,7 @@ const docTemplate = `{
"EventPush",
"EventPull",
"EventPullClosed",
"EventPullMetadata",
"EventTag",
"EventRelease",
"EventDeploy",
@@ -5684,6 +5692,12 @@ const docTemplate = `{
"event": {
"type": "string"
},
"event_reason": {
"type": "array",
"items": {
"type": "string"
}
},
"finished": {
"type": "integer"
},

View File

@@ -284,6 +284,7 @@ The available events are:
- `push`: triggered when a commit is pushed to a branch.
- `pull_request`: triggered when a pull request is opened or a new commit is pushed to it.
- `pull_request_closed`: triggered when a pull request is closed or merged.
- `pull_request_metadata`: triggered when a pull request metadata has changed (e.g. title, body, label, milestone, ...).
- `tag`: triggered when a tag is pushed.
- `release`: triggered when a release, pre-release or draft is created. (You can apply further filters using [evaluate](#evaluate) with [environment variables](./50-environment.md#built-in-environment-variables).)
- `deployment`: triggered when a deployment is created in the repository. (This event can be triggered from Woodpecker directly. GitHub also supports webhook triggers.)

View File

@@ -49,7 +49,7 @@ Please note that the environment section is not able to expand environment varia
This is the reference list of all environment variables available to your pipeline containers. These are injected into your pipeline step and plugins containers, at runtime.
| NAME | Description | Example |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| `CI` | CI environment name | `woodpecker` |
| | **Repository** | |
| `CI_REPO` | repository full name `<owner>/<name>` | `john-doe/my-repo` |
@@ -69,11 +69,11 @@ This is the reference list of all environment variables available to your pipeli
| `CI_COMMIT_REF` | commit ref | `refs/heads/main` |
| `CI_COMMIT_REFSPEC` | commit ref spec | `issue-branch:main` |
| `CI_COMMIT_BRANCH` | commit branch (equals target branch for pull requests) | `main` |
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch (set only for `pull_request` and `pull_request_closed` events) | `issue-branch` |
| `CI_COMMIT_TARGET_BRANCH` | commit target branch (set only for `pull_request` and `pull_request_closed` events) | `main` |
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch (set only for pull request events) | `issue-branch` |
| `CI_COMMIT_TARGET_BRANCH` | commit target branch (set only for pull request events) | `main` |
| `CI_COMMIT_TAG` | commit tag name (empty if event is not `tag`) | `v1.10.3` |
| `CI_COMMIT_PULL_REQUEST` | commit pull request number (set only for `pull_request` and `pull_request_closed` events) | `1` |
| `CI_COMMIT_PULL_REQUEST_LABELS` | labels assigned to pull request (set only for `pull_request` and `pull_request_closed` events) | `server` |
| `CI_COMMIT_PULL_REQUEST` | commit pull request number (set only for pull request events) | `1` |
| `CI_COMMIT_PULL_REQUEST_LABELS` | labels assigned to pull request (set only for pull request events) | `server` |
| `CI_COMMIT_PULL_REQUEST_MILESTONE` | milestone assigned to pull request (set only for `pull_request` and `pull_request_closed` events) | `summer-sprint` |
| `CI_COMMIT_MESSAGE` | commit message | `Initial commit` |
| `CI_COMMIT_AUTHOR` | commit author username | `john-doe` |
@@ -82,7 +82,8 @@ This is the reference list of all environment variables available to your pipeli
| | **Current pipeline** | |
| `CI_PIPELINE_NUMBER` | pipeline number | `8` |
| `CI_PIPELINE_PARENT` | number of parent pipeline | `0` |
| `CI_PIPELINE_EVENT` | pipeline event (see [`event`](../20-usage/20-workflow-syntax.md#event)) | `push`, `pull_request`, `pull_request_closed`, `tag`, `release`, `manual`, `cron` |
| `CI_PIPELINE_EVENT` | pipeline event (see [`event`](../20-usage/20-workflow-syntax.md#event)) | `push`, `pull_request`, `pull_request_closed`, `pull_request_metadata`, `tag`, `release`, `manual`, `cron` |
| `CI_PIPELINE_EVENT_REASON` | exact reason why `pull_request_metadata` event was send. it is forge instance specific and can change | `label_updated`, `milestoned`, `demilestoned`, `assigned`, `edited`, ... |
| `CI_PIPELINE_URL` | link to the web UI for the pipeline | `https://ci.example.com/repos/7/pipeline/8` |
| `CI_PIPELINE_FORGE_URL` | link to the forge's web UI for the commit(s) or tag that triggered the pipeline | `https://git.example.com/john-doe/my-repo/commit/eba09b46064473a1d345da7abf28b477468e8dbd` |
| `CI_PIPELINE_DEPLOY_TARGET` | pipeline deploy target for `deployment` events | `production` |
@@ -104,8 +105,8 @@ This is the reference list of all environment variables available to your pipeli
| `CI_PREV_COMMIT_REF` | previous commit ref | `refs/heads/main` |
| `CI_PREV_COMMIT_REFSPEC` | previous commit ref spec | `issue-branch:main` |
| `CI_PREV_COMMIT_BRANCH` | previous commit branch | `main` |
| `CI_PREV_COMMIT_SOURCE_BRANCH` | previous commit source branch (set only for `pull_request` and `pull_request_closed` events) | `issue-branch` |
| `CI_PREV_COMMIT_TARGET_BRANCH` | previous commit target branch (set only for `pull_request` and `pull_request_closed` events) | `main` |
| `CI_PREV_COMMIT_SOURCE_BRANCH` | previous commit source branch (set only for pull request events) | `issue-branch` |
| `CI_PREV_COMMIT_TARGET_BRANCH` | previous commit target branch (set only for pull request events) | `main` |
| `CI_PREV_COMMIT_URL` | previous commit link in forge | `https://git.example.com/john-doe/my-repo/commit/15784117e4e103f36cba75a9e29da48046eb82c4` |
| `CI_PREV_COMMIT_MESSAGE` | previous commit message | `test` |
| `CI_PREV_COMMIT_AUTHOR` | previous commit author username | `john-doe` |
@@ -113,7 +114,8 @@ This is the reference list of all environment variables available to your pipeli
| | **Previous pipeline** | |
| `CI_PREV_PIPELINE_NUMBER` | previous pipeline number | `7` |
| `CI_PREV_PIPELINE_PARENT` | previous pipeline number of parent pipeline | `0` |
| `CI_PREV_PIPELINE_EVENT` | previous pipeline event (see [`event`](../20-usage/20-workflow-syntax.md#event)) | `push`, `pull_request`, `pull_request_closed`, `tag`, `release`, `manual`, `cron` |
| `CI_PREV_PIPELINE_EVENT` | previous pipeline event (see [`event`](../20-usage/20-workflow-syntax.md#event)) | `push`, `pull_request`, `pull_request_closed`, `pull_request_metadata`, `tag`, `release`, `manual`, `cron` |
| `CI_PREV_PIPELINE_EVENT_REASON` | previous exact reason `pull_request_metadata` event was send. it is forge instance specific and can change | `label_updated`, `milestoned`, `demilestoned`, `assigned`, `edited`, ... |
| `CI_PREV_PIPELINE_URL` | previous pipeline link in CI | `https://ci.example.com/repos/7/pipeline/7` |
| `CI_PREV_PIPELINE_FORGE_URL` | previous pipeline link to event in forge | `https://git.example.com/john-doe/my-repo/commit/15784117e4e103f36cba75a9e29da48046eb82c4` |
| `CI_PREV_PIPELINE_DEPLOY_TARGET` | previous pipeline deploy target for `deployment` events | `production` |
@@ -224,3 +226,34 @@ Example variable substitution strips `v` prefix from `v.1.0.0`:
settings:
+ target: /target/${CI_COMMIT_TAG##v}
```
## `pull_request_metadata` specific event reason values
For the `pull_request_metadata` event, the exact reason a metadata change was detected is passe through in `CI_PIPELINE_EVENT_REASON`.
**GitLab** merges metadata updates into one webhook. Event reasons are separated by `,` as a list.
:::note
Event reason values are forge-specific and may change between versions.
:::
| Event | GitHub | Gitea | Forgejo | GitLab | Bitbucket | Bitbucket Datacenter | Description |
| -------------------- | ------------------ | ------------------ | ------------------ | ------------------ | --------- | -------------------- | ------------------------------------------------------------------------------ |
| `assigned` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | Pull request was assigned to a user |
| `converted_to_draft` | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | Pull request was converted to a draft |
| `demilestoned` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | Pull request was removed from a milestone |
| `description_edited` | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | Description edited |
| `edited` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | The title or body of a pull request was edited, or the base branch was changed |
| `label_added` | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | Pull had no labels and now got label(s) added |
| `label_cleared` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | All labels removed |
| `label_updated` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | New label(s) added / label(s) changed |
| `locked` | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | Conversation on a pull request was locked |
| `milestoned` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | Pull request was added to a milestone |
| `ready_for_review` | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | Draft pull request was marked as ready for review |
| `review_requested` | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | New review was requested |
| `title_edited` | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | Title edited |
| `unassigned` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | User was unassigned from a pull request |
| `unlabeled` | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | Label was removed from a pull request |
| `unlocked` | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | Conversation on a pull request was unlocked |
**Bitbucket** and **Bitbucket Datacenter** [are not supported at the moment](https://github.com/woodpecker-ci/woodpecker/pull/5214).

View File

@@ -3,12 +3,13 @@
## Supported features
| Feature | [GitHub](20-github.md) | [Gitea](30-gitea.md) | [Forgejo](35-forgejo.md) | [Gitlab](40-gitlab.md) | [Bitbucket](50-bitbucket.md) | [Bitbucket Datacenter](60-bitbucket_datacenter.md) |
| ---------------------------------------------------------------- | :--------------------: | :------------------: | :----------------------: | :--------------------: | :--------------------------: | :------------------------------------------------: |
| ---------------------------------------------------------------------------------------------------------------------- | ---------------------- | -------------------- | ------------------------ | ---------------------- | ---------------------------- | -------------------------------------------------- |
| Event: Push | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Event: Tag | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Event: Pull-Request | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Event: Release | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
| Event: Deploy¹ | :white_check_mark: | :x: | :x: | :x: | :x: | :x: |
| [Event: Pull-Request-Metadata](../../../20-usage/50-environment.md#pull_request_metadata-specific-event-reason-values) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
| [Multiple workflows](../../../20-usage/25-workflows.md) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| [when.path filter](../../../20-usage/20-workflow-syntax.md#path) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: |

View File

@@ -19,6 +19,7 @@ const (
EventPush = "push"
EventPull = "pull_request"
EventPullClosed = "pull_request_closed"
EventPullMetadata = "pull_request_metadata"
EventTag = "tag"
EventRelease = "release"
EventDeploy = "deployment"
@@ -26,6 +27,16 @@ const (
EventManual = "manual"
)
func EventIsPull(event string) bool {
switch event {
case EventPull,
EventPullClosed,
EventPullMetadata:
return true
}
return false
}
// Different ways to handle failure states.
const (
FailureIgnore = "ignore"

View File

@@ -68,6 +68,7 @@ func (m *Metadata) Environ() map[string]string {
setNonEmptyEnvVar(params, "CI_PIPELINE_NUMBER", strconv.FormatInt(pipeline.Number, 10))
setNonEmptyEnvVar(params, "CI_PIPELINE_PARENT", strconv.FormatInt(pipeline.Parent, 10))
setNonEmptyEnvVar(params, "CI_PIPELINE_EVENT", pipeline.Event)
setNonEmptyEnvVar(params, "CI_PIPELINE_EVENT_REASON", strings.Join(pipeline.EventReason, ","))
setNonEmptyEnvVar(params, "CI_PIPELINE_URL", m.getPipelineWebURL(pipeline, 0))
setNonEmptyEnvVar(params, "CI_PIPELINE_FORGE_URL", pipeline.ForgeURL)
setNonEmptyEnvVar(params, "CI_PIPELINE_DEPLOY_TARGET", pipeline.DeployTo)
@@ -102,7 +103,7 @@ func (m *Metadata) Environ() map[string]string {
if pipeline.Event == EventRelease {
setNonEmptyEnvVar(params, "CI_COMMIT_PRERELEASE", strconv.FormatBool(pipeline.Commit.IsPrerelease))
}
if pipeline.Event == EventPull || pipeline.Event == EventPullClosed {
if EventIsPull(pipeline.Event) {
sourceBranch, targetBranch := getSourceTargetBranches(commit.Refspec)
setNonEmptyEnvVar(params, "CI_COMMIT_SOURCE_BRANCH", sourceBranch)
setNonEmptyEnvVar(params, "CI_COMMIT_TARGET_BRANCH", targetBranch)
@@ -128,6 +129,7 @@ func (m *Metadata) Environ() map[string]string {
setNonEmptyEnvVar(params, "CI_PREV_PIPELINE_NUMBER", strconv.FormatInt(prevPipeline.Number, 10))
setNonEmptyEnvVar(params, "CI_PREV_PIPELINE_PARENT", strconv.FormatInt(prevPipeline.Parent, 10))
setNonEmptyEnvVar(params, "CI_PREV_PIPELINE_EVENT", prevPipeline.Event)
setNonEmptyEnvVar(params, "CI_PREV_PIPELINE_EVENT_REASON", strings.Join(prevPipeline.EventReason, ","))
setNonEmptyEnvVar(params, "CI_PREV_PIPELINE_URL", m.getPipelineWebURL(prevPipeline, 0))
setNonEmptyEnvVar(params, "CI_PREV_PIPELINE_FORGE_URL", prevPipeline.ForgeURL)
setNonEmptyEnvVar(params, "CI_PREV_COMMIT_URL", prevPipeline.ForgeURL) // why commit url?
@@ -149,7 +151,7 @@ func (m *Metadata) Environ() map[string]string {
setNonEmptyEnvVar(params, "CI_PREV_COMMIT_AUTHOR", prevCommit.Author.Name)
setNonEmptyEnvVar(params, "CI_PREV_COMMIT_AUTHOR_EMAIL", prevCommit.Author.Email)
setNonEmptyEnvVar(params, "CI_PREV_COMMIT_AUTHOR_AVATAR", prevCommit.Author.Avatar)
if prevPipeline.Event == EventPull || prevPipeline.Event == EventPullClosed {
if EventIsPull(prevPipeline.Event) {
prevSourceBranch, prevTargetBranch := getSourceTargetBranches(prevCommit.Refspec)
setNonEmptyEnvVar(params, "CI_PREV_COMMIT_SOURCE_BRANCH", prevSourceBranch)
setNonEmptyEnvVar(params, "CI_PREV_COMMIT_TARGET_BRANCH", prevTargetBranch)

View File

@@ -49,6 +49,7 @@ type (
Finished int64 `json:"finished,omitempty"`
Status string `json:"status,omitempty"`
Event string `json:"event,omitempty"`
EventReason []string `json:"event_reason,omitempty"`
ForgeURL string `json:"forge_url,omitempty"`
DeployTo string `json:"target,omitempty"`
DeployTask string `json:"task,omitempty"`

View File

@@ -70,8 +70,8 @@ func (s *Secret) Match(event string) bool {
return true
}
// treat all pull events the same way
if event == "pull_request_closed" {
event = "pull_request"
if metadata.EventIsPull(event) {
event = metadata.EventPull
}
// one match is enough
return slices.Contains(s.Events, event)

View File

@@ -467,6 +467,12 @@ func TestSecretMatch(t *testing.T) {
event: "pull_request_closed",
match: true,
},
{
name: "pull metadata change should match pull",
secret: Secret{Events: []string{"pull_request"}},
event: "pull_request_metadata",
match: true,
},
}
for _, tc := range tcl {

View File

@@ -169,7 +169,7 @@ func (c *Constraint) Match(m metadata.Metadata, global bool, env map[string]stri
c.Instance.Match(m.Sys.Host)
// changed files filter apply only for pull-request and push events
if m.Curr.Event == metadata.EventPull || m.Curr.Event == metadata.EventPullClosed || m.Curr.Event == metadata.EventPush {
if metadata.EventIsPull(m.Curr.Event) || m.Curr.Event == metadata.EventPush {
match = match && c.Path.Match(m.Curr.Commit.ChangedFiles, m.Curr.Commit.Message)
}

View File

@@ -13,6 +13,9 @@ when:
- event:
exclude: pull_request_closed
evaluate: 'CI_COMMIT_AUTHOR == "woodpecker-ci"'
- event:
exclude: pull_request_metadata
evaluate: 'CI_COMMIT_AUTHOR == "woodpecker-ci"'
steps:
echo:

View File

@@ -33,6 +33,7 @@ steps:
- push
- pull_request
- pull_request_closed
- pull_request_metadata
- tag
- deployment
- release

View File

@@ -503,7 +503,17 @@
}
},
"event_enum": {
"enum": ["push", "pull_request", "pull_request_closed", "tag", "deployment", "cron", "manual", "release"]
"enum": [
"push",
"pull_request",
"pull_request_closed",
"pull_request_metadata",
"tag",
"deployment",
"cron",
"manual",
"release"
]
},
"event_constraint_list": {
"oneOf": [

View File

@@ -327,7 +327,7 @@ func PostHook(c *gin.Context) {
// 5. Check if pull requests are allowed for this repo
//
if (pipelineFromForge.Event == model.EventPull || pipelineFromForge.Event == model.EventPullClosed) && !repo.AllowPull {
if pipelineFromForge.IsPullRequest() && !repo.AllowPull {
log.Debug().Str("repo", repo.FullName).Msg("ignoring hook: pull requests are disabled for this repo in woodpecker")
c.Status(http.StatusNoContent)
return

View File

@@ -0,0 +1,13 @@
package common
func NormalizeEventReason(in string) string {
switch in {
case "labels_cleared":
return "label_cleared"
case "labels_updated":
return "label_updated"
case "labels_added":
return "label_added"
}
return in
}

View File

@@ -0,0 +1,155 @@
{
"action": "unassigned",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [
{
"id": 494011,
"name": "Kind/Documentation",
"color": "37474f",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494011"
},
{
"id": 494002,
"name": "Kind/Enhancement",
"color": "84b6eb",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494002"
}
],
"milestone": {
"id": 22669,
"title": "mile v2"
},
"assignee": null,
"assignees": null,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -0,0 +1,157 @@
{
"action": "assigned",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [],
"milestone": null,
"assignee": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"assignees": [
{
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
],
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -0,0 +1,131 @@
{
"action": "edited",
"number": 1,
"pull_request": {
"id": 62112,
"url": "https://forgejo.com/anbraten/test-repo/pulls/1",
"number": 1,
"user": {
"id": 26907,
"login": "anbraten",
"full_name": "",
"email": "anbraten@forgejo.com",
"avatar_url": "https://seccdn.libravatar.org/avatar/fc9b6fe77c6b732a02925a62a81f05a0?d=identicon",
"visibility": "public"
},
"title": "Adjust file",
"body": "",
"labels": [],
"milestone": null,
"assignee": null,
"assignees": null,
"html_url": "https://forgejo.com/anbraten/test-repo/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "068aee163ffd44eef28a7f9ebd43e2c01774f0fa",
"repo_id": 46534,
"repo": {
"id": 46534,
"owner": {
"id": 26907,
"login": "anbraten",
"full_name": "",
"email": "anbraten@noreply.forgejo.com",
"avatar_url": "https://seccdn.libravatar.org/avatar/fc9b6fe77c6b732a02925a62a81f05a0?d=identicon",
"visibility": "public"
},
"name": "test-repo",
"full_name": "anbraten/test-repo",
"private": false,
"fork": false,
"html_url": "https://forgejo.com/anbraten/test-repo",
"url": "https://forgejo.com/api/v1/repos/anbraten/test-repo",
"ssh_url": "git@forgejo.com:anbraten/test-repo.git",
"clone_url": "https://forgejo.com/anbraten/test-repo.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "anbraten-patch-1",
"ref": "anbraten-patch-1",
"sha": "d555a5dd07f4d0148a58d4686ec381502ae6a2d4",
"repo_id": 46534,
"repo": {
"id": 46534,
"owner": {
"id": 26907,
"login": "anbraten",
"full_name": "",
"email": "anbraten@noreply.forgejo.com",
"avatar_url": "https://seccdn.libravatar.org/avatar/fc9b6fe77c6b732a02925a62a81f05a0?d=identicon",
"visibility": "public"
},
"name": "test-repo",
"full_name": "anbraten/test-repo",
"private": false,
"fork": false,
"html_url": "https://forgejo.com/anbraten/test-repo",
"url": "https://forgejo.com/api/v1/repos/anbraten/test-repo",
"ssh_url": "git@forgejo.com:anbraten/test-repo.git",
"clone_url": "https://forgejo.com/anbraten/test-repo.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "068aee163ffd44eef28a7f9ebd43e2c01774f0fa"
},
"repository": {
"id": 46534,
"owner": {
"id": 26907,
"login": "anbraten",
"full_name": "",
"email": "anbraten@repo.forgejo.com",
"avatar_url": "https://seccdn.libravatar.org/avatar/fc9b6fe77c6b732a02925a62a81f05a0?d=identicon",
"visibility": "public"
},
"name": "test-repo",
"full_name": "anbraten/test-repo",
"private": false,
"fork": false,
"html_url": "https://forgejo.com/anbraten/test-repo",
"url": "https://forgejo.com/api/v1/repos/anbraten/test-repo",
"ssh_url": "git@forgejo.com:anbraten/test-repo.git",
"clone_url": "https://forgejo.com/anbraten/test-repo.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 26907,
"login": "anbraten",
"full_name": "",
"email": "anbraten@sender.forgejo.com",
"avatar_url": "https://seccdn.libravatar.org/avatar/fc9b6fe77c6b732a02925a62a81f05a0?d=identicon",
"visibility": "public"
}
}

View File

@@ -0,0 +1,173 @@
{
"action": "label_updated",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [
{
"id": 494011,
"name": "Kind/Documentation",
"color": "37474f",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494011"
},
{
"id": 494002,
"name": "Kind/Enhancement",
"color": "84b6eb",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494002"
}
],
"milestone": {
"id": 22669,
"title": "mile v2"
},
"assignee": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"assignees": [
{
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
],
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -0,0 +1,155 @@
{
"action": "label_cleared",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [
{
"id": 494002,
"name": "Kind/Enhancement",
"color": "84b6eb",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494002"
},
{
"id": 494008,
"name": "Kind/Testing",
"color": "795548",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494008"
}
],
"milestone": {
"id": 22666,
"title": "mile v1"
},
"assignee": null,
"assignees": null,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -0,0 +1,155 @@
{
"action": "label_updated",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [
{
"id": 494002,
"name": "Kind/Enhancement",
"color": "84b6eb",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494002"
},
{
"id": 494008,
"name": "Kind/Testing",
"color": "795548",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494008"
}
],
"milestone": {
"id": 22666,
"title": "mile v1"
},
"assignee": null,
"assignees": null,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -0,0 +1,160 @@
{
"action": "milestoned",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [],
"milestone": {
"id": 22669,
"title": "mile v2"
},
"assignee": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"assignees": [
{
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
],
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -0,0 +1,155 @@
{
"action": "milestoned",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [
{
"id": 494011,
"name": "Kind/Documentation",
"color": "37474f",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494011"
},
{
"id": 494002,
"name": "Kind/Enhancement",
"color": "84b6eb",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing/labels/494002"
}
],
"milestone": {
"id": 22669,
"title": "mile v2"
},
"assignee": null,
"assignees": null,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -0,0 +1,139 @@
{
"action": "demilestoned",
"number": 1,
"pull_request": {
"id": 701944,
"url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"number": 1,
"user": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@obermui.de",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
},
"title": "Some ned more AAAA",
"body": "",
"labels": [],
"milestone": null,
"assignee": null,
"assignees": null,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://codeberg.org/test_it/test_ci_thing/pulls/1",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"base": {
"label": "main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"head": {
"label": "6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"repo_id": 138564,
"repo": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
}
},
"merge_base": "67012991d6c69b1c58378346fca366b864d8d1a1"
},
"repository": {
"id": 138564,
"owner": {
"id": 90470,
"login": "test_it",
"full_name": "",
"email": "",
"avatar_url": "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
"html_url": "https://codeberg.org/test_it",
"visibility": "public"
},
"name": "test_ci_thing",
"full_name": "test_it/test_ci_thing",
"private": false,
"fork": false,
"html_url": "https://codeberg.org/test_it/test_ci_thing",
"url": "https://codeberg.org/api/v1/repos/test_it/test_ci_thing",
"ssh_url": "ssh://git@codeberg.org/test_it/test_ci_thing.git",
"clone_url": "https://codeberg.org/test_it/test_ci_thing.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": ""
},
"sender": {
"id": 2628,
"login": "6543",
"full_name": "",
"email": "6543@noreply.codeberg.org",
"avatar_url": "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
"html_url": "https://codeberg.org/6543",
"visibility": "public"
}
}

View File

@@ -50,8 +50,35 @@ var HookPullRequestMerged string
//go:embed HookPullRequestClosed.json
var HookPullRequestClosed string
//go:embed HookPullRequestEdited.json
var HookPullRequestEdited string
//go:embed HookRelease.json
var HookRelease string
//go:embed HookPullRequestAssigneesAdded.json
var HookPullRequestAssigneesAdded string
//go:embed HookPullRequestMilestoneAdded.json
var HookPullRequestMilestoneAdded string
//go:embed HookPullRequestLabelAdded.json
var HookPullRequestLabelAdded string
//go:embed HookPullRequestAssigneeCleared.json
var HookPullRequestAssigneeCleared string
//go:embed HookPullRequestMilestoneChanged.json
var HookPullRequestMilestoneChanged string
//go:embed HookPullRequestLabelsUpdated.json
var HookPullRequestLabelsUpdated string
//go:embed HookPullRequestLabelsCleared.json
var HookPullRequestLabelsCleared string
//go:embed HookPullRequestMilestoneCleared.json
var HookPullRequestMilestoneCleared string
//go:embed HookPullRequestReopened.json
var HookPullRequestReopened string

View File

@@ -501,7 +501,7 @@ func (c *Forgejo) Hook(ctx context.Context, r *http.Request) (*model.Repo, *mode
pipeline.Commit = sha
}
if pipeline != nil && (pipeline.Event == model.EventPull || pipeline.Event == model.EventPullClosed) && len(pipeline.ChangedFiles) == 0 {
if pipeline != nil && pipeline.IsPullRequest() && len(pipeline.ChangedFiles) == 0 {
index, err := strconv.ParseInt(strings.Split(pipeline.Ref, "/")[2], 10, 64)
if err != nil {
return nil, nil, err

View File

@@ -149,8 +149,17 @@ func pipelineFromPullRequest(hook *pullRequestHook) *model.Pipeline {
)
event := model.EventPull
if hook.Action == actionClose {
switch hook.Action {
case actionClose:
event = model.EventPullClosed
case actionEdited,
actionLabelUpdate,
actionLabelCleared,
actionMilestoned,
actionDeMilestoned,
actionAssigned,
actionUnAssigned:
event = model.EventPullMetadata
}
pipeline := &model.Pipeline{
@@ -174,6 +183,10 @@ func pipelineFromPullRequest(hook *pullRequestHook) *model.Pipeline {
FromFork: hook.PullRequest.Head.RepoID != hook.PullRequest.Base.RepoID,
}
if pipeline.Event == model.EventPullMetadata {
pipeline.EventReason = []string{hook.Action}
}
return pipeline
}

View File

@@ -17,10 +17,12 @@ package forgejo
import (
"io"
"net/http"
"slices"
"strings"
"github.com/rs/zerolog/log"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/common"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/types"
"go.woodpecker-ci.org/woodpecker/v3/server/model"
)
@@ -35,12 +37,37 @@ const (
actionOpen = "opened"
actionSync = "synchronized"
actionClose = "closed"
actionEdited = "edited"
actionLabelUpdate = "label_updated"
actionLabelCleared = "label_cleared"
actionMilestoned = "milestoned"
actionDeMilestoned = "demilestoned"
actionAssigned = "assigned"
actionUnAssigned = "unassigned"
actionReopen = "reopened"
refBranch = "branch"
refTag = "tag"
)
var actionList = []string{
actionOpen,
actionSync,
actionClose,
actionEdited,
actionLabelUpdate,
actionMilestoned,
actionDeMilestoned,
actionLabelCleared,
actionAssigned,
actionUnAssigned,
actionReopen,
}
func supportedAction(action string) bool {
return slices.Contains(actionList, action)
}
// parseHook parses a Forgejo hook from an http.Request and returns
// Repo and Pipeline detail. If a hook type is unsupported nil values are returned.
func parseHook(r *http.Request) (*model.Repo, *model.Pipeline, error) {
@@ -111,17 +138,27 @@ func parsePullRequestHook(payload io.Reader) (*model.Repo, *model.Pipeline, erro
return nil, nil, err
}
// Don't trigger pipelines for non-code changes ...
if pr.Action != actionOpen &&
pr.Action != actionSync &&
pr.Action != actionClose &&
pr.Action != actionReopen {
log.Debug().Msgf("pull_request action is '%s' and no open or sync", pr.Action)
// Only trigger pipelines for supported event types
if !supportedAction(pr.Action) {
log.Debug().Msgf("pull_request action is '%s'. Only '%s' are supported", pr.Action, strings.Join(actionList, "', '"))
return nil, nil, nil
}
repo = toRepo(pr.Repo)
pipeline = pipelineFromPullRequest(pr)
// all other actions return the state of labels after the actions where done ... so we should too
if pr.Action == actionLabelCleared {
pipeline.PullRequestLabels = []string{}
}
if pr.Action == actionDeMilestoned {
pipeline.PullRequestMilestone = ""
}
for i := range pipeline.EventReason {
pipeline.EventReason[i] = common.NormalizeEventReason(pipeline.EventReason[i])
}
return repo, pipeline, err
}

View File

@@ -293,6 +293,44 @@ func TestForgejoParser(t *testing.T) {
},
},
},
{
name: "pull-request events should handle a PR edited hook when PR got edited",
data: fixtures.HookPullRequestEdited,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "46534",
Owner: "anbraten",
Name: "test-repo",
FullName: "anbraten/test-repo",
Avatar: "https://seccdn.libravatar.org/avatar/fc9b6fe77c6b732a02925a62a81f05a0?d=identicon",
ForgeURL: "https://forgejo.com/anbraten/test-repo",
Clone: "https://forgejo.com/anbraten/test-repo.git",
CloneSSH: "git@forgejo.com:anbraten/test-repo.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "anbraten",
Event: "pull_request_metadata",
EventReason: []string{"edited"},
Commit: "d555a5dd07f4d0148a58d4686ec381502ae6a2d4",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "anbraten-patch-1:main",
Title: "Adjust file",
Message: "Adjust file",
Sender: "anbraten",
Avatar: "https://seccdn.libravatar.org/avatar/fc9b6fe77c6b732a02925a62a81f05a0?d=identicon",
Email: "anbraten@sender.forgejo.com",
ForgeURL: "https://forgejo.com/anbraten/test-repo/pulls/1",
PullRequestLabels: []string{},
},
},
{
name: "pull-request events should handle a PR closed hook when PR got closed",
data: fixtures.HookPullRequestClosed,
@@ -401,6 +439,324 @@ func TestForgejoParser(t *testing.T) {
ForgeURL: "https://git.xxx/anbraten/demo/releases/tag/0.0.5",
},
},
{
name: "pull-request events should handle a PR assignees added hook when assignees are added",
data: fixtures.HookPullRequestAssigneesAdded,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"assigned"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{},
ChangedFiles: nil,
},
},
{
name: "pull-request events should handle a PR milestone added hook when milestone is added",
data: fixtures.HookPullRequestMilestoneAdded,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"milestoned"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{},
PullRequestMilestone: "mile v2",
ChangedFiles: nil,
},
},
{
name: "pull-request events should handle a PR label updated hook when labels are updated",
data: fixtures.HookPullRequestLabelAdded,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"label_updated"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{"Kind/Documentation", "Kind/Enhancement"},
PullRequestMilestone: "mile v2",
ChangedFiles: nil,
},
},
{
name: "pull-request events should handle a PR assignee cleared hook when assignee is removed",
data: fixtures.HookPullRequestAssigneeCleared,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"unassigned"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{"Kind/Documentation", "Kind/Enhancement"},
PullRequestMilestone: "mile v2",
ChangedFiles: nil,
},
},
{
name: "pull-request events should handle a PR milestone changed hook when milestone is changed",
data: fixtures.HookPullRequestMilestoneChanged,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"milestoned"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{"Kind/Documentation", "Kind/Enhancement"},
PullRequestMilestone: "mile v2",
ChangedFiles: nil,
},
},
{
name: "pull-request events should handle a PR labels updated hook when labels are updated",
data: fixtures.HookPullRequestLabelsUpdated,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"label_updated"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{"Kind/Enhancement", "Kind/Testing"},
PullRequestMilestone: "mile v1",
ChangedFiles: nil,
},
},
{
name: "pull-request events should handle a PR labels cleared hook when labels are cleared",
data: fixtures.HookPullRequestLabelsCleared,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"label_cleared"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{},
PullRequestMilestone: "mile v1",
ChangedFiles: nil,
},
},
{
name: "pull-request events should handle a PR milestone cleared hook when milestone is removed",
data: fixtures.HookPullRequestMilestoneCleared,
event: "pull_request",
repo: &model.Repo{
ForgeRemoteID: "138564",
Owner: "test_it",
Name: "test_ci_thing",
FullName: "test_it/test_ci_thing",
Avatar: "https://codeberg.org/avatars/bb6f3159a98a869b43f20b350542f8fb",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing",
Clone: "https://codeberg.org/test_it/test_ci_thing.git",
CloneSSH: "ssh://git@codeberg.org/test_it/test_ci_thing.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
},
pipe: &model.Pipeline{
Author: "6543",
Event: "pull_request_metadata",
EventReason: []string{"demilestoned"},
Commit: "36b5813240a9d2daa29b05046d56a53e18f39a3e",
Branch: "main",
Ref: "refs/pull/1/head",
Refspec: "6543-patch-1:main",
Title: "Some ned more AAAA",
Message: "Some ned more AAAA",
Sender: "6543",
Avatar: "https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173",
Email: "6543@noreply.codeberg.org",
ForgeURL: "https://codeberg.org/test_it/test_ci_thing/pulls/1",
PullRequestLabels: []string{},
ChangedFiles: nil,
},
},
}
for _, tc := range tests {

View File

@@ -0,0 +1,184 @@
{
"action": "label_updated",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"is_archived": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
},
{
"id": 297,
"name": "help wanted",
"exclusive": false,
"is_archived": false,
"color": "128a0c",
"description": "Need some help",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/297"
}
],
"milestone": null,
"assignees": null,
"requested_reviewers": [
{
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,192 @@
{
"action": "milestoned",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"is_archived": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
},
{
"id": 297,
"name": "help wanted",
"exclusive": false,
"is_archived": false,
"color": "128a0c",
"description": "Need some help",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/297"
}
],
"milestone": {
"id": 277,
"title": "new mile",
"state": "open",
"open_issues": 1,
"closed_issues": 0,
"closed_at": null,
"due_on": null
},
"assignees": null,
"requested_reviewers": [
{
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,175 @@
{
"action": "review_requested",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [],
"milestone": null,
"assignees": null,
"requested_reviewers": [
{
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,193 @@
{
"action": "assigned",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 1,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
}
],
"milestone": null,
"assignee": {
"id": 6,
"login": "lilly",
"full_name": "Lilly Apple",
"email": "lilly@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/a02de81c8ee997fc0aff3c6ebe18841903a75fd6",
"html_url": "https://gitea.com/lilly",
"visibility": "public",
"username": "lilly"
},
"assignees": [
{
"id": 6,
"login": "lilly",
"full_name": "Lilly Apple",
"email": "lilly@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/a02de81c8ee997fc0aff3c6ebe18841903a75fd6",
"html_url": "https://gitea.com/lilly",
"visibility": "public",
"username": "lilly"
}
],
"requested_reviewers": [
{
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"draft": false,
"is_locked": false,
"comments": 0,
"review_comments": 0,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"mergeable": true,
"merged": false,
"merged_at": null,
"merge_commit_sha": null,
"merged_by": null,
"allow_maintainer_edit": false,
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56"
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
},
"sender": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"commit_id": "",
"review": null
}

View File

@@ -0,0 +1,167 @@
{
"action": "unassigned",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 1,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
}
],
"milestone": null,
"assignee": null,
"assignees": null,
"requested_reviewers": [
{
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"mergeable": true,
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"avatar_url": "",
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"avatar_url": "",
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56"
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"avatar_url": "",
"object_format_name": "sha1"
},
"sender": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"commit_id": "",
"review": null
}

View File

@@ -0,0 +1,158 @@
{
"action": "edited",
"number": 7,
"changes": {
"body": {
"from": ""
}
},
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [],
"milestone": null,
"assignees": null,
"requested_reviewers": null,
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,175 @@
{
"action": "label_updated",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"is_archived": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
}
],
"milestone": null,
"assignees": null,
"requested_reviewers": [
{
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,192 @@
{
"action": "milestoned",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"is_archived": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
},
{
"id": 297,
"name": "help wanted",
"exclusive": false,
"is_archived": false,
"color": "128a0c",
"description": "Need some help",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/297"
}
],
"milestone": {
"id": 273,
"title": "closed mile",
"state": "closed",
"open_issues": 1,
"closed_issues": 0,
"closed_at": "2025-05-28T03:13:46+02:00",
"due_on": null
},
"assignees": null,
"requested_reviewers": [
{
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,159 @@
{
"action": "edited",
"number": 7,
"changes": {
"title": {
"from": "Update .woodpecker.yml"
}
},
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"last_login": "0001-01-01T00:00:00Z",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "Edit pull title :D",
"body": "",
"labels": [],
"milestone": null,
"assignees": null,
"requested_reviewers": null,
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,184 @@
{
"action": "label_cleared",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"is_archived": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
},
{
"id": 297,
"name": "help wanted",
"exclusive": false,
"is_archived": false,
"color": "128a0c",
"description": "Need some help",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/297"
}
],
"milestone": null,
"assignees": null,
"requested_reviewers": [
{
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,192 @@
{
"action": "demilestoned",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 21,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"created": "2018-01-25T14:38:19+01:00",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [
{
"id": 285,
"name": "bug",
"exclusive": false,
"is_archived": false,
"color": "ee0701",
"description": "Something is not working",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/285"
},
{
"id": 297,
"name": "help wanted",
"exclusive": false,
"is_archived": false,
"color": "128a0c",
"description": "Need some help",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/labels/297"
}
],
"milestone": {
"id": 273,
"title": "closed mile",
"state": "closed",
"open_issues": 1,
"closed_issues": 0,
"closed_at": "2025-05-28T03:13:46+02:00",
"due_on": null
},
"assignees": null,
"requested_reviewers": [
{
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"object_format_name": "sha1"
}
},
"merge_base": "a40211c506550ebd79633d84e913dafa184c6d56",
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"private": false,
"has_pull_requests": true,
"languages_url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci/languages",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"link": "",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"object_format_name": "sha1"
},
"sender": {
"id": 8765,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"created": "2023-05-23T15:17:35+02:00",
"visibility": "public",
"username": "a_nice_user"
},
"review": null
}

View File

@@ -0,0 +1,158 @@
{
"action": "reviewed",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 1,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"description": "",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [],
"milestone": null,
"assignees": null,
"requested_reviewers": [
{
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"comments": 0,
"review_comments": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
}
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
},
"sender": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"commit_id": "",
"review": {
"type": "pull_request_review_approved",
"content": "juhu thats a great idea"
}
}

View File

@@ -0,0 +1,158 @@
{
"action": "reviewed",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 1,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"description": "",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [],
"milestone": null,
"assignees": null,
"requested_reviewers": [
{
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"comments": 0,
"review_comments": 3,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
}
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
},
"sender": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"commit_id": "",
"review": {
"type": "pull_request_review_comment",
"content": "and somethimes you have to comment"
}
}

View File

@@ -0,0 +1,164 @@
{
"action": "reviewed",
"number": 7,
"pull_request": {
"id": 3779,
"url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"number": 7,
"user": {
"id": 1,
"login": "jony",
"full_name": "Jony",
"email": "jony@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
"html_url": "https://gitea.com/jony",
"description": "",
"visibility": "public",
"username": "jony"
},
"title": "somepull",
"body": "wow aaa new pulll body",
"labels": [],
"milestone": null,
"assignee": null,
"assignees": null,
"requested_reviewers": [
{
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
}
],
"state": "open",
"draft": false,
"is_locked": false,
"comments": 0,
"review_comments": 2,
"additions": 1,
"deletions": 0,
"changed_files": 1,
"html_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
"diff_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.diff",
"patch_url": "https://gitea.com/a_nice_user/hello_world_ci/pulls/7.patch",
"base": {
"label": "main",
"ref": "main",
"sha": "a40211c506550ebd79633d84e913dafa184c6d56",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
},
"head": {
"label": "jony-patch-1",
"ref": "jony-patch-1",
"sha": "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
"repo_id": 1234,
"repo": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
}
},
"due_date": null,
"closed_at": null,
"pin_order": 0
},
"requested_reviewer": null,
"repository": {
"id": 1234,
"owner": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@me.mail",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"name": "hello_world_ci",
"full_name": "a_nice_user/hello_world_ci",
"description": "",
"html_url": "https://gitea.com/a_nice_user/hello_world_ci",
"url": "https://gitea.com/api/v1/repos/a_nice_user/hello_world_ci",
"ssh_url": "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
"clone_url": "https://gitea.com/a_nice_user/hello_world_ci.git",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"has_pull_requests": true,
"object_format_name": "sha1"
},
"sender": {
"id": 349,
"login": "a_nice_user",
"full_name": "Nice User",
"email": "a_nice_user@noreply.example.org",
"avatar_url": "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
"html_url": "https://gitea.com/a_nice_user",
"visibility": "public",
"username": "a_nice_user"
},
"commit_id": "",
"review": {
"type": "pull_request_review_rejected",
"content": "I decided otherwhies :O"
}
}

View File

@@ -50,6 +50,48 @@ var HookPullRequestMerged string
//go:embed HookPullRequestClosed.json
var HookPullRequestClosed string
//go:embed HookPullRequestChangeTitle.json
var HookPullRequestChangeTitle string
//go:embed HookPullRequestChangeBody.json
var HookPullRequestChangeBody string
//go:embed HookPullRequestAddReviewRequest.json
var HookPullRequestAddReviewRequest string
//go:embed HookPullRequestReviewAck.json
var HookPullRequestReviewAck string
//go:embed HookPullRequestReviewDeny.json
var HookPullRequestReviewDeny string
//go:embed HookPullRequestReviewComment.json
var HookPullRequestReviewComment string
//go:embed HookPullRequestAddLabel.json
var HookPullRequestAddLabel string
//go:embed HookPullRequestChangeLabel.json
var HookPullRequestChangeLabel string
//go:embed HookPullRequestRemoveLabel.json
var HookPullRequestRemoveLabel string
//go:embed HookPullRequestAddMile.json
var HookPullRequestAddMile string
//go:embed HookPullRequestChangeMile.json
var HookPullRequestChangeMile string
//go:embed HookPullRequestRemoveMile.json
var HookPullRequestRemoveMile string
//go:embed HookPullRequestAssigneesAdded.json
var HookPullRequestAssigneesAdded string
//go:embed HookPullRequestAssigneesRemoved.json
var HookPullRequestAssigneesRemoved string
//go:embed HookRelease.json
var HookRelease string

View File

@@ -508,7 +508,7 @@ func (c *Gitea) Hook(ctx context.Context, r *http.Request) (*model.Repo, *model.
pipeline.Commit = sha
}
if pipeline != nil && (pipeline.Event == model.EventPull || pipeline.Event == model.EventPullClosed) && len(pipeline.ChangedFiles) == 0 {
if pipeline != nil && pipeline.IsPullRequest() && len(pipeline.ChangedFiles) == 0 {
index, err := strconv.ParseInt(strings.Split(pipeline.Ref, "/")[2], 10, 64)
if err != nil {
return nil, nil, err

View File

@@ -150,8 +150,17 @@ func pipelineFromPullRequest(hook *pullRequestHook) *model.Pipeline {
)
event := model.EventPull
if hook.Action == actionClose {
switch hook.Action {
case actionClose:
event = model.EventPullClosed
case actionEdited,
actionLabelUpdate,
actionLabelCleared,
actionMilestoned,
actionDeMilestoned,
actionAssigned,
actionUnAssigned:
event = model.EventPullMetadata
}
pipeline := &model.Pipeline{
@@ -175,6 +184,10 @@ func pipelineFromPullRequest(hook *pullRequestHook) *model.Pipeline {
FromFork: hook.PullRequest.Head.RepoID != hook.PullRequest.Base.RepoID,
}
if pipeline.Event == model.EventPullMetadata {
pipeline.EventReason = []string{hook.Action}
}
return pipeline
}

View File

@@ -19,10 +19,12 @@ import (
"fmt"
"io"
"net/http"
"slices"
"strings"
"github.com/rs/zerolog/log"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/common"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/types"
"go.woodpecker-ci.org/woodpecker/v3/server/model"
)
@@ -37,12 +39,37 @@ const (
actionOpen = "opened"
actionSync = "synchronized"
actionClose = "closed"
actionEdited = "edited"
actionLabelUpdate = "label_updated"
actionLabelCleared = "label_cleared"
actionMilestoned = "milestoned"
actionDeMilestoned = "demilestoned"
actionAssigned = "assigned"
actionUnAssigned = "unassigned"
actionReopen = "reopened"
refBranch = "branch"
refTag = "tag"
)
var actionList = []string{
actionOpen,
actionSync,
actionClose,
actionEdited,
actionLabelUpdate,
actionMilestoned,
actionDeMilestoned,
actionLabelCleared,
actionAssigned,
actionUnAssigned,
actionReopen,
}
func supportedAction(action string) bool {
return slices.Contains(actionList, action)
}
// parseHook parses a Gitea hook from an http.Request and returns
// Repo and Pipeline detail. If a hook type is unsupported nil values are returned.
func parseHook(r *http.Request) (*model.Repo, *model.Pipeline, error) {
@@ -118,17 +145,27 @@ func parsePullRequestHook(payload io.Reader) (*model.Repo, *model.Pipeline, erro
return nil, nil, fmt.Errorf("parsed pull_request webhook does not contain pull_request info")
}
// Don't trigger pipelines for non-code changes ...
if pr.Action != actionOpen &&
pr.Action != actionSync &&
pr.Action != actionClose &&
pr.Action != actionReopen {
log.Debug().Msgf("pull_request action is '%s' and no open or sync", pr.Action)
// Only trigger pipelines for supported event types
if !supportedAction(pr.Action) {
log.Debug().Msgf("pull_request action is '%s'. Only '%s' are supported", pr.Action, strings.Join(actionList, "', '"))
return nil, nil, nil
}
repo = toRepo(pr.Repo)
pipeline = pipelineFromPullRequest(pr)
// all other actions return the state of labels after the actions where done ... so we should too
if pr.Action == actionLabelCleared {
pipeline.PullRequestLabels = []string{}
}
if pr.Action == actionDeMilestoned {
pipeline.PullRequestMilestone = ""
}
for i := range pipeline.EventReason {
pipeline.EventReason[i] = common.NormalizeEventReason(pipeline.EventReason[i])
}
return repo, pipeline, err
}

View File

@@ -28,6 +28,24 @@ import (
)
func TestGiteaParser(t *testing.T) {
pullMetaWebhookRepo := &model.Repo{
ForgeRemoteID: "1234",
Owner: "a_nice_user",
Name: "hello_world_ci",
FullName: "a_nice_user/hello_world_ci",
Avatar: "https://gitea.com/avatars/ae32f5573b27f9840942a522d59032b104a2dd15",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci",
Clone: "https://gitea.com/a_nice_user/hello_world_ci.git",
CloneSSH: "ssh://git@gitea.com:3344/a_nice_user/hello_world_ci.git",
Branch: "main",
PREnabled: true,
Perm: &model.Perm{
Pull: true,
Push: true,
Admin: true,
},
}
tests := []struct {
name string
data string
@@ -331,6 +349,249 @@ func TestGiteaParser(t *testing.T) {
PullRequestLabels: []string{},
},
},
{
name: "pull-request events should handle a PR title change hook",
data: fixtures.HookPullRequestChangeTitle,
event: "pull_request",
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"edited"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "Edit pull title :D",
Message: "Edit pull title :D",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{},
},
},
{
name: "pull-request events should handle a PR body change hook",
data: fixtures.HookPullRequestChangeBody,
event: "pull_request",
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"edited"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{},
},
},
{
name: "pull-request events should ignore a PR add review request hook",
data: fixtures.HookPullRequestAddReviewRequest,
err: &types.ErrIgnoreEvent{},
},
{
name: "pull-request events should ignore a PR add approval review request hook",
data: fixtures.HookPullRequestReviewAck,
err: &types.ErrIgnoreEvent{},
},
{
name: "pull-request events should ignore a PR add reject review request hook",
data: fixtures.HookPullRequestReviewDeny,
err: &types.ErrIgnoreEvent{},
},
{
name: "pull-request events should ignore a PR add comment review request hook",
data: fixtures.HookPullRequestReviewComment,
err: &types.ErrIgnoreEvent{},
},
{
name: "pull-request events should handle a PR add label hook",
data: fixtures.HookPullRequestAddLabel,
event: "pull_request", // type: pull_request_label
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"label_updated"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{"bug", "help wanted"},
},
},
{
name: "pull-request events should handle a PR change label hook",
data: fixtures.HookPullRequestChangeLabel,
event: "pull_request", // type: pull_request_label
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"label_updated"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{"bug"},
},
},
{
name: "pull-request events should handle a PR remove label hook",
data: fixtures.HookPullRequestRemoveLabel,
event: "pull_request", // type: pull_request_label
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"label_cleared"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{},
},
},
{
name: "pull-request events should handle a PR add milestone hook",
data: fixtures.HookPullRequestAddMile,
event: "pull_request", // type: pull_request_milestone
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"milestoned"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{"bug", "help wanted"},
PullRequestMilestone: "new mile",
},
},
{
name: "pull-request events should handle a PR change milestone hook",
data: fixtures.HookPullRequestChangeMile,
event: "pull_request", // type: pull_request_milestone
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"milestoned"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{"bug", "help wanted"},
PullRequestMilestone: "closed mile",
},
},
{
name: "pull-request events should handle a PR remove milestone hook",
data: fixtures.HookPullRequestRemoveMile,
event: "pull_request", // type: pull_request_milestone
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"demilestoned"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{"bug", "help wanted"},
PullRequestMilestone: "",
},
},
{
name: "pull-request events should handle a PR add assignee hook",
data: fixtures.HookPullRequestAssigneesAdded,
event: "pull_request", // type: pull_request_assign
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"assigned"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{"bug"},
},
},
{
name: "pull-request events should handle a PR remove assignee hook",
data: fixtures.HookPullRequestAssigneesRemoved,
event: "pull_request", // type: pull_request_assign
repo: pullMetaWebhookRepo,
pipe: &model.Pipeline{
Author: "jony",
Event: model.EventPullMetadata,
EventReason: []string{"unassigned"},
Commit: "07977177c2cd7d46bad37b8472a9d50e7acb9d1f",
Branch: "main",
Ref: "refs/pull/7/head",
Refspec: "jony-patch-1:main",
Title: "somepull",
Message: "somepull",
Sender: "a_nice_user",
Avatar: "https://gitea.com/avatars/81027235e996f5e3ef6257152357b85d94171a2e",
Email: "a_nice_user@noreply.example.org",
ForgeURL: "https://gitea.com/a_nice_user/hello_world_ci/pulls/7",
PullRequestLabels: []string{"bug"},
},
},
{
name: "pull-request events should handle a PR closed hook when PR was merged",
data: fixtures.HookPullRequestMerged,

View File

@@ -24,6 +24,10 @@ import (
"go.woodpecker-ci.org/woodpecker/v3/server/model"
)
const (
stateOpen = "open"
)
func Test_convertStatus(t *testing.T) {
assert.Equal(t, statusSuccess, convertStatus(model.StatusSuccess))
assert.Equal(t, statusPending, convertStatus(model.StatusPending))

View File

@@ -0,0 +1,323 @@
{
"action": "assigned",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-07-30T00:05:47Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "b5fafd8b1c043723a38c99775bc807075bce9235",
"assignee": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"assignees": [
{
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
],
"requested_reviewers": [],
"requested_teams": [],
"labels": [
{
"id": 9024465370,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp2g",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/bug",
"name": "bug",
"color": "d73a4a",
"default": true,
"description": "Something isn't working"
}
],
"milestone": null,
"draft": false,
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"assignee": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -0,0 +1,303 @@
{
"action": "unassigned",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-07-30T00:06:11Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "b5fafd8b1c043723a38c99775bc807075bce9235",
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [
{
"id": 9024465370,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp2g",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/bug",
"name": "bug",
"color": "d73a4a",
"default": true,
"description": "Something isn't working"
}
],
"milestone": null,
"draft": false,
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"assignee": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -0,0 +1,506 @@
{
"action": "edited",
"number": 62,
"pull_request": {
"url": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/62",
"id": 1630965956,
"node_id": "PR_kwDOIl-VNc5hNpDE",
"html_url": "https://github.com/anbraten/test-ready-release-go/pull/62",
"diff_url": "https://github.com/anbraten/test-ready-release-go/pull/62.diff",
"patch_url": "https://github.com/anbraten/test-ready-release-go/pull/62.patch",
"issue_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/62",
"number": 62,
"state": "open",
"locked": false,
"title": "Change file",
"user": {
"login": "anbraten",
"id": 6918444,
"node_id": "MDQ6VXNlcjY5MTg0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6918444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/anbraten",
"html_url": "https://github.com/anbraten",
"followers_url": "https://api.github.com/users/anbraten/followers",
"following_url": "https://api.github.com/users/anbraten/following{/other_user}",
"gists_url": "https://api.github.com/users/anbraten/gists{/gist_id}",
"starred_url": "https://api.github.com/users/anbraten/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/anbraten/subscriptions",
"organizations_url": "https://api.github.com/users/anbraten/orgs",
"repos_url": "https://api.github.com/users/anbraten/repos",
"events_url": "https://api.github.com/users/anbraten/events{/privacy}",
"received_events_url": "https://api.github.com/users/anbraten/received_events",
"type": "User",
"site_admin": false
},
"body": null,
"created_at": "2023-12-05T18:13:16Z",
"updated_at": "2023-12-05T18:14:13Z",
"closed_at": "2023-12-05T18:14:13Z",
"merged_at": null,
"merge_commit_sha": "79fd3b2a13c462ef9b3169b9dee9cb39605fda1b",
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/62/commits",
"review_comments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/62/comments",
"review_comment_url": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/62/comments",
"statuses_url": "https://api.github.com/repos/anbraten/test-ready-release-go/statuses/c88b9ee719285134957cbc698c9b7ef9b78007bf",
"head": {
"label": "anbraten:anbraten-patch-3",
"ref": "anbraten-patch-3",
"sha": "c88b9ee719285134957cbc698c9b7ef9b78007bf",
"user": {
"login": "anbraten",
"id": 6918444,
"node_id": "MDQ6VXNlcjY5MTg0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6918444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/anbraten",
"html_url": "https://github.com/anbraten",
"followers_url": "https://api.github.com/users/anbraten/followers",
"following_url": "https://api.github.com/users/anbraten/following{/other_user}",
"gists_url": "https://api.github.com/users/anbraten/gists{/gist_id}",
"starred_url": "https://api.github.com/users/anbraten/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/anbraten/subscriptions",
"organizations_url": "https://api.github.com/users/anbraten/orgs",
"repos_url": "https://api.github.com/users/anbraten/repos",
"events_url": "https://api.github.com/users/anbraten/events{/privacy}",
"received_events_url": "https://api.github.com/users/anbraten/received_events",
"type": "User",
"site_admin": false
},
"repo": {
"id": 576689461,
"node_id": "R_kgDOIl-VNQ",
"name": "test-ready-release-go",
"full_name": "anbraten/test-ready-release-go",
"private": false,
"owner": {
"login": "anbraten",
"id": 6918444,
"node_id": "MDQ6VXNlcjY5MTg0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6918444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/anbraten",
"html_url": "https://github.com/anbraten",
"followers_url": "https://api.github.com/users/anbraten/followers",
"following_url": "https://api.github.com/users/anbraten/following{/other_user}",
"gists_url": "https://api.github.com/users/anbraten/gists{/gist_id}",
"starred_url": "https://api.github.com/users/anbraten/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/anbraten/subscriptions",
"organizations_url": "https://api.github.com/users/anbraten/orgs",
"repos_url": "https://api.github.com/users/anbraten/repos",
"events_url": "https://api.github.com/users/anbraten/events{/privacy}",
"received_events_url": "https://api.github.com/users/anbraten/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/anbraten/test-ready-release-go",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/anbraten/test-ready-release-go",
"forks_url": "https://api.github.com/repos/anbraten/test-ready-release-go/forks",
"keys_url": "https://api.github.com/repos/anbraten/test-ready-release-go/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/anbraten/test-ready-release-go/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/anbraten/test-ready-release-go/teams",
"hooks_url": "https://api.github.com/repos/anbraten/test-ready-release-go/hooks",
"issue_events_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/events{/number}",
"events_url": "https://api.github.com/repos/anbraten/test-ready-release-go/events",
"assignees_url": "https://api.github.com/repos/anbraten/test-ready-release-go/assignees{/user}",
"branches_url": "https://api.github.com/repos/anbraten/test-ready-release-go/branches{/branch}",
"tags_url": "https://api.github.com/repos/anbraten/test-ready-release-go/tags",
"blobs_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/anbraten/test-ready-release-go/statuses/{sha}",
"languages_url": "https://api.github.com/repos/anbraten/test-ready-release-go/languages",
"stargazers_url": "https://api.github.com/repos/anbraten/test-ready-release-go/stargazers",
"contributors_url": "https://api.github.com/repos/anbraten/test-ready-release-go/contributors",
"subscribers_url": "https://api.github.com/repos/anbraten/test-ready-release-go/subscribers",
"subscription_url": "https://api.github.com/repos/anbraten/test-ready-release-go/subscription",
"commits_url": "https://api.github.com/repos/anbraten/test-ready-release-go/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/anbraten/test-ready-release-go/contents/{+path}",
"compare_url": "https://api.github.com/repos/anbraten/test-ready-release-go/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/anbraten/test-ready-release-go/merges",
"archive_url": "https://api.github.com/repos/anbraten/test-ready-release-go/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/anbraten/test-ready-release-go/downloads",
"issues_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues{/number}",
"pulls_url": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls{/number}",
"milestones_url": "https://api.github.com/repos/anbraten/test-ready-release-go/milestones{/number}",
"notifications_url": "https://api.github.com/repos/anbraten/test-ready-release-go/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/anbraten/test-ready-release-go/labels{/name}",
"releases_url": "https://api.github.com/repos/anbraten/test-ready-release-go/releases{/id}",
"deployments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/deployments",
"created_at": "2022-12-10T16:59:42Z",
"updated_at": "2023-07-11T17:00:26Z",
"pushed_at": "2023-12-05T18:13:17Z",
"git_url": "git://github.com/anbraten/test-ready-release-go.git",
"ssh_url": "git@github.com:anbraten/test-ready-release-go.git",
"clone_url": "https://github.com/anbraten/test-ready-release-go.git",
"svn_url": "https://github.com/anbraten/test-ready-release-go",
"homepage": null,
"size": 11198,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Go",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"node_id": "MDc6TGljZW5zZTI="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 0,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "anbraten:main",
"ref": "main",
"sha": "26fd46e0d1237cdabfe84ec6a0f37466fc716952",
"user": {
"login": "anbraten",
"id": 6918444,
"node_id": "MDQ6VXNlcjY5MTg0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6918444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/anbraten",
"html_url": "https://github.com/anbraten",
"followers_url": "https://api.github.com/users/anbraten/followers",
"following_url": "https://api.github.com/users/anbraten/following{/other_user}",
"gists_url": "https://api.github.com/users/anbraten/gists{/gist_id}",
"starred_url": "https://api.github.com/users/anbraten/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/anbraten/subscriptions",
"organizations_url": "https://api.github.com/users/anbraten/orgs",
"repos_url": "https://api.github.com/users/anbraten/repos",
"events_url": "https://api.github.com/users/anbraten/events{/privacy}",
"received_events_url": "https://api.github.com/users/anbraten/received_events",
"type": "User",
"site_admin": false
},
"repo": {
"id": 576689461,
"node_id": "R_kgDOIl-VNQ",
"name": "test-ready-release-go",
"full_name": "anbraten/test-ready-release-go",
"private": false,
"owner": {
"login": "anbraten",
"id": 6918444,
"node_id": "MDQ6VXNlcjY5MTg0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6918444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/anbraten",
"html_url": "https://github.com/anbraten",
"followers_url": "https://api.github.com/users/anbraten/followers",
"following_url": "https://api.github.com/users/anbraten/following{/other_user}",
"gists_url": "https://api.github.com/users/anbraten/gists{/gist_id}",
"starred_url": "https://api.github.com/users/anbraten/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/anbraten/subscriptions",
"organizations_url": "https://api.github.com/users/anbraten/orgs",
"repos_url": "https://api.github.com/users/anbraten/repos",
"events_url": "https://api.github.com/users/anbraten/events{/privacy}",
"received_events_url": "https://api.github.com/users/anbraten/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/anbraten/test-ready-release-go",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/anbraten/test-ready-release-go",
"forks_url": "https://api.github.com/repos/anbraten/test-ready-release-go/forks",
"keys_url": "https://api.github.com/repos/anbraten/test-ready-release-go/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/anbraten/test-ready-release-go/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/anbraten/test-ready-release-go/teams",
"hooks_url": "https://api.github.com/repos/anbraten/test-ready-release-go/hooks",
"issue_events_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/events{/number}",
"events_url": "https://api.github.com/repos/anbraten/test-ready-release-go/events",
"assignees_url": "https://api.github.com/repos/anbraten/test-ready-release-go/assignees{/user}",
"branches_url": "https://api.github.com/repos/anbraten/test-ready-release-go/branches{/branch}",
"tags_url": "https://api.github.com/repos/anbraten/test-ready-release-go/tags",
"blobs_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/anbraten/test-ready-release-go/statuses/{sha}",
"languages_url": "https://api.github.com/repos/anbraten/test-ready-release-go/languages",
"stargazers_url": "https://api.github.com/repos/anbraten/test-ready-release-go/stargazers",
"contributors_url": "https://api.github.com/repos/anbraten/test-ready-release-go/contributors",
"subscribers_url": "https://api.github.com/repos/anbraten/test-ready-release-go/subscribers",
"subscription_url": "https://api.github.com/repos/anbraten/test-ready-release-go/subscription",
"commits_url": "https://api.github.com/repos/anbraten/test-ready-release-go/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/anbraten/test-ready-release-go/contents/{+path}",
"compare_url": "https://api.github.com/repos/anbraten/test-ready-release-go/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/anbraten/test-ready-release-go/merges",
"archive_url": "https://api.github.com/repos/anbraten/test-ready-release-go/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/anbraten/test-ready-release-go/downloads",
"issues_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues{/number}",
"pulls_url": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls{/number}",
"milestones_url": "https://api.github.com/repos/anbraten/test-ready-release-go/milestones{/number}",
"notifications_url": "https://api.github.com/repos/anbraten/test-ready-release-go/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/anbraten/test-ready-release-go/labels{/name}",
"releases_url": "https://api.github.com/repos/anbraten/test-ready-release-go/releases{/id}",
"deployments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/deployments",
"created_at": "2022-12-10T16:59:42Z",
"updated_at": "2023-07-11T17:00:26Z",
"pushed_at": "2023-12-05T18:13:17Z",
"git_url": "git://github.com/anbraten/test-ready-release-go.git",
"ssh_url": "git@github.com:anbraten/test-ready-release-go.git",
"clone_url": "https://github.com/anbraten/test-ready-release-go.git",
"svn_url": "https://github.com/anbraten/test-ready-release-go",
"homepage": null,
"size": 11198,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Go",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"node_id": "MDc6TGljZW5zZTI="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 0,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/62"
},
"html": {
"href": "https://github.com/anbraten/test-ready-release-go/pull/62"
},
"issue": {
"href": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/62"
},
"comments": {
"href": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/62/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/62/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls/62/commits"
},
"statuses": {
"href": "https://api.github.com/repos/anbraten/test-ready-release-go/statuses/c88b9ee719285134957cbc698c9b7ef9b78007bf"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": false,
"mergeable_state": "clean",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"repository": {
"id": 576689461,
"node_id": "R_kgDOIl-VNQ",
"name": "test-ready-release-go",
"full_name": "anbraten/test-ready-release-go",
"private": false,
"owner": {
"login": "anbraten",
"id": 6918444,
"node_id": "MDQ6VXNlcjY5MTg0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6918444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/anbraten",
"html_url": "https://github.com/anbraten",
"followers_url": "https://api.github.com/users/anbraten/followers",
"following_url": "https://api.github.com/users/anbraten/following{/other_user}",
"gists_url": "https://api.github.com/users/anbraten/gists{/gist_id}",
"starred_url": "https://api.github.com/users/anbraten/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/anbraten/subscriptions",
"organizations_url": "https://api.github.com/users/anbraten/orgs",
"repos_url": "https://api.github.com/users/anbraten/repos",
"events_url": "https://api.github.com/users/anbraten/events{/privacy}",
"received_events_url": "https://api.github.com/users/anbraten/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/anbraten/test-ready-release-go",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/anbraten/test-ready-release-go",
"forks_url": "https://api.github.com/repos/anbraten/test-ready-release-go/forks",
"keys_url": "https://api.github.com/repos/anbraten/test-ready-release-go/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/anbraten/test-ready-release-go/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/anbraten/test-ready-release-go/teams",
"hooks_url": "https://api.github.com/repos/anbraten/test-ready-release-go/hooks",
"issue_events_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/events{/number}",
"events_url": "https://api.github.com/repos/anbraten/test-ready-release-go/events",
"assignees_url": "https://api.github.com/repos/anbraten/test-ready-release-go/assignees{/user}",
"branches_url": "https://api.github.com/repos/anbraten/test-ready-release-go/branches{/branch}",
"tags_url": "https://api.github.com/repos/anbraten/test-ready-release-go/tags",
"blobs_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/anbraten/test-ready-release-go/statuses/{sha}",
"languages_url": "https://api.github.com/repos/anbraten/test-ready-release-go/languages",
"stargazers_url": "https://api.github.com/repos/anbraten/test-ready-release-go/stargazers",
"contributors_url": "https://api.github.com/repos/anbraten/test-ready-release-go/contributors",
"subscribers_url": "https://api.github.com/repos/anbraten/test-ready-release-go/subscribers",
"subscription_url": "https://api.github.com/repos/anbraten/test-ready-release-go/subscription",
"commits_url": "https://api.github.com/repos/anbraten/test-ready-release-go/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/anbraten/test-ready-release-go/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/anbraten/test-ready-release-go/contents/{+path}",
"compare_url": "https://api.github.com/repos/anbraten/test-ready-release-go/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/anbraten/test-ready-release-go/merges",
"archive_url": "https://api.github.com/repos/anbraten/test-ready-release-go/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/anbraten/test-ready-release-go/downloads",
"issues_url": "https://api.github.com/repos/anbraten/test-ready-release-go/issues{/number}",
"pulls_url": "https://api.github.com/repos/anbraten/test-ready-release-go/pulls{/number}",
"milestones_url": "https://api.github.com/repos/anbraten/test-ready-release-go/milestones{/number}",
"notifications_url": "https://api.github.com/repos/anbraten/test-ready-release-go/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/anbraten/test-ready-release-go/labels{/name}",
"releases_url": "https://api.github.com/repos/anbraten/test-ready-release-go/releases{/id}",
"deployments_url": "https://api.github.com/repos/anbraten/test-ready-release-go/deployments",
"created_at": "2022-12-10T16:59:42Z",
"updated_at": "2023-07-11T17:00:26Z",
"pushed_at": "2023-12-05T18:13:17Z",
"git_url": "git://github.com/anbraten/test-ready-release-go.git",
"ssh_url": "git@github.com:anbraten/test-ready-release-go.git",
"clone_url": "https://github.com/anbraten/test-ready-release-go.git",
"svn_url": "https://github.com/anbraten/test-ready-release-go",
"homepage": null,
"size": 11198,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Go",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0",
"node_id": "MDc6TGljZW5zZTI="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 0,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "anbraten",
"id": 6918444,
"node_id": "MDQ6VXNlcjY5MTg0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6918444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/anbraten",
"html_url": "https://github.com/anbraten",
"followers_url": "https://api.github.com/users/anbraten/followers",
"following_url": "https://api.github.com/users/anbraten/following{/other_user}",
"gists_url": "https://api.github.com/users/anbraten/gists{/gist_id}",
"starred_url": "https://api.github.com/users/anbraten/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/anbraten/subscriptions",
"organizations_url": "https://api.github.com/users/anbraten/orgs",
"repos_url": "https://api.github.com/users/anbraten/repos",
"events_url": "https://api.github.com/users/anbraten/events{/privacy}",
"received_events_url": "https://api.github.com/users/anbraten/received_events",
"type": "User",
"site_admin": false
}
}

View File

@@ -0,0 +1,335 @@
{
"action": "labeled",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-07-29T23:46:36Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "b5fafd8b1c043723a38c99775bc807075bce9235",
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [
{
"id": 9024465376,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp4A",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/documentation",
"name": "documentation",
"color": "0075ca",
"default": true,
"description": "Improvements or additions to documentation"
},
{
"id": 9024465382,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp5g",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/enhancement",
"name": "enhancement",
"color": "a2eeef",
"default": true,
"description": "New feature or request"
}
],
"milestone": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/milestones/2",
"id": 13392101,
"node_id": "MI_kwDOPU9UaM4AzFjl",
"number": 2,
"title": "open mile",
"description": "ongoing",
"creator": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"open_issues": 1,
"closed_issues": 0,
"state": "open",
"created_at": "2025-07-29T23:46:08Z",
"updated_at": "2025-07-29T23:46:29Z",
"due_on": null,
"closed_at": null
},
"draft": false,
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"label": {
"id": 9024465376,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp4A",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/documentation",
"name": "documentation",
"color": "0075ca",
"default": true,
"description": "Improvements or additions to documentation"
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -0,0 +1,326 @@
{
"action": "unlabeled",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-07-29T23:54:55Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "b5fafd8b1c043723a38c99775bc807075bce9235",
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [
{
"id": 9024465370,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp2g",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/bug",
"name": "bug",
"color": "d73a4a",
"default": true,
"description": "Something isn't working"
}
],
"milestone": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/milestones/2",
"id": 13392101,
"node_id": "MI_kwDOPU9UaM4AzFjl",
"number": 2,
"title": "open mile",
"description": "ongoing",
"creator": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"open_issues": 1,
"closed_issues": 0,
"state": "open",
"created_at": "2025-07-29T23:46:08Z",
"updated_at": "2025-07-29T23:46:29Z",
"due_on": null,
"closed_at": null
},
"draft": false,
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"label": {
"id": 9024465380,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp5A",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/duplicate",
"name": "duplicate",
"color": "cfd3d7",
"default": true,
"description": "This issue or pull request already exists"
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -0,0 +1,504 @@
{
"action": "unlabeled",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"html_url": "https://github.com/6543/test_ci_tmp/pull/1",
"diff_url": "https://github.com/6543/test_ci_tmp/pull/1.diff",
"patch_url": "https://github.com/6543/test_ci_tmp/pull/1.patch",
"issue_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/1",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"avatar_url": "https://avatars.githubusercontent.com/u/24977596?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"html_url": "https://github.com/6543",
"followers_url": "https://api.github.com/users/6543/followers",
"following_url": "https://api.github.com/users/6543/following{/other_user}",
"gists_url": "https://api.github.com/users/6543/gists{/gist_id}",
"starred_url": "https://api.github.com/users/6543/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/6543/subscriptions",
"organizations_url": "https://api.github.com/users/6543/orgs",
"repos_url": "https://api.github.com/users/6543/repos",
"events_url": "https://api.github.com/users/6543/events{/privacy}",
"received_events_url": "https://api.github.com/users/6543/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-09-22T12:34:38Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "c449d9571e3cfabc9ee42cc6725196497e16151a",
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits",
"review_comments_url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments",
"review_comment_url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments",
"statuses_url": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e",
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"avatar_url": "https://avatars.githubusercontent.com/u/24977596?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"html_url": "https://github.com/6543",
"followers_url": "https://api.github.com/users/6543/followers",
"following_url": "https://api.github.com/users/6543/following{/other_user}",
"gists_url": "https://api.github.com/users/6543/gists{/gist_id}",
"starred_url": "https://api.github.com/users/6543/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/6543/subscriptions",
"organizations_url": "https://api.github.com/users/6543/orgs",
"repos_url": "https://api.github.com/users/6543/repos",
"events_url": "https://api.github.com/users/6543/events{/privacy}",
"received_events_url": "https://api.github.com/users/6543/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"avatar_url": "https://avatars.githubusercontent.com/u/24977596?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"html_url": "https://github.com/6543",
"followers_url": "https://api.github.com/users/6543/followers",
"following_url": "https://api.github.com/users/6543/following{/other_user}",
"gists_url": "https://api.github.com/users/6543/gists{/gist_id}",
"starred_url": "https://api.github.com/users/6543/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/6543/subscriptions",
"organizations_url": "https://api.github.com/users/6543/orgs",
"repos_url": "https://api.github.com/users/6543/repos",
"events_url": "https://api.github.com/users/6543/events{/privacy}",
"received_events_url": "https://api.github.com/users/6543/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/6543/test_ci_tmp",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"forks_url": "https://api.github.com/repos/6543/test_ci_tmp/forks",
"keys_url": "https://api.github.com/repos/6543/test_ci_tmp/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/6543/test_ci_tmp/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/6543/test_ci_tmp/teams",
"hooks_url": "https://api.github.com/repos/6543/test_ci_tmp/hooks",
"issue_events_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/events{/number}",
"events_url": "https://api.github.com/repos/6543/test_ci_tmp/events",
"assignees_url": "https://api.github.com/repos/6543/test_ci_tmp/assignees{/user}",
"branches_url": "https://api.github.com/repos/6543/test_ci_tmp/branches{/branch}",
"tags_url": "https://api.github.com/repos/6543/test_ci_tmp/tags",
"blobs_url": "https://api.github.com/repos/6543/test_ci_tmp/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/6543/test_ci_tmp/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/6543/test_ci_tmp/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/6543/test_ci_tmp/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/6543/test_ci_tmp/statuses/{sha}",
"languages_url": "https://api.github.com/repos/6543/test_ci_tmp/languages",
"stargazers_url": "https://api.github.com/repos/6543/test_ci_tmp/stargazers",
"contributors_url": "https://api.github.com/repos/6543/test_ci_tmp/contributors",
"subscribers_url": "https://api.github.com/repos/6543/test_ci_tmp/subscribers",
"subscription_url": "https://api.github.com/repos/6543/test_ci_tmp/subscription",
"commits_url": "https://api.github.com/repos/6543/test_ci_tmp/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/6543/test_ci_tmp/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/6543/test_ci_tmp/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/6543/test_ci_tmp/contents/{+path}",
"compare_url": "https://api.github.com/repos/6543/test_ci_tmp/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/6543/test_ci_tmp/merges",
"archive_url": "https://api.github.com/repos/6543/test_ci_tmp/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/6543/test_ci_tmp/downloads",
"issues_url": "https://api.github.com/repos/6543/test_ci_tmp/issues{/number}",
"pulls_url": "https://api.github.com/repos/6543/test_ci_tmp/pulls{/number}",
"milestones_url": "https://api.github.com/repos/6543/test_ci_tmp/milestones{/number}",
"notifications_url": "https://api.github.com/repos/6543/test_ci_tmp/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/6543/test_ci_tmp/labels{/name}",
"releases_url": "https://api.github.com/repos/6543/test_ci_tmp/releases{/id}",
"deployments_url": "https://api.github.com/repos/6543/test_ci_tmp/deployments",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"git_url": "git://github.com/6543/test_ci_tmp.git",
"ssh_url": "git@github.com:6543/test_ci_tmp.git",
"clone_url": "https://github.com/6543/test_ci_tmp.git",
"svn_url": "https://github.com/6543/test_ci_tmp",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"avatar_url": "https://avatars.githubusercontent.com/u/24977596?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"html_url": "https://github.com/6543",
"followers_url": "https://api.github.com/users/6543/followers",
"following_url": "https://api.github.com/users/6543/following{/other_user}",
"gists_url": "https://api.github.com/users/6543/gists{/gist_id}",
"starred_url": "https://api.github.com/users/6543/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/6543/subscriptions",
"organizations_url": "https://api.github.com/users/6543/orgs",
"repos_url": "https://api.github.com/users/6543/repos",
"events_url": "https://api.github.com/users/6543/events{/privacy}",
"received_events_url": "https://api.github.com/users/6543/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"avatar_url": "https://avatars.githubusercontent.com/u/24977596?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"html_url": "https://github.com/6543",
"followers_url": "https://api.github.com/users/6543/followers",
"following_url": "https://api.github.com/users/6543/following{/other_user}",
"gists_url": "https://api.github.com/users/6543/gists{/gist_id}",
"starred_url": "https://api.github.com/users/6543/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/6543/subscriptions",
"organizations_url": "https://api.github.com/users/6543/orgs",
"repos_url": "https://api.github.com/users/6543/repos",
"events_url": "https://api.github.com/users/6543/events{/privacy}",
"received_events_url": "https://api.github.com/users/6543/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/6543/test_ci_tmp",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"forks_url": "https://api.github.com/repos/6543/test_ci_tmp/forks",
"keys_url": "https://api.github.com/repos/6543/test_ci_tmp/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/6543/test_ci_tmp/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/6543/test_ci_tmp/teams",
"hooks_url": "https://api.github.com/repos/6543/test_ci_tmp/hooks",
"issue_events_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/events{/number}",
"events_url": "https://api.github.com/repos/6543/test_ci_tmp/events",
"assignees_url": "https://api.github.com/repos/6543/test_ci_tmp/assignees{/user}",
"branches_url": "https://api.github.com/repos/6543/test_ci_tmp/branches{/branch}",
"tags_url": "https://api.github.com/repos/6543/test_ci_tmp/tags",
"blobs_url": "https://api.github.com/repos/6543/test_ci_tmp/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/6543/test_ci_tmp/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/6543/test_ci_tmp/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/6543/test_ci_tmp/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/6543/test_ci_tmp/statuses/{sha}",
"languages_url": "https://api.github.com/repos/6543/test_ci_tmp/languages",
"stargazers_url": "https://api.github.com/repos/6543/test_ci_tmp/stargazers",
"contributors_url": "https://api.github.com/repos/6543/test_ci_tmp/contributors",
"subscribers_url": "https://api.github.com/repos/6543/test_ci_tmp/subscribers",
"subscription_url": "https://api.github.com/repos/6543/test_ci_tmp/subscription",
"commits_url": "https://api.github.com/repos/6543/test_ci_tmp/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/6543/test_ci_tmp/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/6543/test_ci_tmp/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/6543/test_ci_tmp/contents/{+path}",
"compare_url": "https://api.github.com/repos/6543/test_ci_tmp/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/6543/test_ci_tmp/merges",
"archive_url": "https://api.github.com/repos/6543/test_ci_tmp/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/6543/test_ci_tmp/downloads",
"issues_url": "https://api.github.com/repos/6543/test_ci_tmp/issues{/number}",
"pulls_url": "https://api.github.com/repos/6543/test_ci_tmp/pulls{/number}",
"milestones_url": "https://api.github.com/repos/6543/test_ci_tmp/milestones{/number}",
"notifications_url": "https://api.github.com/repos/6543/test_ci_tmp/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/6543/test_ci_tmp/labels{/name}",
"releases_url": "https://api.github.com/repos/6543/test_ci_tmp/releases{/id}",
"deployments_url": "https://api.github.com/repos/6543/test_ci_tmp/deployments",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"git_url": "git://github.com/6543/test_ci_tmp.git",
"ssh_url": "git@github.com:6543/test_ci_tmp.git",
"clone_url": "https://github.com/6543/test_ci_tmp.git",
"svn_url": "https://github.com/6543/test_ci_tmp",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"label": {
"id": 9024465382,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp5g",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/enhancement",
"name": "enhancement",
"color": "a2eeef",
"default": true,
"description": "New feature or request"
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"avatar_url": "https://avatars.githubusercontent.com/u/24977596?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"html_url": "https://github.com/6543",
"followers_url": "https://api.github.com/users/6543/followers",
"following_url": "https://api.github.com/users/6543/following{/other_user}",
"gists_url": "https://api.github.com/users/6543/gists{/gist_id}",
"starred_url": "https://api.github.com/users/6543/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/6543/subscriptions",
"organizations_url": "https://api.github.com/users/6543/orgs",
"repos_url": "https://api.github.com/users/6543/repos",
"events_url": "https://api.github.com/users/6543/events{/privacy}",
"received_events_url": "https://api.github.com/users/6543/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/6543/test_ci_tmp",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"forks_url": "https://api.github.com/repos/6543/test_ci_tmp/forks",
"keys_url": "https://api.github.com/repos/6543/test_ci_tmp/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/6543/test_ci_tmp/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/6543/test_ci_tmp/teams",
"hooks_url": "https://api.github.com/repos/6543/test_ci_tmp/hooks",
"issue_events_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/events{/number}",
"events_url": "https://api.github.com/repos/6543/test_ci_tmp/events",
"assignees_url": "https://api.github.com/repos/6543/test_ci_tmp/assignees{/user}",
"branches_url": "https://api.github.com/repos/6543/test_ci_tmp/branches{/branch}",
"tags_url": "https://api.github.com/repos/6543/test_ci_tmp/tags",
"blobs_url": "https://api.github.com/repos/6543/test_ci_tmp/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/6543/test_ci_tmp/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/6543/test_ci_tmp/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/6543/test_ci_tmp/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/6543/test_ci_tmp/statuses/{sha}",
"languages_url": "https://api.github.com/repos/6543/test_ci_tmp/languages",
"stargazers_url": "https://api.github.com/repos/6543/test_ci_tmp/stargazers",
"contributors_url": "https://api.github.com/repos/6543/test_ci_tmp/contributors",
"subscribers_url": "https://api.github.com/repos/6543/test_ci_tmp/subscribers",
"subscription_url": "https://api.github.com/repos/6543/test_ci_tmp/subscription",
"commits_url": "https://api.github.com/repos/6543/test_ci_tmp/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/6543/test_ci_tmp/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/6543/test_ci_tmp/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/6543/test_ci_tmp/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/6543/test_ci_tmp/contents/{+path}",
"compare_url": "https://api.github.com/repos/6543/test_ci_tmp/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/6543/test_ci_tmp/merges",
"archive_url": "https://api.github.com/repos/6543/test_ci_tmp/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/6543/test_ci_tmp/downloads",
"issues_url": "https://api.github.com/repos/6543/test_ci_tmp/issues{/number}",
"pulls_url": "https://api.github.com/repos/6543/test_ci_tmp/pulls{/number}",
"milestones_url": "https://api.github.com/repos/6543/test_ci_tmp/milestones{/number}",
"notifications_url": "https://api.github.com/repos/6543/test_ci_tmp/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/6543/test_ci_tmp/labels{/name}",
"releases_url": "https://api.github.com/repos/6543/test_ci_tmp/releases{/id}",
"deployments_url": "https://api.github.com/repos/6543/test_ci_tmp/deployments",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"git_url": "git://github.com/6543/test_ci_tmp.git",
"ssh_url": "git@github.com:6543/test_ci_tmp.git",
"clone_url": "https://github.com/6543/test_ci_tmp.git",
"svn_url": "https://github.com/6543/test_ci_tmp",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"avatar_url": "https://avatars.githubusercontent.com/u/24977596?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"html_url": "https://github.com/6543",
"followers_url": "https://api.github.com/users/6543/followers",
"following_url": "https://api.github.com/users/6543/following{/other_user}",
"gists_url": "https://api.github.com/users/6543/gists{/gist_id}",
"starred_url": "https://api.github.com/users/6543/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/6543/subscriptions",
"organizations_url": "https://api.github.com/users/6543/orgs",
"repos_url": "https://api.github.com/users/6543/repos",
"events_url": "https://api.github.com/users/6543/events{/privacy}",
"received_events_url": "https://api.github.com/users/6543/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -0,0 +1,332 @@
{
"action": "milestoned",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-07-29T23:46:29Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "b5fafd8b1c043723a38c99775bc807075bce9235",
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [],
"milestone": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/milestones/2",
"id": 13392101,
"node_id": "MI_kwDOPU9UaM4AzFjl",
"number": 2,
"title": "open mile",
"description": "ongoing",
"creator": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"open_issues": 1,
"closed_issues": 0,
"state": "open",
"created_at": "2025-07-29T23:46:08Z",
"updated_at": "2025-07-29T23:46:29Z",
"due_on": null,
"closed_at": null
},
"draft": false,
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"milestone": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/milestones/2",
"id": 13392101,
"node_id": "MI_kwDOPU9UaM4AzFjl",
"number": 2,
"title": "open mile",
"description": "ongoing",
"creator": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"open_issues": 1,
"closed_issues": 0,
"state": "open",
"created_at": "2025-07-29T23:46:08Z",
"updated_at": "2025-07-29T23:46:29Z",
"due_on": null,
"closed_at": null
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -0,0 +1,318 @@
{
"action": "demilestoned",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-07-30T00:01:25Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "b5fafd8b1c043723a38c99775bc807075bce9235",
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [
{
"id": 9024465370,
"node_id": "LA_kwDOPU9UaM8AAAACGeZp2g",
"url": "https://api.github.com/repos/6543/test_ci_tmp/labels/bug",
"name": "bug",
"color": "d73a4a",
"default": true,
"description": "Something isn't working"
}
],
"milestone": null,
"draft": false,
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"milestone": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/milestones/1",
"id": 13392100,
"node_id": "MI_kwDOPU9UaM4AzFjk",
"number": 1,
"title": "closed mile",
"description": "",
"creator": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"open_issues": 0,
"closed_issues": 0,
"state": "closed",
"created_at": "2025-07-29T23:45:30Z",
"updated_at": "2025-07-30T00:01:25Z",
"due_on": "2029-03-16T07:00:00Z",
"closed_at": "2025-07-29T23:45:35Z"
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -0,0 +1,304 @@
{
"action": "review_requested",
"number": 1,
"pull_request": {
"url": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1",
"id": 2705176047,
"node_id": "PR_kwDOPU9UaM6hPbXv",
"number": 1,
"state": "open",
"locked": false,
"title": "Some ned more AAAA",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "yeaaa",
"created_at": "2025-07-29T20:00:54Z",
"updated_at": "2025-07-29T23:20:52Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "b5fafd8b1c043723a38c99775bc807075bce9235",
"assignee": null,
"assignees": [],
"requested_reviewers": [
{
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"head": {
"label": "6543:6543-patch-1",
"ref": "6543-patch-1",
"sha": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "6543:main",
"ref": "main",
"sha": "67012991d6c69b1c58378346fca366b864d8d1a1",
"user": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1"
},
"html": {
"href": "https://github.com/6543/test_ci_tmp/pull/1"
},
"issue": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1"
},
"comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/issues/1/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/pulls/1/commits"
},
"statuses": {
"href": "https://api.github.com/repos/6543/test_ci_tmp/statuses/36b5813240a9d2daa29b05046d56a53e18f39a3e"
}
},
"author_association": "OWNER",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": true,
"rebaseable": true,
"mergeable_state": "unstable",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 1,
"deletions": 0,
"changed_files": 1
},
"requested_reviewer": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"repository": {
"id": 1028609128,
"node_id": "R_kgDOPU9UaA",
"name": "test_ci_tmp",
"full_name": "6543/test_ci_tmp",
"private": false,
"owner": {
"login": "6543",
"id": 24977596,
"node_id": "MDQ6VXNlcjI0OTc3NTk2",
"gravatar_id": "",
"url": "https://api.github.com/users/6543",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"description": null,
"fork": false,
"url": "https://api.github.com/repos/6543/test_ci_tmp",
"created_at": "2025-07-29T19:35:41Z",
"updated_at": "2025-07-29T19:36:23Z",
"pushed_at": "2025-07-29T19:36:21Z",
"homepage": null,
"size": 3,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Dockerfile",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"archived": false,
"disabled": false,
"open_issues_count": 1,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 1,
"watchers": 0,
"default_branch": "main"
},
"sender": {
"login": "demoaccount2-commits",
"id": 223550959,
"node_id": "U_kgDODVMd7w",
"gravatar_id": "",
"url": "https://api.github.com/users/demoaccount2-commits",
"type": "User",
"user_view_type": "public",
"site_admin": false
}
}

View File

@@ -71,8 +71,35 @@ var HookPullRequestMerged string
//go:embed HookPullRequestClosed.json
var HookPullRequestClosed string
//go:embed HookPullRequestEdited.json
var HookPullRequestEdited string
//go:embed HookRelease.json
var HookRelease string
//go:embed HookPullRequestReviewRequested.json
var HookPullRequestReviewRequested string
//go:embed HookPullRequestMilestoneAdded.json
var HookPullRequestMilestoneAdded string
//go:embed HookPullRequestMilestoneRemoved.json
var HookPullRequestMilestoneRemoved string
//go:embed HookPullRequestLabelAdded.json
var HookPullRequestLabelAdded string
//go:embed HookPullRequestLabelRemoved.json
var HookPullRequestLabelRemoved string
//go:embed HookPullRequestAssigneeAdded.json
var HookPullRequestAssigneeAdded string
//go:embed HookPullRequestAssigneeRemoved.json
var HookPullRequestAssigneeRemoved string
//go:embed HookPullRequestReopened.json
var HookPullRequestReopened string
//go:embed HookPullRequestLabelsCleared.json
var HookPullRequestLabelsCleared string

View File

@@ -559,6 +559,7 @@ func (c *client) Activate(ctx context.Context, u *model.User, r *model.Repo, lin
Events: []string{
"push",
"pull_request",
"pull_request_review",
"deployment",
},
Config: &github.HookConfig{

View File

@@ -24,6 +24,7 @@ import (
"github.com/google/go-github/v74/github"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/common"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/types"
"go.woodpecker-ci.org/woodpecker/v3/server/model"
"go.woodpecker-ci.org/woodpecker/v3/shared/utils"
@@ -37,9 +38,20 @@ const (
actionClose = "closed"
actionSync = "synchronize"
actionReleased = "released"
actionAssigned = "assigned"
actionConvertedToDraft = "converted_to_draft"
actionDemilestoned = "demilestoned"
actionEdited = "edited"
actionLabeled = "labeled"
actionLocked = "locked"
actionMilestoned = "milestoned"
actionReadyForReview = "ready_for_review"
actionUnassigned = "unassigned"
actionUnlabeled = "unlabeled"
actionUnlocked = "unlocked"
stateOpen = "open"
stateClose = "closed"
labelCleared = "label_cleared"
labelUpdated = "label_updated"
)
// parseHook parses a GitHub hook from an http.Request request and returns
@@ -149,22 +161,40 @@ func parseDeployHook(hook *github.DeploymentEvent) (*model.Repo, *model.Pipeline
// parsePullHook parses a pull request hook and returns the Repo and Pipeline
// details.
func parsePullHook(hook *github.PullRequestEvent, merge bool) (*github.PullRequest, *model.Repo, *model.Pipeline, error) {
if hook.GetAction() != actionOpen &&
hook.GetAction() != actionSync &&
hook.GetAction() != actionClose &&
hook.GetAction() != actionReopen {
return nil, nil, nil, nil
}
event := model.EventPull
if hook.GetPullRequest().GetState() == stateClose {
eventAction := ""
switch hook.GetAction() {
case actionOpen, actionReopen, actionSync:
// default case nothing to do
case actionClose:
event = model.EventPullClosed
case actionAssigned,
actionConvertedToDraft,
actionDemilestoned,
actionEdited,
actionLabeled,
actionLocked,
actionMilestoned,
actionReadyForReview,
actionUnassigned,
actionUnlabeled,
actionUnlocked:
// metadata pull events
event = model.EventPullMetadata
eventAction = common.NormalizeEventReason(hook.GetAction())
default:
return nil, nil, nil, &types.ErrIgnoreEvent{
Event: string(model.EventPullMetadata),
Reason: fmt.Sprintf("action %s is not supported", hook.GetAction()),
}
}
fromFork := hook.GetPullRequest().GetHead().GetRepo().GetID() != hook.GetPullRequest().GetBase().GetRepo().GetID()
pipeline := &model.Pipeline{
Event: event,
EventReason: []string{eventAction},
Commit: hook.GetPullRequest().GetHead().GetSHA(),
ForgeURL: hook.GetPullRequest().GetHTMLURL(),
Ref: fmt.Sprintf(headRefs, hook.GetPullRequest().GetNumber()),
@@ -186,6 +216,15 @@ func parsePullHook(hook *github.PullRequestEvent, merge bool) (*github.PullReque
pipeline.Ref = fmt.Sprintf(mergeRefs, hook.GetPullRequest().GetNumber())
}
// normalize label events to match other forges
if eventAction == actionLabeled || eventAction == actionUnlabeled {
if len(pipeline.PullRequestLabels) == 0 {
pipeline.EventReason = []string{labelCleared}
} else {
pipeline.EventReason = []string{labelUpdated}
}
}
return hook.GetPullRequest(), convertRepo(hook.GetRepo()), pipeline, nil
}

View File

@@ -93,6 +93,17 @@ func Test_parseHook(t *testing.T) {
assert.NotNil(t, p)
assert.Equal(t, model.EventPullClosed, b.Event)
})
t.Run("reopen a pull", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestReopened), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.NotNil(t, p)
assert.Equal(t, model.EventPull, b.Event)
})
t.Run("PR merged hook", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestMerged), hookPull)
p, r, b, err := parseHook(req, false)
@@ -103,6 +114,17 @@ func Test_parseHook(t *testing.T) {
assert.Equal(t, model.EventPullClosed, b.Event)
})
t.Run("PR edited hook", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestEdited), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.NotNil(t, p)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"edited"}, b.EventReason)
})
t.Run("deploy hook", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookDeploy), hookDeploy)
p, r, b, err := parseHook(req, false)
@@ -127,13 +149,285 @@ func Test_parseHook(t *testing.T) {
assert.True(t, strings.HasPrefix(b.Ref, "refs/tags/"))
})
t.Run("reopen a pull", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestReopened), hookPull)
t.Run("pull review requested", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestReviewRequested), hookPull)
p, r, b, err := parseHook(req, false)
assert.ErrorIs(t, err, &types.ErrIgnoreEvent{})
assert.Nil(t, r)
assert.Nil(t, b)
assert.Nil(t, p)
})
t.Run("pull milestoned", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestMilestoneAdded), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.NotNil(t, p)
assert.Equal(t, model.EventPull, b.Event)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"milestoned"}, b.EventReason)
if assert.NotNil(t, p) {
assert.Equal(t, int64(2705176047), *p.ID)
assert.Equal(t, 1, *p.Number)
assert.Equal(t, "open", *p.State)
assert.Equal(t, "Some ned more AAAA", *p.Title)
assert.Equal(t, "yeaaa", *p.Body)
assert.Equal(t, false, *p.Draft)
assert.Equal(t, false, *p.Merged)
assert.Equal(t, true, *p.Mergeable)
assert.Equal(t, "unstable", *p.MergeableState)
if assert.NotNil(t, p.User) {
assert.Equal(t, "6543", *p.User.Login)
assert.Equal(t, int64(24977596), *p.User.ID)
}
if assert.NotNil(t, p.Milestone) {
assert.Equal(t, int64(13392101), *p.Milestone.ID)
assert.Equal(t, 2, *p.Milestone.Number)
assert.Equal(t, "open mile", *p.Milestone.Title)
assert.Equal(t, "ongoing", *p.Milestone.Description)
assert.Equal(t, "open", *p.Milestone.State)
if assert.NotNil(t, p.Milestone.Creator) {
assert.Equal(t, "demoaccount2-commits", *p.Milestone.Creator.Login)
assert.Equal(t, int64(223550959), *p.Milestone.Creator.ID)
}
}
assert.Empty(t, p.RequestedReviewers)
if assert.NotNil(t, p.Head) {
assert.Equal(t, "6543-patch-1", *p.Head.Ref)
assert.Equal(t, "36b5813240a9d2daa29b05046d56a53e18f39a3e", *p.Head.SHA)
}
if assert.NotNil(t, p.Base) {
assert.Equal(t, "main", *p.Base.Ref)
assert.Equal(t, "67012991d6c69b1c58378346fca366b864d8d1a1", *p.Base.SHA)
}
}
})
// milestone change will result two webhooks an demilestoned and milestoned
t.Run("pull request demilestoned", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestMilestoneRemoved), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"demilestoned"}, b.EventReason)
if assert.NotNil(t, p) {
assert.Equal(t, int64(2705176047), *p.ID)
assert.Equal(t, 1, *p.Number)
assert.Equal(t, "open", *p.State)
assert.Equal(t, "Some ned more AAAA", *p.Title)
if assert.NotNil(t, p.User) {
assert.Equal(t, "6543", *p.User.Login)
assert.Equal(t, int64(24977596), *p.User.ID)
}
if assert.Len(t, p.Labels, 1) {
assert.Equal(t, int64(9024465370), *p.Labels[0].ID)
assert.Equal(t, "bug", *p.Labels[0].Name)
assert.Equal(t, "d73a4a", *p.Labels[0].Color)
assert.Equal(t, "Something isn't working", *p.Labels[0].Description)
}
assert.Nil(t, p.Milestone)
if assert.NotNil(t, p.Head) {
assert.Equal(t, "6543-patch-1", *p.Head.Ref)
assert.Equal(t, "36b5813240a9d2daa29b05046d56a53e18f39a3e", *p.Head.SHA)
}
if assert.NotNil(t, p.Base) {
assert.Equal(t, "main", *p.Base.Ref)
assert.Equal(t, "67012991d6c69b1c58378346fca366b864d8d1a1", *p.Base.SHA)
}
}
})
t.Run("pull request labele added", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestLabelAdded), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"label_updated"}, b.EventReason)
if assert.NotNil(t, p) {
assert.Equal(t, int64(2705176047), *p.ID)
assert.Equal(t, 1, *p.Number)
assert.Equal(t, "open", *p.State)
assert.Equal(t, "Some ned more AAAA", *p.Title)
assert.Equal(t, "yeaaa", *p.Body)
assert.Equal(t, false, *p.Draft)
assert.Equal(t, false, *p.Merged)
assert.Equal(t, true, *p.Mergeable)
assert.Equal(t, "unstable", *p.MergeableState)
if assert.NotNil(t, p.User) {
assert.Equal(t, "6543", *p.User.Login)
assert.Equal(t, int64(24977596), *p.User.ID)
}
if assert.Len(t, p.Labels, 2) {
assert.Equal(t, int64(9024465376), *p.Labels[0].ID)
assert.Equal(t, "documentation", *p.Labels[0].Name)
assert.Equal(t, "0075ca", *p.Labels[0].Color)
assert.Equal(t, "Improvements or additions to documentation", *p.Labels[0].Description)
assert.Equal(t, int64(9024465382), *p.Labels[1].ID)
assert.Equal(t, "enhancement", *p.Labels[1].Name)
assert.Equal(t, "a2eeef", *p.Labels[1].Color)
assert.Equal(t, "New feature or request", *p.Labels[1].Description)
}
if assert.NotNil(t, p.Milestone) {
assert.Equal(t, int64(13392101), *p.Milestone.ID)
assert.Equal(t, "open mile", *p.Milestone.Title)
}
assert.Empty(t, p.RequestedReviewers)
if assert.NotNil(t, p.Head) {
assert.Equal(t, "6543-patch-1", *p.Head.Ref)
assert.Equal(t, "36b5813240a9d2daa29b05046d56a53e18f39a3e", *p.Head.SHA)
}
if assert.NotNil(t, p.Base) {
assert.Equal(t, "main", *p.Base.Ref)
assert.Equal(t, "67012991d6c69b1c58378346fca366b864d8d1a1", *p.Base.SHA)
}
}
})
// lable change will result two webhooks an unlable and labeled
t.Run("pull request got label removed", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestLabelRemoved), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"label_updated"}, b.EventReason)
if assert.NotNil(t, p) {
assert.Equal(t, int64(2705176047), *p.ID)
assert.Equal(t, 1, *p.Number)
assert.Equal(t, "open", *p.State)
assert.Equal(t, "Some ned more AAAA", *p.Title)
if assert.NotNil(t, p.User) {
assert.Equal(t, "6543", *p.User.Login)
assert.Equal(t, int64(24977596), *p.User.ID)
}
if assert.Len(t, p.Labels, 1) {
assert.Equal(t, int64(9024465370), *p.Labels[0].ID)
assert.Equal(t, "bug", *p.Labels[0].Name)
assert.Equal(t, "d73a4a", *p.Labels[0].Color)
assert.Equal(t, "Something isn't working", *p.Labels[0].Description)
}
if assert.NotNil(t, p.Head) {
assert.Equal(t, "6543-patch-1", *p.Head.Ref)
assert.Equal(t, "36b5813240a9d2daa29b05046d56a53e18f39a3e", *p.Head.SHA)
}
if assert.NotNil(t, p.Base) {
assert.Equal(t, "main", *p.Base.Ref)
assert.Equal(t, "67012991d6c69b1c58378346fca366b864d8d1a1", *p.Base.SHA)
}
}
})
t.Run("pull request got all label removed", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestLabelsCleared), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"label_cleared"}, b.EventReason)
if assert.NotNil(t, p) {
assert.Equal(t, int64(2705176047), *p.ID)
assert.Equal(t, 1, *p.Number)
assert.Equal(t, "open", *p.State)
assert.Equal(t, "Some ned more AAAA", *p.Title)
assert.Empty(t, p.Labels)
if assert.NotNil(t, p.User) {
assert.Equal(t, "6543", *p.User.Login)
assert.Equal(t, int64(24977596), *p.User.ID)
}
if assert.NotNil(t, p.Head) {
assert.Equal(t, "6543-patch-1", *p.Head.Ref)
assert.Equal(t, "36b5813240a9d2daa29b05046d56a53e18f39a3e", *p.Head.SHA)
}
if assert.NotNil(t, p.Base) {
assert.Equal(t, "main", *p.Base.Ref)
assert.Equal(t, "67012991d6c69b1c58378346fca366b864d8d1a1", *p.Base.SHA)
}
}
})
t.Run("pull request assigned", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestAssigneeAdded), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"assigned"}, b.EventReason)
if assert.NotNil(t, p) {
assert.Equal(t, int64(2705176047), *p.ID)
assert.Equal(t, 1, *p.Number)
assert.Equal(t, "open", *p.State)
assert.Equal(t, "Some ned more AAAA", *p.Title)
if assert.NotNil(t, p.User) {
assert.Equal(t, "6543", *p.User.Login)
assert.Equal(t, int64(24977596), *p.User.ID)
}
if assert.NotNil(t, p.Assignee) {
assert.Equal(t, "demoaccount2-commits", *p.Assignee.Login)
assert.Equal(t, int64(223550959), *p.Assignee.ID)
}
if assert.Len(t, p.Assignees, 1) {
assert.Equal(t, "demoaccount2-commits", *p.Assignees[0].Login)
assert.Equal(t, int64(223550959), *p.Assignees[0].ID)
}
if assert.Len(t, p.Labels, 1) {
assert.Equal(t, int64(9024465370), *p.Labels[0].ID)
assert.Equal(t, "bug", *p.Labels[0].Name)
}
assert.Nil(t, p.Milestone)
if assert.NotNil(t, p.Head) {
assert.Equal(t, "6543-patch-1", *p.Head.Ref)
assert.Equal(t, "36b5813240a9d2daa29b05046d56a53e18f39a3e", *p.Head.SHA)
}
if assert.NotNil(t, p.Base) {
assert.Equal(t, "main", *p.Base.Ref)
assert.Equal(t, "67012991d6c69b1c58378346fca366b864d8d1a1", *p.Base.SHA)
}
}
})
// assigne change will result two webhooks an assigned and unassigned
t.Run("pull request unassigned", func(t *testing.T) {
req := testHookRequest([]byte(fixtures.HookPullRequestAssigneeRemoved), hookPull)
p, r, b, err := parseHook(req, false)
assert.NoError(t, err)
assert.NotNil(t, r)
assert.NotNil(t, b)
assert.Equal(t, model.EventPullMetadata, b.Event)
assert.Equal(t, []string{"unassigned"}, b.EventReason)
if assert.NotNil(t, p) {
assert.Equal(t, int64(2705176047), *p.ID)
assert.Equal(t, 1, *p.Number)
assert.Equal(t, "open", *p.State)
assert.Equal(t, "Some ned more AAAA", *p.Title)
if assert.NotNil(t, p.User) {
assert.Equal(t, "6543", *p.User.Login)
assert.Equal(t, int64(24977596), *p.User.ID)
}
assert.Nil(t, p.Assignee)
assert.Empty(t, p.Assignees)
if assert.Len(t, p.Labels, 1) {
assert.Equal(t, int64(9024465370), *p.Labels[0].ID)
assert.Equal(t, "bug", *p.Labels[0].Name)
}
assert.Nil(t, p.Milestone)
if assert.NotNil(t, p.Head) {
assert.Equal(t, "6543-patch-1", *p.Head.Ref)
assert.Equal(t, "36b5813240a9d2daa29b05046d56a53e18f39a3e", *p.Head.SHA)
}
if assert.NotNil(t, p.Base) {
assert.Equal(t, "main", *p.Base.Ref)
assert.Equal(t, "67012991d6c69b1c58378346fca366b864d8d1a1", *p.Base.SHA)
}
}
})
}

View File

@@ -23,6 +23,8 @@ import (
gitlab "gitlab.com/gitlab-org/api/client-go"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/common"
"go.woodpecker-ci.org/woodpecker/v3/server/forge/types"
"go.woodpecker-ci.org/woodpecker/v3/server/model"
"go.woodpecker-ci.org/woodpecker/v3/shared/utils"
)
@@ -30,6 +32,25 @@ import (
const (
mergeRefs = "refs/merge-requests/%d/head" // merge request merged with base
VisibilityLevelInternal = 10
stateOpened = "opened"
actionOpen = "open"
actionClose = "close"
actionReopen = "reopen"
actionMerge = "merge"
actionUpdate = "update"
metadataReasonAssigned = "assigned"
metadataReasonUnassigned = "unassigned"
metadataReasonMilestoned = "milestoned"
metadataReasonDemilestoned = "demilestoned"
metadataReasonTitleEdited = "title_edited"
metadataReasonDescriptionEdited = "description_edited"
metadataReasonLabelsAdded = "labels_added"
metadataReasonLabelsCleared = "labels_cleared"
metadataReasonLabelsUpdated = "labels_updated"
metadataReasonReviewRequested = "review_requested"
)
func (g *GitLab) convertGitLabRepo(_repo *gitlab.Project, projectMember *gitlab.ProjectMember) (*model.Repo, error) {
@@ -71,6 +92,81 @@ func convertMergeRequestHook(hook *gitlab.MergeEvent, req *http.Request) (mergeI
source := hook.ObjectAttributes.Source
obj := hook.ObjectAttributes
switch obj.Action {
case actionClose, actionMerge:
// pull close event
pipeline.Event = model.EventPullClosed
case actionOpen, actionReopen:
// pull open event -> pull event
pipeline.Event = model.EventPull
case actionUpdate:
if obj.OldRev != "" && obj.State == stateOpened {
// if some git action happened then OldRev != "" -> it's a normal pull_request trigger
// https://github.com/woodpecker-ci/woodpecker/pull/3338
// https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#merge-request-events
pipeline.Event = model.EventPull
break
}
pipeline.Event = model.EventPullMetadata
// All changes are just update actions ... so we have to look into the changes section
var reason []string
if len(hook.Changes.Assignees.Current) != 0 {
reason = append(reason, metadataReasonAssigned)
}
if len(hook.Changes.Assignees.Previous) != 0 {
reason = append(reason, metadataReasonUnassigned)
}
if hook.Changes.MilestoneID.Current != 0 {
reason = append(reason, metadataReasonMilestoned)
}
if hook.Changes.MilestoneID.Previous != 0 {
reason = append(reason, metadataReasonDemilestoned)
}
if len(hook.Changes.Title.Current) != 0 || len(hook.Changes.Title.Previous) != 0 {
reason = append(reason, metadataReasonTitleEdited)
}
if len(hook.Changes.Description.Current) != 0 || len(hook.Changes.Description.Previous) != 0 {
reason = append(reason, metadataReasonDescriptionEdited)
}
switch {
case len(hook.Changes.Labels.Current) != 0 && len(hook.Changes.Labels.Previous) == 0:
reason = append(reason, metadataReasonLabelsAdded)
case len(hook.Changes.Labels.Current) == 0 && len(hook.Changes.Labels.Previous) != 0:
reason = append(reason, metadataReasonLabelsCleared)
case len(hook.Changes.Labels.Current) != 0 && len(hook.Changes.Labels.Previous) != 0:
reason = append(reason, metadataReasonLabelsUpdated)
}
if len(hook.Changes.Reviewers.Current) > len(hook.Changes.Reviewers.Previous) {
reason = append(reason, metadataReasonReviewRequested)
}
for i := range reason {
reason[i] = common.NormalizeEventReason(reason[i])
}
pipeline.EventReason = reason
if len(pipeline.EventReason) == 0 {
return 0, 0, nil, nil, &types.ErrIgnoreEvent{
Event: "Merge Request Hook",
Reason: fmt.Sprintf("Action '%s' no supported changes detected", obj.Action),
}
}
default:
// non supported action
return 0, 0, nil, nil, &types.ErrIgnoreEvent{
Event: "Merge Request Hook",
Reason: fmt.Sprintf("Action '%s' not supported", obj.Action),
}
}
switch {
case target == nil && source == nil:
return 0, 0, nil, nil, fmt.Errorf("target and source keys expected in merge request hook")
@@ -112,11 +208,6 @@ func convertMergeRequestHook(hook *gitlab.MergeEvent, req *http.Request) (mergeI
repo.Avatar = target.AvatarURL
}
pipeline.Event = model.EventPull
if obj.State == "closed" || obj.State == "merged" {
pipeline.Event = model.EventPullClosed
}
lastCommit := obj.LastCommit
pipeline.Message = lastCommit.Message

View File

@@ -0,0 +1,183 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": 4575606,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:23:04 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 UTC",
"assignee_ids": [4575606],
"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": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"updated_at": {
"previous": "2025-08-06 01:21:37 UTC",
"current": "2025-08-06 01:23:04 UTC"
},
"assignees": {
"previous": [],
"current": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
]
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"assignees": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,175 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": 29352624,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": null,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:25:34 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 UTC",
"assignee_ids": [29352624],
"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": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"milestone_id": {
"previous": 6088906,
"current": null
},
"updated_at": {
"previous": "2025-08-06 01:24:11 UTC",
"current": "2025-08-06 01:25:34 UTC"
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"assignees": [
{
"id": 29352624,
"name": "demoaccount2-commits",
"username": "demoaccount2-commits",
"avatar_url": "https://secure.gravatar.com/avatar/510e64831d3748ef1d2143c4a9766c30684f17991b31ee23ece8bb2f26a35fc2?s=80&d=identicon",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,191 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": 4575606,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-05 22:01:30 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 UTC",
"assignee_ids": [4575606],
"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": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"description": {
"previous": ":tada: text that you might read eventually",
"current": ":tada: text that you might read eventually."
},
"last_edited_at": {
"previous": null,
"current": "2025-08-05 22:01:30 UTC"
},
"last_edited_by_id": {
"previous": null,
"current": 4575606
},
"title": {
"previous": "Edit README.md for more text to read",
"current": "Edit README for more text to read"
},
"updated_at": {
"previous": "2025-08-05 21:48:27 UTC",
"current": "2025-08-05 22:01:30 UTC"
},
"updated_by_id": {
"previous": null,
"current": 4575606
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"assignees": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,175 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": null,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:21:37 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 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": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"labels": {
"previous": [],
"current": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
]
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
}
}

View File

@@ -0,0 +1,165 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": null,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:21:37 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 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": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [],
"changes": {
"updated_at": {
"previous": "2025-08-06 01:20:04 UTC",
"current": "2025-08-06 01:21:37 UTC"
},
"labels": {
"previous": [
{
"id": 41869665,
"title": "enhancement",
"color": "#a2eeef",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
},
{
"id": 41869667,
"title": "help wanted",
"color": "#008672",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"current": []
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
}
}

View File

@@ -0,0 +1,228 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": null,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:20:04 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 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": [
{
"id": 41869665,
"title": "enhancement",
"color": "#a2eeef",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
},
{
"id": 41869667,
"title": "help wanted",
"color": "#008672",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869665,
"title": "enhancement",
"color": "#a2eeef",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
},
{
"id": 41869667,
"title": "help wanted",
"color": "#008672",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"updated_at": {
"previous": "2025-08-06 01:18:10 UTC",
"current": "2025-08-06 01:20:04 UTC"
},
"labels": {
"previous": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"current": [
{
"id": 41869665,
"title": "enhancement",
"color": "#a2eeef",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
},
{
"id": 41869667,
"title": "help wanted",
"color": "#008672",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
]
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
}
}

View File

@@ -0,0 +1,175 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": 29352624,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:27:00 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 UTC",
"assignee_ids": [29352624],
"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": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"milestone_id": {
"previous": null,
"current": 6088906
},
"updated_at": {
"previous": "2025-08-06 01:25:34 UTC",
"current": "2025-08-06 01:27:00 UTC"
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"assignees": [
{
"id": 29352624,
"name": "demoaccount2-commits",
"username": "demoaccount2-commits",
"avatar_url": "https://secure.gravatar.com/avatar/510e64831d3748ef1d2143c4a9766c30684f17991b31ee23ece8bb2f26a35fc2?s=80&d=identicon",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,179 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": 4575606,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": null,
"last_edited_by_id": null,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "checking",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README.md for more text to read",
"updated_at": "2025-08-05 21:48:27 UTC",
"updated_by_id": null,
"prepared_at": "2025-08-05 21:48:27 UTC",
"assignee_ids": [4575606],
"blocking_discussions_resolved": true,
"detailed_merge_status": "checking",
"first_contribution": true,
"human_time_change": null,
"human_time_estimate": null,
"human_total_time_spent": null,
"labels": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "open"
},
"labels": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"merge_status": {
"previous": "preparing",
"current": "checking"
},
"updated_at": {
"previous": "2025-08-05 21:48:25 UTC",
"current": "2025-08-05 21:48:27 UTC"
},
"prepared_at": {
"previous": null,
"current": "2025-08-05 21:48:27 UTC"
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"assignees": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,170 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": null,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:18:10 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 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": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"reviewers": {
"previous": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
],
"current": []
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
}
}

View File

@@ -0,0 +1,183 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": null,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:11:08 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 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": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [4575606],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"updated_at": {
"previous": "2025-08-06 01:09:39 UTC",
"current": "2025-08-06 01:11:08 UTC"
},
"reviewers": {
"previous": [],
"current": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
]
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"reviewers": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,166 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": 29352624,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:28:57 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 UTC",
"assignee_ids": [29352624],
"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": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "unapproved"
},
"labels": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"assignees": [
{
"id": 29352624,
"name": "demoaccount2-commits",
"username": "demoaccount2-commits",
"avatar_url": "https://secure.gravatar.com/avatar/510e64831d3748ef1d2143c4a9766c30684f17991b31ee23ece8bb2f26a35fc2?s=80&d=identicon",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,187 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": 29352624,
"author_id": 4575606,
"created_at": "2025-08-05 21:48:25 UTC",
"description": ":tada: text that you might read eventually.",
"draft": false,
"head_pipeline_id": null,
"id": 405095454,
"iid": 3,
"last_edited_at": "2025-08-05 22:01:30 UTC",
"last_edited_by_id": 4575606,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {
"force_remove_source_branch": "0"
},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": 6088906,
"source_branch": "real6543-main-patch-42541",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Edit README for more text to read",
"updated_at": "2025-08-06 01:24:11 UTC",
"updated_by_id": 4575606,
"prepared_at": "2025-08-05 21:48:27 UTC",
"assignee_ids": [29352624],
"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": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "2f7670508b771e7e77839402be8b34b13787aba8",
"message": "Edit README.md",
"title": "Edit README.md",
"timestamp": "2025-08-05T21:45:58+00:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/2f7670508b771e7e77839402be8b34b13787aba8",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/3",
"work_in_progress": false,
"approval_rules": [],
"action": "update"
},
"labels": [
{
"id": 41869666,
"title": "good first issue",
"color": "#7057ff",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {
"assignees": {
"previous": [
{
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
}
],
"current": [
{
"id": 29352624,
"name": "demoaccount2-commits",
"username": "demoaccount2-commits",
"avatar_url": "https://secure.gravatar.com/avatar/510e64831d3748ef1d2143c4a9766c30684f17991b31ee23ece8bb2f26a35fc2?s=80&d=identicon",
"email": "[REDACTED]"
}
]
}
},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"assignees": [
{
"id": 29352624,
"name": "demoaccount2-commits",
"username": "demoaccount2-commits",
"avatar_url": "https://secure.gravatar.com/avatar/510e64831d3748ef1d2143c4a9766c30684f17991b31ee23ece8bb2f26a35fc2?s=80&d=identicon",
"email": "[REDACTED]"
}
]
}

View File

@@ -0,0 +1,164 @@
{
"object_kind": "merge_request",
"event_type": "merge_request",
"user": {
"id": 4575606,
"name": "6543",
"username": "real6543",
"avatar_url": "https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png",
"email": "[REDACTED]"
},
"project": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"object_attributes": {
"assignee_id": null,
"author_id": 29352663,
"created_at": "2025-07-29 20:00:54 UTC",
"description": "yeaaa",
"draft": false,
"head_pipeline_id": null,
"id": 403287663,
"iid": 1,
"last_edited_at": null,
"last_edited_by_id": null,
"merge_commit_sha": null,
"merge_error": null,
"merge_params": {},
"merge_status": "can_be_merged",
"merge_user_id": null,
"merge_when_pipeline_succeeds": false,
"milestone_id": null,
"source_branch": "6543-patch-1",
"source_project_id": 72081820,
"state_id": 1,
"target_branch": "main",
"target_project_id": 72081820,
"time_estimate": 0,
"title": "Some ned more AAAA",
"updated_at": "2025-07-30 00:46:56 UTC",
"updated_by_id": null,
"prepared_at": null,
"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": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"last_commit": {
"id": "36b5813240a9d2daa29b05046d56a53e18f39a3e",
"message": "Some ned more AAAA\n",
"title": "Some ned more AAAA",
"timestamp": "2025-07-29T16:45:02+02:00",
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/commit/36b5813240a9d2daa29b05046d56a53e18f39a3e",
"author": {
"name": "6543",
"email": "[REDACTED]"
}
},
"reviewer_ids": [29352668],
"source": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"state": "opened",
"target": {
"id": 72081820,
"name": "test_ci_tmp",
"description": null,
"web_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"avatar_url": null,
"git_ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"git_http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git",
"namespace": "demoaccount2-commits-group",
"visibility_level": 0,
"path_with_namespace": "demoaccount2-commits-group/test_ci_tmp",
"default_branch": "main",
"ci_config_path": "",
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"ssh_url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"http_url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp.git"
},
"time_change": 0,
"total_time_spent": 0,
"url": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp/-/merge_requests/1",
"work_in_progress": false,
"approval_rules": [],
"action": "action_we_do_not_support"
},
"labels": [
{
"id": 41869663,
"title": "documentation",
"color": "#0075ca",
"project_id": 72081820,
"created_at": "2025-07-30 00:40:00 UTC",
"updated_at": "2025-07-30 00:40:00 UTC",
"template": false,
"description": null,
"type": "ProjectLabel",
"group_id": null
}
],
"changes": {},
"repository": {
"name": "test_ci_tmp",
"url": "git@gitlab.com:demoaccount2-commits-group/test_ci_tmp.git",
"description": null,
"homepage": "https://gitlab.com/demoaccount2-commits-group/test_ci_tmp"
},
"reviewers": [
{
"id": 29352668,
"name": "Placeholder github Source User",
"username": "demoaccount2commits_placeholder_6s82rp",
"avatar_url": "https://secure.gravatar.com/avatar/6d8b40c6bd417e69e359e712b55471dfc72af88c732fed9fe8d276a210aa5dd8?s=80&d=identicon",
"email": "[REDACTED]"
}
]
}

View File

@@ -35,6 +35,11 @@ var (
"User-Agent": []string{"GitLab/14.3.0"},
"X-Gitlab-Event": []string{"Release Hook"},
}
MergeRequestHookHeaders = http.Header{
"Content-Type": []string{"application/json"},
"User-Agent": []string{"GitLab/18.3.0-pre"},
"X-Gitlab-Event": []string{"Merge Request Hook"},
}
)
// HookPush is payload of a push event
@@ -49,8 +54,11 @@ var HookTag []byte
// HookPullRequest is payload of a PULL_REQUEST event
//
//go:embed HookPullRequest.json
var HookPullRequest []byte
//go:embed HookPullRequestUpdated.json
var HookPullRequestUpdated []byte
//go:embed HookPullRequestOpened.json
var HookPullRequestOpened []byte
//go:embed HookPullRequestWithoutChanges.json
var HookPullRequestWithoutChanges []byte
@@ -58,6 +66,9 @@ var HookPullRequestWithoutChanges []byte
//go:embed HookPullRequestApproved.json
var HookPullRequestApproved []byte
//go:embed HookPullRequestEdited.json
var HookPullRequestEdited []byte
//go:embed HookPullRequestClosed.json
var HookPullRequestClosed []byte
@@ -69,3 +80,36 @@ var WebhookReleaseBody []byte
//go:embed HookPullRequestReopened.json
var HookPullRequestReopened []byte
//go:embed HookPullRequestUnsupportedAction.json
var HookPullRequestUnsupportedAction []byte
//go:embed HookPullRequestReviewRequested.json
var HookPullRequestReviewRequested []byte
//go:embed HookPullRequestReviewRequestDel.json
var HookPullRequestReviewRequestDel []byte
//go:embed HookPullRequestAssigned.json
var HookPullRequestAssigned []byte
//go:embed HookPullRequestDemilestoned.json
var HookPullRequestDemilestoned []byte
//go:embed HookPullRequestLabelsAdded.json
var HookPullRequestLabelsAdded []byte
//go:embed HookPullRequestLabelsCleared.json
var HookPullRequestLabelsCleared []byte
//go:embed HookPullRequestLabelsUpdated.json
var HookPullRequestLabelsUpdated []byte
//go:embed HookPullRequestMilestoned.json
var HookPullRequestMilestoned []byte
//go:embed HookPullRequestUnapproved.json
var HookPullRequestUnapproved []byte
//go:embed HookPullRequestUnassigned.json
var HookPullRequestUnassigned []byte

View File

@@ -642,14 +642,6 @@ func (g *GitLab) Hook(ctx context.Context, req *http.Request) (*model.Repo, *mod
switch event := parsed.(type) {
case *gitlab.MergeEvent:
// https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#merge-request-events
if event.ObjectAttributes.OldRev == "" &&
event.ObjectAttributes.Action != "open" &&
event.ObjectAttributes.Action != "close" &&
event.ObjectAttributes.Action != "merge" &&
event.ObjectAttributes.Action != "reopen" {
return nil, nil, &forge_types.ErrIgnoreEvent{Event: string(eventType), Reason: "no code changes"}
}
mergeID, milestoneID, repo, pipeline, err := convertMergeRequestHook(event, req)
if err != nil {
return nil, nil, err

View File

@@ -122,8 +122,9 @@ func Test_GitLab(t *testing.T) {
assert.NoError(t, err)
})
t.Run("test parse webhook", func(t *testing.T) {
// Test hook method
t.Run("parse push hook", func(t *testing.T) {
t.Run("parse push", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
@@ -142,10 +143,11 @@ func Test_GitLab(t *testing.T) {
assert.Equal(t, "refs/heads/main", pipeline.Ref)
assert.Equal(t, []string{"cmd/cli/main.go"}, pipeline.ChangedFiles)
assert.Equal(t, model.EventPush, pipeline.Event)
assert.Empty(t, pipeline.EventReason)
}
})
t.Run("tag push hook", func(t *testing.T) {
t.Run("tag push", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
@@ -163,14 +165,15 @@ func Test_GitLab(t *testing.T) {
assert.Equal(t, "refs/tags/v22", pipeline.Ref)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventTag, pipeline.Event)
assert.Empty(t, pipeline.EventReason)
}
})
t.Run("merge request hook", func(t *testing.T) {
t.Run("merge request", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequest),
bytes.NewReader(fixtures.HookPullRequestUpdated),
)
req.Header = fixtures.ServiceHookHeaders
@@ -185,26 +188,29 @@ func Test_GitLab(t *testing.T) {
assert.Equal(t, "Update client.go 🎉", pipeline.Title)
assert.Len(t, pipeline.ChangedFiles, 0) // see L217
assert.Equal(t, model.EventPull, pipeline.Event)
assert.Empty(t, pipeline.EventReason)
}
})
t.Run("merge request reopened", func(t *testing.T) {
t.Run("merge request new opened", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestReopened),
bytes.NewReader(fixtures.HookPullRequestOpened),
)
req.Header = fixtures.ServiceHookHeaders
req.Header = fixtures.MergeRequestHookHeaders
// TODO: insert fake store into context to retrieve user & repo, this will activate fetching of ChangedFiles
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Equal(t, "Some ned more AAAA", pipeline.Title)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, "Edit README.md for more text to read", pipeline.Title)
assert.Len(t, pipeline.ChangedFiles, 0) // see L217
assert.Equal(t, model.EventPull, pipeline.Event)
assert.Empty(t, pipeline.EventReason)
}
})
@@ -216,26 +222,32 @@ func Test_GitLab(t *testing.T) {
)
req.Header = fixtures.ServiceHookHeaders
// TODO: insert fake store into context to retrieve user & repo, this will activate fetching of ChangedFiles
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.Nil(t, hookRepo)
assert.Nil(t, pipeline)
assert.ErrorIs(t, err, &types.ErrIgnoreEvent{})
if assert.ErrorIs(t, err, &types.ErrIgnoreEvent{}) {
assert.EqualValues(t,
"explicit ignored event 'Merge Request Hook', reason: Action 'update' no supported changes detected",
err.Error())
}
})
t.Run("ignore merge request approval", func(t *testing.T) {
t.Run("ignore unsupported action", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestApproved),
bytes.NewReader(fixtures.HookPullRequestUnsupportedAction),
)
req.Header = fixtures.ServiceHookHeaders
// TODO: insert fake store into context to retrieve user & repo, this will activate fetching of ChangedFiles
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.Nil(t, hookRepo)
assert.Nil(t, pipeline)
assert.ErrorIs(t, err, &types.ErrIgnoreEvent{})
if assert.ErrorIs(t, err, &types.ErrIgnoreEvent{}) {
assert.EqualValues(t,
"explicit ignored event 'Merge Request Hook', reason: Action 'action_we_do_not_support' not supported",
err.Error())
}
})
t.Run("parse merge request closed", func(t *testing.T) {
@@ -259,6 +271,26 @@ func Test_GitLab(t *testing.T) {
}
})
t.Run("merge request reopened", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestReopened),
)
req.Header = fixtures.ServiceHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Equal(t, "Some ned more AAAA", pipeline.Title)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPull, pipeline.Event)
}
})
t.Run("parse merge request merged", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
@@ -280,7 +312,29 @@ func Test_GitLab(t *testing.T) {
}
})
t.Run("release hook", func(t *testing.T) {
t.Run("merge request title and description edited", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestEdited),
)
req.Header = fixtures.MergeRequestHookHeaders
// TODO: insert fake store into context to retrieve user & repo, this will activate fetching of ChangedFiles
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Equal(t, "Edit README for more text to read", pipeline.Title)
assert.Len(t, pipeline.ChangedFiles, 0) // see L217
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"title_edited", "description_edited"}, pipeline.EventReason)
}
})
t.Run("release", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
@@ -297,6 +351,196 @@ func Test_GitLab(t *testing.T) {
assert.Equal(t, model.EventRelease, pipeline.Event)
}
})
t.Run("merge request review approved", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestApproved),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.ErrorIs(t, err, &types.ErrIgnoreEvent{})
assert.Nil(t, hookRepo)
assert.Nil(t, pipeline)
})
t.Run("merge request review requested", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestReviewRequested),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Equal(t, "Edit README for more text to read", pipeline.Title)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"review_requested"}, pipeline.EventReason)
}
})
t.Run("merge request assigned", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestAssigned),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"assigned"}, pipeline.EventReason)
}
})
t.Run("merge request unassigned", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestUnassigned),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"assigned", "unassigned"}, pipeline.EventReason)
}
})
t.Run("merge request milestoned", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestMilestoned),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"milestoned"}, pipeline.EventReason)
}
})
t.Run("merge request demilestoned", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestDemilestoned),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"demilestoned"}, pipeline.EventReason)
}
})
t.Run("merge request labels added", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestLabelsAdded),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"label_added"}, pipeline.EventReason)
}
})
t.Run("merge request labels cleared", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestLabelsCleared),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"label_cleared"}, pipeline.EventReason)
}
})
t.Run("merge request labels updated", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestLabelsUpdated),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.NoError(t, err)
if assert.NotNil(t, hookRepo) && assert.NotNil(t, pipeline) {
assert.Equal(t, "main", hookRepo.Branch)
assert.Equal(t, "demoaccount2-commits-group", hookRepo.Owner)
assert.Equal(t, "test_ci_tmp", hookRepo.Name)
assert.Len(t, pipeline.ChangedFiles, 0)
assert.Equal(t, model.EventPullMetadata, pipeline.Event)
assert.Equal(t, []string{"label_updated"}, pipeline.EventReason)
}
})
t.Run("merge request unapproved", func(t *testing.T) {
req, _ := http.NewRequest(
fixtures.ServiceHookMethod,
fixtures.ServiceHookURL.String(),
bytes.NewReader(fixtures.HookPullRequestUnapproved),
)
req.Header = fixtures.MergeRequestHookHeaders
hookRepo, pipeline, err := client.Hook(ctx, req)
assert.ErrorIs(t, err, &types.ErrIgnoreEvent{})
assert.Nil(t, hookRepo)
assert.Nil(t, pipeline)
})
})
}
func TestExtractFromPath(t *testing.T) {

View File

@@ -29,8 +29,11 @@ type ErrIgnoreEvent struct {
}
func (err *ErrIgnoreEvent) Error() string {
if err.Reason != "" {
return fmt.Sprintf("explicit ignored event '%s', reason: %s", err.Event, err.Reason)
}
return fmt.Sprintf("explicit ignored event '%s'", err.Event)
}
func (*ErrIgnoreEvent) Is(target error) bool {
_, ok := target.(*ErrIgnoreEvent)

View File

@@ -26,6 +26,7 @@ const (
EventPush WebhookEvent = "push"
EventPull WebhookEvent = "pull_request"
EventPullClosed WebhookEvent = "pull_request_closed"
EventPullMetadata WebhookEvent = "pull_request_metadata"
EventTag WebhookEvent = "tag"
EventRelease WebhookEvent = "release"
EventDeploy WebhookEvent = "deployment"
@@ -43,7 +44,7 @@ var ErrInvalidWebhookEvent = errors.New("invalid webhook event")
func (s WebhookEvent) Validate() error {
switch s {
case EventPush, EventPull, EventPullClosed, EventTag, EventRelease, EventDeploy, EventCron, EventManual:
case EventPush, EventPull, EventPullClosed, EventPullMetadata, EventTag, EventRelease, EventDeploy, EventCron, EventManual:
return nil
default:
return fmt.Errorf("%w: %s", ErrInvalidWebhookEvent, s)

View File

@@ -26,6 +26,7 @@ type Pipeline struct {
Author string `json:"author" xorm:"INDEX 'author'"`
Parent int64 `json:"parent" xorm:"parent"`
Event WebhookEvent `json:"event" xorm:"event"`
EventReason []string `json:"event_reason" xorm:"json 'event_reason'"`
Status StatusValue `json:"status" xorm:"INDEX 'status'"`
Errors []*types.PipelineError `json:"errors" xorm:"json 'errors'"`
Created int64 `json:"created" xorm:"'created' NOT NULL DEFAULT 0 created"`
@@ -75,6 +76,11 @@ func (p Pipeline) IsMultiPipeline() bool {
return len(p.Workflows) > 1
}
// IsPullRequest checks if it's a PR event.
func (p Pipeline) IsPullRequest() bool {
return p.Event == EventPull || p.Event == EventPullClosed || p.Event == EventPullMetadata
}
type PipelineOptions struct {
Branch string `json:"branch"`
Variables map[string]string `json:"variables"`

View File

@@ -41,7 +41,7 @@ func Create(ctx context.Context, _store store.Store, repo *model.Repo, pipeline
return nil, errors.New(msg)
}
if pipeline.Event == model.EventPush || pipeline.Event == model.EventPull || pipeline.Event == model.EventPullClosed {
if pipeline.Event == model.EventPush || pipeline.IsPullRequest() {
skipMatch := skipPipelineRegex.FindString(pipeline.Message)
if len(skipMatch) > 0 {
ref := pipeline.Commit

View File

@@ -48,13 +48,13 @@ func needsApproval(repo *model.Repo, pipeline *model.Pipeline) bool {
// repository requires approval for pull requests from forks
case model.RequireApprovalForks:
if (pipeline.Event == model.EventPull || pipeline.Event == model.EventPullClosed) && pipeline.FromFork {
if pipeline.IsPullRequest() && pipeline.FromFork {
return true
}
// repository requires approval for pull requests
case model.RequireApprovalPullRequests:
if pipeline.Event == model.EventPull || pipeline.Event == model.EventPullClosed {
if pipeline.IsPullRequest() {
return true
}

View File

@@ -59,6 +59,17 @@ func TestSetGatedState(t *testing.T) {
},
expectBlocked: true,
},
{
name: "require approval for edited PRs",
repo: &model.Repo{
RequireApproval: model.RequireApprovalPullRequests,
},
pipeline: &model.Pipeline{
Event: model.EventPullMetadata,
FromFork: false,
},
expectBlocked: true,
},
{
name: "require approval for everything",
repo: &model.Repo{

View File

@@ -118,6 +118,7 @@ func metadataPipelineFromModelPipeline(pipeline *model.Pipeline, includeParent b
Finished: pipeline.Finished,
Status: string(pipeline.Status),
Event: string(pipeline.Event),
EventReason: pipeline.EventReason,
ForgeURL: pipeline.ForgeURL,
DeployTo: pipeline.DeployTo,
DeployTask: pipeline.DeployTask,

View File

@@ -239,6 +239,7 @@
"tag": "Tag",
"pr": "Pull Request",
"pr_closed": "Pull Request merged/closed",
"pr_metadata": "Pull Request metadata changed",
"deploy": "Deploy",
"cron": "Cron",
"manual": "Manual",

View File

@@ -5,6 +5,7 @@
<SvgIcon v-else-if="name === 'branch'" :path="mdiSourceBranch" size="1.3rem" />
<SvgIcon v-else-if="name === 'pull-request'" :path="mdiSourcePull" size="1.3rem" />
<SvgIcon v-else-if="name === 'pull-request-closed'" :path="mdiSourceMerge" size="1.3rem" />
<SvgIcon v-else-if="name === 'pull-request-metadata'" :path="mdiPencilOutline" size="1.3rem" />
<SvgIcon v-else-if="name === 'manual-pipeline'" :path="mdiGestureTap" size="1.3rem" />
<SvgIcon v-else-if="name === 'tag'" :path="mdiTagOutline" size="1.3rem" />
<SvgIcon v-else-if="name === 'deployment'" :path="mdiPackageVariant" size="1.3rem" />
@@ -179,6 +180,7 @@ export type IconNames =
| 'branch'
| 'pull-request'
| 'pull-request-closed'
| 'pull-request-metadata'
| 'manual-pipeline'
| 'tag'
| 'deployment'

View File

@@ -43,6 +43,7 @@
<span :title="pipelineEventTitle">
<Icon v-if="pipeline.event === 'pull_request'" name="pull-request" />
<Icon v-else-if="pipeline.event === 'pull_request_closed'" name="pull-request-closed" />
<Icon v-else-if="pipeline.event === 'pull_request_metadata'" name="pull-request-metadata" />
<Icon v-else-if="pipeline.event === 'deployment'" name="deployment" />
<Icon v-else-if="pipeline.event === 'tag' || pipeline.event === 'release'" name="tag" />
<Icon v-else-if="pipeline.event === 'cron'" name="branch" />
@@ -105,6 +106,8 @@ const pipelineEventTitle = computed(() => {
return t('repo.pipeline.event.pr');
case 'pull_request_closed':
return t('repo.pipeline.event.pr_closed');
case 'pull_request_metadata':
return t('repo.pipeline.event.pr_metadata');
case 'deployment':
return t('repo.pipeline.event.deploy');
case 'tag':

View File

@@ -11,7 +11,13 @@
<span>{{ pipeline.author }}</span>
</div>
<a
v-if="pipeline.event === 'pull_request' || pipeline.event === 'pull_request_closed'"
v-if="
// eslint-disable vue/html-indent
pipeline.event === 'pull_request' ||
pipeline.event === 'pull_request_closed' ||
pipeline.event === 'pull_request_metadata'
// eslint-enable vue/html-indent
"
class="text-wp-link-100 hover:text-wp-link-200 flex min-w-0 items-center space-x-1"
:href="pipeline.forge_url"
>

View File

@@ -94,7 +94,11 @@ export default (pipeline: Ref<Pipeline | undefined>) => {
return pipeline.value.ref.replaceAll('refs/tags/', '');
}
if (pipeline.value?.event === 'pull_request' || pipeline.value?.event === 'pull_request_closed') {
if (
pipeline.value?.event === 'pull_request' ||
pipeline.value?.event === 'pull_request_closed' ||
pipeline.value?.event === 'pull_request_metadata'
) {
return `#${pipeline.value.ref
.replaceAll('refs/pull/', '')
.replaceAll('refs/merge-requests/', '')

View File

@@ -19,6 +19,8 @@ export interface Pipeline {
event: WebhookEvents;
event_reason: string[];
// The current status of the pipeline.
status: PipelineStatus;

View File

@@ -5,6 +5,7 @@ export enum WebhookEvents {
Release = 'release',
PullRequest = 'pull_request',
PullRequestClosed = 'pull_request_closed',
PullRequestMetadata = 'pull_request_metadata',
Deploy = 'deployment',
Cron = 'cron',
Manual = 'manual',

View File

@@ -23,7 +23,11 @@ const repo = requiredInject('repo');
const allPipelines = requiredInject('pipelines');
const pipelines = computed(() =>
allPipelines.value.filter(
(b) => b.branch === branch.value && b.event !== 'pull_request' && b.event !== 'pull_request_closed',
(b) =>
b.branch === branch.value &&
b.event !== 'pull_request' &&
b.event !== 'pull_request_closed' &&
b.event !== 'pull_request_metadata',
),
);

View File

@@ -26,7 +26,7 @@ const allPipelines = requiredInject('pipelines');
const pipelines = computed(() =>
allPipelines.value.filter(
(b) =>
(b.event === 'pull_request' || b.event === 'pull_request_closed') &&
(b.event === 'pull_request' || b.event === 'pull_request_closed' || b.event === 'pull_request_metadata') &&
b.ref
.replaceAll('refs/pull/', '')
.replaceAll('refs/merge-requests/', '')

View File

@@ -19,6 +19,7 @@ const (
EventPush = "push"
EventPull = "pull_request"
EventPullClosed = "pull_request_closed"
EventPullMetadata = "pull_request_metadata"
EventTag = "tag"
EventRelease = "release"
EventDeploy = "deployment"

View File

@@ -100,6 +100,7 @@ type (
Number int64 `json:"number"`
Parent int64 `json:"parent"`
Event string `json:"event"`
EventReason []string `json:"event_reason"`
Status string `json:"status"`
Errors []*PipelineError `json:"errors"`
Created int64 `json:"created"`