github.com/google/go-github/v49@v49.1.0/github/apps_hooks_deliveries.go (about) 1 // Copyright 2021 The go-github AUTHORS. All rights reserved. 2 // 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 6 package github 7 8 import ( 9 "context" 10 "fmt" 11 ) 12 13 // ListHookDeliveries lists deliveries of an App webhook. 14 // 15 // GitHub API docs: https://docs.github.com/en/rest/apps/webhooks#list-deliveries-for-an-app-webhook 16 func (s *AppsService) ListHookDeliveries(ctx context.Context, opts *ListCursorOptions) ([]*HookDelivery, *Response, error) { 17 u, err := addOptions("app/hook/deliveries", opts) 18 if err != nil { 19 return nil, nil, err 20 } 21 22 req, err := s.client.NewRequest("GET", u, nil) 23 if err != nil { 24 return nil, nil, err 25 } 26 27 deliveries := []*HookDelivery{} 28 resp, err := s.client.Do(ctx, req, &deliveries) 29 if err != nil { 30 return nil, resp, err 31 } 32 33 return deliveries, resp, nil 34 } 35 36 // GetHookDelivery returns the App webhook delivery with the specified ID. 37 // 38 // GitHub API docs: https://docs.github.com/en/rest/apps/webhooks#get-a-delivery-for-an-app-webhook 39 func (s *AppsService) GetHookDelivery(ctx context.Context, deliveryID int64) (*HookDelivery, *Response, error) { 40 u := fmt.Sprintf("app/hook/deliveries/%v", deliveryID) 41 req, err := s.client.NewRequest("GET", u, nil) 42 if err != nil { 43 return nil, nil, err 44 } 45 46 h := new(HookDelivery) 47 resp, err := s.client.Do(ctx, req, h) 48 if err != nil { 49 return nil, resp, err 50 } 51 52 return h, resp, nil 53 } 54 55 // RedeliverHookDelivery redelivers a delivery for an App webhook. 56 // 57 // GitHub API docs: https://docs.github.com/en/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook 58 func (s *AppsService) RedeliverHookDelivery(ctx context.Context, deliveryID int64) (*HookDelivery, *Response, error) { 59 u := fmt.Sprintf("app/hook/deliveries/%v/attempts", deliveryID) 60 req, err := s.client.NewRequest("POST", u, nil) 61 if err != nil { 62 return nil, nil, err 63 } 64 65 h := new(HookDelivery) 66 resp, err := s.client.Do(ctx, req, h) 67 if err != nil { 68 return nil, resp, err 69 } 70 71 return h, resp, nil 72 }