Title: No way to retry a trigger job · Issue #3346 · python-gitlab/python-gitlab · GitHub
Open Graph Title: No way to retry a trigger job · Issue #3346 · python-gitlab/python-gitlab
X Title: No way to retry a trigger job · Issue #3346 · python-gitlab/python-gitlab
Description: Description of the problem, including code/CLI snippet ProjectPipelineBridge objects (trigger/bridge jobs) cannot be retried through the high-level API. The class lacks retry(), cancel(), and similar methods that ProjectJob has. Fetching...
Open Graph Description: Description of the problem, including code/CLI snippet ProjectPipelineBridge objects (trigger/bridge jobs) cannot be retried through the high-level API. The class lacks retry(), cancel(), and simil...
X Description: Description of the problem, including code/CLI snippet ProjectPipelineBridge objects (trigger/bridge jobs) cannot be retried through the high-level API. The class lacks retry(), cancel(), and simil...
Opengraph URL: https://github.com/python-gitlab/python-gitlab/issues/3346
X: @github
Domain: redirect.github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"No way to retry a trigger job","articleBody":"## Description of the problem, including code/CLI snippet\n\n`ProjectPipelineBridge` objects (trigger/bridge jobs) cannot be retried through the high-level API. The class lacks `retry()`, `cancel()`, and similar methods that `ProjectJob` has.\n\nFetching the bridge as a `ProjectJob` via `project.jobs.get(bridge.id)` also fails with a 404, since the `/projects/:id/jobs/:id` endpoint does not return bridge jobs.\n\nThe only way I found to retry a bridge is via a raw HTTP call:\n\n```python\npipeline = project.pipelines.get(pipeline_id)\nbridges = pipeline.bridges.list(all=True)\nbridge = bridges[0]\n\n# This fails - ProjectPipelineBridge has no retry()\nbridge.retry() # AttributeError\n\n# This also fails - bridges aren't accessible via the jobs endpoint\nproject.jobs.get(bridge.id).retry() # GitlabGetError: 404\n\n# Only this works\nproject.manager.gitlab.http_post(f\"/projects/{project.id}/jobs/{bridge.id}/retry\")\n```\n\n## Expected Behavior\n\n`ProjectPipelineBridge` should support `retry()` (and maybe other job actions like `cancel()`) either by:\n- Adding the appropriate mixins/custom actions to `ProjectPipelineBridge`, or\n- Making bridge jobs accessible via `project.jobs.get()`.\n\nThe GitLab REST API itself supports `POST /projects/:id/jobs/:job_id/retry` for bridge jobs ([since GitLab 17](https://docs.gitlab.com/api/jobs/#list-all-jobs-for-a-project:~:text=Prior%20to%20GitLab%2017.0%2C%20this%20endpoint%20does%20not%20support%20trigger%20jobs.)), it's only the python-gitlab object model that prevents it.\n\n## Actual Behavior\n\n- `bridge.retry()` raises `AttributeError: 'ProjectPipelineBridge' object has no attribute 'retry'`\n- `project.jobs.get(bridge.id)` raises `GitlabGetError: 404: 404 Not found`\n\n## Specifications\n\n - python-gitlab version: 8.0.0\n - Gitlab server version: self-hosted 18.5.5\n","author":{"url":"https://github.com/eacherkan-via","@type":"Person","name":"eacherkan-via"},"datePublished":"2026-02-12T07:35:42.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/3346/python-gitlab/issues/3346"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:9d418a2d-b011-67c9-34a4-dedf7a04fd13 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 81F0:164B81:1BC331B:23DACA4:699278B1 |
| html-safe-nonce | 18a29a69ba280905b4f187156057cb91f3e6ee5cda361c2a514cf9df2ebc8f4f |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MUYwOjE2NEI4MToxQkMzMzFCOjIzREFDQTQ6Njk5Mjc4QjEiLCJ2aXNpdG9yX2lkIjoiODI4NjUyNzg2OTA3NDcwMDQ2NSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 66baf9de74745244acf1f42fc767ab43ee39f49948df95a72c1f8c1b88a9c4ba |
| hovercard-subject-tag | issue:3930300065 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python-gitlab/python-gitlab/3346/issue_layout |
| twitter:image | https://opengraph.githubassets.com/15583776b42d78e2ecdf7f7ca895a95e6ef270d77bea64d24d63ceeaec201be2/python-gitlab/python-gitlab/issues/3346 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/15583776b42d78e2ecdf7f7ca895a95e6ef270d77bea64d24d63ceeaec201be2/python-gitlab/python-gitlab/issues/3346 |
| og:image:alt | Description of the problem, including code/CLI snippet ProjectPipelineBridge objects (trigger/bridge jobs) cannot be retried through the high-level API. The class lacks retry(), cancel(), and simil... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | eacherkan-via |
| hostname | github.com |
| expected-hostname | github.com |
| None | 42c603b9d642c4a9065a51770f75e5e27132fef0e858607f5c9cb7e422831a7b |
| turbo-cache-control | no-preview |
| go-import | github.com/python-gitlab/python-gitlab git https://github.com/python-gitlab/python-gitlab.git |
| octolytics-dimension-user_id | 28886265 |
| octolytics-dimension-user_login | python-gitlab |
| octolytics-dimension-repository_id | 8077625 |
| octolytics-dimension-repository_nwo | python-gitlab/python-gitlab |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 8077625 |
| octolytics-dimension-repository_network_root_nwo | python-gitlab/python-gitlab |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 848bc6032dcc93a9a7301dcc3f379a72ba13b96e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width