mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 16: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,8 +37,12 @@ struct Release | ||||||
|    std::string body_ {}; |    std::string body_ {}; | ||||||
|    bool        draft_ {}; |    bool        draft_ {}; | ||||||
|    bool        prerelease_ {}; |    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>, | Release      tag_invoke(boost::json::value_to_tag<Release>, | ||||||
|                         const boost::json::value& jv); |                         const boost::json::value& jv); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat