如果剛剛創建了標記(https://github.com/tschulte/gradle-semantic-release-plugin/issues/3),那麼上傳現有標記的發行註記時會出現問題。我的代碼首先創建一個帶註釋的標籤並推送它。緊接着,它使用GitHub API來設置剛創建的版本的主體。這確實經常失敗 - 對於提交較少的新存儲庫的情況較少,更經常的情況是,如果存儲庫包含更多提交。使用GitHub API將發佈註釋文本上傳到GitHub有時會失敗
我用下面的bash腳本重現此問題
#!/bin/bash
set -e
user=tschulte
repo=github-releasetest
version="$1"
tag="v$version"
git tag $tag -m "Release of $version"
git push origin "$tag"
curl -i -X POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token $GH_TOKEN" \
"https://api.github.com/repos/$user/$repo/releases" \
-d "{\"tag_name\": \"$tag\", \"body\": \"# Changelog of $version\"}"
我跑的腳本在一個循環
export GH_TOKEN=...
for v in {61..100}; do ./issue3 $v; done
其結果是,不是所有的版本中的問題上傳。不能被上傳過繼GitHub的API返回(HTTP狀態代碼422)中的那些:
{
"message":"Validation Failed",
"errors":[
{
"resource":"Release",
"code":"custom",
"message":"Published releases must have a valid tag"
}
],
"documentation_url":"https://developer.github.com/v3/repos/releases/#create-a-release"
}
我知道我可以通過不使用git tag
和git push
,而是使用GitHub的API也解決我的代碼創建標籤,而不僅僅是設置發佈註釋文本。但是發佈註釋的上傳是現有行爲的附加,我不想改變。
還有什麼我可以做的嗎?或者這是API中的錯誤?