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
|
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>,
|
Release tag_invoke(boost::json::value_to_tag<Release>,
|
||||||
const boost::json::value& jv)
|
const boost::json::value& jv)
|
||||||
{
|
{
|
||||||
auto jo = jv.as_object();
|
auto& jo = jv.as_object();
|
||||||
|
|
||||||
Release release {};
|
Release release {};
|
||||||
|
|
||||||
|
|
@ -24,6 +39,9 @@ Release tag_invoke(boost::json::value_to_tag<Release>,
|
||||||
release.draft_ = jo.at("draft").as_bool();
|
release.draft_ = jo.at("draft").as_bool();
|
||||||
release.prerelease_ = jo.at("prerelease").as_bool();
|
release.prerelease_ = jo.at("prerelease").as_bool();
|
||||||
|
|
||||||
|
release.assets_ =
|
||||||
|
boost::json::value_to<std::vector<ReleaseAsset>>(jo.at("assets"));
|
||||||
|
|
||||||
// Optional parameters
|
// Optional parameters
|
||||||
if (jo.contains("body"))
|
if (jo.contains("body"))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,18 @@ namespace types
|
||||||
namespace gh
|
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
|
* @brief GitHub Release object
|
||||||
*
|
*
|
||||||
|
|
@ -25,10 +37,14 @@ struct Release
|
||||||
std::string body_ {};
|
std::string body_ {};
|
||||||
bool draft_ {};
|
bool draft_ {};
|
||||||
bool prerelease_ {};
|
bool prerelease_ {};
|
||||||
|
|
||||||
|
std::vector<ReleaseAsset> assets_ {};
|
||||||
};
|
};
|
||||||
|
|
||||||
Release tag_invoke(boost::json::value_to_tag<Release>,
|
ReleaseAsset tag_invoke(boost::json::value_to_tag<ReleaseAsset>,
|
||||||
const boost::json::value& jv);
|
const boost::json::value& jv);
|
||||||
|
Release tag_invoke(boost::json::value_to_tag<Release>,
|
||||||
|
const boost::json::value& jv);
|
||||||
|
|
||||||
} // namespace gh
|
} // namespace gh
|
||||||
} // namespace types
|
} // namespace types
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue