gist_plugin: Handle multiple redirects, stopping if we find a circular reference
This commit is contained in:
parent
0ead88e6c2
commit
a66e031166
@ -78,8 +78,11 @@ module Jekyll
|
|||||||
gist_url = get_gist_url_for(gist, file)
|
gist_url = get_gist_url_for(gist, file)
|
||||||
data = get_web_content(gist_url)
|
data = get_web_content(gist_url)
|
||||||
|
|
||||||
if data.code.to_i == 302
|
locations = Array.new
|
||||||
|
while (data.code.to_i == 301 || data.code.to_i == 302)
|
||||||
data = handle_gist_redirecting(data)
|
data = handle_gist_redirecting(data)
|
||||||
|
break if locations.include? data.header['Location']
|
||||||
|
locations << data.header['Location']
|
||||||
end
|
end
|
||||||
|
|
||||||
if data.code.to_i != 200
|
if data.code.to_i != 200
|
||||||
@ -95,6 +98,7 @@ module Jekyll
|
|||||||
if redirected_url.nil? || redirected_url.empty?
|
if redirected_url.nil? || redirected_url.empty?
|
||||||
raise ArgumentError, "GitHub replied with a 302 but didn't provide a location in the response headers."
|
raise ArgumentError, "GitHub replied with a 302 but didn't provide a location in the response headers."
|
||||||
end
|
end
|
||||||
|
|
||||||
get_web_content(redirected_url)
|
get_web_content(redirected_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user