| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Codecov Report
@@ Coverage Diff @@
## master #1561 +/- ##
==========================================
- Coverage 91.16% 86.67% -4.50%
==========================================
Files 74 74
Lines 4177 4179 +2
==========================================
- Hits 3808 3622 -186
- Misses 369 557 +188
Flags with carried forward coverage won't be shown. Click here to find out more.
|
Sorry, something went wrong.
There was a problem hiding this comment.
This will also need a documentation update in https://python-gitlab.readthedocs.io/en/stable/gl_objects/projects.html
See "Get the repository archive:"
And can it specify the possible options from https://docs.gitlab.com/ee/api/repositories.html#get-file-archive:
tar.gz, tar.bz2, tbz, tbz2, tb2, bz2, tar, and zip.
Sorry, something went wrong.
|
Thanks, @JohnVillalovos! Kinda submitted this as a conversation starter because I also wasn't quite sure about whether and where to add tests. Will make the changes you suggested. |
Sorry, something went wrong.
I was hesitant to explicitly list them in the method documentation because GitLab might change them, so instead I added a note with a link to the example. |
Sorry, something went wrong.
That's a good point, maybe this is easier long-term WDYT @JohnVillalovos? If you want to add tests - maybe extract these lines into test_repository_archive() and try adding a different format: python-gitlab/tests/functional/api/test_repository.py Lines 51 to 55 in 90ecf2f And maybe test that it really worked with e.g. |
Sorry, something went wrong.
Sounds reasonable to me. Could also add in the note As of 2021-08, the format options are: tar.gz, tar.bz2, tbz, tbz2, tb2, bz2, tar, and zip. For the formats available, refer to https://docs.gitlab.com/ce/api/repositories.html#get-file-archive I am perfectly fine with the current doc update with only the pointer to the Gitlab docs. |
Sorry, something went wrong.
|
I've added a test and ran it locally a few times. For some reason it always got a 404 for tar.gz and tar.bz2. No idea why, because I created a project on the GitLab instance that the tests use and getting these formats via the API worked perfectly fine. |
Sorry, something went wrong.
@dAnjou Thanks, maybe it's something to do with URL encoding since they include . and we've had issues with this before. I'll take a look. |
Sorry, something went wrong.
|
Thanks @dAnjou Can you rebase the patch rather than adding a merge commit? |
Sorry, something went wrong.
Strange. I wonder why that is happening. @nejch did you ever have a chance to investigate? |
Sorry, something went wrong.
I think I figured it out. See #1758 for my "fix" and can see the functional tests pass. @nejch would like to get your feedback on this. I really don't think that we should be converting periods to %2E as I believe we have other issues about that causing problems. |
Sorry, something went wrong.
|
Ok, so it is encoding drama again 😅
Could be, would love to get rid of more custom code. Do you have a link to the other issue? We just need to make sure that this is not needed anymore: python-gitlab/gitlab/client.py Lines 596 to 601 in 3ee061c So maybe need to check again what a221d7b was trying to achieve. And possibly test this with paths that may include dots so we don't have a regression 🤔 |
Sorry, something went wrong.
Forcing the encoding of '.' to '%2E' causes issues. It also goes against the RFC: https://datatracker.ietf.org/doc/html/rfc3986.html#section-2.3 From the RFC: For consistency, percent-encoded octets in the ranges of ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers... Related #1006 Related #1356 Related #1561 BREAKING CHANGE: This possibly could be a breaking for users who have incorrectly configured GitLab servers which don't handle period '.' characters correctly.
Forcing the encoding of '.' to '%2E' causes issues. It also goes against the RFC: https://datatracker.ietf.org/doc/html/rfc3986.html#section-2.3 From the RFC: For consistency, percent-encoded octets in the ranges of ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers... Closes #1006 Related #1356 Related #1561 BREAKING CHANGE: This possibly could be a breaking for users who have incorrectly configured GitLab servers which don't handle period '.' characters correctly.
Forcing the encoding of '.' to '%2E' causes issues. It also goes against the RFC: https://datatracker.ietf.org/doc/html/rfc3986.html#section-2.3 From the RFC: For consistency, percent-encoded octets in the ranges of ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers... Closes #1006 Related #1356 Related #1561 BREAKING CHANGE: This could potentially be a breaking change for users who have incorrectly configured GitLab servers which don't handle period '.' characters correctly.
Forcing the encoding of '.' to '%2E' causes issues. It also goes against the RFC: https://datatracker.ietf.org/doc/html/rfc3986.html#section-2.3 From the RFC: For consistency, percent-encoded octets in the ranges of ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers... Closes #1006 Related #1356 Related #1561 BREAKING CHANGE: This could potentially be a breaking change for users who have incorrectly configured GitLab servers which don't handle period '.' characters correctly.
I created a PR #1766 to get rid of it and referenced the issues I found, though I believe I had seen other things related to this but didn't find them in my quick search.
I thought we cleaned that up somewhat in d56a434 But I'm not exactly sure what you are asking for, probably because I'm a bit tired at the moment and not reading everything 😟 Not sure if you really meant this commit d7c7911 which first added that '.' -> '%2E' translation. Very little info there besides saying it didn't work with a default gitlab installation. But my PR above is passing all the functional tests without an issues. |
Sorry, something went wrong.
Sorry yes this is what I meant, I just did a quick blame there. 🤦 Ahh interesting: it seems like the underlying issue was fixed in GitLab 13.2 by upgrading the Grape library. Previously GitLab needed %2E encoding for the API it seems, If I understand this MR and the MRs linked correctly: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36038. So looks like it's being tested for regressions upstream as well 👍 |
Sorry, something went wrong.
Nice research!!! 👍 |
Sorry, something went wrong.
Forcing the encoding of '.' to '%2E' causes issues. It also goes against the RFC: https://datatracker.ietf.org/doc/html/rfc3986.html#section-2.3 From the RFC: For consistency, percent-encoded octets in the ranges of ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers... Closes #1006 Related #1356 Related #1561 BREAKING CHANGE: stop encoding '.' to '%2E'. This could potentially be a breaking change for users who have incorrectly configured GitLab servers which don't handle period '.' characters correctly.
Forcing the encoding of '.' to '%2E' causes issues. It also goes against the RFC: https://datatracker.ietf.org/doc/html/rfc3986.html#section-2.3 From the RFC: For consistency, percent-encoded octets in the ranges of ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should not be created by URI producers... Closes #1006 Related #1356 Related #1561 BREAKING CHANGE: stop encoding '.' to '%2E'. This could potentially be a breaking change for users who have incorrectly configured GitLab servers which don't handle period '.' characters correctly.
|
Thank you, @JohnVillalovos! Glad the change made it 😊 |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
No description provided.