diff --git a/github-release.cabal b/github-release.cabal
--- a/github-release.cabal
+++ b/github-release.cabal
@@ -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
diff --git a/library/GitHubRelease.hs b/library/GitHubRelease.hs
--- a/library/GitHubRelease.hs
+++ b/library/GitHubRelease.hs
@@ -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
                 ]
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -39,4 +39,4 @@
 maintainer: Taylor Fausak
 name: github-release
 synopsis: Upload files to GitHub releases.
-version: '0.1.1'
+version: '0.1.2'
