Comments (4)
Speaking for octokit.net we also automatically follow redirects so our method for this does return a Byte[]
byte array of the actual archive content. However we have named the method GetArchive
so the behaviour is more expected by consumers.
For node, I think if it's called getArchiveLink
then yes it should return the URL only. But you could also just call it getArchive
(either instead of or in addition to the getArchiveLink
call)
from discussions.
Though I understand the Github instructions are "follow all redirects," it just doesn't make a lot of sense for something that is intended to return a big blob vs. 1k of JSON.
I certainly understand our perspectives could be different, though wanted to ring in with mine.
Since some repos are small and others are really not, it's not great to put the whole thing into memory. In Node the way to do getArchive
would be to return a Stream, or else to accept a path and write the archive there.
Maybe the stream is the way to go. That wouldn't get in the way of following redirects.
from discussions.
@paulmelnikow I fully agree with you. There are a few incoherences in GitHub’s REST API, this is one of them, and I want to make sure that all Octokits are handling it in the same way, which is why I brought up the point.
For octokit.js, I have to keep browser-compatibility in mind, too, so streams are tough.
I tend towards changing the behavior of getArchiveLink()
to just return the link, as that’s how I interpret the intent of the endpoint: https://developer.github.com/v3/repos/contents/#get-archive-link
Once you have the link, you can do whatever you want with it, like creating a stream in Node.js.
Any thoughts from @octokit/rb?
from discussions.
For octokit.js, I have to keep browser-compatibility in mind, too, so streams are tough.
Makes sense!
Once you have the link, you can do whatever you want with it, like creating a stream in Node.js.
Or following that link in in a browser.
from discussions.
Related Issues (20)
- Maintainers sync - Nov 29 2017
- How to handle 2FA authentication? HOT 9
- Caching: handling 304 responses HOT 6
- v3 REST API documentation: Upload release asset HOT 5
- v3 REST API docs: inconsistencies in notifications_url URI templates HOT 8
- v3 REST API: Inconsistencies in DELETE endpoints with request bodies HOT 2
- GitHub-specific URI template parsing HOT 14
- v3 REST API: replace :varname with {varname} in endpoint route docs HOT 2
- Inconsistency in issue label endpoints in rest.js HOT 2
- Inconsistency in Lists of Official Libraries HOT 2
- Suggestion: show some metadata in list of third-party libraries HOT 1
- Include a Python library HOT 1
- How to handle "ENOTFOUND api.github.com" responses HOT 1
- GraphQL & query injection attacks
- Should this repo be archived? And migrate open issues to GitHub Discussions? HOT 3
- Where to direct support requests HOT 2
- Best practices for making it easy for contributors to run tests HOT 18
- Transition plan for node-github HOT 25
- Webhook support in octokit.js HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from discussions.