Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Apply paket github api token on github requests
  • Loading branch information
BlythMeister committed Jan 17, 2019
commit d7c0b3bc10e2e4436a08ac90f434e79531c38ece
4 changes: 0 additions & 4 deletions src/Paket.Core/Common/NetUtils.fs
Original file line number Diff line number Diff line change
Expand Up @@ -423,8 +423,6 @@ let createWebClient (url,auth:Auth option) =
client.Headers.Add("User-Agent", "Paket")
client.Proxy <- getDefaultProxyFor url

let githubToken = Environment.GetEnvironmentVariable "PAKET_GITHUB_API_TOKEN"

match auth with
| Some (Credentials({Username = username; Password = password; Type = AuthType.Basic})) ->
// htttp://stackoverflow.com/questions/16044313/webclient-httpwebrequest-with-basic-authentication-returns-404-not-found-for-v/26016919#26016919
Expand All @@ -442,8 +440,6 @@ let createWebClient (url,auth:Auth option) =
client.Credentials <- cred.GetCredential(new Uri(url), "NTLM")
| Some (Token token) ->
client.Headers.[HttpRequestHeader.Authorization] <- sprintf "token %s" token
| None when not (isNull githubToken) ->
client.Headers.[HttpRequestHeader.Authorization] <- sprintf "token %s" githubToken
| None ->
client.UseDefaultCredentials <- true
client
Expand Down
5 changes: 4 additions & 1 deletion src/Paket.Core/PackageManagement/Releases.fs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ let private doesNotExistsOrIsNewer (file : FileInfo) latest =

/// Downloads the latest version of the given files to the destination dir
let private downloadLatestVersionOf files destDir =
use client = createHttpClient(Constants.GitHubUrl, None)
let auth = Environment.GetEnvironmentVariable "PAKET_GITHUB_API_TOKEN"
|> fun x -> if isNull(x) then None else Some(Token(x))

use client = createHttpClient(Constants.GitHubUrl, auth)

trial {
let latest = "https://github.com/fsprojects/Paket/releases/latest";
Expand Down
8 changes: 6 additions & 2 deletions src/Paket.Core/PaketConfigFiles/DependenciesFile.fs
Original file line number Diff line number Diff line change
Expand Up @@ -254,8 +254,12 @@ type DependenciesFile(fileName,groups:Map<GroupName,DependenciesGroup>, textRepr
let externalLockDependencies =
group.ExternalLocks
|> List.map (fun x ->
if x.StartsWith("http://") || x.StartsWith("https://") then
use client = createHttpClient(x, None)
if x.ToLower().StartsWith("http://") || x.ToLower().StartsWith("https://") then
let auth = if x.ToLower().Contains("://github.com") then
Environment.GetEnvironmentVariable "PAKET_GITHUB_API_TOKEN" |> fun x -> if isNull(x) then None else Some(Token(x))
else
None
use client = createHttpClient(x, auth)
let folder = DirectoryInfo(Path.Combine(Path.GetTempPath(),"external_paket",(hash x).ToString()))
if not folder.Exists then
folder.Create()
Expand Down