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