GitHub、リリースを作成した時のレスポンスに upload_url というキーが含まれるので、それをそのまま再利用すればリリースにファイルを添付することができる。
なお、Enterpriseでも同じようにできる。
echo -n "Tag name? "; read tagname git tag $tagname tmpdata=/tmp/hoge-binary-release-$$.json cat <<EOF > $tmpdata { "tag_name": "$tagname", "target_commitish": "master", "name": "$tagname", "body": "release of hoge-binary version $tagname", "draft": false, "prerelease": false } EOF ret=$( curl -H "Authorization: token $GHE_TOKEN" -XPOST -d @"$tmpdata" https://enterprise.github.local/api/v3/repos/udzura/hoge-binary/releases ) # {?name} という形式でparamsが含まれるので置換 uploadURL=$( echo $ret | jq -r .upload_url | sed "s/{?name}/?name=hoge-binary-$tagname.darwin-amd64.zip/" ) echo "Upload URL: $uploadURL" ret2=$( curl -H "Authorization: token $GHE_TOKEN" \ -H "Accept: application/vnd.github.manifold-preview" \ -H "Content-Type: application/zip" \ --data-binary @"$FILE_TO_UPLOAD" "$uploadURL" ) echo "Result JSON:" echo $ret2 | jq .
Makefileなどでキックすると便利では。