mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 19:10:06 +00:00
Add Release Assets to GitHub Release object
This commit is contained in:
parent
b025b29161
commit
8d706c463c
2 changed files with 37 additions and 3 deletions
|
|
@ -11,10 +11,25 @@ namespace types
|
|||
namespace gh
|
||||
{
|
||||
|
||||
ReleaseAsset tag_invoke(boost::json::value_to_tag<ReleaseAsset>,
|
||||
const boost::json::value& jv)
|
||||
{
|
||||
auto& jo = jv.as_object();
|
||||
|
||||
ReleaseAsset asset {};
|
||||
|
||||
// Required parameters
|
||||
asset.name_ = jo.at("name").as_string();
|
||||
asset.contentType_ = jo.at("content_type").as_string();
|
||||
asset.browserDownloadUrl_ = jo.at("browser_download_url").as_string();
|
||||
|
||||
return asset;
|
||||
}
|
||||
|
||||
Release tag_invoke(boost::json::value_to_tag<Release>,
|
||||
const boost::json::value& jv)
|
||||
{
|
||||
auto jo = jv.as_object();
|
||||
auto& jo = jv.as_object();
|
||||
|
||||
Release release {};
|
||||
|
||||
|
|
@ -24,6 +39,9 @@ Release tag_invoke(boost::json::value_to_tag<Release>,
|
|||
release.draft_ = jo.at("draft").as_bool();
|
||||
release.prerelease_ = jo.at("prerelease").as_bool();
|
||||
|
||||
release.assets_ =
|
||||
boost::json::value_to<std::vector<ReleaseAsset>>(jo.at("assets"));
|
||||
|
||||
// Optional parameters
|
||||
if (jo.contains("body"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,6 +13,18 @@ namespace types
|
|||
namespace gh
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief GitHub Release Asset object
|
||||
*
|
||||
* <https://docs.github.com/en/rest/releases/assets?apiVersion=2022-11-28>
|
||||
*/
|
||||
struct ReleaseAsset
|
||||
{
|
||||
std::string name_ {};
|
||||
std::string contentType_ {};
|
||||
std::string browserDownloadUrl_ {};
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief GitHub Release object
|
||||
*
|
||||
|
|
@ -25,8 +37,12 @@ struct Release
|
|||
std::string body_ {};
|
||||
bool draft_ {};
|
||||
bool prerelease_ {};
|
||||
|
||||
std::vector<ReleaseAsset> assets_ {};
|
||||
};
|
||||
|
||||
ReleaseAsset tag_invoke(boost::json::value_to_tag<ReleaseAsset>,
|
||||
const boost::json::value& jv);
|
||||
Release tag_invoke(boost::json::value_to_tag<Release>,
|
||||
const boost::json::value& jv);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue