Skip to content

Commit

Permalink
add audit_log endpoint with tests (#1481)
Browse files Browse the repository at this point in the history
* add audit_log endpoint with tests

Signed-off-by: Brend Smits <brend.smits@philips.com>

* Update link to correct GitHub docs

Signed-off-by: Brend Smits <brend.smits@philips.com>

Co-authored-by: Tim Rogers <timrogers@github.com>

Signed-off-by: Brend Smits <brend.smits@philips.com>
Co-authored-by: Tim Rogers <timrogers@github.com>
  • Loading branch information
Brend-Smits and timrogers authored Sep 12, 2022
1 parent ec2f429 commit 3e821a5
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
20 changes: 20 additions & 0 deletions lib/octokit/client/organizations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -823,6 +823,26 @@ def unlock_repository(org, id, repo, options = {})
def billing_actions(org)
get "#{Organization.path(org)}/settings/billing/actions"
end

# Get organization audit log.
#
# Gets the audit log for an organization.
#
# @param org [String, Integer] Organization GitHub login or id for which
# to retrieve the audit log.
# @option options [String] :include ('all') Filter by event type.
# `all`, `git` or `web`.
# @option options [String] :phrase A search phrase.
# @option options [String] :order ('desc') The order of audit log events. To list newest events first, specify desc.
# To list oldest events first, specify asc.
#
# @return [Array<Sawyer::Resource>] List of events
# @see https://docs.github.com/en/enterprise-cloud@latest/rest/orgs/orgs#get-the-audit-log-for-an-organization
# @example
# Octokit.organization_audit_log('github', {include: 'all', phrase: 'action:org.add_member created:>2022-08-29 user:octocat'})
def organization_audit_log(org, options = {})
paginate "#{Organization.path org}/audit-log", options
end
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"http_interactions":[{"request":{"method":"get","uri":"https://api.github.com/orgs/api-playground/audit-log?include=all&phrase=action:org.add_member%20created:%3E2022-08-29","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/vnd.github.v3+json"],"User-Agent":["Octokit Ruby Gem 5.4.0"],"Content-Type":["application/json"],"Authorization":["token <<ACCESS_TOKEN>>"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["GitHub.com"],"Date":["Thu, 08 Sep 2022 09:46:38 GMT"],"Content-Type":["application/json; charset=utf-8"],"Transfer-Encoding":["chunked"],"Cache-Control":["private, max-age=60, s-maxage=60"],"Vary":["Accept, Authorization, Cookie, X-GitHub-OTP","Accept-Encoding, Accept, X-Requested-With"],"Etag":["W/\"b3452f345082e67e0b56ebea9a8eb8a079d51bebf854b03ad5087fcdc011f276\""],"X-Oauth-Scopes":["admin:org, repo:org, write:org"],"X-Accepted-Oauth-Scopes":["admin:org, read:org, write:org"],"Github-Authentication-Token-Expiration":["2022-09-08 22:00:00 UTC"],"X-Github-Media-Type":["github.v3; format=json"],"X-Ratelimit-Limit":["5000"],"X-Ratelimit-Remaining":["4991"],"X-Ratelimit-Reset":["1662630565"],"X-Ratelimit-Used":["9"],"X-Ratelimit-Resource":["core"],"Access-Control-Expose-Headers":["ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset"],"Access-Control-Allow-Origin":["*"],"Strict-Transport-Security":["max-age=31536000; includeSubdomains; preload"],"X-Frame-Options":["deny"],"X-Content-Type-Options":["nosniff"],"X-Xss-Protection":["0"],"Referrer-Policy":["origin-when-cross-origin, strict-origin-when-cross-origin"],"Content-Security-Policy":["default-src 'none'"],"X-Github-Request-Id":["4133:295B:16ADE1C:17110CD:6319B9FE"]},"body":{"encoding":"ASCII-8BIT","base64_string":"WwogICAgewogICAgICAgICJhY3RvciI6ICJvY3Rva2l0IiwKICAgICAgICAiY3JlYXRlZF9hdCI6IDE2NjE4MzY2MTA2NjIsCiAgICAgICAgIm9yZyI6ICJjb2RlZm9yYW1lcmljYSIsCiAgICAgICAgInBlcm1pc3Npb24iOiAicmVhZCIsCiAgICAgICAgIkB0aW1lc3RhbXAiOiAxNjYxODM2NjEwNjYyLAogICAgICAgICJidXNpbmVzcyI6ICJjb2RlZm9yYW1lcmljYSIsCiAgICAgICAgInVzZXIiOiAibmV3LW9jdG9raXQiLAogICAgICAgICJhY3Rpb24iOiAib3JnLmFkZF9tZW1iZXIiLAogICAgICAgICJfZG9jdW1lbnRfaWQiOiAiREtqVWR2aVRBcTViU0cxVEdtOGxjQSIsCiAgICAgICAgIm9wZXJhdGlvbl90eXBlIjogImNyZWF0ZSIKICAgIH0KXQ=="}},"recorded_at":"Thu, 08 Sep 2022 09:46:38 GMT"}],"recorded_with":"VCR 6.1.0"}
8 changes: 8 additions & 0 deletions spec/octokit/client/organizations_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -411,4 +411,12 @@
assert_requested :get, github_url("/orgs/#{test_github_org}/settings/billing/actions")
end
end

describe '.organization_audit_log', :vcr do
it 'returns audit log for an organization' do
audit_log = @client.organization_audit_log(test_github_org, { include: 'all', phrase: 'action:org.add_member created:>2022-08-29' })
expect(audit_log).to be_kind_of Array
assert_requested :get, github_url("/orgs/#{test_github_org}/audit-log?include=all&phrase=action:org.add_member%20created:%3E2022-08-29")
end
end
end

0 comments on commit 3e821a5

Please sign in to comment.