Skip to content

Conversation

@cwiggs
Copy link

@cwiggs cwiggs commented Jul 24, 2025

I was trying to get fetchit working with a private gitlab repo and had to read the code to find out that it only seems to work with github? Adding a simple check like this will help users identify if there is an issue with the http request.

I plan to send future PRs so that fetchit will work with gitlab as well.

Thanks!

Summary by Sourcery

Add an HTTP status code check to downloadUpdateConfigFile to error on non-200 responses and improve error messaging with URL context.

Bug Fixes:

  • Return an error when the HTTP response status is not 200 in downloadUpdateConfigFile.

Enhancements:

  • Include the request URL in the error message when failing to read the response body.

@sourcery-ai
Copy link

sourcery-ai bot commented Jul 24, 2025

Reviewer's Guide

Add an HTTP 200 status check to early-detect non-successful responses and refine the download error message to include the request URL.

File-Level Changes

Change Details Files
Validate HTTP response status before processing body
  • Insert a conditional to check if resp.StatusCode is not http.StatusOK
  • Return a descriptive error when a non-200 status is received
pkg/engine/config.go
Improve error formatting for download failures
  • Include urlStr in the error message when io.ReadAll fails
pkg/engine/config.go

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @cwiggs - I've reviewed your changes and they look great!

Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments

### Comment 1
<location> `pkg/engine/config.go:190` </location>
<code_context>
 	defer resp.Body.Close()
+
+	if resp.StatusCode != http.StatusOK {
+		return false, fmt.Errorf("received non-200 HTTP status: %d %s", resp.StatusCode, resp.Status)
+	}
+
</code_context>

<issue_to_address>
Error message could include the URL for better traceability.

Adding the URL will make it easier to identify which endpoint caused the error during debugging.
</issue_to_address>

<suggested_fix>
<<<<<<< SEARCH
		return false, fmt.Errorf("received non-200 HTTP status: %d %s", resp.StatusCode, resp.Status)
=======
		return false, fmt.Errorf("received non-200 HTTP status from %s: %d %s", urlStr, resp.StatusCode, resp.Status)
>>>>>>> REPLACE

</suggested_fix>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
@brandonp42
Copy link
Contributor

For what it’s worth I’ve used fetchit with both Bitbucket and Gitea so it’s not limited to only GitHub. What authentication method are you trying to use? I generally use ssh

@cwiggs
Copy link
Author

cwiggs commented Jul 25, 2025

For what it’s worth I’ve used fetchit with both Bitbucket and Gitea so it’s not limited to only GitHub. What authentication method are you trying to use? I generally use ssh

Looking at the code I believe it will work if you are using a username and password but not a PAT.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants