@@ -359,6 +359,59 @@ var _ = Describe("GitHub Client", func() {
359359 })
360360 })
361361
362+ Describe ("ListReleasesAssets without access token" , func () {
363+ BeforeEach (func () {
364+ source = Source {
365+ Owner : "concourse" ,
366+ Repository : "concourse" ,
367+ }
368+ })
369+ Context ("When list of assets return less than 100 items" , func () {
370+ BeforeEach (func () {
371+ var result []* github.ReleaseAsset
372+ for i := 1 ; i <= 50 ; i ++ {
373+ result = append (result , & github.ReleaseAsset {ID : github .Int64 (int64 (i ))})
374+ }
375+ server .AppendHandlers (
376+ ghttp .CombineHandlers (
377+ ghttp .VerifyRequest ("GET" , "/repos/concourse/concourse/releases/1/assets" , "per_page=100" ),
378+ ghttp .RespondWithJSONEncoded (200 , result ),
379+ ),
380+ )
381+ })
382+ It ("lists all release assets" , func () {
383+ releasesAssets , err := client .ListReleaseAssets (github.RepositoryRelease {ID : github .Int64 (1 )})
384+ Ω (err ).ShouldNot (HaveOccurred ())
385+ Expect (releasesAssets ).To (HaveLen (50 ))
386+ Expect (server .ReceivedRequests ()).To (HaveLen (1 ))
387+ })
388+ })
389+ Context ("When list of assets return more then 100 items" , func () {
390+ Context ("List graphql releases" , func () {
391+ BeforeEach (func () {
392+ var result []* github.ReleaseAsset
393+ for i := 1 ; i <= 102 ; i ++ {
394+ result = append (result , & github.ReleaseAsset {ID : github .Int64 (int64 (i ))})
395+ }
396+ server .AppendHandlers (
397+ ghttp .CombineHandlers (ghttp .VerifyRequest ("GET" , "/repos/concourse/concourse/releases/1/assets" , "per_page=100" ),
398+ ghttp .RespondWithJSONEncoded (200 , result [:100 ], http.Header {"Link" : []string {`</releases/1/assets?page=2>; rel="next"` }}),
399+ ),
400+ ghttp .CombineHandlers (ghttp .VerifyRequest ("GET" , "/repos/concourse/concourse/releases/1/assets" , "per_page=100&page=2" ),
401+ ghttp .RespondWithJSONEncoded (200 , result [100 :])),
402+ )
403+ })
404+ It ("list release assets" , func () {
405+ releasesAssets , err := client .ListReleaseAssets (github.RepositoryRelease {ID : github .Int64 (1 )})
406+ Ω (err ).ShouldNot (HaveOccurred ())
407+ Expect (releasesAssets ).To (HaveLen (102 ))
408+ Expect (server .ReceivedRequests ()).To (HaveLen (2 ))
409+ })
410+
411+ })
412+ })
413+ })
414+
362415 Describe ("GetRelease" , func () {
363416 BeforeEach (func () {
364417 source = Source {
0 commit comments