Отвязать ветки и запросы на слияние от задачи

DELETE /repos/{owner}/{repo}/issues/{issue_number}/development

Описание

Метод DELETE отвязывает указанные ветки и запросы на слияние от задачи. Метод не применяется к запросам на слияние.

Частичные ошибки отвязки возвращаются в теле ответа в поле errors.

Метод применяется для разрыва связи задачи с более неактуальной разработкой.

Примечание: неприменимо к pull request — возвращается 422 Unprocessable Entity.

Токен

Требуется токен с правами на Запись для Репозитория.

Заголовки

ПараметрОбязательныйОписание
AcceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=1
AuthorizationДаТокен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN>
Content-TypeДаТип содержимого запроса: application/json

Параметры пути

ПараметрТипОбязательныйОписание
ownerstringДаВладелец репозитория (логин пользователя или имя организации)
repostringДаНазвание репозитория (без расширения .git)
issue_numberintegerДаНомер задачи

Тело запроса

Тело имеет тот же JSON-формат и те же обязательные поля, что и в POST-методе привязки объектов разработки: передайте хотя бы одну ветку или один pull request.

ПолеОбязательностьТипОписание
pulls или branchesДа, хотя бы одномассивТе же ссылки на PR и ветки, что и в POST-методе.
pulls[].numberДа для элемента pullsцелое > 0Номер pull request.
branches[].nameДа для элемента branchesстрокаИмя ветки.

Пример тела запроса:

{ "pulls": [{ "number": 18 }], "branches": [{ "name": "feature/login" }] }

Пример запроса

curl -X DELETE "https://api.gitverse.ru/repos/user/my-repo/issues/18/development" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=1" \
  -H "Content-Type: application/json" \
  -d '{"branches": [{"name": "feature/issue-18"}], "pulls": [{"number": 42}]}'

Замените YOUR_TOKEN на ваш личный токен доступа.

Пример ответа (200 OK)

При успешном выполнении сервер возвращает обновленный объект связанной разработки:


    "pulls": [
        {
            "id": 6740,
            "url": "https://gitverse.ru/user_42/neo2/pulls/5",
            "number": 5,
            "user": {
                "id": 8960,
                "name": "Maria Kuznetsova",
                "login": "user_99",
                "type": "User",
                "bio": "",
                "email": null,
                "avatar_url": "https://gitverse.ru/avatars/5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8e5c7f5e3d5b0c4a9e6f1d2c3",
                "html_url": "https://gitverse.ru/user_99",
                "url": "https://api.gitverse.ru/users/user_99",
                "followers_url": "https://api.gitverse.ru/users/user_99/followers",
                "following_url": "https://api.gitverse.ru/users/user_99/following{/other_user}",
                "repos_url": "https://api.gitverse.ru/users/user_99/repos",
                "organizations_url": "https://api.gitverse.ru/users/user_99/orgs",
                "site_admin": false,
                "location": null,
                "is_verified": false,
                "followers": 0,
                "following": 0,
                "public_repos": 1,
                "stars_count": 0,
                "created_at": "2026-07-06T12:30:58Z",
                "updated_at": "2026-09-08T14:22:30Z"
            },
            "title": "Примеры синглтона на Java: приватный конструктор (с минусами) и лучшая реализация через enum",
            "body": "## Сводка\n\nРеализованы два варианта синглтона на Java: с приватным статическим конструктором и с использованием enum. Добавлены тесты, демонстрирующие уязвимость первого подхода через reflection и устойчивость enum-синглтона.\n\n## Изменения\n\n- src/main/java/src/SingletonPrivateConstructor.java — пример синглтона с приватным статическим конструктором (ленивая инициализация через classloader). В комментариях описаны все минусы подхода: уязвимость через reflection, уязвимость через десериализацию, сложность тестирования и жёсткая связность.\n- src/main/java/src/SingletonEnum.java — лучшая реализация синглтона через enum (по Joshua Bloch, Effective Java, Item 3). В комментариях объяснены преимущества: устойчивость к reflection, корректная работа с сериализацией, потокобезопасность, компактность.\n- test/java/src/SingletonTest.java — набор тестов, подтверждающих: идентичность обоих синглтонов при нормальном использовании, возможность обхода приватного конструктора через reflection, невозможность обхода enum-синглтона.\n\n## Проверка\n\nКоманды и результаты:\n- javac (javac 25.0.3) — компиляция прошла успешно, ошибок нет\n- java src.SingletonTest — все 4 теста выполнены:\n  1. Базовая работа — оба синглтона возвращают один экземпляр\n  2. Reflection-взлом private-конструктора — подтверждён (true, созданы два разных объекта)\n  3. Enum-устойчивость к reflection — подтверждена (NoSuchMethodException)\n  4. Идентичность getInstance — обе реализации возвращают один объект\n\n## Риски\n\n- Изменений в существующий код нет, risk минимальный.\n- Тесты используют reflection для демонстрации уязвимости; в production-коде это не используется.\n- Нет сборки (Maven/Gradle) — проверено прямой компиляцией javac.",
            "labels": [],
            "milestone": null,
            "assignee": null,
            "assignees": [],
            "requested_reviewers": [
                {
                    "id": 242,
                    "name": "",
                    "login": "user_42",
                    "type": "User",
                    "bio": "",
                    "email": "user_42@mail.org",
                    "avatar_url": "https://gitverse.ru/avatars/8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92",
                    "html_url": "https://gitverse.ru/user_42",
                    "url": "https://api.gitverse.ru/users/user_42",
                    "followers_url": "https://api.gitverse.ru/users/user_42/followers",
                    "following_url": "https://api.gitverse.ru/users/user_42/following{/other_user}",
                    "repos_url": "https://api.gitverse.ru/users/user_42/repos",
                    "organizations_url": "https://api.gitverse.ru/users/user_42/orgs",
                    "site_admin": false,
                    "location": null,
                    "is_verified": false,
                    "followers": 0,
                    "following": 0,
                    "public_repos": 7,
                    "stars_count": 0,
                    "created_at": "2025-05-21T08:07:22Z",
                    "updated_at": "2026-09-02T06:24:23Z"
                }
            ],
            "requested_teams": [],
            "state": "open",
            "locked": false,
            "draft": false,
            "comments": 6,
            "html_url": "https://gitverse.ru/user_42/neo2/pulls/5",
            "diff_url": "https://gitverse.ru/user_42/neo2/pulls/5.diff",
            "patch_url": "https://gitverse.ru/user_42/neo2/pulls/5.patch",
            "mergeable": true,
            "merged": false,
            "merged_at": null,
            "merge_commit_sha": null,
            "merged_by": null,
            "maintainer_can_modify": false,
            "additions": 90,
            "deletions": 0,
            "changed_files": 3,
            "review_comments": 1,
            "base": {
                "label": "master",
                "ref": "master",
                "sha": "756eb2fbea6a74a3119e03f71dd6025b10f15fbb",
                "repo_id": 41662,
                "repo": {
                    "id": 41662,
                    "name": "neo2",
                    "full_name": "user_42/neo2",
                    "owner": {
                        "login": "user_42",
                        "id": 242,
                        "avatar_url": "https://gitverse.ru/avatars/8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92",
                        "url": "https://api.gitverse.ru/users/user_42",
                        "html_url": "https://gitverse.ru/user_42",
                        "followers_url": "https://api.gitverse.ru/users/user_42/followers",
                        "following_url": "https://api.gitverse.ru/users/user_42/following{/other_user}",
                        "organizations_url": "https://api.gitverse.ru/users/user_42/orgs",
                        "repos_url": "https://api.gitverse.ru/users/user_42/repos",
                        "type": "User",
                        "user_view_type": "public",
                        "site_admin": false
                    },
                    "private": false,
                    "html_url": "https://gitverse.ru/user_42/neo2",
                    "description": null,
                    "fork": false,
                    "forks": 0,
                    "forks_count": 0,
                    "language": null,
                    "stargazers_count": 0,
                    "watchers": 0,
                    "watchers_count": 0,
                    "size": 30,
                    "default_branch": "master",
                    "open_issues": 4,
                    "open_issues_count": 4,
                    "is_template": false,
                    "topics": [],
                    "archived": false,
                    "disabled": false,
                    "visibility": "public",
                    "pushed_at": "2026-08-12T16:07:39Z",
                    "has_issues": true,
                    "has_wiki": true,
                    "has_projects": true,
                    "has_pages": false,
                    "has_downloads": false,
                    "allow_forking": true,
                    "homepage": null,
                    "license": null,
                    "created_at": "2026-08-04T10:14:49Z",
                    "updated_at": "2026-09-07T13:26:02Z",
                    "allow_merge_commit": true,
                    "allow_squash_merge": true,
                    "allow_rebase_merge": true,
                    "delete_branch_on_merge": false,
                    "clone_url": "https://gitverse.ru/user_42/neo2.git",
                    "ssh_url": "git@gitverse.ru:user_42/neo2.git",
                    "mirror_url": null,
                    "url": "https://api.gitverse.ru/repos/user_42/neo2",
                    "contents_url": "https://api.gitverse.ru/repos/user_42/neo2/contents/{+path}",
                    "forks_url": "https://api.gitverse.ru/repos/user_42/neo2/forks",
                    "hooks_url": "https://api.gitverse.ru/repos/user_42/neo2/hooks",
                    "issue_comment_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/comments{/number}",
                    "issues_url": "https://api.gitverse.ru/repos/user_42/neo2/issues{/number}",
                    "languages_url": "https://api.gitverse.ru/repos/user_42/neo2/languages",
                    "pulls_url": "https://api.gitverse.ru/repos/user_42/neo2/pulls{/number}",
                    "permissions": {
                        "pull": true,
                        "push": true,
                        "admin": true
                    },
                    "role_name": "admin",
                    "template_repository": null,
                    "parent": null
                }
            },
            "head": {
                "label": "java-singleton",
                "ref": "java-singleton",
                "sha": "6c9042189bcf45b2828f7b7bb6e860476613100d",
                "repo_id": 41662,
                "repo": {
                    "id": 41662,
                    "name": "neo2",
                    "full_name": "user_42/neo2",
                    "owner": {
                        "login": "user_42",
                        "id": 242,
                        "avatar_url": "https://gitverse.ru/avatars/8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92",
                        "url": "https://api.gitverse.ru/users/user_42",
                        "html_url": "https://gitverse.ru/user_42",
                        "followers_url": "https://api.gitverse.ru/users/user_42/followers",
                        "following_url": "https://api.gitverse.ru/users/user_42/following{/other_user}",
                        "organizations_url": "https://api.gitverse.ru/users/user_42/orgs",
                        "repos_url": "https://api.gitverse.ru/users/user_42/repos",
                        "type": "User",
                        "user_view_type": "public",
                        "site_admin": false
                    },
                    "private": false,
                    "html_url": "https://gitverse.ru/user_42/neo2",
                    "description": null,
                    "fork": false,
                    "forks": 0,
                    "forks_count": 0,
                    "language": null,
                    "stargazers_count": 0,
                    "watchers": 0,
                    "watchers_count": 0,
                    "size": 30,
                    "default_branch": "master",
                    "open_issues": 4,
                    "open_issues_count": 4,
                    "is_template": false,
                    "topics": [],
                    "archived": false,
                    "disabled": false,
                    "visibility": "public",
                    "pushed_at": "2026-08-12T16:07:39Z",
                    "has_issues": true,
                    "has_wiki": true,
                    "has_projects": true,
                    "has_pages": false,
                    "has_downloads": false,
                    "allow_forking": true,
                    "homepage": null,
                    "license": null,
                    "created_at": "2026-08-04T10:14:49Z",
                    "updated_at": "2026-09-07T13:26:02Z",
                    "allow_merge_commit": true,
                    "allow_squash_merge": true,
                    "allow_rebase_merge": true,
                    "delete_branch_on_merge": false,
                    "clone_url": "https://gitverse.ru/user_42/neo2.git",
                    "ssh_url": "git@gitverse.ru:user_42/neo2.git",
                    "mirror_url": null,
                    "url": "https://api.gitverse.ru/repos/user_42/neo2",
                    "contents_url": "https://api.gitverse.ru/repos/user_42/neo2/contents/{+path}",
                    "forks_url": "https://api.gitverse.ru/repos/user_42/neo2/forks",
                    "hooks_url": "https://api.gitverse.ru/repos/user_42/neo2/hooks",
                    "issue_comment_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/comments{/number}",
                    "issues_url": "https://api.gitverse.ru/repos/user_42/neo2/issues{/number}",
                    "languages_url": "https://api.gitverse.ru/repos/user_42/neo2/languages",
                    "pulls_url": "https://api.gitverse.ru/repos/user_42/neo2/pulls{/number}",
                    "permissions": {
                        "pull": true,
                        "push": true,
                        "admin": true
                    },
                    "role_name": "admin",
                    "template_repository": null,
                    "parent": null
                }
            },
            "created_at": "2026-08-12T15:58:09Z",
            "updated_at": "2026-08-20T07:38:23Z",
            "closed_at": null
        }
    ],
    "branches": [
        {
            "name": "java-singleton",
            "commit": {
                "url": "https://gitverse.ru/public/api/repos/user_42/neo2/commits/6c9042189bcf45b2828f7b7bb6e860476613100d",
                "sha": "6c9042189bcf45b2828f7b7bb6e860476613100d",
                "html_url": "https://gitverse.ru/user_42/neo2/commit/6c9042189bcf45b2828f7b7bb6e860476613100d",
                "created": "2026-08-12T16:07:34Z"
            },
            "protected": false,
            "repository": {
                "id": 41662,
                "name": "neo2",
                "full_name": "user_42/neo2",
                "owner": {
                    "login": "user_42",
                    "id": 242,
                    "avatar_url": "https://gitverse.ru/avatars/8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92",
                    "url": "https://api.gitverse.ru/users/user_42",
                    "html_url": "https://gitverse.ru/user_42",
                    "followers_url": "https://api.gitverse.ru/users/user_42/followers",
                    "following_url": "https://api.gitverse.ru/users/user_42/following{/other_user}",
                    "organizations_url": "https://api.gitverse.ru/users/user_42/orgs",
                    "repos_url": "https://api.gitverse.ru/users/user_42/repos",
                    "type": "User",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "private": false,
                "html_url": "https://gitverse.ru/user_42/neo2",
                "description": null,
                "fork": false,
                "forks": 0,
                "forks_count": 0,
                "language": "Text",
                "stargazers_count": 0,
                "watchers": 0,
                "watchers_count": 0,
                "size": 30,
                "default_branch": "master",
                "open_issues": 4,
                "open_issues_count": 4,
                "is_template": false,
                "topics": [],
                "archived": false,
                "disabled": false,
                "visibility": "public",
                "pushed_at": "2026-08-12T16:07:39Z",
                "has_issues": true,
                "has_wiki": true,
                "has_projects": true,
                "has_pages": false,
                "has_downloads": false,
                "allow_forking": true,
                "homepage": null,
                "license": null,
                "created_at": "2026-08-04T10:14:49Z",
                "updated_at": "2026-09-07T13:26:02Z",
                "allow_merge_commit": true,
                "allow_squash_merge": true,
                "allow_rebase_merge": true,
                "delete_branch_on_merge": false,
                "clone_url": "https://gitverse.ru/user_42/neo2.git",
                "ssh_url": "git@gitverse.ru:user_42/neo2.git",
                "mirror_url": null,
                "url": "https://api.gitverse.ru/repos/user_42/neo2",
                "contents_url": "https://api.gitverse.ru/repos/user_42/neo2/contents/{+path}",
                "forks_url": "https://api.gitverse.ru/repos/user_42/neo2/forks",
                "hooks_url": "https://api.gitverse.ru/repos/user_42/neo2/hooks",
                "issue_comment_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/comments{/number}",
                "issues_url": "https://api.gitverse.ru/repos/user_42/neo2/issues{/number}",
                "languages_url": "https://api.gitverse.ru/repos/user_42/neo2/languages",
                "pulls_url": "https://api.gitverse.ru/repos/user_42/neo2/pulls{/number}",
                "permissions": {
                    "pull": true,
                    "push": true,
                    "admin": true
                },
                "role_name": "admin",
                "template_repository": null,
                "parent": null
            }
        }

}

При частичных ошибках отвязки возвращаются массивы errors.pulls и errors.branches.

Структура ответа

Ответ — объект Development (связанная разработка). Полная структура описана в графе объектов, раздел «Объект Development».

На корневом уровне объект содержит:

ПолеТипОписание
pullsarrayСвязанные запросы на слияние (см. PullRequest)
branchesarrayСвязанные ветки (см. Branch)

Коды ответа

КодСтатусОписание
200OKВетки и PR отвязаны от задачи.
404Not FoundЗадача или репозиторий не найдены.
422Unprocessable EntityОшибка валидации данных (в т.ч. вызов для pull request).
500Internal Server ErrorВнутренняя ошибка сервера GitVerse.

Пример тела ошибки

При ответе 404 тело ответа имеет следующий вид:

{
  "error": {
    "code": "NOT_FOUND",
    "documentation_url": "https://gitverse.ru/docs/developers/public-api/",
    "message": "The requested resource was not found",
    "status": 404
  }
}