Repository navigation
Conversation
Wraps GET /projects/:id/pipelines/latest from the GitLab Pipelines API. The new method takes an optional :ref to fetch the latest pipeline for a specific branch or tag (defaults to the project's default branch when omitted). Adds an rspec spec covering both the no-ref and explicit-ref paths and a latest_pipeline.json fixture that mirrors the existing pipeline.json shape.
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
|
The Rubocop failure here isn't from this PR — I reproduced it on
This PR only touches |
|
The Rubocop job here isn't from this PR. I ran it locally on this branch and on
None of them are in the three files this PR touches ( I've left them alone so this PR stays scoped to the endpoint. Happy to send a separate lint-only PR if that's useful -- five of the six are autocorrectable and the |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Rubocop 1.92 flags Style/DirectiveScope, Style/FileOpen and RSpec/MatchWithSimpleRegex in existing code, which fails the lint job. Autocorrect the directive pairs and simple regex matches, and keep the history file handle open with an inline disable since it is memoized.
|
Since the lint job was still red, I went ahead and pushed a small separate commit (7873194) that clears the Rubocop offenses so CI can go green. Rubocop 1.92 now reports 8, all in existing code:
The endpoint change is untouched. If you'd rather keep the lint fixes out of this PR, I can drop the commit and send them separately. |
json 3 raises on duplicate object keys and drops JSON.unparse, so a fresh bundle fails nine examples. Three project access token fixtures listed last_used_at twice, so keep the value the parser used, and call JSON.generate in the request spec.
Closes #656.
Wraps the GitLab REST endpoint `GET /projects/:id/pipelines/latest` (docs).
Usage
```ruby
Gitlab.latest_pipeline(5) # latest pipeline on the project's default branch
Gitlab.latest_pipeline(5, ref: 'develop') # latest pipeline on a specific ref
```
The method follows the same shape as the existing `pipeline` / `pipelines` methods in `lib/gitlab/client/pipelines.rb` and forwards `:ref` (and any other future query params) through `get`'s `query:` argument so callers don't have to remember which params the endpoint supports today.
Tests
`spec/gitlab/client/pipelines_spec.rb` adds two contexts:
Backed by a new `spec/fixtures/latest_pipeline.json` fixture mirroring the existing `pipeline.json` shape.
I could not run `bundle exec rspec` locally — system Ruby is 2.6 and the gemspec requires Ruby 3.2. `ruby -c` confirms the source and spec parse cleanly. Happy to fix anything CI flags.