@@ -289,54 +289,42 @@ extract_cran_msg <- function(msg) {
289289}
290290
291291upload_cran <- function (pkg , built_path , call = parent.frame()) {
292+ check_installed(" httr2" )
293+
292294 pkg <- as.package(pkg )
293295 maint <- maintainer(pkg )
294296 comments <- cran_comments(pkg , call = call )
295297
296298 # Initial upload ---------
297299 cli :: cli_inform(c(i = " Uploading package & comments" ))
298- check_installed(" httr" )
299- body <- list (
300+ req <- httr2 :: request(cran_submission_url )
301+ req <- httr2 :: req_body_multipart(
302+ req ,
300303 pkg_id = " " ,
301304 name = maint $ name ,
302305 email = maint $ email ,
303- uploaded_file = httr :: upload_file (built_path , " application/x-gzip" ),
306+ uploaded_file = curl :: form_file (built_path , " application/x-gzip" ),
304307 comment = comments ,
305308 upload = " Upload package"
306309 )
307- r <- httr :: POST(cran_submission_url , body = body )
308-
309- # If a 404 likely CRAN is closed for maintenance, try to get the message
310- if (httr :: status_code(r ) == 404 ) {
311- msg <- " "
312- try({
313- r2 <- httr :: GET(sub(" index2" , " index" , cran_submission_url ))
314- msg <- extract_cran_msg(httr :: content(r2 , " text" ))
315- })
316- cli :: cli_abort(
317- c(
318- " *" = " Submission failed" ,
319- " x" = msg
320- ),
321- call = call
322- )
323- }
324-
325- httr :: stop_for_status(r )
326- new_url <- httr :: parse_url(r $ url )
310+ resp <- httr2 :: req_perform(req )
311+ new_url <- httr2 :: url_parse(httr2 :: resp_url(resp ))
327312
328313 # Confirmation -----------
329314 cli :: cli_inform(c(i = " Confirming submission" ))
330- body <- list (
315+
316+ req <- httr2 :: request(cran_submission_url )
317+ req <- httr2 :: req_body_multipart(
318+ req ,
331319 pkg_id = new_url $ query $ pkg_id ,
332320 name = maint $ name ,
333321 email = maint $ email ,
334322 policy_check = " 1/" ,
335323 submit = " Submit package"
336324 )
337- r <- httr :: POST( cran_submission_url , body = body )
338- httr :: stop_for_status( r )
339- new_url <- httr :: parse_url( r $ url )
325+
326+ resp <- httr2 :: req_perform( req )
327+ new_url <- httr2 :: url_parse( httr2 :: resp_url( resp ) )
340328 if (new_url $ query $ submit == " 1" ) {
341329 cli :: cli_inform(c(
342330 " v" = " Package submission successful" ,
0 commit comments