1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 )
12
13
14 type GetAuditLogOptions struct {
15 Phrase *string `url:"phrase,omitempty"`
16 Include *string `url:"include,omitempty"`
17 Order *string `url:"order,omitempty"`
18
19 ListCursorOptions
20 }
21
22
23 type HookConfig struct {
24 ContentType *string `json:"content_type,omitempty"`
25 InsecureSSL *string `json:"insecure_ssl,omitempty"`
26 URL *string `json:"url,omitempty"`
27
28
29 Secret *string `json:"secret,omitempty"`
30 }
31
32
33 type ActorLocation struct {
34 CountryCode *string `json:"country_code,omitempty"`
35 }
36
37
38 type PolicyOverrideReason struct {
39 Code *string `json:"code,omitempty"`
40 Message *string `json:"message,omitempty"`
41 }
42
43
44
45 type AuditEntry struct {
46 ActorIP *string `json:"actor_ip,omitempty"`
47 Action *string `json:"action,omitempty"`
48 Active *bool `json:"active,omitempty"`
49 ActiveWas *bool `json:"active_was,omitempty"`
50 Actor *string `json:"actor,omitempty"`
51 ActorLocation *ActorLocation `json:"actor_location,omitempty"`
52 BlockedUser *string `json:"blocked_user,omitempty"`
53 Business *string `json:"business,omitempty"`
54 CancelledAt *Timestamp `json:"cancelled_at,omitempty"`
55 CompletedAt *Timestamp `json:"completed_at,omitempty"`
56 Conclusion *string `json:"conclusion,omitempty"`
57 Config *HookConfig `json:"config,omitempty"`
58 ConfigWas *HookConfig `json:"config_was,omitempty"`
59 ContentType *string `json:"content_type,omitempty"`
60 CreatedAt *Timestamp `json:"created_at,omitempty"`
61 DeployKeyFingerprint *string `json:"deploy_key_fingerprint,omitempty"`
62 DocumentID *string `json:"_document_id,omitempty"`
63 Emoji *string `json:"emoji,omitempty"`
64 EnvironmentName *string `json:"environment_name,omitempty"`
65 Event *string `json:"event,omitempty"`
66 Events []string `json:"events,omitempty"`
67 EventsWere []string `json:"events_were,omitempty"`
68 Explanation *string `json:"explanation,omitempty"`
69 Fingerprint *string `json:"fingerprint,omitempty"`
70 HashedToken *string `json:"hashed_token,omitempty"`
71 HeadBranch *string `json:"head_branch,omitempty"`
72 HeadSHA *string `json:"head_sha,omitempty"`
73 HookID *int64 `json:"hook_id,omitempty"`
74 IsHostedRunner *bool `json:"is_hosted_runner,omitempty"`
75 JobName *string `json:"job_name,omitempty"`
76 JobWorkflowRef *string `json:"job_workflow_ref,omitempty"`
77 LimitedAvailability *bool `json:"limited_availability,omitempty"`
78 Message *string `json:"message,omitempty"`
79 Name *string `json:"name,omitempty"`
80 OAuthApplicationID *int64 `json:"oauth_application_id,omitempty"`
81 OldUser *string `json:"old_user,omitempty"`
82 OldPermission *string `json:"old_permission,omitempty"`
83 OpenSSHPublicKey *string `json:"openssh_public_key,omitempty"`
84 OperationType *string `json:"operation_type,omitempty"`
85 Org *string `json:"org,omitempty"`
86 OrgID *int64 `json:"org_id,omitempty"`
87 OverriddenCodes []string `json:"overridden_codes,omitempty"`
88 Permission *string `json:"permission,omitempty"`
89 PreviousVisibility *string `json:"previous_visibility,omitempty"`
90 ProgrammaticAccessType *string `json:"programmatic_access_type,omitempty"`
91 PullRequestID *int64 `json:"pull_request_id,omitempty"`
92 PullRequestTitle *string `json:"pull_request_title,omitempty"`
93 PullRequestURL *string `json:"pull_request_url,omitempty"`
94 ReadOnly *string `json:"read_only,omitempty"`
95 Reasons []*PolicyOverrideReason `json:"reasons,omitempty"`
96 Repo *string `json:"repo,omitempty"`
97 Repository *string `json:"repository,omitempty"`
98 RepositoryPublic *bool `json:"repository_public,omitempty"`
99 RunAttempt *int64 `json:"run_attempt,omitempty"`
100 RunnerGroupID *int64 `json:"runner_group_id,omitempty"`
101 RunnerGroupName *string `json:"runner_group_name,omitempty"`
102 RunnerID *int64 `json:"runner_id,omitempty"`
103 RunnerLabels []string `json:"runner_labels,omitempty"`
104 RunnerName *string `json:"runner_name,omitempty"`
105 RunNumber *int64 `json:"run_number,omitempty"`
106 SecretsPassed []string `json:"secrets_passed,omitempty"`
107 SourceVersion *string `json:"source_version,omitempty"`
108 StartedAt *Timestamp `json:"started_at,omitempty"`
109 TargetLogin *string `json:"target_login,omitempty"`
110 TargetVersion *string `json:"target_version,omitempty"`
111 Team *string `json:"team,omitempty"`
112 Timestamp *Timestamp `json:"@timestamp,omitempty"`
113 TokenID *int64 `json:"token_id,omitempty"`
114 TokenScopes *string `json:"token_scopes,omitempty"`
115 Topic *string `json:"topic,omitempty"`
116 TransportProtocolName *string `json:"transport_protocol_name,omitempty"`
117 TransportProtocol *int `json:"transport_protocol,omitempty"`
118 TriggerID *int64 `json:"trigger_id,omitempty"`
119 User *string `json:"user,omitempty"`
120 UserAgent *string `json:"user_agent,omitempty"`
121 Visibility *string `json:"visibility,omitempty"`
122 WorkflowID *int64 `json:"workflow_id,omitempty"`
123 WorkflowRunID *int64 `json:"workflow_run_id,omitempty"`
124
125 Data *AuditEntryData `json:"data,omitempty"`
126 }
127
128
129 type AuditEntryData struct {
130 OldName *string `json:"old_name,omitempty"`
131 OldLogin *string `json:"old_login,omitempty"`
132 }
133
134
135
136
137 func (s *OrganizationsService) GetAuditLog(ctx context.Context, org string, opts *GetAuditLogOptions) ([]*AuditEntry, *Response, error) {
138 u := fmt.Sprintf("orgs/%v/audit-log", org)
139 u, err := addOptions(u, opts)
140 if err != nil {
141 return nil, nil, err
142 }
143
144 req, err := s.client.NewRequest("GET", u, nil)
145 if err != nil {
146 return nil, nil, err
147 }
148
149 var auditEntries []*AuditEntry
150 resp, err := s.client.Do(ctx, req, &auditEntries)
151 if err != nil {
152 return nil, resp, err
153 }
154
155 return auditEntries, resp, nil
156 }
157
View as plain text