2017-10-07 11 views
1

CIを実行するたびにプルリクエストコメントを自動的に作成しようとしています。与えられたコマンドの出力はファイルに書き込まれます(ただし、環境変数の中に保存することもできます)。GitHub RESTリクエストへの補間コマンド

curl -XPOST -d "{'body':'$RESULT'}" https://api.github.com/repo/name/issues/number/comment 

{ 
    "message": "Problems parsing JSON", 
    "documentation_url": "https://developer.github.com/v3/issues/comments/#create-a-comment" 
} 

これは\n\t、似など

"は、コマンドラインでこれを達成する簡単な方法があり、原因unescpaed文字に通常である:問題は、私は通常、次の応答を取得しますまたはbash、sh、jqまたはPythonで? Octokit.rbライブラリを使用するとすぐに動作しますが、Rubyをビルド環境にインストールしたくありません。

答えて

0

jqを使用してJSONオブジェクトを作成できます。あなたはRESULT変数にコメントの内容を持っていると仮定すると、完全な要求は次のようになります。

DATA=$(echo '{}' | jq --arg val "$RESULT" '.| {"body": $val}') 

curl -s -H 'Content-Type: application/json' \ 
     -H 'Authorization: token YOUR_TOKEN' \ 
     -d "$DATA" \ 
     "https://api.github.com/repos/:owner/:repo/issues/:number/comments" 
0

ポストは「Using curl POST with variables defined in bash script functionsは」カールPOSTパラメータで$結果のようvarialbeを通すための複数の手法を提案しています。

generate_post_data() 
{ 
    cat <<EOF 
{ 
    "body": "$RESULT" 
} 
EOF 
} 

次に、 "A curl tutorial using GitHub's API" を次

curl -X POST \ 
-H "authToken: <yourToken" \ 
-H "Content-Type: application/json" \ 
--data "$(generate_post_data)" https://api.github.com/repo/name/issues/number/comment 
関連する問題