2015-07-28 2 views
1

Я искал в Интернете какое-то время, и я не нашел надежного ответа на этот вопрос (хотя и много частичных ответов). Я ничего не делаю.Как загрузить прикрепление к проблеме JIRA через powershell?

Я пытаюсь написать сценарий powershell для отправки вложений в JIRA с использованием cURL (не нашел другого способа, которым я могу работать). Моя Curl команда:

C:\opt\curl\curl.exe -u user:pa$$word -X POST -H "X-Atlassian-Token: nocheck" -F "[email protected]:\opt\attachments\75391_testingPNG.png" http://jira.ourURL.com/rest/api/2/issue/75391/attachments 

Это отлично работает из командной строки. Каждый раз, когда я пытаюсь запустить его через powershell, он бомбит. Похоже, это должно быть очень легко сделать. Просто хочу захватить файлы из каталога и отправить их JIRA.

У кого-нибудь есть мысли об этом ??? Благодаря!

ответ

1

Я подозреваю, что символы $ и @ в аргументах могут вызывать проблемы (в случае, если это то, что вы используете). Попробуйте ускользнуть от них, используя символ обратного хода.

Для запуска curl.exe с использованием указанных параметров, попробуйте выполнить следующую команду:

Start-Process C:\opt\curl\curl.exe -argumentList "-u", "user:pa`$`$Word", "-X", "POST", "-H", "`"X-Atlassian-Token: nocheck`"", "-F", "`"file=`@C:\opt\attachments\75391_testingPNG.png`"", "http://jira.ourURL.com/rest/api/2/issue/75391/attachments" 

В основном это означает, что где бы вы отделить аргументы с пробелом в командной строке, вы послали бы каждый аргумент как элемент в строке powershell Array и использовать его как значение в параметре -argumentlist для Start-Process.

+0

Ну, это, кажется, немного. Хотя он не пытается решить хост-ночек. Таким образом, похоже, что он не выполняет команду правильно, все еще. И если я удалю это, он ничего не делает (не уверен, что JIRA блокирует его, потому что nocheck отсутствует?). – W3BGUY

+1

Вместо этого вы пытались использовать «X-Atlassian-Token: nocheck»? (Нет пробела после двоеточия) – Jower

+0

Это останавливает эту ошибку ... Хотя, сейчас она не аутентифицируется правильно. Просто возвращает 403, так как он не правильно отправляет имя пользователя и пароль. – W3BGUY

1

Если вы используете PowerShell 3+, вы можете использовать нативный метод Invoke-RestMethod поговорить с JIRA, и не придется беспокоиться о побеге символы раскошеливаться на команду:

# Build a basic auth header: 

$headers = @{ 
    'Authorization' = "Basic $([System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $UserName, $Password))))" 
    'X-Atlassian-Token' = 'nocheck' 
} 
Invoke-RestMethod -Uri "http://jira.ourURL.com/rest/api/2/issue/75391/attachments" -Method Post -InFile "C:\opt\attachments\75391_testingPNG.png" -ContentType "multipart/form-data" -Headers $headers 

Я на самом деле не уверен, что заголовок nocheck, который вы добавляете, Я не нуждался в нем, когда говорил с JIRA над REST.

Смежные вопросы