11package github
22
33import (
4+ "context"
45 "fmt"
56 "net"
67
8+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
79 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
810)
911
1012func dataSourceGithubIpRanges () * schema.Resource {
1113 return & schema.Resource {
1214 Description : "Get the GitHub IP ranges used by various GitHub services." ,
13- Read : dataSourceGithubIpRangesRead ,
15+ ReadContext : dataSourceGithubIpRangesRead ,
1416 Schema : map [string ]* schema.Schema {
1517 "hooks" : {
1618 Type : schema .TypeList ,
@@ -48,9 +50,22 @@ func dataSourceGithubIpRanges() *schema.Resource {
4850 Elem : & schema.Schema {Type : schema .TypeString },
4951 },
5052 "actions" : {
51- Type : schema .TypeList ,
52- Computed : true ,
53- Elem : & schema.Schema {Type : schema .TypeString },
53+ Type : schema .TypeList ,
54+ Computed : true ,
55+ Elem : & schema.Schema {Type : schema .TypeString },
56+ Description : "An array of IP addresses in CIDR format specifying the addresses that GitHub Actions will originate from." ,
57+ },
58+ "actions_macos" : {
59+ Type : schema .TypeList ,
60+ Computed : true ,
61+ Elem : & schema.Schema {Type : schema .TypeString },
62+ Description : "An array of IP addresses in CIDR format specifying the addresses that GitHub Actions macOS runners will originate from." ,
63+ },
64+ "github_enterprise_importer" : {
65+ Type : schema .TypeList ,
66+ Computed : true ,
67+ Elem : & schema.Schema {Type : schema .TypeString },
68+ Description : "An array of IP addresses in CIDR format specifying the addresses that GitHub Enterprise Importer will originate from." ,
5469 },
5570 "dependabot" : {
5671 Deprecated : "This attribute is no longer returned form the API, Dependabot now uses the GitHub Actions IP addresses." ,
@@ -94,9 +109,22 @@ func dataSourceGithubIpRanges() *schema.Resource {
94109 Elem : & schema.Schema {Type : schema .TypeString },
95110 },
96111 "actions_ipv4" : {
97- Type : schema .TypeList ,
98- Computed : true ,
99- Elem : & schema.Schema {Type : schema .TypeString },
112+ Type : schema .TypeList ,
113+ Computed : true ,
114+ Elem : & schema.Schema {Type : schema .TypeString },
115+ Description : "An array of IPv4 addresses in CIDR format specifying the addresses that GitHub Actions will originate from." ,
116+ },
117+ "actions_macos_ipv4" : {
118+ Type : schema .TypeList ,
119+ Computed : true ,
120+ Elem : & schema.Schema {Type : schema .TypeString },
121+ Description : "An array of IPv4 addresses in CIDR format specifying the addresses that GitHub Actions macOS runners will originate from." ,
122+ },
123+ "github_enterprise_importer_ipv4" : {
124+ Type : schema .TypeList ,
125+ Computed : true ,
126+ Elem : & schema.Schema {Type : schema .TypeString },
127+ Description : "An array of IPv4 addresses in CIDR format specifying the addresses that GitHub Enterprise Importer will originate from." ,
100128 },
101129 "dependabot_ipv4" : {
102130 Deprecated : "This attribute is no longer returned form the API, Dependabot now uses the GitHub Actions IP addresses." ,
@@ -140,9 +168,22 @@ func dataSourceGithubIpRanges() *schema.Resource {
140168 Elem : & schema.Schema {Type : schema .TypeString },
141169 },
142170 "actions_ipv6" : {
143- Type : schema .TypeList ,
144- Computed : true ,
145- Elem : & schema.Schema {Type : schema .TypeString },
171+ Type : schema .TypeList ,
172+ Computed : true ,
173+ Elem : & schema.Schema {Type : schema .TypeString },
174+ Description : "An array of IPv6 addresses in CIDR format specifying the addresses that GitHub Actions will originate from." ,
175+ },
176+ "actions_macos_ipv6" : {
177+ Type : schema .TypeList ,
178+ Computed : true ,
179+ Elem : & schema.Schema {Type : schema .TypeString },
180+ Description : "An array of IPv6 addresses in CIDR format specifying the addresses that GitHub Actions macOS runners will originate from." ,
181+ },
182+ "github_enterprise_importer_ipv6" : {
183+ Type : schema .TypeList ,
184+ Computed : true ,
185+ Elem : & schema.Schema {Type : schema .TypeString },
186+ Description : "An array of IPv6 addresses in CIDR format specifying the addresses that GitHub Enterprise Importer will originate from." ,
146187 },
147188 "dependabot_ipv6" : {
148189 Deprecated : "This attribute is no longer returned form the API, Dependabot now uses the GitHub Actions IP addresses." ,
@@ -154,177 +195,191 @@ func dataSourceGithubIpRanges() *schema.Resource {
154195 }
155196}
156197
157- func dataSourceGithubIpRangesRead (d * schema.ResourceData , meta any ) error {
198+ func dataSourceGithubIpRangesRead (ctx context. Context , d * schema.ResourceData , meta any ) diag. Diagnostics {
158199 owner := meta .(* Owner )
159200
160201 api , _ , err := owner .v3client .Meta .Get (owner .StopContext )
161202 if err != nil {
162- return err
203+ return diag . FromErr ( err )
163204 }
164205
165206 cidrHooksIpv4 , cidrHooksIpv6 , err := splitIpv4Ipv6Cidrs (& api .Hooks )
166207 if err != nil {
167- return err
208+ return diag . FromErr ( err )
168209 }
169210
170211 cidrGitIpv4 , cidrGitIpv6 , err := splitIpv4Ipv6Cidrs (& api .Git )
171212 if err != nil {
172- return err
213+ return diag . FromErr ( err )
173214 }
174215
175216 cidrPackagesIpv4 , cidrPackagesIpv6 , err := splitIpv4Ipv6Cidrs (& api .Packages )
176217 if err != nil {
177- return err
218+ return diag . FromErr ( err )
178219 }
179220
180221 cidrPagesIpv4 , cidrPagesIpv6 , err := splitIpv4Ipv6Cidrs (& api .Pages )
181222 if err != nil {
182- return err
223+ return diag . FromErr ( err )
183224 }
184225
185226 cidrImporterIpv4 , cidrImporterIpv6 , err := splitIpv4Ipv6Cidrs (& api .Importer )
186227 if err != nil {
187- return err
228+ return diag . FromErr ( err )
188229 }
189230
190231 cidrActionsIpv4 , cidrActionsIpv6 , err := splitIpv4Ipv6Cidrs (& api .Actions )
191232 if err != nil {
192- return err
233+ return diag .FromErr (err )
234+ }
235+
236+ cidrActionsMacosIpv4 , cidrActionsMacosIpv6 , err := splitIpv4Ipv6Cidrs (& api .ActionsMacos )
237+ if err != nil {
238+ return diag .FromErr (err )
239+ }
240+
241+ cidrGithubEnterpriseImporterIpv4 , cidrGithubEnterpriseImporterIpv6 , err := splitIpv4Ipv6Cidrs (& api .GithubEnterpriseImporter )
242+ if err != nil {
243+ return diag .FromErr (err )
193244 }
194245
195246 cidrDependabotIpv4 , cidrDependabotIpv6 , err := splitIpv4Ipv6Cidrs (& api .Dependabot )
196247 if err != nil {
197- return err
248+ return diag . FromErr ( err )
198249 }
199250
200251 cidrWebIpv4 , cidrWebIpv6 , err := splitIpv4Ipv6Cidrs (& api .Web )
201252 if err != nil {
202- return err
253+ return diag . FromErr ( err )
203254 }
204255
205256 cidrApiIpv4 , cidrApiIpv6 , err := splitIpv4Ipv6Cidrs (& api .API )
206257 if err != nil {
207- return err
258+ return diag . FromErr ( err )
208259 }
209260
210261 if len (api .Hooks )+ len (api .Git )+ len (api .Pages )+ len (api .Importer )+ len (api .Actions )+ len (api .Dependabot ) > 0 {
211262 d .SetId ("github-ip-ranges" )
212263 }
213264 if len (api .Hooks ) > 0 {
214- err = d .Set ("hooks" , api .Hooks )
215- if err != nil {
216- return err
265+ if err := d .Set ("hooks" , api .Hooks ); err != nil {
266+ return diag .FromErr (err )
217267 }
218- err = d .Set ("hooks_ipv4" , cidrHooksIpv4 )
219- if err != nil {
220- return err
268+ if err := d .Set ("hooks_ipv4" , cidrHooksIpv4 ); err != nil {
269+ return diag .FromErr (err )
221270 }
222- err = d .Set ("hooks_ipv6" , cidrHooksIpv6 )
223- if err != nil {
224- return err
271+ if err := d .Set ("hooks_ipv6" , cidrHooksIpv6 ); err != nil {
272+ return diag .FromErr (err )
225273 }
226274 }
227275 if len (api .Git ) > 0 {
228- err = d .Set ("git" , api .Git )
229- if err != nil {
230- return err
276+ if err := d .Set ("git" , api .Git ); err != nil {
277+ return diag .FromErr (err )
231278 }
232- err = d .Set ("git_ipv4" , cidrGitIpv4 )
233- if err != nil {
234- return err
279+ if err := d .Set ("git_ipv4" , cidrGitIpv4 ); err != nil {
280+ return diag .FromErr (err )
235281 }
236- err = d .Set ("git_ipv6" , cidrGitIpv6 )
237- if err != nil {
238- return err
282+ if err := d .Set ("git_ipv6" , cidrGitIpv6 ); err != nil {
283+ return diag .FromErr (err )
239284 }
240285 }
241286 if len (api .Packages ) > 0 {
242- _ = d .Set ("packages" , api .Packages )
243- _ = d .Set ("packages_ipv4" , cidrPackagesIpv4 )
244- _ = d .Set ("packages_ipv6" , cidrPackagesIpv6 )
287+ if err := d .Set ("packages" , api .Packages ); err != nil {
288+ return diag .FromErr (err )
289+ }
290+ if err := d .Set ("packages_ipv4" , cidrPackagesIpv4 ); err != nil {
291+ return diag .FromErr (err )
292+ }
293+ if err := d .Set ("packages_ipv6" , cidrPackagesIpv6 ); err != nil {
294+ return diag .FromErr (err )
295+ }
245296 }
246297 if len (api .Pages ) > 0 {
247- err = d .Set ("pages" , api .Pages )
248- if err != nil {
249- return err
298+ if err := d .Set ("pages" , api .Pages ); err != nil {
299+ return diag .FromErr (err )
250300 }
251- err = d .Set ("pages_ipv4" , cidrPagesIpv4 )
252- if err != nil {
253- return err
301+ if err := d .Set ("pages_ipv4" , cidrPagesIpv4 ); err != nil {
302+ return diag .FromErr (err )
254303 }
255- err = d .Set ("pages_ipv6" , cidrPagesIpv6 )
256- if err != nil {
257- return err
304+ if err := d .Set ("pages_ipv6" , cidrPagesIpv6 ); err != nil {
305+ return diag .FromErr (err )
258306 }
259307 }
260308 if len (api .Importer ) > 0 {
261- err = d .Set ("importer" , api .Importer )
262- if err != nil {
263- return err
309+ if err := d .Set ("importer" , api .Importer ); err != nil {
310+ return diag .FromErr (err )
264311 }
265- err = d .Set ("importer_ipv4" , cidrImporterIpv4 )
266- if err != nil {
267- return err
312+ if err := d .Set ("importer_ipv4" , cidrImporterIpv4 ); err != nil {
313+ return diag .FromErr (err )
268314 }
269- err = d .Set ("importer_ipv6" , cidrImporterIpv6 )
270- if err != nil {
271- return err
315+ if err := d .Set ("importer_ipv6" , cidrImporterIpv6 ); err != nil {
316+ return diag .FromErr (err )
272317 }
273318 }
274319 if len (api .Actions ) > 0 {
275- err = d .Set ("actions" , api .Actions )
276- if err != nil {
277- return err
320+ if err := d .Set ("actions" , api .Actions ); err != nil {
321+ return diag .FromErr (err )
278322 }
279- err = d .Set ("actions_ipv4" , cidrActionsIpv4 )
280- if err != nil {
281- return err
323+ if err := d .Set ("actions_ipv4" , cidrActionsIpv4 ); err != nil {
324+ return diag .FromErr (err )
282325 }
283- err = d .Set ("actions_ipv6" , cidrActionsIpv6 )
284- if err != nil {
285- return err
326+ if err := d .Set ("actions_ipv6" , cidrActionsIpv6 ); err != nil {
327+ return diag .FromErr (err )
328+ }
329+ }
330+ if len (api .ActionsMacos ) > 0 {
331+ if err := d .Set ("actions_macos" , api .ActionsMacos ); err != nil {
332+ return diag .FromErr (err )
333+ }
334+ if err := d .Set ("actions_macos_ipv4" , cidrActionsMacosIpv4 ); err != nil {
335+ return diag .FromErr (err )
336+ }
337+ if err := d .Set ("actions_macos_ipv6" , cidrActionsMacosIpv6 ); err != nil {
338+ return diag .FromErr (err )
339+ }
340+ }
341+ if len (api .GithubEnterpriseImporter ) > 0 {
342+ if err := d .Set ("github_enterprise_importer" , api .GithubEnterpriseImporter ); err != nil {
343+ return diag .FromErr (err )
344+ }
345+ if err := d .Set ("github_enterprise_importer_ipv4" , cidrGithubEnterpriseImporterIpv4 ); err != nil {
346+ return diag .FromErr (err )
347+ }
348+ if err := d .Set ("github_enterprise_importer_ipv6" , cidrGithubEnterpriseImporterIpv6 ); err != nil {
349+ return diag .FromErr (err )
286350 }
287351 }
288352 if len (api .Dependabot ) > 0 {
289- err = d .Set ("dependabot" , api .Dependabot )
290- if err != nil {
291- return err
353+ if err := d .Set ("dependabot" , api .Dependabot ); err != nil {
354+ return diag .FromErr (err )
292355 }
293- err = d .Set ("dependabot_ipv4" , cidrDependabotIpv4 )
294- if err != nil {
295- return err
356+ if err := d .Set ("dependabot_ipv4" , cidrDependabotIpv4 ); err != nil {
357+ return diag .FromErr (err )
296358 }
297- err = d .Set ("dependabot_ipv6" , cidrDependabotIpv6 )
298- if err != nil {
299- return err
359+ if err := d .Set ("dependabot_ipv6" , cidrDependabotIpv6 ); err != nil {
360+ return diag .FromErr (err )
300361 }
301362 }
302363 if len (api .Web ) > 0 {
303- err = d .Set ("web" , api .Web )
304- if err != nil {
305- return err
364+ if err := d .Set ("web" , api .Web ); err != nil {
365+ return diag .FromErr (err )
306366 }
307- err = d .Set ("web_ipv4" , cidrWebIpv4 )
308- if err != nil {
309- return err
367+ if err := d .Set ("web_ipv4" , cidrWebIpv4 ); err != nil {
368+ return diag .FromErr (err )
310369 }
311- err = d .Set ("web_ipv6" , cidrWebIpv6 )
312- if err != nil {
313- return err
370+ if err := d .Set ("web_ipv6" , cidrWebIpv6 ); err != nil {
371+ return diag .FromErr (err )
314372 }
315373 }
316374 if len (api .API ) > 0 {
317- err = d .Set ("api" , api .API )
318- if err != nil {
319- return err
375+ if err := d .Set ("api" , api .API ); err != nil {
376+ return diag .FromErr (err )
320377 }
321- err = d .Set ("api_ipv4" , cidrApiIpv4 )
322- if err != nil {
323- return err
378+ if err := d .Set ("api_ipv4" , cidrApiIpv4 ); err != nil {
379+ return diag .FromErr (err )
324380 }
325- err = d .Set ("api_ipv6" , cidrApiIpv6 )
326- if err != nil {
327- return err
381+ if err := d .Set ("api_ipv6" , cidrApiIpv6 ); err != nil {
382+ return diag .FromErr (err )
328383 }
329384 }
330385
0 commit comments