github-release 0.1.1 → 0.1.2
raw patch · 3 files changed
+26/−12 lines, 3 filesdep ~github-releasePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: github-release
API changes (from Hackage documentation)
+ GitHubRelease: authorizationHeader :: String -> Header
- GitHubRelease: getTag :: Manager -> String -> String -> String -> IO (Either String Object)
+ GitHubRelease: getTag :: Manager -> String -> String -> String -> String -> IO (Either String Object)
- GitHubRelease: getUploadUrl :: Manager -> String -> String -> String -> IO UriTemplate
+ GitHubRelease: getUploadUrl :: Manager -> String -> String -> String -> String -> IO UriTemplate
Files
- github-release.cabal +2/−2
- library/GitHubRelease.hs +23/−9
- package.yaml +1/−1
github-release.cabal view
@@ -1,5 +1,5 @@ name: github-release-version: 0.1.1+version: 0.1.2 cabal-version: >=1.10 build-type: Simple license: MIT@@ -46,7 +46,7 @@ main-is: Main.hs build-depends: base >=4.8.2.0 && <4.9,- github-release >=0.1.1 && <0.2+ github-release >=0.1.2 && <0.2 default-language: Haskell2010 hs-source-dirs: executable ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
library/GitHubRelease.hs view
@@ -62,7 +62,7 @@ upload :: String -> String -> String -> String -> FilePath -> String -> IO () upload aToken anOwner aRepo aTag aFile aName = do manager <- Client.newManager TLS.tlsManagerSettings- uploadUrl <- getUploadUrl manager anOwner aRepo aTag+ uploadUrl <- getUploadUrl manager aToken anOwner aRepo aTag response <- uploadFile manager uploadUrl aToken aFile aName case HTTP.statusCode (Client.responseStatus response) of 201 -> pure ()@@ -71,27 +71,41 @@ BSL.hPutStr IO.stderr (Client.responseBody response) fail "Failed to upload file to release!" -getUploadUrl :: Client.Manager -> String -> String -> String -> IO Template.UriTemplate-getUploadUrl manager anOwner aRepo aTag = do- (Right json) <- getTag manager anOwner aRepo aTag+getUploadUrl :: Client.Manager -> String -> String -> String -> String -> IO Template.UriTemplate+getUploadUrl manager aToken anOwner aRepo aTag = do+ (Right json) <- getTag manager aToken anOwner aRepo aTag let (Just (Aeson.String text)) = HashMap.lookup (Text.pack "upload_url") json let uploadUrl = Text.unpack text let (Right template) = Template.parseTemplate uploadUrl pure template -getTag :: Client.Manager -> String -> String -> String -> IO (Either String Aeson.Object)-getTag manager anOwner aRepo aTag = do+getTag :: Client.Manager -> String -> String -> String -> String -> IO (Either String Aeson.Object)+getTag manager aToken anOwner aRepo aTag = do let format = "https://api.github.com/repos/%s/%s/releases/tags/%s" let url = Printf.printf format anOwner aRepo aTag initialRequest <- Client.parseUrl url- let request = initialRequest { Client.requestHeaders = [userAgentHeader] }+ let request = initialRequest+ { Client.requestHeaders =+ [ authorizationHeader aToken+ , userAgentHeader+ ]+ } response <- Client.httpLbs request manager let body = Client.responseBody response let json = Aeson.eitherDecode body return json +authorizationHeader :: String -> HTTP.Header+authorizationHeader aToken =+ ( HTTP.hAuthorization+ , BS8.pack (Printf.printf "token %s" aToken)+ )+ userAgentHeader :: HTTP.Header-userAgentHeader = (HTTP.hUserAgent, BS8.pack userAgent)+userAgentHeader =+ ( HTTP.hUserAgent+ , BS8.pack userAgent+ ) userAgent :: String userAgent = Printf.printf "%s/%s-%s" "tfausak" "github-release" versionString@@ -115,7 +129,7 @@ { Client.method = BS8.pack "POST" , Client.requestBody = body , Client.requestHeaders =- [ (HTTP.hAuthorization, BS8.pack (Printf.printf "token %s" aToken))+ [ authorizationHeader aToken , (HTTP.hContentType, MIME.defaultMimeLookup (Text.pack aName)) , userAgentHeader ]
package.yaml view
@@ -39,4 +39,4 @@ maintainer: Taylor Fausak name: github-release synopsis: Upload files to GitHub releases.-version: '0.1.1'+version: '0.1.2'