From aa5f9a7310f5686dc552ac13c3d5b26d41c2ca77 Mon Sep 17 00:00:00 2001 From: Keegan Campbell Date: Mon, 30 Oct 2023 14:44:07 -0700 Subject: [PATCH 01/75] Bump version to v8 (#1642) --- lib/octokit/version.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/octokit/version.rb b/lib/octokit/version.rb index c184cab30..140a8d7fe 100644 --- a/lib/octokit/version.rb +++ b/lib/octokit/version.rb @@ -3,11 +3,11 @@ module Octokit # Current major release. # @return [Integer] - MAJOR = 7 + MAJOR = 8 # Current minor release. # @return [Integer] - MINOR = 2 + MINOR = 0 # Current patch level. # @return [Integer] From ed692187cf2b8238b820e3e85a517357c42a75e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 16:34:23 -0800 Subject: [PATCH 02/75] Update rubocop requirement from 1.57.1 to 1.57.2 (#1641) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.57.1...v1.57.2) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 4c489c572..a1bd50aff 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.57.1' + gem 'rubocop', '1.57.2' end gemspec From 125b58a43eb320abbca8646f7fe02e8efd1d18bf Mon Sep 17 00:00:00 2001 From: Octokit Bot Date: Wed, 22 Nov 2023 15:35:36 -0600 Subject: [PATCH 03/75] don't run immediate response on Actions- or octokitbot-driven changes (#1643) Updates for workflows --- .github/workflows/immediate-response.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/immediate-response.yml b/.github/workflows/immediate-response.yml index 1a21a731e..d3a3cda45 100644 --- a/.github/workflows/immediate-response.yml +++ b/.github/workflows/immediate-response.yml @@ -11,7 +11,7 @@ on: - opened jobs: respond-to-issue: - if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} + if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' && github.actor != 'githubactions[bot]' && github.actor != 'octokitbot' }} runs-on: ubuntu-latest steps: - name: Determine issue or PR number From dcbfa148ea1b41d83aac7bd4a39265ef90aab417 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 17:18:39 -0800 Subject: [PATCH 04/75] Update rubocop requirement from 1.57.2 to 1.58.0 (#1644) * Update rubocop requirement from 1.57.2 to 1.58.0 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.57.2...v1.58.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] * Run bundle exec rubocop -a --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Keegan Campbell --- Gemfile | 2 +- lib/octokit/middleware/follow_redirects.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index a1bd50aff..6427dcc35 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.57.2' + gem 'rubocop', '1.58.0' end gemspec diff --git a/lib/octokit/middleware/follow_redirects.rb b/lib/octokit/middleware/follow_redirects.rb index 319a0ee49..fe291cf2c 100644 --- a/lib/octokit/middleware/follow_redirects.rb +++ b/lib/octokit/middleware/follow_redirects.rb @@ -15,7 +15,7 @@ class RedirectLimitReached < Faraday::ClientError attr_reader :response def initialize(response) - super "too many redirects; last one to: #{response['location']}" + super("too many redirects; last one to: #{response['location']}") @response = response end end From 1fa5a0afea1a8af510986509c62eecd1573d33d9 Mon Sep 17 00:00:00 2001 From: "@Zoya" <84071291+gigDevelopment10@users.noreply.github.com> Date: Sat, 9 Dec 2023 11:08:53 +0530 Subject: [PATCH 05/75] Fix documentation for oauth_applications [ci skip] --- lib/octokit/client/oauth_applications.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/octokit/client/oauth_applications.rb b/lib/octokit/client/oauth_applications.rb index 92d5ac877..6db7197ba 100644 --- a/lib/octokit/client/oauth_applications.rb +++ b/lib/octokit/client/oauth_applications.rb @@ -65,7 +65,7 @@ def reset_token(access_token, options = {}) # # @example # client = Octokit::Client.new(:client_id => 'abcdefg12345', :client_secret => 'secret') - # client.delete_token('deadbeef1234567890deadbeef987654321') + # client.delete_app_token('deadbeef1234567890deadbeef987654321') def delete_app_token(access_token, options = {}) options[:access_token] = access_token From aa953ada0f4192e39471a7b016ad31dcd3d40611 Mon Sep 17 00:00:00 2001 From: Octokit Bot <33075676+octokitbot@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:29:09 +0000 Subject: [PATCH 06/75] Updates for workflows --- .github/workflows/immediate-response.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/immediate-response.yml b/.github/workflows/immediate-response.yml index d3a3cda45..4bb10f5ef 100644 --- a/.github/workflows/immediate-response.yml +++ b/.github/workflows/immediate-response.yml @@ -6,7 +6,7 @@ on: issues: types: - opened - pull_request: + pull_request_target: types: - opened jobs: From 36d8ab5e9ef8ee8f602e9ed5842e60dd96e48e1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 19:20:40 +0000 Subject: [PATCH 07/75] Bump actions/stale from 8 to 9 Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/stale.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index ab1724b2e..693b0bf89 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -9,7 +9,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: stale-issue-message: > 👋 Hey Friends, this issue has been automatically marked as `stale` because it has no recent activity. From 799472c3a763e98a8fb5af352c7068dac6197ae9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 19:25:39 +0000 Subject: [PATCH 08/75] Update rubocop requirement from 1.58.0 to 1.59.0 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.58.0...v1.59.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 6427dcc35..7b5a40ffc 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.58.0' + gem 'rubocop', '1.59.0' end gemspec From cf9b2afd104f0650dbd674a197e4c1f64df339de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 13:09:21 -0800 Subject: [PATCH 09/75] Bump github/codeql-action from 2 to 3 (#1650) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index aabf0987f..01e2e51d9 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -44,7 +44,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -58,7 +58,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹī¸ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -71,4 +71,4 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 From 863269559e235c008132d02d748fe3a785d6a02f Mon Sep 17 00:00:00 2001 From: "@Zoya" <84071291+gigDevelopment10@users.noreply.github.com> Date: Sat, 30 Dec 2023 00:13:35 +0530 Subject: [PATCH 10/75] Renew access token with refresh access token --- lib/octokit/client/users.rb | 27 +++++++++++++++++ spec/fixtures/renew_access_token.json | 8 +++++ spec/octokit/client/users_spec.rb | 43 +++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 spec/fixtures/renew_access_token.json diff --git a/lib/octokit/client/users.rb b/lib/octokit/client/users.rb index 8f33bf6a3..34e557910 100644 --- a/lib/octokit/client/users.rb +++ b/lib/octokit/client/users.rb @@ -57,6 +57,33 @@ def exchange_code_for_token(code, app_id = client_id, app_secret = client_secret post "#{web_endpoint}login/oauth/access_token", options end + # Refresh a user's access token with a refresh token. + # + # Applications can refresh an access token without requiring a user to re-authorize using refresh access token. + # + # @param code [String] 40 character GitHub OAuth refresh access token + # + # @return [Sawyer::Resource] + # @see https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens#refreshing-a-user-access-token-with-a-refresh-token + # + # @example + # client = Octokit::Client.new(:client_id => 'abcdefg12345', :client_secret => 'secret') + # client.refresh_access_token('40-character-refresh-token') + def refresh_access_token(code, app_id = client_id, app_secret = client_secret, options = {}) + options = options.merge({ + refresh_token: code, + client_id: app_id, + client_secret: app_secret, + grant_type: 'refresh_token', + headers: { + content_type: 'application/json', + accept: 'application/json' + } + }) + + post "#{web_endpoint}login/oauth/access_token", options + end + # Validate user username and password # # @param options [Hash] User credentials diff --git a/spec/fixtures/renew_access_token.json b/spec/fixtures/renew_access_token.json new file mode 100644 index 000000000..91fb116ab --- /dev/null +++ b/spec/fixtures/renew_access_token.json @@ -0,0 +1,8 @@ +{ + "scope": "", + "expires_in": 28800, + "token_type": "bearer", + "access_token": "new_access_token", + "refresh_token": "new_refresh_token", + "refresh_token_expires_in": 15811200 +} diff --git a/spec/octokit/client/users_spec.rb b/spec/octokit/client/users_spec.rb index 5c8d779a6..91de8ccc0 100644 --- a/spec/octokit/client/users_spec.rb +++ b/spec/octokit/client/users_spec.rb @@ -267,6 +267,49 @@ end # with credentials passed as parameters end # .exchange_code_for_token + describe '.refresh_access_token' do + context 'with application authenticated client' do + it 'returns the access_token' do + request_body = { + refresh_token: 'code', + client_id: '123', + client_secret: '345', + grant_type: 'refresh_token' + } + + client = Octokit::Client.new( + client_id: request_body[:client_id], + client_secret: request_body[:client_secret] + ) + + request = stub_post('https://github.com/login/oauth/access_token') + .with( + basic_auth: [request_body[:client_id], request_body[:client_secret]], + body: request_body.to_json + ).to_return(json_response('renew_access_token.json')) + + response = client.refresh_access_token('code') + + expect(response.access_token).to eq 'new_access_token' + expect(response.refresh_token).to eq 'new_refresh_token' + assert_requested request + end + end # with application authenticated client + + context 'with credentials passed as parameters by unauthed client' do + it 'returns the access_token' do + client = Octokit::Client.new + post = stub_request(:post, 'https://github.com/login/oauth/access_token') + .with(body: { refresh_token: 'code', client_id: 'id', client_secret: 'secret', grant_type: 'refresh_token' }.to_json) + .to_return(json_response('renew_access_token.json')) + response = client.refresh_access_token('code', 'id', 'secret') + expect(response.access_token).to eq 'new_access_token' + expect(response.refresh_token).to eq 'new_refresh_token' + assert_requested post + end # with credentials passed as parameters + end # .refresh_access_token + end + describe '.migrations', :vcr do it 'starts a migration for a user' do result = @client.start_user_migration(['snakeoil-ceo/the-insecure'], lock_repositories: true) From 731761513bf777efaa5c74427f9849a96f186e71 Mon Sep 17 00:00:00 2001 From: Keith Marcum <13613+kamarcum@users.noreply.github.com> Date: Fri, 5 Jan 2024 16:20:29 -0600 Subject: [PATCH 11/75] Add support for org secrets (#1655) * Add methods for Org Actions Secrets * Add methods for Org Codespaces Secrets * Add methods for Org Dependabot Secrets --- lib/octokit/client/actions_secrets.rb | 49 ++ lib/octokit/client/codespaces_secrets.rb | 49 ++ lib/octokit/client/dependabot_secrets.rb | 49 ++ ...org_public_key_for_secrets_encryption.json | 124 ++++ .../updating_existing_secret_returns_204.json | 561 ++++++++++++++++ .../delete_existing_secret.json | 442 +++++++++++++ ...turn_timestamps_related_to_one_secret.json | 455 +++++++++++++ .../auto-paginates_the_results.json | 606 ++++++++++++++++++ .../paginates_the_results.json | 458 +++++++++++++ .../returns_list_of_two_secrets.json | 455 +++++++++++++ .../creating_secret_returns_201.json | 243 +++++++ .../returns_empty_list_of_secrets.json | 124 ++++ ...fic_public_key_for_secrets_encryption.json | 124 ++++ .../updating_existing_secret_returns_204.json | 561 ++++++++++++++++ .../delete_existing_secret.json | 442 +++++++++++++ ...turn_timestamps_related_to_one_secret.json | 455 +++++++++++++ .../auto-paginates_the_results.json | 580 +++++++++++++++++ .../paginates_the_results.json | 484 ++++++++++++++ .../returns_list_of_two_secrets.json | 455 +++++++++++++ .../creating_secret_returns_201.json | 243 +++++++ .../returns_empty_list_of_secrets.json | 124 ++++ ...fic_public_key_for_secrets_encryption.json | 124 ++++ .../updating_existing_secret_returns_204.json | 561 ++++++++++++++++ .../delete_existing_secret.json | 442 +++++++++++++ ...turn_timestamps_related_to_one_secret.json | 481 ++++++++++++++ .../auto-paginates_the_results.json | 580 +++++++++++++++++ .../paginates_the_results.json | 458 +++++++++++++ .../returns_list_of_two_secrets.json | 455 +++++++++++++ .../creating_secret_returns_201.json | 243 +++++++ .../returns_empty_list_of_secrets.json | 124 ++++ spec/octokit/client/actions_secrets_spec.rb | 105 +++ .../octokit/client/codespaces_secrets_spec.rb | 105 +++ .../octokit/client/dependabot_secrets_spec.rb | 210 ++++++ 33 files changed, 10971 insertions(+) create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org/_get_org_actions_public_key/get_org_public_key_for_secrets_encryption.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_create_or_update_org_actions_secret/updating_existing_secret_returns_204.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_delete_org_actions_secret/delete_existing_secret.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_get_org_actions_secret/return_timestamps_related_to_one_secret.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/auto-paginates_the_results.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/paginates_the_results.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/returns_list_of_two_secrets.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_create_or_update_org_actions_secret/creating_secret_returns_201.json create mode 100644 spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_list_org_actions_secrets/returns_empty_list_of_secrets.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org/_get_org_codespaces_public_key/get_org_specific_public_key_for_secrets_encryption.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_create_or_update_org_codespaces_secret/updating_existing_secret_returns_204.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_delete_org_codespaces_secret/delete_existing_secret.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_get_org_codespaces_secret/return_timestamps_related_to_one_secret.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/auto-paginates_the_results.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/paginates_the_results.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/returns_list_of_two_secrets.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_create_or_update_org_codespaces_secret/creating_secret_returns_201.json create mode 100644 spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_list_org_codespaces_secrets/returns_empty_list_of_secrets.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org/_get_org_dependabot_public_key/get_org_specific_public_key_for_secrets_encryption.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_create_or_update_org_dependabot_secret/updating_existing_secret_returns_204.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_delete_org_dependabot_secret/delete_existing_secret.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_get_org_dependabot_secret/return_timestamps_related_to_one_secret.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/auto-paginates_the_results.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/paginates_the_results.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/returns_list_of_two_secrets.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_create_or_update_org_dependabot_secret/creating_secret_returns_201.json create mode 100644 spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_list_org_dependabot_secrets/returns_empty_list_of_secrets.json diff --git a/lib/octokit/client/actions_secrets.rb b/lib/octokit/client/actions_secrets.rb index d6cd611b7..1abf2a7f4 100644 --- a/lib/octokit/client/actions_secrets.rb +++ b/lib/octokit/client/actions_secrets.rb @@ -15,6 +15,15 @@ def get_actions_public_key(repo) get "#{Repository.path repo}/actions/secrets/public-key" end + # Get public key for secrets encryption + # + # @param org [String] A GitHub organization + # @return [Hash] key_id and key + # @see https://developer.github.com/v3/actions/secrets/#get-your-public-key + def get_org_actions_public_key(org) + get "#{Organization.path org}/actions/secrets/public-key" + end + # List secrets # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -26,6 +35,17 @@ def list_actions_secrets(repo) end end + # List org secrets + # + # @param org [String] A GitHub organization + # @return [Hash] total_count and list of secrets (each item is hash with name, created_at and updated_at) + # @see https://developer.github.com/v3/actions/secrets/#list-organization-secrets + def list_org_actions_secrets(org) + paginate "#{Organization.path org}/actions/secrets" do |data, last_response| + data.secrets.concat last_response.data.secrets + end + end + # Get a secret # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -36,6 +56,16 @@ def get_actions_secret(repo, name) get "#{Repository.path repo}/actions/secrets/#{name}" end + # Get an org secret + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @return [Hash] name, created_at and updated_at + # @see https://developer.github.com/v3/actions/secrets/#get-a-secret + def get_org_actions_secret(org, name) + get "#{Organization.path org}/actions/secrets/#{name}" + end + # Create or update secrets # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -46,6 +76,16 @@ def create_or_update_actions_secret(repo, name, options) put "#{Repository.path repo}/actions/secrets/#{name}", options end + # Create or update org secrets + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @param options [Hash] encrypted_value and key_id + # @see https://developer.github.com/v3/actions/secrets/#create-or-update-a-secret + def create_or_update_org_actions_secret(org, name, options) + put "#{Organization.path org}/actions/secrets/#{name}", options + end + # Delete a secret # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -55,6 +95,15 @@ def delete_actions_secret(repo, name) boolean_from_response :delete, "#{Repository.path repo}/actions/secrets/#{name}" end + # Delete an org secret + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @see https://developer.github.com/v3/actions/secrets/#delete-a-secret + def delete_org_actions_secret(org, name) + boolean_from_response :delete, "#{Organization.path org}/actions/secrets/#{name}" + end + # Get environment public key for secrets encryption # # @param repo [Integer, String, Hash, Repository] A GitHub repository diff --git a/lib/octokit/client/codespaces_secrets.rb b/lib/octokit/client/codespaces_secrets.rb index 7923685f2..08fa2f5b4 100644 --- a/lib/octokit/client/codespaces_secrets.rb +++ b/lib/octokit/client/codespaces_secrets.rb @@ -15,6 +15,15 @@ def get_codespaces_public_key(repo) get "#{Repository.path repo}/codespaces/secrets/public-key" end + # Get public key for secrets encryption + # + # @param org [String] A GitHub organization + # @return [Hash] key_id and key + # @see https://docs.github.com/en/rest/codespaces/organization-secrets?apiVersion=2022-11-28#get-an-organization-public-key + def get_org_codespaces_public_key(org) + get "#{Organization.path org}/codespaces/secrets/public-key" + end + # List secrets # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -26,6 +35,17 @@ def list_codespaces_secrets(repo) end end + # List org secrets + # + # @param org [String] A GitHub organization + # @return [Hash] total_count and list of secrets (each item is hash with name, created_at and updated_at) + # @see https://docs.github.com/en/rest/codespaces/organization-secrets?apiVersion=2022-11-28#list-organization-secrets + def list_org_codespaces_secrets(org) + paginate "#{Organization.path org}/codespaces/secrets" do |data, last_response| + data.secrets.concat last_response.data.secrets + end + end + # Get a secret # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -36,6 +56,16 @@ def get_codespaces_secret(repo, name) get "#{Repository.path repo}/codespaces/secrets/#{name}" end + # Get an org secret + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @return [Hash] name, created_at, updated_at, and visibility + # @see https://docs.github.com/en/rest/codespaces/organization-secrets?apiVersion=2022-11-28#get-an-organization-secret + def get_org_codespaces_secret(org, name) + get "#{Organization.path org}/codespaces/secrets/#{name}" + end + # Create or update secrets # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -46,6 +76,16 @@ def create_or_update_codespaces_secret(repo, name, options) put "#{Repository.path repo}/codespaces/secrets/#{name}", options end + # Create or update org secrets + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @param options [Hash] encrypted_value and key_id + # @see https://docs.github.com/en/rest/codespaces/organization-secrets?apiVersion=2022-11-28#create-or-update-an-organization-secret + def create_or_update_org_codespaces_secret(org, name, options) + put "#{Organization.path org}/codespaces/secrets/#{name}", options + end + # Delete a secret # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -54,6 +94,15 @@ def create_or_update_codespaces_secret(repo, name, options) def delete_codespaces_secret(repo, name) boolean_from_response :delete, "#{Repository.path repo}/codespaces/secrets/#{name}" end + + # Delete an org secret + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @see https://docs.github.com/en/rest/codespaces/organization-secrets?apiVersion=2022-11-28#delete-an-organization-secret + def delete_org_codespaces_secret(org, name) + boolean_from_response :delete, "#{Organization.path org}/codespaces/secrets/#{name}" + end end end end diff --git a/lib/octokit/client/dependabot_secrets.rb b/lib/octokit/client/dependabot_secrets.rb index 687c1b479..5ac765a5a 100644 --- a/lib/octokit/client/dependabot_secrets.rb +++ b/lib/octokit/client/dependabot_secrets.rb @@ -15,6 +15,15 @@ def get_dependabot_public_key(repo) get "#{Repository.path repo}/dependabot/secrets/public-key" end + # Get public key for secrets encryption + # + # @param org [String] A GitHub organization + # @return [Hash] key_id and key + # @see https://docs.github.com/en/rest/dependabot/organization-secrets?apiVersion=2022-11-28#get-an-organization-public-key + def get_org_dependabot_public_key(org) + get "#{Organization.path org}/dependabot/secrets/public-key" + end + # List secrets # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -26,6 +35,17 @@ def list_dependabot_secrets(repo) end end + # List org secrets + # + # @param org [String] A GitHub organization + # @return [Hash] total_count and list of secrets (each item is hash with name, created_at and updated_at) + # @see https://docs.github.com/en/rest/dependabot/organization-secrets?apiVersion=2022-11-28#list-organization-secrets + def list_org_dependabot_secrets(org) + paginate "#{Organization.path org}/dependabot/secrets" do |data, last_response| + data.secrets.concat last_response.data.secrets + end + end + # Get a secret # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -36,6 +56,16 @@ def get_dependabot_secret(repo, name) get "#{Repository.path repo}/dependabot/secrets/#{name}" end + # Get an org secret + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @return [Hash] name, created_at, updated_at, and visibility + # @see https://docs.github.com/en/rest/dependabot/organization-secrets?apiVersion=2022-11-28#get-an-organization-secret + def get_org_dependabot_secret(org, name) + get "#{Organization.path org}/dependabot/secrets/#{name}" + end + # Create or update secrets # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -46,6 +76,16 @@ def create_or_update_dependabot_secret(repo, name, options) put "#{Repository.path repo}/dependabot/secrets/#{name}", options end + # Create or update org secrets + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @param options [Hash] encrypted_value and key_id + # @see https://docs.github.com/en/rest/dependabot/organization-secrets?apiVersion=2022-11-28#create-or-update-an-organization-secret + def create_or_update_org_dependabot_secret(org, name, options) + put "#{Organization.path org}/dependabot/secrets/#{name}", options + end + # Delete a secret # # @param repo [Integer, String, Hash, Repository] A GitHub repository @@ -54,6 +94,15 @@ def create_or_update_dependabot_secret(repo, name, options) def delete_dependabot_secret(repo, name) boolean_from_response :delete, "#{Repository.path repo}/dependabot/secrets/#{name}" end + + # Delete an org secret + # + # @param org [String] A GitHub organization + # @param name [String] Name of secret + # @see https://docs.github.com/en/rest/dependabot/organization-secrets?apiVersion=2022-11-28#delete-an-organization-secret + def delete_org_dependabot_secret(org, name) + boolean_from_response :delete, "#{Organization.path org}/dependabot/secrets/#{name}" + end end end end diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org/_get_org_actions_public_key/get_org_public_key_for_secrets_encryption.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org/_get_org_actions_public_key/get_org_public_key_for_secrets_encryption.json new file mode 100644 index 000000000..626ef47d6 --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org/_get_org_actions_public_key/get_org_public_key_for_secrets_encryption.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 21:53:47 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4989" + ], + "X-Ratelimit-Reset": [ + "1702418555" + ], + "X-Ratelimit-Used": [ + "11" + ], + "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": [ + "C796:323D:92063D:970C7C:6578D66B" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 21:53:47 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_create_or_update_org_actions_secret/updating_existing_secret_returns_204.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_create_or_update_org_actions_secret/updating_existing_secret_returns_204.json new file mode 100644 index 000000000..22374ecbd --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_create_or_update_org_actions_secret/updating_existing_secret_returns_204.json @@ -0,0 +1,561 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:57:46 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4936" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "64" + ], + "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": [ + "C9D2:2411:CFBE:D8D0:6578E56A" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:57:46 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJVSC9WOXRhZ3N2VUkwb2xQLzVwMmVQSUEzQVV6bFdiMThDb24rcGwy\ncGtvbmIyalB1V0lLeFV5cENVWjk1VmFYenExbksrVHBtaHJjZFhUcCIsInZp\nc2liaWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:57:46 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4935" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "65" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C9D3:323D:A393D3:A93D5D:6578E56A" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:57:46 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiI3aXdybzQ5Uno5OXlIaFVyQVdWSy8zWDNLWC9LaGFGOHo4TUY3OCtO\nK0NoV3VZdjluelV0MWlGV2p1SGwyMndudDcxdlNOTkhiTUc1c1BRT1pBPT0i\nLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:57:47 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4934" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "66" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C9D4:2512:B4518D:B9FC39:6578E56A" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:57:47 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:57:47 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4933" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "67" + ], + "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": [ + "C9D5:0333:B0DCDA:B690CF:6578E56B" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:57:47 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiIyem51c0hPNlVKRHlCdUdHOE5kRjgvQWJvUXFjMGVBQlpWVlNjSWxi\nV0Z2NzRtMVY5YnRtNUdWYTR6KzhJUnNrVHIyTE1tRmxWUWcxIiwidmlzaWJp\nbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:57:47 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4932" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "68" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C9D6:9D10:B91BA4:BEC5F9:6578E56B" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:57:47 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_delete_org_actions_secret/delete_existing_secret.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_delete_org_actions_secret/delete_existing_secret.json new file mode 100644 index 000000000..7b62544f4 --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_delete_org_actions_secret/delete_existing_secret.json @@ -0,0 +1,442 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:38:10 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4967" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "33" + ], + "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": [ + "C8D6:19CB:A18FC9:A7085B:6578E0D2" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:38:10 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJKK3ZZcmx5R1c3UkdibE1aRXE5QzMzcWI1NWUrYnRlSWFxNHJzc0xC\nQlErZWQ5RFF1UEp0RHJSUEEwWmE2MFcvZnErRERZK1NrZ2hRM1BvciIsInZp\nc2liaWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:38:10 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4966" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "34" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8D7:9D10:B32EEE:B8A739:6578E0D2" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:38:10 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJSblJkRU1yWDhIUUpIS2tiZlZYN0o2cnlmZ0crUHpTMG9Yd3piblFX\naGlkMFFXeFU5UW5rNnVNbVZoTlBuQ3RWMnJ3dWtNTCtsOFpoNXFhRGVnPT0i\nLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:38:11 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4965" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "35" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8D8:0C75:A4B46F:AA3539:6578E0D2" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:38:11 GMT" + }, + { + "request": { + "method": "delete", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:38:11 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4964" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "36" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8D9:3671:B6E6F9:BC5F64:6578E0D3" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:38:11 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_get_org_actions_secret/return_timestamps_related_to_one_secret.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_get_org_actions_secret/return_timestamps_related_to_one_secret.json new file mode 100644 index 000000000..c076d46ad --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_get_org_actions_secret/return_timestamps_related_to_one_secret.json @@ -0,0 +1,455 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:41:34 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4955" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "45" + ], + "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": [ + "C8F1:323D:9F420E:A4C248:6578E19E" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:41:34 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJSSjBPNWwxNi9FU1ZEeWlrb0o1elVFaTM3dzhwZzdOL01MakJJYldH\nSDFKOHhsbndDMTROaHYwc2JaTVZYRmRXbnlKZHhxSkwxM1lpZEpqQSIsInZp\nc2liaWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:41:34 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4954" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "46" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8F2:0333:AC476E:B1D1CF:6578E19E" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:41:34 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiI1WXI4b2w5Y21nK2JsSnRRTVJTaVgrR2lTRUZvUlpVNy80TU9hVmFW\nMVhVdTA4WmpzTFljTGdPUUlnc0dUc2g3KytZRlE5aHVJYVFDbmwvVnBnPT0i\nLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:41:34 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4953" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "47" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8F3:2512:AF734D:B4F491:6578E19E" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:41:34 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:41:35 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/\"a4c5f6627b15ebb517d3b25c92544eea00df6b97a37a20f2ae77021947281aae\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4952" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "48" + ], + "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": [ + "C8F4:84D0:B5BC52:BB5EF7:6578E19F" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJuYW1lIjoiU0VDUkVUX05BTUUiLCJjcmVhdGVkX2F0IjoiMjAyMy0xMi0x\nMlQyMjozOTowMloiLCJ1cGRhdGVkX2F0IjoiMjAyMy0xMi0xMlQyMjo0MToz\nNVoiLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:41:35 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/auto-paginates_the_results.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/auto-paginates_the_results.json new file mode 100644 index 000000000..eea8fff2e --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/auto-paginates_the_results.json @@ -0,0 +1,606 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:34:14 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4986" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "14" + ], + "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": [ + "C8B0:372E:B7871F:BD06C4:6578DFE6" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:34:14 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJuVFZwdmYwRm5sdWkrdmFhS0NoblN2UzRGb09mcEwxeURsSDc1K25h\ndm5odDRCM2hHdnowZms2TkwrRnYxNXJxOVNQYnNHYU45K0g1aW1OWiIsInZp\nc2liaWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:34:14 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"d5f61838397b8a0e30906d08a5e681f131eabf9bd1f7c651aca95cefa97824f8\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4985" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "15" + ], + "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": [ + "C8B1:2512:AD1CE9:B28B86:6578DFE6" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:34:14 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiIxOHJ0R0JEbzIzTml6MkVNdytsYVRjOHpUZm9NNTRxMGhrVzVWMTZq\na0NPN2pXaE1KRitYM1VOMnpHbUFUZTh3Z1RTR3Y1ZVVEWElTTkdiKzlRPT0i\nLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:34:15 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"d5f61838397b8a0e30906d08a5e681f131eabf9bd1f7c651aca95cefa97824f8\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4984" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "16" + ], + "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": [ + "C8B2:9D10:B20FB1:B77E0A:6578DFE6" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:34:15 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets?per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:34:15 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/\"5a154d06691665d38b147306901033daef2851b6f31e0296408e064656575b01\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"next\", ; rel=\"last\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4983" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "17" + ], + "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": [ + "C8B3:0333:AA0619:AF7DC6:6578DFE7" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjMtMTItMTJUMjI6MzQ6MTVaIiwidXBk\nYXRlZF9hdCI6IjIwMjMtMTItMTJUMjI6MzQ6MTVaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifV19\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:34:15 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/organizations/64329988/actions/secrets?page=2&per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:34:15 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/\"8442058bb414fa3d5483cd3b8a3df2e903626d1e07b0f162e9f1dca9c631a945\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"prev\", ; rel=\"first\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4982" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "18" + ], + "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": [ + "C8B4:0C75:A39E4D:A914FC:6578DFE7" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FMiIsImNyZWF0ZWRfYXQiOiIyMDIzLTEyLTEyVDIyOjM0OjE1WiIsInVw\nZGF0ZWRfYXQiOiIyMDIzLTEyLTEyVDIyOjM0OjE1WiIsInZpc2liaWxpdHki\nOiJwcml2YXRlIn1dfQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:34:15 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/paginates_the_results.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/paginates_the_results.json new file mode 100644 index 000000000..3e5e5fb52 --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/paginates_the_results.json @@ -0,0 +1,458 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:35:57 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4981" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "19" + ], + "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": [ + "C8BF:323D:9DD152:A3433C:6578E04D" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:57 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJDemNDTzhZek1nWHFzRTRMdmY3emlvVU1OV1VRQWlhMUtQV2krZU51\nSTJibXlyNWFmYi9Ja3Q2TSs1aktIcG56UVBpRGVLbG02WmgycFpCSSIsInZp\nc2liaWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:35:57 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4980" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "20" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8C0:40AD:A89493:AE07A9:6578E04D" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:57 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJRVmV2RGQ3cU9BOXgwZnIwR1Q2Y2lFdk5zZXFhcmxSSlNVOGRzNURa\ncVNWMVhyWjQ4Qnp2WUJVeGtwdVNBQ3VtUEtEWUM1b0VBeHk4U3hwV3VRPT0i\nLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:35:58 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4979" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "21" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8C1:4A8C:A426F9:A9AAEA:6578E04D" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:58 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets?per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:35:58 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/\"6b0af939cb57483b11ed4a29cb5f7265468b65c6903a7f00eedfc3c42c654d99\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"next\", ; rel=\"last\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4978" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "22" + ], + "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": [ + "C8C2:8D09:918ACD:9696DB:6578E04E" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjMtMTItMTJUMjI6MzQ6MTVaIiwidXBk\nYXRlZF9hdCI6IjIwMjMtMTItMTJUMjI6MzU6NThaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifV19\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:58 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/returns_list_of_two_secrets.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/returns_list_of_two_secrets.json new file mode 100644 index 000000000..695708361 --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_with_a_secret/_list_org_actions_secrets/returns_list_of_two_secrets.json @@ -0,0 +1,455 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:35:58 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4977" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "23" + ], + "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": [ + "C8C3:3D46:CC0DD6:D1920E:6578E04E" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:58 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJFUXBrY2xXOSt4WGo2a0M5TDNMZis2cVpLZWFvYXFkcGxPUDdwMnR4\ndFg1Z3RGNk1yWENOMis5THk2NU5QZXk0Unk4UU5ydHZwWWhpK2NzNCIsInZp\nc2liaWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:35:58 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4976" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "24" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8C4:323D:9DD2B6:A344BD:6578E04E" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:58 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJrT1ArZHlVcGhkeWZpMkNJS0c5Y1Y3NDJwZkpCcXdFK052M1lYVHRJ\nTTFxVnZGL3ViQXRjNkcwamh3L09SL29KWmFHQ2tkdVJaWmNmdWl1TlhBPT0i\nLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:35:59 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4975" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "25" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "C8C5:3D46:CC0E6A:D192A1:6578E04E" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:59 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:35:59 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/\"a1883ba2159cb5edd69eb7479b2d0ea94349e1f6eefddc508149275e1fa17804\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4974" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "26" + ], + "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": [ + "C8C6:372E:B810E3:BD9500:6578E04F" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjMtMTItMTJUMjI6MzQ6MTVaIiwidXBk\nYXRlZF9hdCI6IjIwMjMtMTItMTJUMjI6MzU6NTlaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifSx7Im5hbWUiOiJTRUNSRVRfTkFNRTIiLCJjcmVhdGVkX2F0\nIjoiMjAyMy0xMi0xMlQyMjozNDoxNVoiLCJ1cGRhdGVkX2F0IjoiMjAyMy0x\nMi0xMlQyMjozNTo1OVoiLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9XX0=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:35:59 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_create_or_update_org_actions_secret/creating_secret_returns_201.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_create_or_update_org_actions_secret/creating_secret_returns_201.json new file mode 100644 index 000000000..588f3bbd1 --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_create_or_update_org_actions_secret/creating_secret_returns_201.json @@ -0,0 +1,243 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 22:58:54 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/\"aa41a98fa5415fc5a3e22c00ea9be5c5d60b20bac3cf4fcecbf1b751180b3347\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4931" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "69" + ], + "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": [ + "C9DE:372E:BFBDE1:C57D28:6578E5AE" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJrZXkiOiJPSkU3Q1dq\nOEFPZVY1cUVaeUVnck1oZ1RGTjlaK3FPNzlmUUN4cmJiUkZFPSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:58:54 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//actions/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiI1NjgyNTAxNjcyNDI1NDk3NDMiLCJlbmNyeXB0ZWRfdmFs\ndWUiOiJtYVZ0TUgwMGNWK0J0MmZLZzRjOWVub0NIWHV6YUpjcHlDRjJ0S0Y0\nNEViaktubkI3Mi9ucC82THhhSU02RzRpTWN3ODZmdG05bGVTK01OSCIsInZp\nc2liaWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 22:58:54 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"d5f61838397b8a0e30906d08a5e681f131eabf9bd1f7c651aca95cefa97824f8\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4930" + ], + "X-Ratelimit-Reset": [ + "1702422736" + ], + "X-Ratelimit-Used": [ + "70" + ], + "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": [ + "C9DF:5870:B82929:BDE800:6578E5AE" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 22:58:54 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_list_org_actions_secrets/returns_empty_list_of_secrets.json b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_list_org_actions_secrets/returns_empty_list_of_secrets.json new file mode 100644 index 000000000..c1575bf86 --- /dev/null +++ b/spec/cassettes/Octokit_Client_ActionsSecrets/with_an_org_without_secrets/_list_org_actions_secrets/returns_empty_list_of_secrets.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//actions/secrets", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 21:59:16 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/\"beb6cae5ef946ee4ac4913986e76dc98598219b95a1bc51d6b40123d39650367\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4988" + ], + "X-Ratelimit-Reset": [ + "1702418555" + ], + "X-Ratelimit-Used": [ + "12" + ], + "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": [ + "C7B5:915F:9B885A:A09DF1:6578D7B4" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6MCwic2VjcmV0cyI6W119\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 21:59:16 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org/_get_org_codespaces_public_key/get_org_specific_public_key_for_secrets_encryption.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org/_get_org_codespaces_public_key/get_org_specific_public_key_for_secrets_encryption.json new file mode 100644 index 000000000..ef6cb4696 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org/_get_org_codespaces_public_key/get_org_specific_public_key_for_secrets_encryption.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:30 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4935" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "65" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBAE:7D76:BC1A6:C16F3:6578EEBA" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:30 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_create_or_update_org_codespaces_secret/updating_existing_secret_returns_204.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_create_or_update_org_codespaces_secret/updating_existing_secret_returns_204.json new file mode 100644 index 000000000..8c17221c3 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_create_or_update_org_codespaces_secret/updating_existing_secret_returns_204.json @@ -0,0 +1,561 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:26 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4950" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "50" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB9F:7720:A2955:A7DCB:6578EEB6" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:26 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiYzZxTTY3amJ0b244N244cHdMZlM2Z2duU1NsQVBiT3IveXEwdldw\nVTNXRjNqYkxHWVNxbU5yZXQ0MjllL0lOeXZrRFM2dnpLcDdBZkN1L2QiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:26 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4949" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "51" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBA0:1012:A007B:A5606:6578EEB6" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:26 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiVXIxNXkvUFhpR3JTOXVCQ3llUjM4TUtyL1V5VjBUZ3VaM3NiWWhQ\nS2RSWHFDdGNQd2ZPNG4wVDJ0dHIycnZleVh5dnpXcTJhR3EyWWo5SXdMdz09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:26 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4948" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "52" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBA1:1160:A790B:ACDA3:6578EEB6" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:26 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:26 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4947" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "53" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBA2:87E2:96507:9BA14:6578EEB6" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:26 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiQ2dkcXZQT0ZXVGZXeGQ3ZEdlRE1jZUY2K3RZcmZIZlRzMmZ4czZ3\nQU94UFFwaWtIWGVXNlBpQ0M5UXUrVG1OQ1VJWHNtQkxQdlZEMSIsInZpc2li\naWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:27 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4946" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "54" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBA3:1D20:94677:99C05:6578EEB7" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:27 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_delete_org_codespaces_secret/delete_existing_secret.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_delete_org_codespaces_secret/delete_existing_secret.json new file mode 100644 index 000000000..a867c4954 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_delete_org_codespaces_secret/delete_existing_secret.json @@ -0,0 +1,442 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:28 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4941" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "59" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBA8:37E4:9B0FC:A0695:6578EEB8" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:28 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiS0JUbTN2cHFoOU1BaXRiVHZsbm5Ic0NiRXpEWVRNMWJqRXRobUxz\nMWtCZCtFWDRNeURHTkZoL2ttd2NXa2FwVXpIK2dYWGFNRDluSFdkTjQiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:28 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4940" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "60" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBA9:37E4:9B13E:A06D1:6578EEB8" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:28 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoieTdLb29Hb01GTE9nTzFNQTFTcStqbXFJMWlDYnIyTFhqcHF2V3hk\nYy9ua1NjN1ZHTlJkY04xb0N6Z3NjN0VHZTdDamZjRUF4WVBNenI3Vm42dz09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:29 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4939" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "61" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBAA:37E4:9B172:A071C:6578EEB8" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:29 GMT" + }, + { + "request": { + "method": "delete", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:29 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4938" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "62" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBAB:98CE:97E67:9D305:6578EEB9" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:29 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_get_org_codespaces_secret/return_timestamps_related_to_one_secret.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_get_org_codespaces_secret/return_timestamps_related_to_one_secret.json new file mode 100644 index 000000000..4827ed106 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_get_org_codespaces_secret/return_timestamps_related_to_one_secret.json @@ -0,0 +1,455 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:27 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4945" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "55" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBA4:2345:97A6D:9CFFC:6578EEB7" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:27 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiYW9KVGFPQUtoLzFmR1FXK2hacyswcVJ6M2JDTWcxRTFWL29WTk1G\ndFcxM1BsS0dBU1FlMldpdXZtMlZTNG9WSVZoR3NZeTNUVU96QzFaazIiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:27 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4944" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "56" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBA5:891E:A5CE1:AB276:6578EEB7" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:27 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiT0xBaGY4YWxMNmVtQjFjWk5QQlljVnRyOUZSMlNaYWFwRDhGeUNQ\nendseUpoVll1eVdEM082VklxVHc1UVNzaVdzcDBEZ0Q2SjlYK003OVM4QT09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:28 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4943" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "57" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CBA6:7D76:BBE2E:C1349:6578EEB7" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:28 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:28 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/\"5fa19ff508e49419df445491123e06a20c4aec864715b351d14721f15d8cdac6\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4942" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "58" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBA7:891E:A5D94:AB32C:6578EEB8" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJuYW1lIjoiU0VDUkVUX05BTUUiLCJjcmVhdGVkX2F0IjoiMjAyMy0xMi0x\nMlQyMzozNzoyM1oiLCJ1cGRhdGVkX2F0IjoiMjAyMy0xMi0xMlQyMzozNzoy\nOFoiLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:28 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/auto-paginates_the_results.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/auto-paginates_the_results.json new file mode 100644 index 000000000..0bb6aaef2 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/auto-paginates_the_results.json @@ -0,0 +1,580 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:24 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4955" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "45" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB9A:87E2:96267:9B76D:6578EEB4" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:24 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoia0M3bk9HalZtUFdXRGRNN0lVOCtRQWVrMCt3SEtDSW9qOVdaK1RX\nZ0J6ekhyRUdsMTJuYVN4SjlPMmhCbEpkMkZOQlk1Uk9peWVrcmZwdzgiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:25 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4954" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "46" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CB9B:359F:B4B52:B9FC0:6578EEB4" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:25 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiZEtmc00xRGgzeXh2eWxKZmV1Tk5vZ1V1ckwwbDNWOUlQckQ4QVAy\nVXZWY2FNaUFQZC83OXBjK1B2U3ZZZ2gxd0trdXEwcDZLbjBMWmJwYUlQZz09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:25 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4953" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "47" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CB9C:9A5D:954CD:9A93A:6578EEB5" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:25 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets?per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:25 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/\"468f9e05a666fedfbb9403ea5d8afb4842b77d0efc1a9b02acc3ed148116d1c2\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"next\", ; rel=\"last\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4952" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "48" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB9D:9A5D:95524:9A995:6578EEB5" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjMtMTItMTJUMjM6Mzc6MjNaIiwidXBk\nYXRlZF9hdCI6IjIwMjMtMTItMTJUMjM6Mzc6MjVaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifV19\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:25 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/organizations/64329988/codespaces/secrets?page=2&per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:25 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/\"a27163371d06cc94d3487dc518a89130362e1908a69e68060f632f78a1990046\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"prev\", ; rel=\"first\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4951" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "49" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB9E:188C:9822C:9D6AB:6578EEB5" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FMiIsImNyZWF0ZWRfYXQiOiIyMDIzLTEyLTEyVDIzOjM3OjIzWiIsInVw\nZGF0ZWRfYXQiOiIyMDIzLTEyLTEyVDIzOjM3OjI1WiIsInZpc2liaWxpdHki\nOiJwcml2YXRlIn1dfQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:25 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/paginates_the_results.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/paginates_the_results.json new file mode 100644 index 000000000..bd5ea1c36 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/paginates_the_results.json @@ -0,0 +1,484 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:22 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4963" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "37" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB92:0689:96F09:9C366:6578EEB2" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:22 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiSDZhZkc1WXFDa2RjY1RTeGtvUkxhTy9vSFVnT2x6VGcrYUw1bkp4\nNW5CMXBjdU9vUzFibFBuOHQydkVzcGFyOVlnSWJFSHVrUE5OdGJJeUoiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:23 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"d5f61838397b8a0e30906d08a5e681f131eabf9bd1f7c651aca95cefa97824f8\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4962" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "38" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB93:0EA0:9694D:9BD97:6578EEB2" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:23 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiUHh5Z0tBQUhNZUhOSG5vejE5UmhMclRIeitrV3MreTB1UU1sMDdV\nWDNHbGdMaCtDWnhYZTd4em0rMVZmNWZJSjY0a2pHMVN3ckhsckk4RnBTUT09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:23 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"d5f61838397b8a0e30906d08a5e681f131eabf9bd1f7c651aca95cefa97824f8\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4961" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "39" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB94:1D20:94152:996AB:6578EEB3" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:23 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets?per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:23 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/\"c1e4a5ef444fc060a81e694cf7fe5fda6af2042547fb2804073441934741a3fb\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"next\", ; rel=\"last\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4960" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "40" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB95:1012:9FCFB:A5265:6578EEB3" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjMtMTItMTJUMjM6Mzc6MjNaIiwidXBk\nYXRlZF9hdCI6IjIwMjMtMTItMTJUMjM6Mzc6MjNaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifV19\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:23 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/returns_list_of_two_secrets.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/returns_list_of_two_secrets.json new file mode 100644 index 000000000..7c1bd3380 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_with_a_secret/_list_org_codespaces_secrets/returns_list_of_two_secrets.json @@ -0,0 +1,455 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:23 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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4959" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "41" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB96:37E4:9ABBE:A0146:6578EEB3" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:23 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiNUJvN29RTzlTenIxSjFDRWw3WG8wSFYzLzhGZ0VYSGU0bHAwQ0hs\nbmhoeHNqV1VxNmdSVHdnUjNEb09SRVQ2Sm9VTzVaU1U5MWhaSVdUeEoiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:24 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4958" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "42" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CB97:359F:B4A03:B9E69:6578EEB3" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:24 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiMEtraHd2RWFXcnROemlHTFU5L1p4MXpHY3A3WG4vYzNlSDlJVTYx\nQnZ6TWF0N29UazFIajYxS1JhVmhVQjBtZ25zandHZmEzczE0L0hJVzJPZz09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:37:24 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4957" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "43" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "CB98:1012:9FDE4:A5360:6578EEB4" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:24 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:37:24 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/\"5ec39d277e15490293edb9bb3270dd8ebf557288c4f4716720de15f0f6028d28\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4956" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "44" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CB99:891E:A58DE:AAE47:6578EEB4" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjMtMTItMTJUMjM6Mzc6MjNaIiwidXBk\nYXRlZF9hdCI6IjIwMjMtMTItMTJUMjM6Mzc6MjRaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifSx7Im5hbWUiOiJTRUNSRVRfTkFNRTIiLCJjcmVhdGVkX2F0\nIjoiMjAyMy0xMi0xMlQyMzozNzoyM1oiLCJ1cGRhdGVkX2F0IjoiMjAyMy0x\nMi0xMlQyMzozNzoyNFoiLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9XX0=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:37:24 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_create_or_update_org_codespaces_secret/creating_secret_returns_201.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_create_or_update_org_codespaces_secret/creating_secret_returns_201.json new file mode 100644 index 000000000..742bc7286 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_create_or_update_org_codespaces_secret/creating_secret_returns_201.json @@ -0,0 +1,243 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:39: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/\"9636914981549ffebb4d95ca14ca0cc7ac4e3ecee07648f54f3becd54ae01da7\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4934" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "66" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBBA:359F:BF640:C504B:6578EF3A" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwia2V5IjoiTTYxMm4v\nTFprbG5uRVZYVmVZczIwRHRvK1NmaFlhV0IwNWozVTBBcFRTcz0ifQ==\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:39:38 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//codespaces/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxNzA0MjczMTQ0NTY2OTg0NzQyIiwiZW5jcnlwdGVkX3Zh\nbHVlIjoibDdjT2IwU2NPaTZOWGVnemppWVB6OVFaeVJWdG9qeEptWDd5U2tM\nbmdVNmZnN04xTUNLOVZGaUk1STlod3FMbWRJdFhDVm1xdVZFSitvaDEiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Tue, 12 Dec 2023 23:39:38 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"d5f61838397b8a0e30906d08a5e681f131eabf9bd1f7c651aca95cefa97824f8\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4933" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "67" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBBB:359F:BF682:C5090:6578EF3A" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:39:38 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_list_org_codespaces_secrets/returns_empty_list_of_secrets.json b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_list_org_codespaces_secrets/returns_empty_list_of_secrets.json new file mode 100644 index 000000000..66f61fa89 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodespacesSecrets/with_an_org_without_secrets/_list_org_codespaces_secrets/returns_empty_list_of_secrets.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//codespaces/secrets", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Tue, 12 Dec 2023 23:40:19 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/\"beb6cae5ef946ee4ac4913986e76dc98598219b95a1bc51d6b40123d39650367\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2023-12-19 21:50:28 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4931" + ], + "X-Ratelimit-Reset": [ + "1702427579" + ], + "X-Ratelimit-Used": [ + "69" + ], + "X-Ratelimit-Resource": [ + "codespaces" + ], + "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": [ + "CBC2:1160:B2BA6:B8798:6578EF63" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6MCwic2VjcmV0cyI6W119\n" + } + }, + "recorded_at": "Tue, 12 Dec 2023 23:40:19 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org/_get_org_dependabot_public_key/get_org_specific_public_key_for_secrets_encryption.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org/_get_org_dependabot_public_key/get_org_specific_public_key_for_secrets_encryption.json new file mode 100644 index 000000000..2d6829d85 --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org/_get_org_dependabot_public_key/get_org_specific_public_key_for_secrets_encryption.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:00:08 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4998" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "2" + ], + "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": [ + "DADD:7C75:8355275:8968A79:65970038" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:00:08 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_create_or_update_org_dependabot_secret/updating_existing_secret_returns_204.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_create_or_update_org_dependabot_secret/updating_existing_secret_returns_204.json new file mode 100644 index 000000000..f5576378b --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_create_or_update_org_dependabot_secret/updating_existing_secret_returns_204.json @@ -0,0 +1,561 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:29 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4993" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "7" + ], + "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": [ + "DAFF:0DE0:30F163A:32C00B1:659700C5" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:29 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiUGtRb0hhK1VxV2YyUmtmWXNhZ2t4cHZRVTZyZmtlckFWOVJJM2da\nV25oZUNEVGQ3NkVHL3E1Q2xLWThRYkl1YmNMWnNramxxVE0rc093ZHIiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:29 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4992" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "8" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB00:8638:656A10A:69CA361:659700C5" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:30 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiU1ZPRXFZTDhEUjdIV1FxY3dIQnhhYmxSSDNuNTVoRUw3SW4rOWhN\nVWxpKzY1bGF6SG9oOEhOcHJjZjQ0eW4zY0VTWWNKOVduOU9mYzZmT2lOdz09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:30 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4991" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB01:5648:803B3A5:859E7EA:659700C6" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:30 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:30 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4990" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "10" + ], + "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": [ + "DB02:91CA:624F8EA:6570971:659700C6" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:30 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoieU1jcUxpa0JJaklDUXRHanR1SDVaZ3ZCUUZzOGNFVTB2UzhxV2ov\ncWlYWDZ3VW5VQXJhczlNVmNiRUJGL3pjeVVYTDJ3YUhOQ3JOeCIsInZpc2li\naWxpdHkiOiJwcml2YXRlIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:30 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4989" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "11" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB03:0E13:24490B:2575C1:659700C6" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:30 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_delete_org_dependabot_secret/delete_existing_secret.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_delete_org_dependabot_secret/delete_existing_secret.json new file mode 100644 index 000000000..35d0b90ee --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_delete_org_dependabot_secret/delete_existing_secret.json @@ -0,0 +1,442 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:33 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4975" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "25" + ], + "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": [ + "DB11:766D:349070C:3693517:659700C9" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:33 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiVjZmeDJjalJpU1NuUnJLMlpFRUx6ek9OVmhOTHJVZGpyS05sRGZp\nZ0dHdU5DTnMxRTc4ZTR4ZFlpeWxrcWtBZDVWNnFhakRsNzByV3YvVWoiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:34 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4974" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "26" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB12:0DE0:30F1CB2:32C075A:659700C9" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:34 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiNTJDTVNXSFVVZ3I1RTFPWHdmcU1jNmxlQnlueDRsR2RXVFdDNXNR\ndmlYK1d5YW9qMkpCdW1FZU9ySTZHU3lXNUEvN05TWTA3NkJRbEI1S29Sdz09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:34 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4973" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "27" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB13:91CA:625008F:6571141:659700CA" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:34 GMT" + }, + { + "request": { + "method": "delete", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:34 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4972" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "28" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB14:5648:803B9A1:859EE15:659700CA" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:34 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_get_org_dependabot_secret/return_timestamps_related_to_one_secret.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_get_org_dependabot_secret/return_timestamps_related_to_one_secret.json new file mode 100644 index 000000000..8574bc6c7 --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_get_org_dependabot_secret/return_timestamps_related_to_one_secret.json @@ -0,0 +1,481 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:28 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4997" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "3" + ], + "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": [ + "DAFB:0E08:2904E2C:2A8F21C:659700C4" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:28 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiaGVhZmJFQlNvdnVKNFF4UDE0S3VENHNYQW40NUx4TGRmSVBSamZF\naitTQU83TXFsWERsOHdNNmRVbGdDcDVZWHJRVHlqL3E5bmpZM3E0RmMiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:29 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"9df66c73c0c15211004dff2da29c1e745ba6ccfb0f7e12593e0527dd280aad5a\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4996" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "4" + ], + "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": [ + "DAFC:0E13:24471B:2573B9:659700C4" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:29 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoidzllNks3eE9PRm8wMHpITTZuS3BiZVlMVTBZUWliKzhBREVxYnht\nUm8yNFRCejFHajQ1NjVSZHYwVnUza0lzaU5BN1dxRkZHSTBMTjRtUHNydz09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:29 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"9df66c73c0c15211004dff2da29c1e745ba6ccfb0f7e12593e0527dd280aad5a\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4995" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "5" + ], + "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": [ + "DAFD:0E17:2D6786B:2F1B8DE:659700C5" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:29 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:29 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/\"b12e3a73ae69d3cca74588ee1a33da77613f02f193226e0a0cd17d3e052f882a\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4994" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "6" + ], + "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": [ + "DAFE:1782:18545B2:19382C3:659700C5" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJuYW1lIjoiU0VDUkVUX05BTUUiLCJjcmVhdGVkX2F0IjoiMjAyNC0wMS0w\nNFQxOTowMjoyOVoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMS0wNFQxOTowMjoy\nOVoiLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:29 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/auto-paginates_the_results.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/auto-paginates_the_results.json new file mode 100644 index 000000000..d6967ce64 --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/auto-paginates_the_results.json @@ -0,0 +1,580 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:32 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4980" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "20" + ], + "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": [ + "DB0C:0E08:2905444:2A8F85E:659700C8" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:32 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoidk1xRGM0NUl4TjVPUzliQ1lOTFRZaUl1N04wSW11V1BMMlYvMmZR\nUVRBNmdqUFBRMGxiWWUvQkhRMDFGTEFyWkpmTWlrcG1nVXA1bmU4UG4iLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:32 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4979" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "21" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB0D:0E08:290547D:2A8F8A3:659700C8" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:33 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiOG9xYks5dCtWaGl4UTZqM1JGdHFBNXozODFCdUtockFTcWJ1YXFW\neUJoUFBBTWwyZHM3TFZMck1uMlhpTWJDcHRCaElVYUpobHErd3dWOFdrUT09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:33 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4978" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "22" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB0E:2DFA:67217E0:6BC062A:659700C9" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:33 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets?per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:33 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/\"6656851b1f36adb593b21017a2f2760be6b3e3a519194174db1de385c2d30e22\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"next\", ; rel=\"last\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4977" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "23" + ], + "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": [ + "DB0F:7E6B:536E368:56C5B6F:659700C9" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDEtMDRUMTk6MDI6MjlaIiwidXBk\nYXRlZF9hdCI6IjIwMjQtMDEtMDRUMTk6MDI6MzNaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifV19\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:33 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/organizations/64329988/dependabot/secrets?page=2&per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:33 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/\"e10402f05f72f425926a9adffcc455ea212c656d0c0dd5a1e581fc4666e60e53\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"prev\", ; rel=\"first\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4976" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "24" + ], + "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": [ + "DB10:8638:656A65C:69CA8D1:659700C9" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FMiIsImNyZWF0ZWRfYXQiOiIyMDI0LTAxLTA0VDE5OjAyOjI5WiIsInVw\nZGF0ZWRfYXQiOiIyMDI0LTAxLTA0VDE5OjAyOjMzWiIsInZpc2liaWxpdHki\nOiJwcml2YXRlIn1dfQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:33 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/paginates_the_results.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/paginates_the_results.json new file mode 100644 index 000000000..bc5fa5ed5 --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/paginates_the_results.json @@ -0,0 +1,458 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:30 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4988" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "12" + ], + "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": [ + "DB04:49A7:5F8A428:63B2DA4:659700C6" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:30 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiZUhYem5DSWlKdFF6M3k0YjBmWVdYUytpNWl2Uy9jNGRUdDZ1emEr\nNEF5dlgrVFZBZzRxL0lVcWMyOUdqeVFkbXo2eWsvL3VMa2Y4azlUS3AiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:31 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4987" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "13" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB05:0E25:26A8679:28226D0:659700C7" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:31 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiOWU3WEM1cTB2MmpGbzhrVlA3ciszbVNDb3RlUk1ERXhENEZvWVBm\nM0JRVDMzeko0WFdOQlgwTmVUMFVzalNWVmd1b2g2VktIVzhtS0dHV1NaUT09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:31 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4986" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "14" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB06:0E08:2905214:2A8F63C:659700C7" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:31 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets?per_page=1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:31 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/\"d554489a080ed6a1b1fa79162d6d5175f8681a846eb69975e3f9754e0d3b8eb3\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "Link": [ + "; rel=\"next\", ; rel=\"last\"" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4985" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "15" + ], + "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": [ + "DB07:0E0B:241C04F:2580E49:659700C7" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDEtMDRUMTk6MDI6MjlaIiwidXBk\nYXRlZF9hdCI6IjIwMjQtMDEtMDRUMTk6MDI6MzFaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifV19\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:31 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/returns_list_of_two_secrets.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/returns_list_of_two_secrets.json new file mode 100644 index 000000000..8f24ec04c --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_with_a_secret/_list_org_dependabot_secrets/returns_list_of_two_secrets.json @@ -0,0 +1,455 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:31 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4984" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "16" + ], + "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": [ + "DB08:0DE7:2CF0642:2E8F7C1:659700C7" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:31 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiY1RsRmVwaG9acHVOM3BPVXF5UXBodHRzY2cvKzlrN1NDeHpnYWhh\ncy9rc09KTTRkcTQ0V1NocCthUFVzMktjbUQyak55OVE3dzZRNFdXMUQiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:32 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4983" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "17" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB09:8638:656A413:69CA686:659700C7" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:32 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiK29DTEhzNkZOZUJHT01temRpL253V1B6YlRDd0kvSVBFVjJNL1B5\nTjhBekJvaW42a0FXdVhIM09TWWhpajFIWUpRWGNTSFhtenhYbGNmRzVOUT09\nIiwidmlzaWJpbGl0eSI6InByaXZhdGUifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:02:32 GMT" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4982" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "18" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DB0A:8638:656A471:69CA6DD:659700C8" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:32 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:02:32 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/\"e13581ee48a5005eafcb73184e342f0d70c805bca223f6600e577472e1f954d3\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4981" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "19" + ], + "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": [ + "DB0B:0E25:26A884C:28228B4:659700C8" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6Miwic2VjcmV0cyI6W3sibmFtZSI6IlNFQ1JFVF9O\nQU1FIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDEtMDRUMTk6MDI6MjlaIiwidXBk\nYXRlZF9hdCI6IjIwMjQtMDEtMDRUMTk6MDI6MzJaIiwidmlzaWJpbGl0eSI6\nInByaXZhdGUifSx7Im5hbWUiOiJTRUNSRVRfTkFNRTIiLCJjcmVhdGVkX2F0\nIjoiMjAyNC0wMS0wNFQxOTowMjoyOVoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0w\nMS0wNFQxOTowMjozMloiLCJ2aXNpYmlsaXR5IjoicHJpdmF0ZSJ9XX0=\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:02:32 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_create_or_update_org_dependabot_secret/creating_secret_returns_201.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_create_or_update_org_dependabot_secret/creating_secret_returns_201.json new file mode 100644 index 000000000..c3e73a31a --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_create_or_update_org_dependabot_secret/creating_secret_returns_201.json @@ -0,0 +1,243 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets/public-key", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:04:29 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/\"82a59d6697d13141de5dfd5ccbe52297df5e98a6302ca98d0c7ce0fb0d4e8591\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4967" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "33" + ], + "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": [ + "DB26:0E17:2D71BA1:2F2613A:6597013D" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3Iiwia2V5IjoiOU1Zc0Zx\nb3dTS09iRmpVc2JlUWxYaGdJTEVjOENpc1J1dXU3NHcxV1FEVT0ifQ==\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:04:29 GMT" + }, + { + "request": { + "method": "put", + "uri": "https://api.github.com/orgs//dependabot/secrets/secret_name", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXlfaWQiOiIxODI3NTUxOTM5NTcwNjI4NTM3IiwiZW5jcnlwdGVkX3Zh\nbHVlIjoiWjl0ek5adHU4eU1aRDJVbVV2am9nQW5oNG5Jei96Tno0bUFEUXVM\nNEZrT2ZYbEVIcFJxNkp1WFJtZ2VtWm5FMEswVEhTV1hqZHBYZWdpQmQiLCJ2\naXNpYmlsaXR5IjoicHJpdmF0ZSJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 04 Jan 2024 19:04:29 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"9df66c73c0c15211004dff2da29c1e745ba6ccfb0f7e12593e0527dd280aad5a\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4966" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "34" + ], + "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": [ + "DB27:0268:479B775:4A647D9:6597013D" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:04:29 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_list_org_dependabot_secrets/returns_empty_list_of_secrets.json b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_list_org_dependabot_secrets/returns_empty_list_of_secrets.json new file mode 100644 index 000000000..b30289c51 --- /dev/null +++ b/spec/cassettes/Octokit_Client_DependabotSecrets/with_an_org_without_secrets/_list_org_dependabot_secrets/returns_empty_list_of_secrets.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs//dependabot/secrets", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.0.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 04 Jan 2024 19:04:29 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/\"9544ce53c8cb9f429dbe25a8441dd6944bdff7518c92a55ed462f26d3a731084\"" + ], + "X-Oauth-Scopes": [ + "admin:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:org" + ], + "Github-Authentication-Token-Expiration": [ + "2024-01-11 18:57:19 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4968" + ], + "X-Ratelimit-Reset": [ + "1704398283" + ], + "X-Ratelimit-Used": [ + "32" + ], + "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": [ + "DB25:6CE4:6AA74B9:6F1E9E8:6597013D" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ0b3RhbF9jb3VudCI6MCwic2VjcmV0cyI6W119\n" + } + }, + "recorded_at": "Thu, 04 Jan 2024 19:04:29 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/octokit/client/actions_secrets_spec.rb b/spec/octokit/client/actions_secrets_spec.rb index 769e11c30..a82dbe6dd 100644 --- a/spec/octokit/client/actions_secrets_spec.rb +++ b/spec/octokit/client/actions_secrets_spec.rb @@ -254,4 +254,109 @@ def create_box(public_key) end end # .delete_actions_environment_secret end + + context 'with an org' do + describe '.get_org_actions_public_key', :vcr do + it 'get org public key for secrets encryption' do + box = create_box(@client.get_org_actions_public_key(test_github_org)) + expect(box[:key_id]).not_to be_empty + end + end # .get_org_actions_public_key + end + + context 'with an org without secrets' do + describe '.list_org_actions_secrets', :vcr do + it 'returns empty list of secrets' do + secrets = @client.list_org_actions_secrets(test_github_org) + expect(secrets.total_count).to eq(0) + expect(secrets.secrets).to be_empty + end + end # .list_org_actions_secrets + + describe '.create_or_update_org_actions_secret', :vcr do + it 'creating secret returns 201' do + box = create_box(@client.get_org_actions_public_key(test_github_org)) + encrypted = box[:box].encrypt(@secrets.first[:value]) + @client.create_or_update_org_actions_secret( + test_github_org, @secrets.first[:name], + key_id: box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + expect(@client.last_response.status).to eq(201) + end + end # .create_or_update_org_actions_secret + end + + context 'with an org with a secret' do + before(:each) do + @box = create_box(@client.get_org_actions_public_key(test_github_org)) + @secrets.each do |secret| + encrypted = @box[:box].encrypt(secret[:value]) + @client.create_or_update_org_actions_secret( + test_github_org, secret[:name], + key_id: @box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + end + end + + describe '.list_org_actions_secrets', :vcr do + it 'returns list of two secrets' do + secrets = @client.list_org_actions_secrets(test_github_org) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets[0].name).to eq(@secrets.first[:name].upcase) + end + + it 'paginates the results' do + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_org_actions_secrets(test_github_org) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(1) + end + + it 'auto-paginates the results' do + @client.auto_paginate = true + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_org_actions_secrets(test_github_org) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(2) + end + end # .list_org_actions_secrets + + describe '.get_org_actions_secret', :vcr do + it 'return timestamps related to one secret' do + received = @client.get_org_actions_secret(test_github_org, @secrets.first[:name]) + expect(received.name).to eq(@secrets.first[:name].upcase) + end + end # .get_org_actions_secret + + describe '.create_or_update_org_actions_secret', :vcr do + it 'updating existing secret returns 204' do + box = create_box(@client.get_org_actions_public_key(test_github_org)) + encrypted = box[:box].encrypt('new value') + @client.create_or_update_org_actions_secret( + test_github_org, @secrets.first[:name], + key_id: box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + expect(@client.last_response.status).to eq(204) + end + end # .create_or_update_org_actions_secret + + describe '.delete_org_actions_secret', :vcr do + it 'delete existing secret' do + @client.delete_org_actions_secret(test_github_org, @secrets.first[:name]) + expect(@client.last_response.status).to eq(204) + end + end # .delete_org_actions_secret + end end diff --git a/spec/octokit/client/codespaces_secrets_spec.rb b/spec/octokit/client/codespaces_secrets_spec.rb index 2ccdcece0..c165be477 100644 --- a/spec/octokit/client/codespaces_secrets_spec.rb +++ b/spec/octokit/client/codespaces_secrets_spec.rb @@ -138,6 +138,111 @@ def create_box(public_key) @client.delete_codespaces_secret(@repo.id, @secrets.first[:name]) expect(@client.last_response.status).to eq(204) end + end # .delete_codespaces_secret + end + + context 'with an org' do + describe '.get_org_codespaces_public_key', :vcr do + it 'get org specific public key for secrets encryption' do + box = create_box(@client.get_org_codespaces_public_key(test_github_org)) + expect(box[:key_id]).not_to be_empty + end + end # .get_org_codespaces_public_key + end + + context 'with an org without secrets' do + describe '.list_org_codespaces_secrets', :vcr do + it 'returns empty list of secrets' do + secrets = @client.list_org_codespaces_secrets(test_github_org) + expect(secrets.total_count).to eq(0) + expect(secrets.secrets).to be_empty + end + end # .list_org_codespaces_secrets + + describe '.create_or_update_org_codespaces_secret', :vcr do + it 'creating secret returns 201' do + @box = create_box(@client.get_org_codespaces_public_key(test_github_org)) + encrypted = @box[:box].encrypt(@secrets.first[:value]) + @client.create_or_update_org_codespaces_secret( + test_github_org, @secrets.first[:name], + key_id: @box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + expect(@client.last_response.status).to eq(201) + end + end # .create_or_update_org_codespaces_secret + end + + context 'with an org with a secret' do + before(:each) do + @box = create_box(@client.get_org_codespaces_public_key(test_github_org)) + @secrets.each do |secret| + encrypted = @box[:box].encrypt(secret[:value]) + @client.create_or_update_org_codespaces_secret( + test_github_org, secret[:name], + key_id: @box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + end + end + + describe '.list_org_codespaces_secrets', :vcr do + it 'returns list of two secrets' do + secrets = @client.list_org_codespaces_secrets(test_github_org) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets[0].name).to eq(@secrets.first[:name].upcase) + end + + it 'paginates the results' do + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_org_codespaces_secrets(test_github_org) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(1) + end + + it 'auto-paginates the results' do + @client.auto_paginate = true + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_org_codespaces_secrets(test_github_org) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(2) + end + end # .list_org_codespaces_secrets + + describe '.get_org_codespaces_secret', :vcr do + it 'return timestamps related to one secret' do + received = @client.get_org_codespaces_secret(test_github_org, @secrets.first[:name]) + expect(received.name).to eq(@secrets.first[:name].upcase) + end + end # .get_org_codespaces_secret + + describe '.create_or_update_org_codespaces_secret', :vcr do + it 'updating existing secret returns 204' do + box = create_box(@client.get_org_codespaces_public_key(test_github_org)) + encrypted = box[:box].encrypt('new value') + @client.create_or_update_org_codespaces_secret( + test_github_org, @secrets.first[:name], + key_id: @box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + expect(@client.last_response.status).to eq(204) + end + end # .create_or_update_org_codespaces_secret + + describe '.delete_org_codespaces_secret', :vcr do + it 'delete existing secret' do + @client.delete_org_codespaces_secret(test_github_org, @secrets.first[:name]) + expect(@client.last_response.status).to eq(204) + end end end end diff --git a/spec/octokit/client/dependabot_secrets_spec.rb b/spec/octokit/client/dependabot_secrets_spec.rb index fd579e631..4b0d24b35 100644 --- a/spec/octokit/client/dependabot_secrets_spec.rb +++ b/spec/octokit/client/dependabot_secrets_spec.rb @@ -140,4 +140,214 @@ def create_box(public_key) end end end + + context 'with an org' do + describe '.get_org_dependabot_public_key', :vcr do + it 'get org specific public key for secrets encryption' do + box = create_box(@client.get_org_dependabot_public_key(test_github_org)) + expect(box[:key_id]).not_to be_empty + end + end # .get_org_dependabot_public_key + end + + context 'with an org without secrets' do + describe '.list_org_dependabot_secrets', :vcr do + it 'returns empty list of secrets' do + secrets = @client.list_org_dependabot_secrets(test_github_org) + expect(secrets.total_count).to eq(0) + expect(secrets.secrets).to be_empty + end + end # .list_org_dependabot_secrets + + describe '.create_or_update_org_dependabot_secret', :vcr do + it 'creating secret returns 201' do + @box = create_box(@client.get_org_dependabot_public_key(test_github_org)) + encrypted = @box[:box].encrypt(@secrets.first[:value]) + @client.create_or_update_org_dependabot_secret( + test_github_org, @secrets.first[:name], + key_id: @box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + expect(@client.last_response.status).to eq(201) + end + end # .create_or_update_org_dependabot_secret + end + + context 'with an org with a secret' do + before(:each) do + @box = create_box(@client.get_org_dependabot_public_key(test_github_org)) + @secrets.each do |secret| + encrypted = @box[:box].encrypt(secret[:value]) + @client.create_or_update_org_dependabot_secret( + test_github_org, secret[:name], + key_id: @box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + end + end + + describe '.list_org_dependabot_secrets', :vcr do + it 'returns list of two secrets' do + secrets = @client.list_org_dependabot_secrets(test_github_org) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets[0].name).to eq(@secrets.first[:name].upcase) + end + + it 'paginates the results' do + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_org_dependabot_secrets(test_github_org) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(1) + end + + it 'auto-paginates the results' do + @client.auto_paginate = true + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_org_dependabot_secrets(test_github_org) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(2) + end + end # .list_org_dependabot_secrets + + describe '.get_org_dependabot_secret', :vcr do + it 'return timestamps related to one secret' do + received = @client.get_org_dependabot_secret(test_github_org, @secrets.first[:name]) + expect(received.name).to eq(@secrets.first[:name].upcase) + end + end # .get_org_dependabot_secret + + describe '.create_or_update_org_dependabot_secret', :vcr do + it 'updating existing secret returns 204' do + box = create_box(@client.get_org_dependabot_public_key(test_github_org)) + encrypted = box[:box].encrypt('new value') + @client.create_or_update_org_dependabot_secret( + test_github_org, @secrets.first[:name], + key_id: @box[:key_id], + encrypted_value: Base64.strict_encode64(encrypted), + visibility: 'private' + ) + expect(@client.last_response.status).to eq(204) + end + end # .create_or_update_org_dependabot_secret + + describe '.delete_org_dependabot_secret', :vcr do + it 'delete existing secret' do + @client.delete_org_dependabot_secret(test_github_org, @secrets.first[:name]) + expect(@client.last_response.status).to eq(204) + end + end + end + + context 'with a repo without secrets' do + before(:each) do + @repo = @client.create_repository('secret-repo') + end + + after(:each) do + @client.delete_repository(@repo.full_name) unless @repo.nil? + rescue Octokit::NotFound + end + + describe '.list_dependabot_secrets', :vcr do + it 'returns empty list of secrets' do + secrets = @client.list_dependabot_secrets(@repo.id) + expect(secrets.total_count).to eq(0) + expect(secrets.secrets).to be_empty + end + end # .list_dependabot_secrets + + describe '.create_or_update_dependabot_secret', :vcr do + it 'creating secret returns 201' do + box = create_box(@client.get_dependabot_public_key(@repo.id)) + encrypted = box[:box].encrypt(@secrets.first[:value]) + @client.create_or_update_dependabot_secret( + @repo.id, @secrets.first[:name], + key_id: box[:key_id], encrypted_value: Base64.strict_encode64(encrypted) + ) + expect(@client.last_response.status).to eq(201) + end + end # .create_or_update_dependabot_secret + end + + context 'with a repository with a secret' do + before(:each) do + @repo = @client.create_repository('secret-repo') + @box = create_box(@client.get_dependabot_public_key(@repo.id)) + @secrets.each do |secret| + encrypted = @box[:box].encrypt(secret[:value]) + @client.create_or_update_dependabot_secret( + @repo.id, secret[:name], + key_id: @box[:key_id], encrypted_value: Base64.strict_encode64(encrypted) + ) + end + end + + after(:each) do + @client.delete_repository(@repo.full_name) unless @repo.nil? + rescue Octokit::NotFound + end + + describe '.list_dependabot_secrets', :vcr do + it 'returns list of two secrets' do + secrets = @client.list_dependabot_secrets(@repo.id) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets[0].name).to eq(@secrets.first[:name].upcase) + end + + it 'paginates the results' do + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_dependabot_secrets(@repo.id) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(1) + end + + it 'auto-paginates the results' do + @client.auto_paginate = true + @client.per_page = 1 + allow(@client).to receive(:paginate).and_call_original + secrets = @client.list_dependabot_secrets(@repo.id) + + expect(@client).to have_received(:paginate) + expect(secrets.total_count).to eq(2) + expect(secrets.secrets.count).to eq(2) + end + end # .list_dependabot_secrets + + describe '.get_dependabot_secret', :vcr do + it 'return timestamps related to one secret' do + received = @client.get_dependabot_secret(@repo.id, @secrets.first[:name]) + expect(received.name).to eq(@secrets.first[:name].upcase) + end + end # .get_dependabot_secret + + describe '.create_or_update_dependabot_secret', :vcr do + it 'updating existing secret returns 204' do + box = create_box(@client.get_dependabot_public_key(@repo.id)) + encrypted = box[:box].encrypt('new value') + @client.create_or_update_dependabot_secret( + @repo.id, @secrets.first[:name], + key_id: box[:key_id], encrypted_value: Base64.strict_encode64(encrypted) + ) + expect(@client.last_response.status).to eq(204) + end + end # .create_or_update_dependabot_secret + + describe '.delete_dependabot_secret', :vcr do + it 'delete existing secret' do + @client.delete_dependabot_secret(@repo.id, @secrets.first[:name]) + expect(@client.last_response.status).to eq(204) + end + end + end end From c825c8cee10b7b9981bdb59ad096851b2b7a0c7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 19:13:13 +0000 Subject: [PATCH 12/75] Update rubocop requirement from 1.59.0 to 1.60.0 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.59.0...v1.60.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 7b5a40ffc..64ef4fcf9 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.59.0' + gem 'rubocop', '1.60.0' end gemspec From c5009a20ed694ef08010a826e6b69e9cd838233f Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Tue, 16 Jan 2024 10:08:13 +0900 Subject: [PATCH 13/75] Added base64 gem explicitly dependency --- octokit.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/octokit.gemspec b/octokit.gemspec index ba79e9e7d..c9ca5afad 100644 --- a/octokit.gemspec +++ b/octokit.gemspec @@ -5,6 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'octokit/version' Gem::Specification.new do |spec| + spec.add_dependency 'base64' spec.add_dependency 'faraday', '>= 1', '< 3' spec.add_dependency 'sawyer', '~> 0.9' spec.authors = ['Wynn Netherland', 'Erik Michaels-Ober', 'Clint Shryock'] From 8e1bab08c4eb1ce75b2a1213d7c0e3123d355085 Mon Sep 17 00:00:00 2001 From: Benoit Tigeot Date: Fri, 19 Jan 2024 00:07:48 +0100 Subject: [PATCH 14/75] Paginate deployments (#1649) --- lib/octokit/client/deployments.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/octokit/client/deployments.rb b/lib/octokit/client/deployments.rb index 99052743c..73026090e 100644 --- a/lib/octokit/client/deployments.rb +++ b/lib/octokit/client/deployments.rb @@ -22,7 +22,7 @@ def deployment(repo, deployment_id, options = {}) # @return [Array] A list of deployments # @see https://developer.github.com/v3/repos/deployments/#list-deployments def deployments(repo, options = {}) - get("#{Repository.path repo}/deployments", options) + paginate("#{Repository.path repo}/deployments", options) end alias list_deployments deployments @@ -60,7 +60,7 @@ def delete_deployment(repo, deployment_id, options = {}) # @see https://developer.github.com/v3/repos/deployments/#list-deployment-statuses def deployment_statuses(deployment_url, options = {}) deployment = get(deployment_url, accept: options[:accept]) - get(deployment.rels[:statuses].href, options) + paginate(deployment.rels[:statuses].href, options) end alias list_deployment_statuses deployment_statuses From 47a6ce05ca138a109ab9cbd356db10debf3e0d9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:20:34 +0000 Subject: [PATCH 15/75] Bump peter-evans/create-or-update-comment from 3 to 4 Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 3 to 4. - [Release notes](https://github.com/peter-evans/create-or-update-comment/releases) - [Commits](https://github.com/peter-evans/create-or-update-comment/compare/v3...v4) --- updated-dependencies: - dependency-name: peter-evans/create-or-update-comment dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/immediate-response.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/immediate-response.yml b/.github/workflows/immediate-response.yml index 4bb10f5ef..e8bb8ee5b 100644 --- a/.github/workflows/immediate-response.yml +++ b/.github/workflows/immediate-response.yml @@ -19,7 +19,7 @@ jobs: run: echo "NUMBER=${{ github.event.issue.number || github.event.pull_request.number }}" >> "$GITHUB_OUTPUT" - name: Respond to issue or PR - uses: peter-evans/create-or-update-comment@v3 + uses: peter-evans/create-or-update-comment@v4 with: issue-number: ${{ steps.extract.outputs.NUMBER }} body: > From bf94caaecb16414ef88ae84353c5f22a26fbde0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:20:45 +0000 Subject: [PATCH 16/75] Update rubocop requirement from 1.60.0 to 1.60.2 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.60.0...v1.60.2) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 64ef4fcf9..46a828eb0 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.60.0' + gem 'rubocop', '1.60.2' end gemspec From 63da4d70dc7e8f553cc12e3c69738b6b3a9bddf8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:24:24 +0000 Subject: [PATCH 17/75] Bump actions/cache from 3 to 4 Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/octokit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/octokit.yml b/.github/workflows/octokit.yml index 701706903..88214be6c 100644 --- a/.github/workflows/octokit.yml +++ b/.github/workflows/octokit.yml @@ -30,7 +30,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Cache Ruby dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ./.bundle/gems key: >- From 8ee2054e6a2e628f66814eac1d87b5880cf75122 Mon Sep 17 00:00:00 2001 From: Nick Floyd <139819+nickfloyd@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:48:04 -0600 Subject: [PATCH 18/75] v8.1.0 --- lib/octokit/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/octokit/version.rb b/lib/octokit/version.rb index 140a8d7fe..628af1c33 100644 --- a/lib/octokit/version.rb +++ b/lib/octokit/version.rb @@ -7,7 +7,7 @@ module Octokit # Current minor release. # @return [Integer] - MINOR = 0 + MINOR = 1 # Current patch level. # @return [Integer] From ab04b707790053eda5c4df2e2dedad22ef8cd686 Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Thu, 8 Feb 2024 09:05:17 +0100 Subject: [PATCH 19/75] Drop runtime dependency on base64 --- Gemfile | 1 + lib/octokit/client/code_scanning.rb | 3 +-- lib/octokit/client/contents.rb | 4 +--- octokit.gemspec | 1 - spec/octokit/client/licenses_spec.rb | 2 ++ 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 46a828eb0..b926e01fd 100644 --- a/Gemfile +++ b/Gemfile @@ -19,6 +19,7 @@ group :test do install_if -> { RUBY_VERSION >= '2.8' } do gem 'rexml', '>= 3.2.4' end + gem 'base64' gem 'json', '>= 2.3.0' gem 'jwt', '~> 2.2', '>= 2.2.1' gem 'mime-types', '~> 3.3', '>= 3.3.1' diff --git a/lib/octokit/client/code_scanning.rb b/lib/octokit/client/code_scanning.rb index 9b51bed2d..2ea8d8474 100644 --- a/lib/octokit/client/code_scanning.rb +++ b/lib/octokit/client/code_scanning.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'base64' require 'tempfile' require 'zlib' @@ -45,7 +44,7 @@ def compress_sarif_data(file) Zlib::GzipWriter.open(tempfile) do |gz_file| gz_file.write File.binread(file) end - Base64.strict_encode64(tempfile.read) + [tempfile.read].pack('m0') # Base64.strict_encode64 end end end diff --git a/lib/octokit/client/contents.rb b/lib/octokit/client/contents.rb index cf7ceeb16..031d60189 100644 --- a/lib/octokit/client/contents.rb +++ b/lib/octokit/client/contents.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'base64' - module Octokit class Client # Methods for the Repo Contents API @@ -80,7 +78,7 @@ def create_contents(*args) end raise ArgumentError, 'content or :file option required' if content.nil? - options[:content] = Base64.strict_encode64(content) + options[:content] = [content].pack('m0') # Base64.strict_encode64 options[:message] = message url = "#{Repository.path repo}/contents/#{path}" put url, options diff --git a/octokit.gemspec b/octokit.gemspec index c9ca5afad..ba79e9e7d 100644 --- a/octokit.gemspec +++ b/octokit.gemspec @@ -5,7 +5,6 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'octokit/version' Gem::Specification.new do |spec| - spec.add_dependency 'base64' spec.add_dependency 'faraday', '>= 1', '< 3' spec.add_dependency 'sawyer', '~> 0.9' spec.authors = ['Wynn Netherland', 'Erik Michaels-Ober', 'Clint Shryock'] diff --git a/spec/octokit/client/licenses_spec.rb b/spec/octokit/client/licenses_spec.rb index fe5df26f7..12d4d965b 100644 --- a/spec/octokit/client/licenses_spec.rb +++ b/spec/octokit/client/licenses_spec.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'base64' + describe Octokit::Client::Licenses do describe '.licenses', :vcr do it 'returns all licenses' do From c2953e82b09d2235dde8a6cde63935355c64ad73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 19:29:58 +0000 Subject: [PATCH 20/75] Bump actions/add-to-project from 0.5.0 to 0.6.0 Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/add_to_octokit_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_to_octokit_project.yml b/.github/workflows/add_to_octokit_project.yml index 60b2818b6..e1c533150 100644 --- a/.github/workflows/add_to_octokit_project.yml +++ b/.github/workflows/add_to_octokit_project.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: true steps: - - uses: actions/add-to-project@v0.5.0 + - uses: actions/add-to-project@v0.6.0 with: project-url: https://github.com/orgs/octokit/projects/10 github-token: ${{ secrets.OCTOKITBOT_PROJECT_ACTION_TOKEN }} From b1f88125298a8ddb928de207726269461b6e3464 Mon Sep 17 00:00:00 2001 From: Edouard CHIN Date: Tue, 27 Feb 2024 04:06:48 +0100 Subject: [PATCH 21/75] Add method to get a webhook delivery: - Added a new `app_hook_delivery` to retrieve one webhook delivery for an app. Ref https://docs.github.com/en/rest/apps/webhooks#get-a-delivery-for-an-app-webhook --- lib/octokit/client/apps.rb | 12 +++ .../returns_a_webhook_delivery.json | 100 ++++++++++++++++++ spec/octokit/client/apps_spec.rb | 8 ++ 3 files changed, 120 insertions(+) create mode 100644 spec/cassettes/Octokit_Client_Apps/_app_hook_delivery/returns_a_webhook_delivery.json diff --git a/lib/octokit/client/apps.rb b/lib/octokit/client/apps.rb index 6464d9cbd..4bcf81a55 100644 --- a/lib/octokit/client/apps.rb +++ b/lib/octokit/client/apps.rb @@ -231,6 +231,18 @@ def list_app_hook_deliveries(options = {}) end end + # Returns a delivery for the webhook configured for a GitHub App. + # + # @param delivery_id [String] The id of a GitHub App Hook Delivery + # @param options [Hash] A customizable set of options + # + # @see https://docs.github.com/en/rest/apps/webhooks#get-a-delivery-for-an-app-webhook + # + # @return [] The webhook delivery + def app_hook_delivery(delivery_id, options = {}) + get "/app/hook/deliveries/#{delivery_id}", options + end + # Redeliver a delivery for the webhook configured for a GitHub App. # # @param delivery_id [Integer] The id of a GitHub App Hook Delivery diff --git a/spec/cassettes/Octokit_Client_Apps/_app_hook_delivery/returns_a_webhook_delivery.json b/spec/cassettes/Octokit_Client_Apps/_app_hook_delivery/returns_a_webhook_delivery.json new file mode 100644 index 000000000..4a37ec492 --- /dev/null +++ b/spec/cassettes/Octokit_Client_Apps/_app_hook_delivery/returns_a_webhook_delivery.json @@ -0,0 +1,100 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/app/hook/deliveries/73209766136", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "Bearer " + ], + "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": [ + "Tue, 27 Feb 2024 02:56:35 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Cache-Control": [ + "public, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "W/\"e85846baba41945fbf4cee323e9b038cad19af962ef5fc394fa0fd9d862703c1\"" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "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": [ + "CB30:60868:67ECACE:6933B01:65DD4F63" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "ewogICJpZCI6IDczMjA5NzY2MTM2LAogICJndWlkIjogIjczMWI4MzI4LWQ0\nZGQtMTFlZS05OWYyLTFkNzU4MjlhMTBlNyIsCiAgImRlbGl2ZXJlZF9hdCI6\nICIyMDI0LTAyLTI2VDE5OjMwOjA4WiIsCiAgInJlZGVsaXZlcnkiOiBmYWxz\nZSwKICAiZHVyYXRpb24iOiAwLjIzLAogICJzdGF0dXMiOiAiT0siLAogICJz\ndGF0dXNfY29kZSI6IDIwMCwKICAiZXZlbnQiOiAicHVzaCIsCiAgImFjdGlv\nbiI6IG51bGwsCiAgImluc3RhbGxhdGlvbl9pZCI6IDQ1ODAwNTE3LAogICJy\nZXBvc2l0b3J5X2lkIjogNDM5Mzg2OTA5LAogICJ1cmwiOiAiaHR0cHM6Ly9l\neGFtcGxlLmNvbS9naXRodWIvaG9va3MiLAogICJyZXF1ZXN0IjogewogICAg\nImhlYWRlcnMiOiB7CiAgICAgICJBY2NlcHQiOiAiKi8qIiwKICAgICAgIkNv\nbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgIlVzZXIt\nQWdlbnQiOiAiR2l0SHViLUhvb2tzaG90L2Q1NDIwOWEiLAogICAgICAiWC1H\naXRIdWItRGVsaXZlcnkiOiAiNzMxYjgzMjgtZDRkZC0xMWVlLTk5ZjItMWQ3\nNTgyOWExMGU3IiwKICAgICAgIlgtR2l0SHViLUV2ZW50IjogInB1c2giLAog\nICAgICAiWC1HaXRIdWItSG9vay1JRCI6ICIzNzI4ODAwMjAiLAogICAgICAi\nWC1HaXRIdWItSG9vay1JbnN0YWxsYXRpb24tVGFyZ2V0LUlEIjogIjxHSVRI\nVUJfVEVTVF9JTlRFR1JBVElPTj4iLAogICAgICAiWC1HaXRIdWItSG9vay1J\nbnN0YWxsYXRpb24tVGFyZ2V0LVR5cGUiOiAiaW50ZWdyYXRpb24iLAogICAg\nICAiWC1IdWItU2lnbmF0dXJlIjogInNoYTE9N2M0MTk2OTc2YTQyNzQyZTdm\nYTg0ZTNhMGEwMGYwN2I0NGVlNTZhMiIsCiAgICAgICJYLUh1Yi1TaWduYXR1\ncmUtMjU2IjogInNoYTI1Nj0yNTM0MWZmMmVmYzNjMGIxNDI0MjQ0NTczNmE5\nNjEzM2FhZDc0ZTVkNzIyNmQ1ZDgwYzNlMmI3NGJiNmZlNTA0IgogICAgfSwK\nICAgICJwYXlsb2FkIjogewogICAgICAicmVmIjogInJlZnMvaGVhZHMvYnJh\nbmNoLW5hbWUiLAogICAgICAiYmVmb3JlIjogIjRmMzg5NjBlNWE4ZDdlYWM5\nN2I2YzdiZDlkZGQ2OGMxZjljN2Q2ODEiLAogICAgICAiYWZ0ZXIiOiAiMDAw\nMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsCiAgICAg\nICJyZXBvc2l0b3J5IjogewogICAgICAgICJpZCI6IDQzOTM4NjkwOSwKICAg\nICAgICAibm9kZV9pZCI6ICJSX2tnRE9HakNESFEiLAogICAgICAgICJuYW1l\nIjogImNhbmFyeS1yZW5hbWVkIiwKICAgICAgICAiZnVsbF9uYW1lIjogIkJv\nYi9jYW5hcnktcmVuYW1lZCIsCiAgICAgICAgInByaXZhdGUiOiB0cnVlLAog\nICAgICAgICJvd25lciI6IHsKICAgICAgICAgICJuYW1lIjogIkJvYiIsCiAg\nICAgICAgICAiZW1haWwiOiAiYm9iQGV4YW1wbGUuY29tIiwKICAgICAgICAg\nICJsb2dpbiI6ICJCb2IiLAogICAgICAgICAgImlkIjogNTQsCiAgICAgICAg\nICAibm9kZV9pZCI6ICJNRFE2VlhObGNqZ3hNakl5TkRZPSIsCiAgICAgICAg\nICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNv\nbnRlbnQuY29tL3UvODEyMjI0Nj92PTQiLAogICAgICAgICAgImdyYXZhdGFy\nX2lkIjogIiIsCiAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvQm9iIiwKICAgICAgICAgICJodG1sX3VybCI6ICJodHRw\nczovL2dpdGh1Yi5jb20vQm9iIiwKICAgICAgICAgICJmb2xsb3dlcnNfdXJs\nIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvQm9iL2ZvbGxvd2Vy\ncyIsCiAgICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzL0JvYi9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwK\nICAgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy9Cb2IvZ2lzdHN7L2dpc3RfaWR9IiwKICAgICAgICAgICJzdGFy\ncmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL0JvYi9z\ndGFycmVkey9vd25lcn17L3JlcG99IiwKICAgICAgICAgICJzdWJzY3JpcHRp\nb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL0JvYi9z\ndWJzY3JpcHRpb25zIiwKICAgICAgICAgICJvcmdhbml6YXRpb25zX3VybCI6\nICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL0JvYi9vcmdzIiwKICAg\nICAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy9Cb2IvcmVwb3MiLAogICAgICAgICAgImV2ZW50c191cmwiOiAiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9Cb2IvZXZlbnRzey9wcml2YWN5\nfSIsCiAgICAgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzL0JvYi9yZWNlaXZlZF9ldmVudHMiLAog\nICAgICAgICAgInR5cGUiOiAiVXNlciIsCiAgICAgICAgICAic2l0ZV9hZG1p\nbiI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaHRtbF91cmwiOiAiaHR0\ncHM6Ly9naXRodWIuY29tL0JvYi9jYW5hcnktcmVuYW1lZCIsCiAgICAgICAg\nImRlc2NyaXB0aW9uIjogIkNhbmFyeSBhcHAiLAogICAgICAgICJmb3JrIjog\nZmFsc2UsCiAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQm9i\nL2NhbmFyeS1yZW5hbWVkIiwKICAgICAgICAiZm9ya3NfdXJsIjogImh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQm9iL2NhbmFyeS1yZW5hbWVkL2Zv\ncmtzIiwKICAgICAgICAia2V5c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQva2V5c3sva2V5X2lkfSIs\nCiAgICAgICAgImNvbGxhYm9yYXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvQm9iL2NhbmFyeS1yZW5hbWVkL2NvbGxhYm9yYXRv\ncnN7L2NvbGxhYm9yYXRvcn0iLAogICAgICAgICJ0ZWFtc191cmwiOiAiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQv\ndGVhbXMiLAogICAgICAgICJob29rc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQvaG9va3MiLAogICAg\nICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvQm9iL2NhbmFyeS1yZW5hbWVkL2lzc3Vlcy9ldmVudHN7L251\nbWJlcn0iLAogICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvQm9iL2NhbmFyeS1yZW5hbWVkL2V2ZW50cyIsCiAg\nICAgICAgImFzc2lnbmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQvYXNzaWduZWVzey91c2VyfSIs\nCiAgICAgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zL0JvYi9jYW5hcnktcmVuYW1lZC9icmFuY2hlc3svYnJhbmNo\nfSIsCiAgICAgICAgInRhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvQm9iL2NhbmFyeS1yZW5hbWVkL3RhZ3MiLAogICAgICAgICJi\nbG9ic191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2Iv\nY2FuYXJ5LXJlbmFtZWQvZ2l0L2Jsb2Jzey9zaGF9IiwKICAgICAgICAiZ2l0\nX3RhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQm9i\nL2NhbmFyeS1yZW5hbWVkL2dpdC90YWdzey9zaGF9IiwKICAgICAgICAiZ2l0\nX3JlZnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQm9i\nL2NhbmFyeS1yZW5hbWVkL2dpdC9yZWZzey9zaGF9IiwKICAgICAgICAidHJl\nZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQm9iL2Nh\nbmFyeS1yZW5hbWVkL2dpdC90cmVlc3svc2hhfSIsCiAgICAgICAgInN0YXR1\nc2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0JvYi9j\nYW5hcnktcmVuYW1lZC9zdGF0dXNlcy97c2hhfSIsCiAgICAgICAgImxhbmd1\nYWdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2Iv\nY2FuYXJ5LXJlbmFtZWQvbGFuZ3VhZ2VzIiwKICAgICAgICAic3RhcmdhemVy\nc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2IvY2Fu\nYXJ5LXJlbmFtZWQvc3RhcmdhemVycyIsCiAgICAgICAgImNvbnRyaWJ1dG9y\nc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2IvY2Fu\nYXJ5LXJlbmFtZWQvY29udHJpYnV0b3JzIiwKICAgICAgICAic3Vic2NyaWJl\ncnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQm9iL2Nh\nbmFyeS1yZW5hbWVkL3N1YnNjcmliZXJzIiwKICAgICAgICAic3Vic2NyaXB0\naW9uX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0JvYi9j\nYW5hcnktcmVuYW1lZC9zdWJzY3JpcHRpb24iLAogICAgICAgICJjb21taXRz\nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0JvYi9jYW5h\ncnktcmVuYW1lZC9jb21taXRzey9zaGF9IiwKICAgICAgICAiZ2l0X2NvbW1p\ndHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQm9iL2Nh\nbmFyeS1yZW5hbWVkL2dpdC9jb21taXRzey9zaGF9IiwKICAgICAgICAiY29t\nbWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQm9i\nL2NhbmFyeS1yZW5hbWVkL2NvbW1lbnRzey9udW1iZXJ9IiwKICAgICAgICAi\naXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQvaXNzdWVzL2NvbW1lbnRzey9udW1i\nZXJ9IiwKICAgICAgICAiY29udGVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvQm9iL2NhbmFyeS1yZW5hbWVkL2NvbnRlbnRzL3sr\ncGF0aH0iLAogICAgICAgICJjb21wYXJlX3VybCI6ICJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0JvYi9jYW5hcnktcmVuYW1lZC9jb21wYXJlL3ti\nYXNlfS4uLntoZWFkfSIsCiAgICAgICAgIm1lcmdlc191cmwiOiAiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQvbWVy\nZ2VzIiwKICAgICAgICAiYXJjaGl2ZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQve2FyY2hpdmVfZm9y\nbWF0fXsvcmVmfSIsCiAgICAgICAgImRvd25sb2Fkc191cmwiOiAiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQvZG93\nbmxvYWRzIiwKICAgICAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0JvYi9jYW5hcnktcmVuYW1lZC9pc3N1ZXN7L251\nbWJlcn0iLAogICAgICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQvcHVsbHN7L251bWJl\ncn0iLAogICAgICAgICJtaWxlc3RvbmVzX3VybCI6ICJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0JvYi9jYW5hcnktcmVuYW1lZC9taWxlc3RvbmVz\ney9udW1iZXJ9IiwKICAgICAgICAibm90aWZpY2F0aW9uc191cmwiOiAiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQv\nbm90aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwKICAg\nICAgICAibGFiZWxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zL0JvYi9jYW5hcnktcmVuYW1lZC9sYWJlbHN7L25hbWV9IiwKICAgICAg\nICAicmVsZWFzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvQm9iL2NhbmFyeS1yZW5hbWVkL3JlbGVhc2Vzey9pZH0iLAogICAgICAg\nICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy9Cb2IvY2FuYXJ5LXJlbmFtZWQvZGVwbG95bWVudHMiLAogICAgICAg\nICJjcmVhdGVkX2F0IjogMTYzOTc1Njg5OCwKICAgICAgICAidXBkYXRlZF9h\ndCI6ICIyMDI0LTAyLTI2VDE5OjI3OjI3WiIsCiAgICAgICAgInB1c2hlZF9h\ndCI6IDE3MDg5NzU4MDcsCiAgICAgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0\naHViLmNvbS9Cb2IvY2FuYXJ5LXJlbmFtZWQuZ2l0IiwKICAgICAgICAic3No\nX3VybCI6ICJnaXRAZ2l0aHViLmNvbTpCb2IvY2FuYXJ5LXJlbmFtZWQuZ2l0\nIiwKICAgICAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9C\nb2IvY2FuYXJ5LXJlbmFtZWQuZ2l0IiwKICAgICAgICAic3ZuX3VybCI6ICJo\ndHRwczovL2dpdGh1Yi5jb20vQm9iL2NhbmFyeS1yZW5hbWVkIiwKICAgICAg\nICAiaG9tZXBhZ2UiOiBudWxsLAogICAgICAgICJzaXplIjogMjAyLAogICAg\nICAgICJzdGFyZ2F6ZXJzX2NvdW50IjogMCwKICAgICAgICAid2F0Y2hlcnNf\nY291bnQiOiAwLAogICAgICAgICJsYW5ndWFnZSI6ICJSdWJ5IiwKICAgICAg\nICAiaGFzX2lzc3VlcyI6IHRydWUsCiAgICAgICAgImhhc19wcm9qZWN0cyI6\nIHRydWUsCiAgICAgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAogICAgICAg\nICJoYXNfd2lraSI6IHRydWUsCiAgICAgICAgImhhc19wYWdlcyI6IGZhbHNl\nLAogICAgICAgICJoYXNfZGlzY3Vzc2lvbnMiOiBmYWxzZSwKICAgICAgICAi\nZm9ya3NfY291bnQiOiAwLAogICAgICAgICJtaXJyb3JfdXJsIjogbnVsbCwK\nICAgICAgICAiYXJjaGl2ZWQiOiBmYWxzZSwKICAgICAgICAiZGlzYWJsZWQi\nOiBmYWxzZSwKICAgICAgICAib3Blbl9pc3N1ZXNfY291bnQiOiAyNywKICAg\nICAgICAibGljZW5zZSI6IG51bGwsCiAgICAgICAgImFsbG93X2Zvcmtpbmci\nOiB0cnVlLAogICAgICAgICJpc190ZW1wbGF0ZSI6IGZhbHNlLAogICAgICAg\nICJ3ZWJfY29tbWl0X3NpZ25vZmZfcmVxdWlyZWQiOiBmYWxzZSwKICAgICAg\nICAidG9waWNzIjogW10sCiAgICAgICAgInZpc2liaWxpdHkiOiAicHJpdmF0\nZSIsCiAgICAgICAgImZvcmtzIjogMCwKICAgICAgICAib3Blbl9pc3N1ZXMi\nOiAyNywKICAgICAgICAid2F0Y2hlcnMiOiAwLAogICAgICAgICJkZWZhdWx0\nX2JyYW5jaCI6ICJtYWluIiwKICAgICAgICAic3RhcmdhemVycyI6IDAsCiAg\nICAgICAgIm1hc3Rlcl9icmFuY2giOiAibWFpbiIKICAgICAgfSwKICAgICAg\nInB1c2hlciI6IHsKICAgICAgICAibmFtZSI6ICJCb2IiLAogICAgICAgICJl\nbWFpbCI6ICJib2JAZXhhbXBsZS5jb20iCiAgICAgIH0sCiAgICAgICJzZW5k\nZXIiOiB7CiAgICAgICAgImxvZ2luIjogIkJvYiIsCiAgICAgICAgImlkIjog\nNTQsCiAgICAgICAgIm5vZGVfaWQiOiAiTURRNlZYTmxjamd4TWpJeU5EWT0i\nLAogICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFycy5naXRo\ndWJ1c2VyY29udGVudC5jb20vdS84MTIyMjQ2P3Y9NCIsCiAgICAgICAgImdy\nYXZhdGFyX2lkIjogIiIsCiAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzL0JvYiIsCiAgICAgICAgImh0bWxfdXJsIjogImh0\ndHBzOi8vZ2l0aHViLmNvbS9Cb2IiLAogICAgICAgICJmb2xsb3dlcnNfdXJs\nIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvQm9iL2ZvbGxvd2Vy\ncyIsCiAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS91c2Vycy9Cb2IvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCiAg\nICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz\nZXJzL0JvYi9naXN0c3svZ2lzdF9pZH0iLAogICAgICAgICJzdGFycmVkX3Vy\nbCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL0JvYi9zdGFycmVk\ney9vd25lcn17L3JlcG99IiwKICAgICAgICAic3Vic2NyaXB0aW9uc191cmwi\nOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9Cb2Ivc3Vic2NyaXB0\naW9ucyIsCiAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvQm9iL29yZ3MiLAogICAgICAgICJyZXBv\nc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9Cb2IvcmVw\nb3MiLAogICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvQm9iL2V2ZW50c3svcHJpdmFjeX0iLAogICAgICAgICJy\nZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvQm9iL3JlY2VpdmVkX2V2ZW50cyIsCiAgICAgICAgInR5cGUiOiAi\nVXNlciIsCiAgICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQogICAgICB9LAog\nICAgICAiaW5zdGFsbGF0aW9uIjogewogICAgICAgICJpZCI6IDQ1ODAwNTE3\nLAogICAgICAgICJub2RlX2lkIjogIk1ESXpPa2x1ZEdWbmNtRjBhVzl1U1c1\nemRHRnNiR0YwYVc5dU5EVTRNREExTVRjPSIKICAgICAgfSwKICAgICAgImNy\nZWF0ZWQiOiBmYWxzZSwKICAgICAgImRlbGV0ZWQiOiB0cnVlLAogICAgICAi\nZm9yY2VkIjogZmFsc2UsCiAgICAgICJiYXNlX3JlZiI6IG51bGwsCiAgICAg\nICJjb21wYXJlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Cb2IvY2FuYXJ5LXJl\nbmFtZWQvY29tcGFyZS80ZjM4OTYwZTVhOGQuLi4wMDAwMDAwMDAwMDAiLAog\nICAgICAiY29tbWl0cyI6IFtdLAogICAgICAiaGVhZF9jb21taXQiOiBudWxs\nCiAgICB9CiAgfSwKICAicmVzcG9uc2UiOiB7CiAgICAiaGVhZGVycyI6IHsK\nICAgICAgIkNhY2hlLUNvbnRyb2wiOiAibm8tY2FjaGUiLAogICAgICAiQ29u\ndGVudC1MZW5ndGgiOiAiMCIsCiAgICAgICJDb250ZW50LVR5cGUiOiAidGV4\ndC9odG1sIiwKICAgICAgIkRhdGUiOiAiTW9uLCAyNiBGZWIgMjAyNCAxOToz\nMDowOCBHTVQiLAogICAgICAiUmVmZXJyZXItUG9saWN5IjogInN0cmljdC1v\ncmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLAogICAgICAiWC1Db250ZW50LVR5\ncGUtT3B0aW9ucyI6ICJub3NuaWZmIiwKICAgICAgIlgtRnJhbWUtT3B0aW9u\ncyI6ICJTQU1FT1JJR0lOIiwKICAgICAgIlgtUGVybWl0dGVkLUNyb3NzLURv\nbWFpbi1Qb2xpY2llcyI6ICJub25lIiwKICAgICAgIlgtUmVxdWVzdC1JZCI6\nICJlNmFhZGRjNC1hMWVkLTRkYzgtOTkwOC04MzU2NGRkOTdlMjMiLAogICAg\nICAiWC1SdW50aW1lIjogIjAuMDQwODA0IiwKICAgICAgIlgtWHNzLVByb3Rl\nY3Rpb24iOiAiMCIKICAgIH0sCiAgICAicGF5bG9hZCI6ICIiCiAgfQp9Cg==\n" + } + }, + "recorded_at": "Tue, 27 Feb 2024 02:56:35 GMT" + } + ], + "recorded_with": "VCR 6.1.0" +} diff --git a/spec/octokit/client/apps_spec.rb b/spec/octokit/client/apps_spec.rb index 8c84a706d..5b54b7a2c 100644 --- a/spec/octokit/client/apps_spec.rb +++ b/spec/octokit/client/apps_spec.rb @@ -198,6 +198,14 @@ end end # .list_app_hook_deliveries + describe '.app_hook_delivery', :vcr do + let(:delivery_id) { 73_209_766_136 } + it 'returns a webhook delivery' do + response = @jwt_client.app_hook_delivery(delivery_id) + expect(response.id).to eq(73_209_766_136) + end + end # .app_hook_delivery + describe '.deliver_app_hook', :vcr do let(:delivery_id) { 55_148_726_666 } it 'schedules a webhook for redelivery' do From 277d5b79ce686b1bc4ff895e1211eaee281a165b Mon Sep 17 00:00:00 2001 From: Henrique Marques Date: Wed, 28 Feb 2024 21:02:20 -0400 Subject: [PATCH 22/75] test: adds test with draft argument on create pull request --- .../creates_a_draft_pull_request.json | 246 ++++++++++++++++++ ...eates_a_pull_request_ready_for_review.json | 246 ++++++++++++++++++ spec/octokit/client/pull_requests_spec.rb | 22 ++ 3 files changed, 514 insertions(+) create mode 100644 spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/with_draft_argument/creates_a_draft_pull_request.json create mode 100644 spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/without_draft_argument/creates_a_pull_request_ready_for_review.json diff --git a/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/with_draft_argument/creates_a_draft_pull_request.json b/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/with_draft_argument/creates_a_draft_pull_request.json new file mode 100644 index 000000000..8e0f72341 --- /dev/null +++ b/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/with_draft_argument/creates_a_draft_pull_request.json @@ -0,0 +1,246 @@ +{ + "http_interactions": [ + { + "request": { + "method": "post", + "uri": "https://api.github.com/repos///pulls", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJkcmFmdCI6dHJ1ZSwiYmFzZSI6Im1haW4iLCJoZWFkIjoiYnJhbmNoLWZv\nci1wciIsInRpdGxlIjoiQSBuZXcgUFIiLCJib2R5IjoiVGhlIEJvZHkifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Wed, 28 Feb 2024 20:55:13 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "15653" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"b59d7b719402524de68e9e0b506ff8a256e1574bf6bdbbd9af404d76aef2416c\"" + ], + "X-Oauth-Scopes": [ + "admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, copilot, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages" + ], + "X-Accepted-Oauth-Scopes": [ + "" + ], + "Github-Authentication-Token-Expiration": [ + "2024-03-06 20:20:54 UTC" + ], + "Location": [ + "https://api.github.com/repos///pulls/1" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4936" + ], + "X-Ratelimit-Reset": [ + "1709154959" + ], + "X-Ratelimit-Used": [ + "64" + ], + "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": [ + "BD92:138AE3:1ED7AA:203318:65DF9DB0" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy8xIiwiaWQi\nOjE3NDg1MTU5ODUsIm5vZGVfaWQiOiJQUl9rd0RPTFphTVFNNW9PRHlSIiwi\naHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvMSIsImRpZmZfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9wdWxsLzEuZGlmZiIsInBhdGNoX3VybCI6Imh0dHBz\nOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbC8xLnBhdGNoIiwiaXNzdWVfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzEiLCJudW1iZXIiOjEsInN0YXRlIjoi\nb3BlbiIsImxvY2tlZCI6ZmFsc2UsInRpdGxlIjoiQSBuZXcgUFIiLCJ1c2Vy\nIjp7ImxvZ2luIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6ODQ5NDY0MDEsIm5v\nZGVfaWQiOiJNRFE2VlhObGNqZzBPVFEyTkRBeCIsImF2YXRhcl91cmwiOiJo\ndHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODQ5NDY0\nMDE/dj00IiwiZ3JhdmF0YXJfaWQiOiIiLCJ1cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+IiwiaHRtbF91cmwiOiJo\ndHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4iLCJmb2xsb3dlcnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9mb2xsb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9mb2xsb3dpbmd7L290\naGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9naXN0c3svZ2lzdF9pZH0iLCJzdGFy\ncmVkX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhV\nQl9MT0dJTj4vc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlv\nbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVC\nX0xPR0lOPi9zdWJzY3JpcHRpb25zIiwib3JnYW5pemF0aW9uc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L29y\nZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L3JlcG9zIiwiZXZlbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZXZlbnRzey9w\ncml2YWN5fSIsInJlY2VpdmVkX2V2ZW50c191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3JlY2VpdmVkX2V2ZW50\ncyIsInR5cGUiOiJVc2VyIiwic2l0ZV9hZG1pbiI6ZmFsc2V9LCJib2R5Ijoi\nVGhlIEJvZHkiLCJjcmVhdGVkX2F0IjoiMjAyNC0wMi0yOFQyMDo1NToxMloi\nLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMi0yOFQyMDo1NToxMloiLCJjbG9zZWRf\nYXQiOm51bGwsIm1lcmdlZF9hdCI6bnVsbCwibWVyZ2VfY29tbWl0X3NoYSI6\nbnVsbCwiYXNzaWduZWUiOm51bGwsImFzc2lnbmVlcyI6W10sInJlcXVlc3Rl\nZF9yZXZpZXdlcnMiOltdLCJyZXF1ZXN0ZWRfdGVhbXMiOltdLCJsYWJlbHMi\nOltdLCJtaWxlc3RvbmUiOm51bGwsImRyYWZ0Ijp0cnVlLCJjb21taXRzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzLzEvY29tbWl0cyIs\nInJldmlld19jb21tZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9wdWxscy8xL2NvbW1lbnRzIiwicmV2aWV3X2NvbW1lbnRfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvY29tbWVudHN7L251bWJlcn0i\nLCJjb21tZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1\nZXMvMS9jb21tZW50cyIsInN0YXR1c2VzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L3N0YXR1c2VzL2Q0MjY5YjQxZGQ5OWY0ZTIxYTA5NmYxMGVl\nNDY1ZmUzY2ZkZjJiZTQiLCJoZWFkIjp7ImxhYmVsIjoiPEdJVEhVQl9MT0dJ\nTj46YnJhbmNoLWZvci1wciIsInJlZiI6ImJyYW5jaC1mb3ItcHIiLCJzaGEi\nOiJkNDI2OWI0MWRkOTlmNGUyMWEwOTZmMTBlZTQ2NWZlM2NmZGYyYmU0Iiwi\ndXNlciI6eyJsb2dpbiI6IjxHSVRIVUJfTE9HSU4+IiwiaWQiOjg0OTQ2NDAx\nLCJub2RlX2lkIjoiTURRNlZYTmxjamcwT1RRMk5EQXgiLCJhdmF0YXJfdXJs\nIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzg0\nOTQ2NDAxP3Y9NCIsImdyYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJs\nIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93\nZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhV\nQl9MT0dJTj4vZm9sbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5n\ney9vdGhlcl91c2VyfSIsImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwi\nc3RhcnJlZF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxH\nSVRIVUJfTE9HSU4+L3N0YXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3Jp\ncHRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vc3Vic2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lO\nPi9vcmdzIiwicmVwb3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50\nc3svcHJpdmFjeX0iLCJyZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9l\ndmVudHMiLCJ0eXBlIjoiVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwicmVw\nbyI6eyJpZCI6NzY0ODQxMDI0LCJub2RlX2lkIjoiUl9rZ0RPTFphTVFBIiwi\nbmFtZSI6IjxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsImZ1bGxfbmFtZSI6\nIjxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsInBy\naXZhdGUiOmZhbHNlLCJvd25lciI6eyJsb2dpbiI6IjxHSVRIVUJfTE9HSU4+\nIiwiaWQiOjg0OTQ2NDAxLCJub2RlX2lkIjoiTURRNlZYTmxjamcwT1RRMk5E\nQXgiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJj\nb250ZW50LmNvbS91Lzg0OTQ2NDAxP3Y9NCIsImdyYXZhdGFyX2lkIjoiIiwi\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJf\nTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93ZXJzIiwiZm9sbG93aW5n\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9M\nT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIsImdpc3RzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZ2lz\ndHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0YXJyZWR7L293bmVyfXsv\ncmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vic2NyaXB0aW9ucyIsIm9y\nZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy\ncy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3NfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZXBvcyIsImV2\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJyZWNlaXZlZF9ldmVudHNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoiVXNlciIsInNpdGVfYWRt\naW4iOmZhbHNlfSwiaHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+IiwiZGVzY3Jp\ncHRpb24iOiJSdWJ5IHRvb2xraXQgZm9yIHRoZSBHaXRIdWIgQVBJIiwiZm9y\nayI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJmb3Jr\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9mb3JrcyIsImtleXNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4va2V5c3sva2V5X2lkfSIs\nImNvbGxhYm9yYXRvcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9yfSIsInRlYW1zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L3RlYW1zIiwiaG9va3NfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vaG9va3MiLCJpc3N1ZV9ldmVudHNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNzdWVzL2V2ZW50c3svbnVt\nYmVyfSIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9l\ndmVudHMiLCJhc3NpZ25lZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vYXNzaWduZWVzey91c2VyfSIsImJyYW5jaGVzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L2JyYW5jaGVzey9icmFuY2h9IiwidGFnc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi90YWdzIiwiYmxvYnNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L2Jsb2Jzey9zaGF9IiwiZ2l0\nX3RhZ3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L3RhZ3N7\nL3NoYX0iLCJnaXRfcmVmc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9naXQvcmVmc3svc2hhfSIsInRyZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L2dpdC90cmVlc3svc2hhfSIsInN0YXR1c2VzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L3N0YXR1c2VzL3tzaGF9IiwibGFuZ3Vh\nZ2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2xhbmd1YWdlcyIs\nInN0YXJnYXplcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Rh\ncmdhemVycyIsImNvbnRyaWJ1dG9yc191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9jb250cmlidXRvcnMiLCJzdWJzY3JpYmVyc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9zdWJzY3JpYmVycyIsInN1YnNjcmlwdGlv\nbl91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdWJzY3JpcHRpb24i\nLCJjb21taXRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbW1p\ndHN7L3NoYX0iLCJnaXRfY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9naXQvY29tbWl0c3svc2hhfSIsImNvbW1lbnRzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbW1lbnRzey9udW1iZXJ9IiwiaXNz\ndWVfY29tbWVudF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1\nZXMvY29tbWVudHN7L251bWJlcn0iLCJjb250ZW50c191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9jb250ZW50cy97K3BhdGh9IiwiY29tcGFyZV91\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21wYXJlL3tiYXNlfS4u\nLntoZWFkfSIsIm1lcmdlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9tZXJnZXMiLCJhcmNoaXZlX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L3thcmNoaXZlX2Zvcm1hdH17L3JlZn0iLCJkb3dubG9hZHNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZG93bmxvYWRzIiwiaXNzdWVzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vlc3svbnVtYmVyfSIs\nInB1bGxzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzey9u\ndW1iZXJ9IiwibWlsZXN0b25lc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9taWxlc3RvbmVzey9udW1iZXJ9Iiwibm90aWZpY2F0aW9uc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9ub3RpZmljYXRpb25zez9zaW5j\nZSxhbGwscGFydGljaXBhdGluZ30iLCJsYWJlbHNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vbGFiZWxzey9uYW1lfSIsInJlbGVhc2VzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3JlbGVhc2Vzey9pZH0iLCJkZXBs\nb3ltZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9kZXBsb3lt\nZW50cyIsImNyZWF0ZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjA0OjQ2WiIsInVw\nZGF0ZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjA0OjQ2WiIsInB1c2hlZF9hdCI6\nIjIwMjQtMDItMjhUMjA6NTQ6NTlaIiwiZ2l0X3VybCI6ImdpdDovL2dpdGh1\nYi5jb20vPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nLmdpdCIsInNzaF91cmwiOiJnaXRAZ2l0aHViLmNvbTo8R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4uZ2l0IiwiY2xvbmVfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi5naXQiLCJzdm5fdXJsIjoiaHR0cHM6Ly9naXRodWIu\nY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIs\nImhvbWVwYWdlIjoiaHR0cDovL29jdG9raXQuZ2l0aHViLmlvLzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi8iLCJzaXplIjoxNzEzMywic3RhcmdhemVyc19j\nb3VudCI6MCwid2F0Y2hlcnNfY291bnQiOjAsImxhbmd1YWdlIjpudWxsLCJo\nYXNfaXNzdWVzIjpmYWxzZSwiaGFzX3Byb2plY3RzIjp0cnVlLCJoYXNfZG93\nbmxvYWRzIjp0cnVlLCJoYXNfd2lraSI6ZmFsc2UsImhhc19wYWdlcyI6ZmFs\nc2UsImhhc19kaXNjdXNzaW9ucyI6ZmFsc2UsImZvcmtzX2NvdW50IjowLCJt\naXJyb3JfdXJsIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImRpc2FibGVkIjpm\nYWxzZSwib3Blbl9pc3N1ZXNfY291bnQiOjEsImxpY2Vuc2UiOnsia2V5Ijoi\nbWl0IiwibmFtZSI6Ik1JVCBMaWNlbnNlIiwic3BkeF9pZCI6Ik1JVCIsInVy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vbGljZW5zZXMvbWl0Iiwibm9k\nZV9pZCI6Ik1EYzZUR2xqWlc1elpURXoifSwiYWxsb3dfZm9ya2luZyI6dHJ1\nZSwiaXNfdGVtcGxhdGUiOmZhbHNlLCJ3ZWJfY29tbWl0X3NpZ25vZmZfcmVx\ndWlyZWQiOmZhbHNlLCJ0b3BpY3MiOltdLCJ2aXNpYmlsaXR5IjoicHVibGlj\nIiwiZm9ya3MiOjAsIm9wZW5faXNzdWVzIjoxLCJ3YXRjaGVycyI6MCwiZGVm\nYXVsdF9icmFuY2giOiJtYWluIn19LCJiYXNlIjp7ImxhYmVsIjoiPEdJVEhV\nQl9MT0dJTj46bWFpbiIsInJlZiI6Im1haW4iLCJzaGEiOiIxZjJjZTNlYWE2\nY2U3YmQ2MDk4MDA2ZjJhZGY3MmIwNWQyMzgzYzkzIiwidXNlciI6eyJsb2dp\nbiI6IjxHSVRIVUJfTE9HSU4+IiwiaWQiOjg0OTQ2NDAxLCJub2RlX2lkIjoi\nTURRNlZYTmxjamcwT1RRMk5EQXgiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9h\ndmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzg0OTQ2NDAxP3Y9NCIs\nImdyYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9s\nbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2Vy\nfSIsImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+\nL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4v\nc3Vic2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVw\nb3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVC\nX0xPR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0i\nLCJyZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBl\nIjoiVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwicmVwbyI6eyJpZCI6NzY0\nODQxMDI0LCJub2RlX2lkIjoiUl9rZ0RPTFphTVFBIiwibmFtZSI6IjxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPiIsImZ1bGxfbmFtZSI6IjxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsInByaXZhdGUiOmZhbHNl\nLCJvd25lciI6eyJsb2dpbiI6IjxHSVRIVUJfTE9HSU4+IiwiaWQiOjg0OTQ2\nNDAxLCJub2RlX2lkIjoiTURRNlZYTmxjamcwT1RRMk5EQXgiLCJhdmF0YXJf\ndXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91\nLzg0OTQ2NDAxP3Y9NCIsImdyYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxf\ndXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9s\nbG93ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vZm9sbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93\naW5ney9vdGhlcl91c2VyfSIsImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9\nIiwic3RhcnJlZF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L3N0YXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJz\nY3JpcHRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vc3Vic2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9vcmdzIiwicmVwb3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2\nZW50c3svcHJpdmFjeX0iLCJyZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZl\nZF9ldmVudHMiLCJ0eXBlIjoiVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwi\naHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+IiwiZGVzY3JpcHRpb24iOiJSdWJ5\nIHRvb2xraXQgZm9yIHRoZSBHaXRIdWIgQVBJIiwiZm9yayI6dHJ1ZSwidXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJmb3Jrc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9mb3JrcyIsImtleXNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4va2V5c3sva2V5X2lkfSIsImNvbGxhYm9yYXRv\ncnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29sbGFib3JhdG9y\nc3svY29sbGFib3JhdG9yfSIsInRlYW1zX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L3RlYW1zIiwiaG9va3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vaG9va3MiLCJpc3N1ZV9ldmVudHNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsImV2ZW50\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9ldmVudHMiLCJhc3Np\nZ25lZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vYXNzaWduZWVz\ney91c2VyfSIsImJyYW5jaGVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2JyYW5jaGVzey9icmFuY2h9IiwidGFnc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi90YWdzIiwiYmxvYnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vZ2l0L2Jsb2Jzey9zaGF9IiwiZ2l0X3RhZ3NfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L3RhZ3N7L3NoYX0iLCJnaXRf\ncmVmc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvcmVmc3sv\nc2hhfSIsInRyZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dp\ndC90cmVlc3svc2hhfSIsInN0YXR1c2VzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L3N0YXR1c2VzL3tzaGF9IiwibGFuZ3VhZ2VzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L2xhbmd1YWdlcyIsInN0YXJnYXplcnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3RhcmdhemVycyIsImNv\nbnRyaWJ1dG9yc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb250\ncmlidXRvcnMiLCJzdWJzY3JpYmVyc191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9zdWJzY3JpYmVycyIsInN1YnNjcmlwdGlvbl91cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9zdWJzY3JpcHRpb24iLCJjb21taXRzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbW1pdHN7L3NoYX0iLCJn\naXRfY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQv\nY29tbWl0c3svc2hhfSIsImNvbW1lbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L2NvbW1lbnRzey9udW1iZXJ9IiwiaXNzdWVfY29tbWVudF91\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXMvY29tbWVudHN7\nL251bWJlcn0iLCJjb250ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9jb250ZW50cy97K3BhdGh9IiwiY29tcGFyZV91cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsIm1l\ncmdlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9tZXJnZXMiLCJh\ncmNoaXZlX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3thcmNoaXZl\nX2Zvcm1hdH17L3JlZn0iLCJkb3dubG9hZHNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vZG93bmxvYWRzIiwiaXNzdWVzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L2lzc3Vlc3svbnVtYmVyfSIsInB1bGxzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzey9udW1iZXJ9IiwibWls\nZXN0b25lc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9taWxlc3Rv\nbmVzey9udW1iZXJ9Iiwibm90aWZpY2F0aW9uc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9ub3RpZmljYXRpb25zez9zaW5jZSxhbGwscGFydGlj\naXBhdGluZ30iLCJsYWJlbHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vbGFiZWxzey9uYW1lfSIsInJlbGVhc2VzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L3JlbGVhc2Vzey9pZH0iLCJkZXBsb3ltZW50c191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9kZXBsb3ltZW50cyIsImNyZWF0\nZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjA0OjQ2WiIsInVwZGF0ZWRfYXQiOiIy\nMDI0LTAyLTI4VDIwOjA0OjQ2WiIsInB1c2hlZF9hdCI6IjIwMjQtMDItMjhU\nMjA6NTQ6NTlaIiwiZ2l0X3VybCI6ImdpdDovL2dpdGh1Yi5jb20vPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIsInNzaF91\ncmwiOiJnaXRAZ2l0aHViLmNvbTo8R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4uZ2l0IiwiY2xvbmVfdXJsIjoiaHR0cHM6Ly9naXRo\ndWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi5naXQiLCJzdm5fdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsImhvbWVwYWdlIjoi\naHR0cDovL29jdG9raXQuZ2l0aHViLmlvLzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi8iLCJzaXplIjoxNzEzMywic3RhcmdhemVyc19jb3VudCI6MCwid2F0\nY2hlcnNfY291bnQiOjAsImxhbmd1YWdlIjpudWxsLCJoYXNfaXNzdWVzIjpm\nYWxzZSwiaGFzX3Byb2plY3RzIjp0cnVlLCJoYXNfZG93bmxvYWRzIjp0cnVl\nLCJoYXNfd2lraSI6ZmFsc2UsImhhc19wYWdlcyI6ZmFsc2UsImhhc19kaXNj\ndXNzaW9ucyI6ZmFsc2UsImZvcmtzX2NvdW50IjowLCJtaXJyb3JfdXJsIjpu\ndWxsLCJhcmNoaXZlZCI6ZmFsc2UsImRpc2FibGVkIjpmYWxzZSwib3Blbl9p\nc3N1ZXNfY291bnQiOjEsImxpY2Vuc2UiOnsia2V5IjoibWl0IiwibmFtZSI6\nIk1JVCBMaWNlbnNlIiwic3BkeF9pZCI6Ik1JVCIsInVybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vbGljZW5zZXMvbWl0Iiwibm9kZV9pZCI6Ik1EYzZU\nR2xqWlc1elpURXoifSwiYWxsb3dfZm9ya2luZyI6dHJ1ZSwiaXNfdGVtcGxh\ndGUiOmZhbHNlLCJ3ZWJfY29tbWl0X3NpZ25vZmZfcmVxdWlyZWQiOmZhbHNl\nLCJ0b3BpY3MiOltdLCJ2aXNpYmlsaXR5IjoicHVibGljIiwiZm9ya3MiOjAs\nIm9wZW5faXNzdWVzIjoxLCJ3YXRjaGVycyI6MCwiZGVmYXVsdF9icmFuY2gi\nOiJtYWluIn19LCJfbGlua3MiOnsic2VsZiI6eyJocmVmIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vcHVsbHMvMSJ9LCJodG1sIjp7ImhyZWYiOiJodHRw\nczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L3B1bGwvMSJ9LCJpc3N1ZSI6eyJocmVmIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzEifSwiY29tbWVudHMiOnsiaHJlZiI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vlcy8xL2NvbW1lbnRzIn0s\nInJldmlld19jb21tZW50cyI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vcHVsbHMvMS9jb21tZW50cyJ9LCJyZXZpZXdfY29tbWVudCI6eyJo\ncmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvY29tbWVudHN7\nL251bWJlcn0ifSwiY29tbWl0cyI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbHMvMS9jb21taXRzIn0sInN0YXR1c2VzIjp7ImhyZWYi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdGF0dXNlcy9kNDI2OWI0MWRk\nOTlmNGUyMWEwOTZmMTBlZTQ2NWZlM2NmZGYyYmU0In19LCJhdXRob3JfYXNz\nb2NpYXRpb24iOiJPV05FUiIsImF1dG9fbWVyZ2UiOm51bGwsImFjdGl2ZV9s\nb2NrX3JlYXNvbiI6bnVsbCwibWVyZ2VkIjpmYWxzZSwibWVyZ2VhYmxlIjpu\ndWxsLCJyZWJhc2VhYmxlIjpudWxsLCJtZXJnZWFibGVfc3RhdGUiOiJ1bmtu\nb3duIiwibWVyZ2VkX2J5IjpudWxsLCJjb21tZW50cyI6MCwicmV2aWV3X2Nv\nbW1lbnRzIjowLCJtYWludGFpbmVyX2Nhbl9tb2RpZnkiOmZhbHNlLCJjb21t\naXRzIjoxLCJhZGRpdGlvbnMiOjExLCJkZWxldGlvbnMiOjAsImNoYW5nZWRf\nZmlsZXMiOjF9\n" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:55:13 GMT" + }, + { + "request": { + "method": "patch", + "uri": "https://api.github.com/repos///pulls/1", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJzdGF0ZSI6ImNsb3NlZCJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Wed, 28 Feb 2024 20:55:14 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/\"15062d9bf2882dd69ae2429c9f172c0733fbfc7d1f5c37765a228865f6b5f517\"" + ], + "X-Oauth-Scopes": [ + "admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, copilot, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages" + ], + "X-Accepted-Oauth-Scopes": [ + "" + ], + "Github-Authentication-Token-Expiration": [ + "2024-03-06 20:20:54 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4933" + ], + "X-Ratelimit-Reset": [ + "1709154959" + ], + "X-Ratelimit-Used": [ + "67" + ], + "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": [ + "BDAC:FC38E:4C75CE:518A74:65DF9DB2" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy8xIiwiaWQi\nOjE3NDg1MTU5ODUsIm5vZGVfaWQiOiJQUl9rd0RPTFphTVFNNW9PRHlSIiwi\naHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvMSIsImRpZmZfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9wdWxsLzEuZGlmZiIsInBhdGNoX3VybCI6Imh0dHBz\nOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbC8xLnBhdGNoIiwiaXNzdWVfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzEiLCJudW1iZXIiOjEsInN0YXRlIjoi\nY2xvc2VkIiwibG9ja2VkIjpmYWxzZSwidGl0bGUiOiJBIG5ldyBQUiIsInVz\nZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo4NDk0NjQwMSwi\nbm9kZV9pZCI6Ik1EUTZWWE5sY2pnME9UUTJOREF4IiwiYXZhdGFyX3VybCI6\nImh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NDk0\nNjQwMT92PTQiLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6\nImh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vy\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJf\nTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3sv\nb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0\nYXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0\naW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4v\nb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7\nL3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZl\nbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sImJvZHki\nOiJUaGUgQm9keSIsImNyZWF0ZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjU1OjEy\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjU1OjE0WiIsImNsb3Nl\nZF9hdCI6IjIwMjQtMDItMjhUMjA6NTU6MTRaIiwibWVyZ2VkX2F0IjpudWxs\nLCJtZXJnZV9jb21taXRfc2hhIjoiNzY5YWI3OGE4NDlmNTE2ZTg2ZWU4YWU0\nZmJlMDQ4YWYwNmM1MWJjMSIsImFzc2lnbmVlIjpudWxsLCJhc3NpZ25lZXMi\nOltdLCJyZXF1ZXN0ZWRfcmV2aWV3ZXJzIjpbXSwicmVxdWVzdGVkX3RlYW1z\nIjpbXSwibGFiZWxzIjpbXSwibWlsZXN0b25lIjpudWxsLCJkcmFmdCI6dHJ1\nZSwiY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxs\ncy8xL2NvbW1pdHMiLCJyZXZpZXdfY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vcHVsbHMvMS9jb21tZW50cyIsInJldmlld19jb21t\nZW50X3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzL2NvbW1l\nbnRzey9udW1iZXJ9IiwiY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vaXNzdWVzLzEvY29tbWVudHMiLCJzdGF0dXNlc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdGF0dXNlcy9kNDI2OWI0MWRkOTlm\nNGUyMWEwOTZmMTBlZTQ2NWZlM2NmZGYyYmU0IiwiaGVhZCI6eyJsYWJlbCI6\nIjxHSVRIVUJfTE9HSU4+OmJyYW5jaC1mb3ItcHIiLCJyZWYiOiJicmFuY2gt\nZm9yLXByIiwic2hhIjoiZDQyNjliNDFkZDk5ZjRlMjFhMDk2ZjEwZWU0NjVm\nZTNjZmRmMmJlNCIsInVzZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lOPiIs\nImlkIjo4NDk0NjQwMSwibm9kZV9pZCI6Ik1EUTZWWE5sY2pnME9UUTJOREF4\nIiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29u\ndGVudC5jb20vdS84NDk0NjQwMT92PTQiLCJncmF2YXRhcl9pZCI6IiIsInVy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4iLCJodG1sX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xP\nR0lOPiIsImZvbGxvd2Vyc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2luZ191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+L2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rz\ney9naXN0X2lkfSIsInN0YXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17L3Jl\ncG99Iiwic3Vic2NyaXB0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdh\nbml6YXRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVu\ndHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVC\nX0xPR0lOPi9ldmVudHN7L3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4vcmVjZWl2ZWRfZXZlbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2FkbWlu\nIjpmYWxzZX0sInJlcG8iOnsiaWQiOjc2NDg0MTAyNCwibm9kZV9pZCI6IlJf\na2dET0xaYU1RQSIsIm5hbWUiOiI8R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4i\nLCJmdWxsX25hbWUiOiI8R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4iLCJwcml2YXRlIjpmYWxzZSwib3duZXIiOnsibG9naW4iOiI8\nR0lUSFVCX0xPR0lOPiIsImlkIjo4NDk0NjQwMSwibm9kZV9pZCI6Ik1EUTZW\nWE5sY2pnME9UUTJOREF4IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZhdGFy\ncy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NDk0NjQwMT92PTQiLCJncmF2\nYXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6Imh0dHBzOi8vZ2l0aHVi\nLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vyc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2Vy\ncyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Vz\nZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLCJn\naXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9zdGFy\ncmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0aW9uc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N1YnNj\ncmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vb3JncyIsInJlcG9zX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7L3ByaXZhY3l9IiwicmVj\nZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZlbnRzIiwidHlwZSI6IlVz\nZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sImh0bWxfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPiIsImRlc2NyaXB0aW9uIjoiUnVieSB0b29sa2l0IGZvciB0aGUgR2l0\nSHViIEFQSSIsImZvcmsiOnRydWUsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+IiwiZm9ya3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nZm9ya3MiLCJrZXlzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2tl\neXN7L2tleV9pZH0iLCJjb2xsYWJvcmF0b3JzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRvcn0iLCJ0\nZWFtc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi90ZWFtcyIsImhv\nb2tzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2hvb2tzIiwiaXNz\ndWVfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vl\ncy9ldmVudHN7L251bWJlcn0iLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vZXZlbnRzIiwiYXNzaWduZWVzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L2Fzc2lnbmVlc3svdXNlcn0iLCJicmFuY2hlc191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9icmFuY2hlc3svYnJhbmNo\nfSIsInRhZ3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vdGFncyIs\nImJsb2JzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC9ibG9i\nc3svc2hhfSIsImdpdF90YWdzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2dpdC90YWdzey9zaGF9IiwiZ2l0X3JlZnNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vZ2l0L3JlZnN7L3NoYX0iLCJ0cmVlc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvdHJlZXN7L3NoYX0iLCJzdGF0\ndXNlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdGF0dXNlcy97\nc2hhfSIsImxhbmd1YWdlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9sYW5ndWFnZXMiLCJzdGFyZ2F6ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L3N0YXJnYXplcnMiLCJjb250cmlidXRvcnNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29udHJpYnV0b3JzIiwic3Vic2NyaWJl\ncnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Vic2NyaWJlcnMi\nLCJzdWJzY3JpcHRpb25fdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nc3Vic2NyaXB0aW9uIiwiY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9jb21taXRzey9zaGF9IiwiZ2l0X2NvbW1pdHNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L2NvbW1pdHN7L3NoYX0iLCJjb21t\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21tZW50c3sv\nbnVtYmVyfSIsImlzc3VlX2NvbW1lbnRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9IiwiY29udGVudHNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29udGVudHMveytwYXRo\nfSIsImNvbXBhcmVfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29t\ncGFyZS97YmFzZX0uLi57aGVhZH0iLCJtZXJnZXNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vbWVyZ2VzIiwiYXJjaGl2ZV91cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9IiwiZG93\nbmxvYWRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2Rvd25sb2Fk\ncyIsImlzc3Vlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1\nZXN7L251bWJlcn0iLCJwdWxsc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9wdWxsc3svbnVtYmVyfSIsIm1pbGVzdG9uZXNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4vbWlsZXN0b25lc3svbnVtYmVyfSIsIm5vdGlm\naWNhdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbm90aWZp\nY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwibGFiZWxzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2xhYmVsc3svbmFtZX0iLCJy\nZWxlYXNlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9yZWxlYXNl\nc3svaWR9IiwiZGVwbG95bWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vZGVwbG95bWVudHMiLCJjcmVhdGVkX2F0IjoiMjAyNC0wMi0yOFQy\nMDowNDo0NloiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMi0yOFQyMDowNDo0Nloi\nLCJwdXNoZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjU1OjEzWiIsImdpdF91cmwi\nOiJnaXQ6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi5naXQiLCJzc2hfdXJsIjoiZ2l0QGdpdGh1Yi5jb206\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIs\nImNsb25lX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4uZ2l0Iiwic3ZuX3VybCI6Imh0\ndHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4iLCJob21lcGFnZSI6Imh0dHA6Ly9vY3Rva2l0LmdpdGh1\nYi5pby88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vIiwic2l6ZSI6MTcxMzMs\nInN0YXJnYXplcnNfY291bnQiOjAsIndhdGNoZXJzX2NvdW50IjowLCJsYW5n\ndWFnZSI6bnVsbCwiaGFzX2lzc3VlcyI6ZmFsc2UsImhhc19wcm9qZWN0cyI6\ndHJ1ZSwiaGFzX2Rvd25sb2FkcyI6dHJ1ZSwiaGFzX3dpa2kiOmZhbHNlLCJo\nYXNfcGFnZXMiOmZhbHNlLCJoYXNfZGlzY3Vzc2lvbnMiOmZhbHNlLCJmb3Jr\nc19jb3VudCI6MCwibWlycm9yX3VybCI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNl\nLCJkaXNhYmxlZCI6ZmFsc2UsIm9wZW5faXNzdWVzX2NvdW50IjowLCJsaWNl\nbnNlIjp7ImtleSI6Im1pdCIsIm5hbWUiOiJNSVQgTGljZW5zZSIsInNwZHhf\naWQiOiJNSVQiLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL2xpY2Vu\nc2VzL21pdCIsIm5vZGVfaWQiOiJNRGM2VEdsalpXNXpaVEV6In0sImFsbG93\nX2ZvcmtpbmciOnRydWUsImlzX3RlbXBsYXRlIjpmYWxzZSwid2ViX2NvbW1p\ndF9zaWdub2ZmX3JlcXVpcmVkIjpmYWxzZSwidG9waWNzIjpbXSwidmlzaWJp\nbGl0eSI6InB1YmxpYyIsImZvcmtzIjowLCJvcGVuX2lzc3VlcyI6MCwid2F0\nY2hlcnMiOjAsImRlZmF1bHRfYnJhbmNoIjoibWFpbiJ9fSwiYmFzZSI6eyJs\nYWJlbCI6IjxHSVRIVUJfTE9HSU4+Om1haW4iLCJyZWYiOiJtYWluIiwic2hh\nIjoiMWYyY2UzZWFhNmNlN2JkNjA5ODAwNmYyYWRmNzJiMDVkMjM4M2M5MyIs\nInVzZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo4NDk0NjQw\nMSwibm9kZV9pZCI6Ik1EUTZWWE5sY2pnME9UUTJOREF4IiwiYXZhdGFyX3Vy\nbCI6Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84\nNDk0NjQwMT92PTQiLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxv\nd2Vyc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2lu\nZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIs\nInN0YXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88\nR0lUSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2Ny\naXB0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxH\nSVRIVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4vb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVu\ndHN7L3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRf\nZXZlbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sInJl\ncG8iOnsiaWQiOjc2NDg0MTAyNCwibm9kZV9pZCI6IlJfa2dET0xaYU1RQSIs\nIm5hbWUiOiI8R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJmdWxsX25hbWUi\nOiI8R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJw\ncml2YXRlIjpmYWxzZSwib3duZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lO\nPiIsImlkIjo4NDk0NjQwMSwibm9kZV9pZCI6Ik1EUTZWWE5sY2pnME9UUTJO\nREF4IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2Vy\nY29udGVudC5jb20vdS84NDk0NjQwMT92PTQiLCJncmF2YXRhcl9pZCI6IiIs\nInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9M\nT0dJTj4iLCJodG1sX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVC\nX0xPR0lOPiIsImZvbGxvd2Vyc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2lu\nZ191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJf\nTE9HSU4+L2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dp\nc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17\nL3JlcG99Iiwic3Vic2NyaXB0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJv\ncmdhbml6YXRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJl\ndmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9ldmVudHN7L3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9M\nT0dJTj4vcmVjZWl2ZWRfZXZlbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2Fk\nbWluIjpmYWxzZX0sImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsImRlc2Ny\naXB0aW9uIjoiUnVieSB0b29sa2l0IGZvciB0aGUgR2l0SHViIEFQSSIsImZv\ncmsiOnRydWUsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+IiwiZm9y\na3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZm9ya3MiLCJrZXlz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2tleXN7L2tleV9pZH0i\nLCJjb2xsYWJvcmF0b3JzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRvcn0iLCJ0ZWFtc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi90ZWFtcyIsImhvb2tzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L2hvb2tzIiwiaXNzdWVfZXZlbnRzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vlcy9ldmVudHN7L251\nbWJlcn0iLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nZXZlbnRzIiwiYXNzaWduZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2Fzc2lnbmVlc3svdXNlcn0iLCJicmFuY2hlc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9icmFuY2hlc3svYnJhbmNofSIsInRhZ3NfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vdGFncyIsImJsb2JzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC9ibG9ic3svc2hhfSIsImdp\ndF90YWdzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC90YWdz\ney9zaGF9IiwiZ2l0X3JlZnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vZ2l0L3JlZnN7L3NoYX0iLCJ0cmVlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9naXQvdHJlZXN7L3NoYX0iLCJzdGF0dXNlc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdGF0dXNlcy97c2hhfSIsImxhbmd1\nYWdlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9sYW5ndWFnZXMi\nLCJzdGFyZ2F6ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3N0\nYXJnYXplcnMiLCJjb250cmlidXRvcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vY29udHJpYnV0b3JzIiwic3Vic2NyaWJlcnNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Vic2NyaWJlcnMiLCJzdWJzY3JpcHRp\nb25fdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Vic2NyaXB0aW9u\nIiwiY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21t\naXRzey9zaGF9IiwiZ2l0X2NvbW1pdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vZ2l0L2NvbW1pdHN7L3NoYX0iLCJjb21tZW50c191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21tZW50c3svbnVtYmVyfSIsImlz\nc3VlX2NvbW1lbnRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNz\ndWVzL2NvbW1lbnRzey9udW1iZXJ9IiwiY29udGVudHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4vY29udGVudHMveytwYXRofSIsImNvbXBhcmVf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29tcGFyZS97YmFzZX0u\nLi57aGVhZH0iLCJtZXJnZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vbWVyZ2VzIiwiYXJjaGl2ZV91cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9IiwiZG93bmxvYWRzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2Rvd25sb2FkcyIsImlzc3Vlc191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXN7L251bWJlcn0i\nLCJwdWxsc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxsc3sv\nbnVtYmVyfSIsIm1pbGVzdG9uZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vbWlsZXN0b25lc3svbnVtYmVyfSIsIm5vdGlmaWNhdGlvbnNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbm90aWZpY2F0aW9uc3s/c2lu\nY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwibGFiZWxzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L2xhYmVsc3svbmFtZX0iLCJyZWxlYXNlc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9yZWxlYXNlc3svaWR9IiwiZGVw\nbG95bWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZGVwbG95\nbWVudHMiLCJjcmVhdGVkX2F0IjoiMjAyNC0wMi0yOFQyMDowNDo0NloiLCJ1\ncGRhdGVkX2F0IjoiMjAyNC0wMi0yOFQyMDowNDo0NloiLCJwdXNoZWRfYXQi\nOiIyMDI0LTAyLTI4VDIwOjU1OjEzWiIsImdpdF91cmwiOiJnaXQ6Ly9naXRo\ndWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi5naXQiLCJzc2hfdXJsIjoiZ2l0QGdpdGh1Yi5jb206PEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIsImNsb25lX3VybCI6\nImh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4uZ2l0Iiwic3ZuX3VybCI6Imh0dHBzOi8vZ2l0aHVi\nLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4i\nLCJob21lcGFnZSI6Imh0dHA6Ly9vY3Rva2l0LmdpdGh1Yi5pby88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4vIiwic2l6ZSI6MTcxMzMsInN0YXJnYXplcnNf\nY291bnQiOjAsIndhdGNoZXJzX2NvdW50IjowLCJsYW5ndWFnZSI6bnVsbCwi\naGFzX2lzc3VlcyI6ZmFsc2UsImhhc19wcm9qZWN0cyI6dHJ1ZSwiaGFzX2Rv\nd25sb2FkcyI6dHJ1ZSwiaGFzX3dpa2kiOmZhbHNlLCJoYXNfcGFnZXMiOmZh\nbHNlLCJoYXNfZGlzY3Vzc2lvbnMiOmZhbHNlLCJmb3Jrc19jb3VudCI6MCwi\nbWlycm9yX3VybCI6bnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJkaXNhYmxlZCI6\nZmFsc2UsIm9wZW5faXNzdWVzX2NvdW50IjowLCJsaWNlbnNlIjp7ImtleSI6\nIm1pdCIsIm5hbWUiOiJNSVQgTGljZW5zZSIsInNwZHhfaWQiOiJNSVQiLCJ1\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL2xpY2Vuc2VzL21pdCIsIm5v\nZGVfaWQiOiJNRGM2VEdsalpXNXpaVEV6In0sImFsbG93X2ZvcmtpbmciOnRy\ndWUsImlzX3RlbXBsYXRlIjpmYWxzZSwid2ViX2NvbW1pdF9zaWdub2ZmX3Jl\ncXVpcmVkIjpmYWxzZSwidG9waWNzIjpbXSwidmlzaWJpbGl0eSI6InB1Ymxp\nYyIsImZvcmtzIjowLCJvcGVuX2lzc3VlcyI6MCwid2F0Y2hlcnMiOjAsImRl\nZmF1bHRfYnJhbmNoIjoibWFpbiJ9fSwiX2xpbmtzIjp7InNlbGYiOnsiaHJl\nZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzLzEifSwiaHRtbCI6\neyJocmVmIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxsLzEifSwiaXNzdWUiOnsiaHJl\nZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vlcy8xIn0sImNvbW1l\nbnRzIjp7ImhyZWYiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXMv\nMS9jb21tZW50cyJ9LCJyZXZpZXdfY29tbWVudHMiOnsiaHJlZiI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzLzEvY29tbWVudHMifSwicmV2aWV3\nX2NvbW1lbnQiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1\nbGxzL2NvbW1lbnRzey9udW1iZXJ9In0sImNvbW1pdHMiOnsiaHJlZiI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzLzEvY29tbWl0cyJ9LCJzdGF0\ndXNlcyI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3RhdHVz\nZXMvZDQyNjliNDFkZDk5ZjRlMjFhMDk2ZjEwZWU0NjVmZTNjZmRmMmJlNCJ9\nfSwiYXV0aG9yX2Fzc29jaWF0aW9uIjoiT1dORVIiLCJhdXRvX21lcmdlIjpu\ndWxsLCJhY3RpdmVfbG9ja19yZWFzb24iOm51bGwsIm1lcmdlZCI6ZmFsc2Us\nIm1lcmdlYWJsZSI6dHJ1ZSwicmViYXNlYWJsZSI6dHJ1ZSwibWVyZ2VhYmxl\nX3N0YXRlIjoiY2xlYW4iLCJtZXJnZWRfYnkiOm51bGwsImNvbW1lbnRzIjow\nLCJyZXZpZXdfY29tbWVudHMiOjAsIm1haW50YWluZXJfY2FuX21vZGlmeSI6\nZmFsc2UsImNvbW1pdHMiOjEsImFkZGl0aW9ucyI6MTEsImRlbGV0aW9ucyI6\nMCwiY2hhbmdlZF9maWxlcyI6MX0=\n" + } + }, + "recorded_at": "Wed, 28 Feb 2024 20:55:14 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/without_draft_argument/creates_a_pull_request_ready_for_review.json b/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/without_draft_argument/creates_a_pull_request_ready_for_review.json new file mode 100644 index 000000000..78122c785 --- /dev/null +++ b/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/_create_pull_request/without_draft_argument/creates_a_pull_request_ready_for_review.json @@ -0,0 +1,246 @@ +{ + "http_interactions": [ + { + "request": { + "method": "post", + "uri": "https://api.github.com/repos///pulls", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJiYXNlIjoibWFpbiIsImhlYWQiOiJicmFuY2gtZm9yLXByLW5vdC1kcmFm\ndCIsInRpdGxlIjoiQSBuZXcgUFIiLCJib2R5IjoiVGhlIEJvZHkifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Server": [ + "GitHub.com" + ], + "Date": [ + "Thu, 29 Feb 2024 01:08:49 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "15674" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"c5196943f65f5396f1c56957e9c53c8045583e9ee9e80a22de72af91bb74f3c1\"" + ], + "X-Oauth-Scopes": [ + "admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, copilot, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages" + ], + "X-Accepted-Oauth-Scopes": [ + "" + ], + "Github-Authentication-Token-Expiration": [ + "2024-03-06 20:20:54 UTC" + ], + "Location": [ + "https://api.github.com/repos///pulls/2" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4972" + ], + "X-Ratelimit-Reset": [ + "1709169757" + ], + "X-Ratelimit-Used": [ + "28" + ], + "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": [ + "E604:F903A:5E6E82:64E37B:65DFD920" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy8yIiwiaWQi\nOjE3NDg3ODQzMjUsIm5vZGVfaWQiOiJQUl9rd0RPTFphTVFNNW9QRlRGIiwi\naHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvMiIsImRpZmZfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9wdWxsLzIuZGlmZiIsInBhdGNoX3VybCI6Imh0dHBz\nOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbC8yLnBhdGNoIiwiaXNzdWVfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzIiLCJudW1iZXIiOjIsInN0YXRlIjoi\nb3BlbiIsImxvY2tlZCI6ZmFsc2UsInRpdGxlIjoiQSBuZXcgUFIiLCJ1c2Vy\nIjp7ImxvZ2luIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6ODQ5NDY0MDEsIm5v\nZGVfaWQiOiJNRFE2VlhObGNqZzBPVFEyTkRBeCIsImF2YXRhcl91cmwiOiJo\ndHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODQ5NDY0\nMDE/dj00IiwiZ3JhdmF0YXJfaWQiOiIiLCJ1cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+IiwiaHRtbF91cmwiOiJo\ndHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4iLCJmb2xsb3dlcnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9mb2xsb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9mb2xsb3dpbmd7L290\naGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9naXN0c3svZ2lzdF9pZH0iLCJzdGFy\ncmVkX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhV\nQl9MT0dJTj4vc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlv\nbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVC\nX0xPR0lOPi9zdWJzY3JpcHRpb25zIiwib3JnYW5pemF0aW9uc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L29y\nZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L3JlcG9zIiwiZXZlbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZXZlbnRzey9w\ncml2YWN5fSIsInJlY2VpdmVkX2V2ZW50c191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3JlY2VpdmVkX2V2ZW50\ncyIsInR5cGUiOiJVc2VyIiwic2l0ZV9hZG1pbiI6ZmFsc2V9LCJib2R5Ijoi\nVGhlIEJvZHkiLCJjcmVhdGVkX2F0IjoiMjAyNC0wMi0yOVQwMTowODo0OVoi\nLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMi0yOVQwMTowODo0OVoiLCJjbG9zZWRf\nYXQiOm51bGwsIm1lcmdlZF9hdCI6bnVsbCwibWVyZ2VfY29tbWl0X3NoYSI6\nbnVsbCwiYXNzaWduZWUiOm51bGwsImFzc2lnbmVlcyI6W10sInJlcXVlc3Rl\nZF9yZXZpZXdlcnMiOltdLCJyZXF1ZXN0ZWRfdGVhbXMiOltdLCJsYWJlbHMi\nOltdLCJtaWxlc3RvbmUiOm51bGwsImRyYWZ0IjpmYWxzZSwiY29tbWl0c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy8yL2NvbW1pdHMi\nLCJyZXZpZXdfY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vcHVsbHMvMi9jb21tZW50cyIsInJldmlld19jb21tZW50X3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzL2NvbW1lbnRzey9udW1iZXJ9\nIiwiY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNz\ndWVzLzIvY29tbWVudHMiLCJzdGF0dXNlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9zdGF0dXNlcy8zNjFkNDdkZjFiOWJlNzFlMzQ0YmI4Yjhl\nM2EwODM4M2RhNjU4ZDUzIiwiaGVhZCI6eyJsYWJlbCI6IjxHSVRIVUJfTE9H\nSU4+OmJyYW5jaC1mb3ItcHItbm90LWRyYWZ0IiwicmVmIjoiYnJhbmNoLWZv\nci1wci1ub3QtZHJhZnQiLCJzaGEiOiIzNjFkNDdkZjFiOWJlNzFlMzQ0YmI4\nYjhlM2EwODM4M2RhNjU4ZDUzIiwidXNlciI6eyJsb2dpbiI6IjxHSVRIVUJf\nTE9HSU4+IiwiaWQiOjg0OTQ2NDAxLCJub2RlX2lkIjoiTURRNlZYTmxjamcw\nT1RRMk5EQXgiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1\nYnVzZXJjb250ZW50LmNvbS91Lzg0OTQ2NDAxP3Y9NCIsImdyYXZhdGFyX2lk\nIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxH\nSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93ZXJzIiwiZm9s\nbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIsImdpc3RzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0YXJyZWR7L293\nbmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vic2NyaXB0aW9u\ncyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3NfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZXBv\ncyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJyZWNlaXZlZF9l\ndmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoiVXNlciIsInNp\ndGVfYWRtaW4iOmZhbHNlfSwicmVwbyI6eyJpZCI6NzY0ODQxMDI0LCJub2Rl\nX2lkIjoiUl9rZ0RPTFphTVFBIiwibmFtZSI6IjxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPiIsImZ1bGxfbmFtZSI6IjxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPiIsInByaXZhdGUiOmZhbHNlLCJvd25lciI6eyJs\nb2dpbiI6IjxHSVRIVUJfTE9HSU4+IiwiaWQiOjg0OTQ2NDAxLCJub2RlX2lk\nIjoiTURRNlZYTmxjamcwT1RRMk5EQXgiLCJhdmF0YXJfdXJsIjoiaHR0cHM6\nLy9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzg0OTQ2NDAxP3Y9\nNCIsImdyYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6\nLy9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4v\nZm9sbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91\nc2VyfSIsImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+L3N0YXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4vc3Vic2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwi\ncmVwb3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFj\neX0iLCJyZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0\neXBlIjoiVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwiaHRtbF91cmwiOiJo\ndHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+IiwiZGVzY3JpcHRpb24iOiJSdWJ5IHRvb2xraXQgZm9y\nIHRoZSBHaXRIdWIgQVBJIiwiZm9yayI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4iLCJmb3Jrc191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9mb3JrcyIsImtleXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4va2V5c3sva2V5X2lkfSIsImNvbGxhYm9yYXRvcnNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29sbGFib3JhdG9yc3svY29sbGFib3Jh\ndG9yfSIsInRlYW1zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3Rl\nYW1zIiwiaG9va3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaG9v\na3MiLCJpc3N1ZV9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsImV2ZW50c191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9ldmVudHMiLCJhc3NpZ25lZXNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vYXNzaWduZWVzey91c2VyfSIsImJy\nYW5jaGVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2JyYW5jaGVz\ney9icmFuY2h9IiwidGFnc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi90YWdzIiwiYmxvYnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nZ2l0L2Jsb2Jzey9zaGF9IiwiZ2l0X3RhZ3NfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vZ2l0L3RhZ3N7L3NoYX0iLCJnaXRfcmVmc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvcmVmc3svc2hhfSIsInRyZWVz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC90cmVlc3svc2hh\nfSIsInN0YXR1c2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3N0\nYXR1c2VzL3tzaGF9IiwibGFuZ3VhZ2VzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L2xhbmd1YWdlcyIsInN0YXJnYXplcnNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4vc3RhcmdhemVycyIsImNvbnRyaWJ1dG9yc191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb250cmlidXRvcnMiLCJz\ndWJzY3JpYmVyc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdWJz\nY3JpYmVycyIsInN1YnNjcmlwdGlvbl91cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9zdWJzY3JpcHRpb24iLCJjb21taXRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L2NvbW1pdHN7L3NoYX0iLCJnaXRfY29tbWl0c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvY29tbWl0c3svc2hh\nfSIsImNvbW1lbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2Nv\nbW1lbnRzey9udW1iZXJ9IiwiaXNzdWVfY29tbWVudF91cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXMvY29tbWVudHN7L251bWJlcn0iLCJj\nb250ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb250ZW50\ncy97K3BhdGh9IiwiY29tcGFyZV91cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsIm1lcmdlc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9tZXJnZXMiLCJhcmNoaXZlX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3thcmNoaXZlX2Zvcm1hdH17L3Jl\nZn0iLCJkb3dubG9hZHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nZG93bmxvYWRzIiwiaXNzdWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2lzc3Vlc3svbnVtYmVyfSIsInB1bGxzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L3B1bGxzey9udW1iZXJ9IiwibWlsZXN0b25lc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9taWxlc3RvbmVzey9udW1iZXJ9\nIiwibm90aWZpY2F0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9ub3RpZmljYXRpb25zez9zaW5jZSxhbGwscGFydGljaXBhdGluZ30iLCJs\nYWJlbHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbGFiZWxzey9u\nYW1lfSIsInJlbGVhc2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL3JlbGVhc2Vzey9pZH0iLCJkZXBsb3ltZW50c191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9kZXBsb3ltZW50cyIsImNyZWF0ZWRfYXQiOiIyMDI0\nLTAyLTI4VDIwOjA0OjQ2WiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAyLTI4VDIw\nOjA0OjQ2WiIsInB1c2hlZF9hdCI6IjIwMjQtMDItMjlUMDE6MDg6MzBaIiwi\nZ2l0X3VybCI6ImdpdDovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIsInNzaF91cmwiOiJnaXRAZ2l0\naHViLmNvbTo8R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4uZ2l0IiwiY2xvbmVfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi5naXQiLCJzdm5f\ndXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPiIsImhvbWVwYWdlIjoiaHR0cDovL29jdG9r\naXQuZ2l0aHViLmlvLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi8iLCJzaXpl\nIjoxMjU4OCwic3RhcmdhemVyc19jb3VudCI6MCwid2F0Y2hlcnNfY291bnQi\nOjAsImxhbmd1YWdlIjpudWxsLCJoYXNfaXNzdWVzIjpmYWxzZSwiaGFzX3By\nb2plY3RzIjp0cnVlLCJoYXNfZG93bmxvYWRzIjp0cnVlLCJoYXNfd2lraSI6\nZmFsc2UsImhhc19wYWdlcyI6ZmFsc2UsImhhc19kaXNjdXNzaW9ucyI6ZmFs\nc2UsImZvcmtzX2NvdW50IjowLCJtaXJyb3JfdXJsIjpudWxsLCJhcmNoaXZl\nZCI6ZmFsc2UsImRpc2FibGVkIjpmYWxzZSwib3Blbl9pc3N1ZXNfY291bnQi\nOjEsImxpY2Vuc2UiOnsia2V5IjoibWl0IiwibmFtZSI6Ik1JVCBMaWNlbnNl\nIiwic3BkeF9pZCI6Ik1JVCIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vbGljZW5zZXMvbWl0Iiwibm9kZV9pZCI6Ik1EYzZUR2xqWlc1elpURXoi\nfSwiYWxsb3dfZm9ya2luZyI6dHJ1ZSwiaXNfdGVtcGxhdGUiOmZhbHNlLCJ3\nZWJfY29tbWl0X3NpZ25vZmZfcmVxdWlyZWQiOmZhbHNlLCJ0b3BpY3MiOltd\nLCJ2aXNpYmlsaXR5IjoicHVibGljIiwiZm9ya3MiOjAsIm9wZW5faXNzdWVz\nIjoxLCJ3YXRjaGVycyI6MCwiZGVmYXVsdF9icmFuY2giOiJtYWluIn19LCJi\nYXNlIjp7ImxhYmVsIjoiPEdJVEhVQl9MT0dJTj46bWFpbiIsInJlZiI6Im1h\naW4iLCJzaGEiOiIxZjJjZTNlYWE2Y2U3YmQ2MDk4MDA2ZjJhZGY3MmIwNWQy\nMzgzYzkzIiwidXNlciI6eyJsb2dpbiI6IjxHSVRIVUJfTE9HSU4+IiwiaWQi\nOjg0OTQ2NDAxLCJub2RlX2lkIjoiTURRNlZYTmxjamcwT1RRMk5EQXgiLCJh\ndmF0YXJfdXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50\nLmNvbS91Lzg0OTQ2NDAxP3Y9NCIsImdyYXZhdGFyX2lkIjoiIiwidXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPiIs\nImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+\nIiwiZm9sbG93ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4v\nZm9sbG93aW5ney9vdGhlcl91c2VyfSIsImdpc3RzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZ2lzdHN7L2dp\nc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0YXJyZWR7L293bmVyfXsvcmVwb30i\nLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vic2NyaXB0aW9ucyIsIm9yZ2FuaXph\ndGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9vcmdzIiwicmVwb3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZXBvcyIsImV2ZW50c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJyZWNlaXZlZF9ldmVudHNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9y\nZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoiVXNlciIsInNpdGVfYWRtaW4iOmZh\nbHNlfSwicmVwbyI6eyJpZCI6NzY0ODQxMDI0LCJub2RlX2lkIjoiUl9rZ0RP\nTFphTVFBIiwibmFtZSI6IjxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsImZ1\nbGxfbmFtZSI6IjxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPiIsInByaXZhdGUiOmZhbHNlLCJvd25lciI6eyJsb2dpbiI6IjxHSVRI\nVUJfTE9HSU4+IiwiaWQiOjg0OTQ2NDAxLCJub2RlX2lkIjoiTURRNlZYTmxj\namcwT1RRMk5EQXgiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdp\ndGh1YnVzZXJjb250ZW50LmNvbS91Lzg0OTQ2NDAxP3Y9NCIsImdyYXZhdGFy\nX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88\nR0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29t\nLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93ZXJzIiwi\nZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIsImdpc3Rz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9M\nT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0YXJyZWR7\nL293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vic2NyaXB0\naW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3NfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9y\nZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Vz\nZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJyZWNlaXZl\nZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88\nR0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoiVXNlciIs\nInNpdGVfYWRtaW4iOmZhbHNlfSwiaHRtbF91cmwiOiJodHRwczovL2dpdGh1\nYi5jb20vPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nIiwiZGVzY3JpcHRpb24iOiJSdWJ5IHRvb2xraXQgZm9yIHRoZSBHaXRIdWIg\nQVBJIiwiZm9yayI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4iLCJmb3Jrc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9mb3Jr\ncyIsImtleXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4va2V5c3sv\na2V5X2lkfSIsImNvbGxhYm9yYXRvcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9yfSIsInRlYW1z\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3RlYW1zIiwiaG9va3Nf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaG9va3MiLCJpc3N1ZV9l\ndmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNzdWVzL2V2\nZW50c3svbnVtYmVyfSIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9ldmVudHMiLCJhc3NpZ25lZXNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vYXNzaWduZWVzey91c2VyfSIsImJyYW5jaGVzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2JyYW5jaGVzey9icmFuY2h9Iiwi\ndGFnc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi90YWdzIiwiYmxv\nYnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L2Jsb2Jzey9z\naGF9IiwiZ2l0X3RhZ3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nZ2l0L3RhZ3N7L3NoYX0iLCJnaXRfcmVmc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9naXQvcmVmc3svc2hhfSIsInRyZWVzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L2dpdC90cmVlc3svc2hhfSIsInN0YXR1c2Vz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3N0YXR1c2VzL3tzaGF9\nIiwibGFuZ3VhZ2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2xh\nbmd1YWdlcyIsInN0YXJnYXplcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vc3RhcmdhemVycyIsImNvbnRyaWJ1dG9yc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9jb250cmlidXRvcnMiLCJzdWJzY3JpYmVyc191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdWJzY3JpYmVycyIsInN1\nYnNjcmlwdGlvbl91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdWJz\nY3JpcHRpb24iLCJjb21taXRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2NvbW1pdHN7L3NoYX0iLCJnaXRfY29tbWl0c191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9naXQvY29tbWl0c3svc2hhfSIsImNvbW1lbnRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbW1lbnRzey9udW1i\nZXJ9IiwiaXNzdWVfY29tbWVudF91cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9pc3N1ZXMvY29tbWVudHN7L251bWJlcn0iLCJjb250ZW50c191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb250ZW50cy97K3BhdGh9Iiwi\nY29tcGFyZV91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21wYXJl\nL3tiYXNlfS4uLntoZWFkfSIsIm1lcmdlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9tZXJnZXMiLCJhcmNoaXZlX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L3thcmNoaXZlX2Zvcm1hdH17L3JlZn0iLCJkb3dubG9h\nZHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZG93bmxvYWRzIiwi\naXNzdWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vlc3sv\nbnVtYmVyfSIsInB1bGxzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL3B1bGxzey9udW1iZXJ9IiwibWlsZXN0b25lc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9taWxlc3RvbmVzey9udW1iZXJ9Iiwibm90aWZpY2F0\naW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9ub3RpZmljYXRp\nb25zez9zaW5jZSxhbGwscGFydGljaXBhdGluZ30iLCJsYWJlbHNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbGFiZWxzey9uYW1lfSIsInJlbGVh\nc2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3JlbGVhc2Vzey9p\nZH0iLCJkZXBsb3ltZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9kZXBsb3ltZW50cyIsImNyZWF0ZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjA0\nOjQ2WiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAyLTI4VDIwOjA0OjQ2WiIsInB1\nc2hlZF9hdCI6IjIwMjQtMDItMjlUMDE6MDg6MzBaIiwiZ2l0X3VybCI6Imdp\ndDovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+LmdpdCIsInNzaF91cmwiOiJnaXRAZ2l0aHViLmNvbTo8R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4uZ2l0IiwiY2xv\nbmVfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi5naXQiLCJzdm5fdXJsIjoiaHR0cHM6\nLy9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPiIsImhvbWVwYWdlIjoiaHR0cDovL29jdG9raXQuZ2l0aHViLmlv\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi8iLCJzaXplIjoxMjU4OCwic3Rh\ncmdhemVyc19jb3VudCI6MCwid2F0Y2hlcnNfY291bnQiOjAsImxhbmd1YWdl\nIjpudWxsLCJoYXNfaXNzdWVzIjpmYWxzZSwiaGFzX3Byb2plY3RzIjp0cnVl\nLCJoYXNfZG93bmxvYWRzIjp0cnVlLCJoYXNfd2lraSI6ZmFsc2UsImhhc19w\nYWdlcyI6ZmFsc2UsImhhc19kaXNjdXNzaW9ucyI6ZmFsc2UsImZvcmtzX2Nv\ndW50IjowLCJtaXJyb3JfdXJsIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImRp\nc2FibGVkIjpmYWxzZSwib3Blbl9pc3N1ZXNfY291bnQiOjEsImxpY2Vuc2Ui\nOnsia2V5IjoibWl0IiwibmFtZSI6Ik1JVCBMaWNlbnNlIiwic3BkeF9pZCI6\nIk1JVCIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vbGljZW5zZXMv\nbWl0Iiwibm9kZV9pZCI6Ik1EYzZUR2xqWlc1elpURXoifSwiYWxsb3dfZm9y\na2luZyI6dHJ1ZSwiaXNfdGVtcGxhdGUiOmZhbHNlLCJ3ZWJfY29tbWl0X3Np\nZ25vZmZfcmVxdWlyZWQiOmZhbHNlLCJ0b3BpY3MiOltdLCJ2aXNpYmlsaXR5\nIjoicHVibGljIiwiZm9ya3MiOjAsIm9wZW5faXNzdWVzIjoxLCJ3YXRjaGVy\ncyI6MCwiZGVmYXVsdF9icmFuY2giOiJtYWluIn19LCJfbGlua3MiOnsic2Vs\nZiI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvMiJ9\nLCJodG1sIjp7ImhyZWYiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvMiJ9LCJpc3N1\nZSI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzIi\nfSwiY29tbWVudHMiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL2lzc3Vlcy8yL2NvbW1lbnRzIn0sInJldmlld19jb21tZW50cyI6eyJocmVm\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvMi9jb21tZW50cyJ9\nLCJyZXZpZXdfY29tbWVudCI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vcHVsbHMvY29tbWVudHN7L251bWJlcn0ifSwiY29tbWl0cyI6eyJo\ncmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvMi9jb21taXRz\nIn0sInN0YXR1c2VzIjp7ImhyZWYiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9zdGF0dXNlcy8zNjFkNDdkZjFiOWJlNzFlMzQ0YmI4YjhlM2EwODM4M2Rh\nNjU4ZDUzIn19LCJhdXRob3JfYXNzb2NpYXRpb24iOiJPV05FUiIsImF1dG9f\nbWVyZ2UiOm51bGwsImFjdGl2ZV9sb2NrX3JlYXNvbiI6bnVsbCwibWVyZ2Vk\nIjpmYWxzZSwibWVyZ2VhYmxlIjpudWxsLCJyZWJhc2VhYmxlIjpudWxsLCJt\nZXJnZWFibGVfc3RhdGUiOiJ1bmtub3duIiwibWVyZ2VkX2J5IjpudWxsLCJj\nb21tZW50cyI6MCwicmV2aWV3X2NvbW1lbnRzIjowLCJtYWludGFpbmVyX2Nh\nbl9tb2RpZnkiOmZhbHNlLCJjb21taXRzIjoxLCJhZGRpdGlvbnMiOjIyLCJk\nZWxldGlvbnMiOjAsImNoYW5nZWRfZmlsZXMiOjF9\n" + } + }, + "recorded_at": "Thu, 29 Feb 2024 01:08:46 GMT" + }, + { + "request": { + "method": "patch", + "uri": "https://api.github.com/repos///pulls/2", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJzdGF0ZSI6ImNsb3NlZCJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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, 29 Feb 2024 01:08:51 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/\"a4afdc9689af0db8dd56ed80fdd1a79a1cc4c1090a469830f6c924aef2870dc2\"" + ], + "X-Oauth-Scopes": [ + "admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, admin:ssh_signing_key, audit_log, codespace, copilot, delete:packages, delete_repo, gist, notifications, project, repo, user, workflow, write:discussion, write:packages" + ], + "X-Accepted-Oauth-Scopes": [ + "" + ], + "Github-Authentication-Token-Expiration": [ + "2024-03-06 20:20:54 UTC" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4969" + ], + "X-Ratelimit-Reset": [ + "1709169757" + ], + "X-Ratelimit-Used": [ + "31" + ], + "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": [ + "D7B0:CF85C:94B9DD:9EA540:65DFD922" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy8yIiwiaWQi\nOjE3NDg3ODQzMjUsIm5vZGVfaWQiOiJQUl9rd0RPTFphTVFNNW9QRlRGIiwi\naHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvMiIsImRpZmZfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9wdWxsLzIuZGlmZiIsInBhdGNoX3VybCI6Imh0dHBz\nOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbC8yLnBhdGNoIiwiaXNzdWVfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzIiLCJudW1iZXIiOjIsInN0YXRlIjoi\nY2xvc2VkIiwibG9ja2VkIjpmYWxzZSwidGl0bGUiOiJBIG5ldyBQUiIsInVz\nZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo4NDk0NjQwMSwi\nbm9kZV9pZCI6Ik1EUTZWWE5sY2pnME9UUTJOREF4IiwiYXZhdGFyX3VybCI6\nImh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NDk0\nNjQwMT92PTQiLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6\nImh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vy\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJf\nTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3sv\nb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0\nYXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0\naW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4v\nb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7\nL3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZl\nbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sImJvZHki\nOiJUaGUgQm9keSIsImNyZWF0ZWRfYXQiOiIyMDI0LTAyLTI5VDAxOjA4OjQ5\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAyLTI5VDAxOjA4OjUxWiIsImNsb3Nl\nZF9hdCI6IjIwMjQtMDItMjlUMDE6MDg6NTFaIiwibWVyZ2VkX2F0IjpudWxs\nLCJtZXJnZV9jb21taXRfc2hhIjoiNzA4MTI5ZmMxMzlmYmU2MDQwNGI3MGE3\nZTUwNmZmM2JhNzYwYjM5ZCIsImFzc2lnbmVlIjpudWxsLCJhc3NpZ25lZXMi\nOltdLCJyZXF1ZXN0ZWRfcmV2aWV3ZXJzIjpbXSwicmVxdWVzdGVkX3RlYW1z\nIjpbXSwibGFiZWxzIjpbXSwibWlsZXN0b25lIjpudWxsLCJkcmFmdCI6ZmFs\nc2UsImNvbW1pdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVs\nbHMvMi9jb21taXRzIiwicmV2aWV3X2NvbW1lbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L3B1bGxzLzIvY29tbWVudHMiLCJyZXZpZXdfY29t\nbWVudF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy9jb21t\nZW50c3svbnVtYmVyfSIsImNvbW1lbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L2lzc3Vlcy8yL2NvbW1lbnRzIiwic3RhdHVzZXNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3RhdHVzZXMvMzYxZDQ3ZGYxYjli\nZTcxZTM0NGJiOGI4ZTNhMDgzODNkYTY1OGQ1MyIsImhlYWQiOnsibGFiZWwi\nOiI8R0lUSFVCX0xPR0lOPjpicmFuY2gtZm9yLXByLW5vdC1kcmFmdCIsInJl\nZiI6ImJyYW5jaC1mb3ItcHItbm90LWRyYWZ0Iiwic2hhIjoiMzYxZDQ3ZGYx\nYjliZTcxZTM0NGJiOGI4ZTNhMDgzODNkYTY1OGQ1MyIsInVzZXIiOnsibG9n\naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo4NDk0NjQwMSwibm9kZV9pZCI6\nIk1EUTZWWE5sY2pnME9UUTJOREF4IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8v\nYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NDk0NjQwMT92PTQi\nLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6Imh0dHBzOi8v\nZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vyc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2Zv\nbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3svb3RoZXJfdXNl\ncn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lO\nPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0aW9uc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+\nL3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vb3JncyIsInJl\ncG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhV\nQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7L3ByaXZhY3l9\nIiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZlbnRzIiwidHlw\nZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sInJlcG8iOnsiaWQiOjc2\nNDg0MTAyNCwibm9kZV9pZCI6IlJfa2dET0xaYU1RQSIsIm5hbWUiOiI8R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJmdWxsX25hbWUiOiI8R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJwcml2YXRlIjpmYWxz\nZSwib3duZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo4NDk0\nNjQwMSwibm9kZV9pZCI6Ik1EUTZWWE5sY2pnME9UUTJOREF4IiwiYXZhdGFy\nX3VybCI6Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20v\ndS84NDk0NjQwMT92PTQiLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1s\nX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZv\nbGxvd2Vyc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxH\nSVRIVUJfTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxv\nd2luZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lk\nfSIsInN0YXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy\ncy88R0lUSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vi\nc2NyaXB0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25z\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9M\nT0dJTj4vb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9l\ndmVudHN7L3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2\nZWRfZXZlbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0s\nImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsImRlc2NyaXB0aW9uIjoiUnVi\neSB0b29sa2l0IGZvciB0aGUgR2l0SHViIEFQSSIsImZvcmsiOnRydWUsInVy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+IiwiZm9ya3NfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vZm9ya3MiLCJrZXlzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L2tleXN7L2tleV9pZH0iLCJjb2xsYWJvcmF0\nb3JzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbGxhYm9yYXRv\ncnN7L2NvbGxhYm9yYXRvcn0iLCJ0ZWFtc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi90ZWFtcyIsImhvb2tzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L2hvb2tzIiwiaXNzdWVfZXZlbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L2lzc3Vlcy9ldmVudHN7L251bWJlcn0iLCJldmVu\ndHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZXZlbnRzIiwiYXNz\naWduZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2Fzc2lnbmVl\nc3svdXNlcn0iLCJicmFuY2hlc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9icmFuY2hlc3svYnJhbmNofSIsInRhZ3NfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vdGFncyIsImJsb2JzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L2dpdC9ibG9ic3svc2hhfSIsImdpdF90YWdzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC90YWdzey9zaGF9IiwiZ2l0\nX3JlZnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L3JlZnN7\nL3NoYX0iLCJ0cmVlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9n\naXQvdHJlZXN7L3NoYX0iLCJzdGF0dXNlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9zdGF0dXNlcy97c2hhfSIsImxhbmd1YWdlc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9sYW5ndWFnZXMiLCJzdGFyZ2F6ZXJz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3N0YXJnYXplcnMiLCJj\nb250cmlidXRvcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29u\ndHJpYnV0b3JzIiwic3Vic2NyaWJlcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vc3Vic2NyaWJlcnMiLCJzdWJzY3JpcHRpb25fdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Vic2NyaXB0aW9uIiwiY29tbWl0c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21taXRzey9zaGF9Iiwi\nZ2l0X2NvbW1pdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0\nL2NvbW1pdHN7L3NoYX0iLCJjb21tZW50c191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9jb21tZW50c3svbnVtYmVyfSIsImlzc3VlX2NvbW1lbnRf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNzdWVzL2NvbW1lbnRz\ney9udW1iZXJ9IiwiY29udGVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vY29udGVudHMveytwYXRofSIsImNvbXBhcmVfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4vY29tcGFyZS97YmFzZX0uLi57aGVhZH0iLCJt\nZXJnZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbWVyZ2VzIiwi\nYXJjaGl2ZV91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi97YXJjaGl2\nZV9mb3JtYXR9ey9yZWZ9IiwiZG93bmxvYWRzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L2Rvd25sb2FkcyIsImlzc3Vlc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXN7L251bWJlcn0iLCJwdWxsc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxsc3svbnVtYmVyfSIsIm1p\nbGVzdG9uZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbWlsZXN0\nb25lc3svbnVtYmVyfSIsIm5vdGlmaWNhdGlvbnNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vbm90aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRp\nY2lwYXRpbmd9IiwibGFiZWxzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2xhYmVsc3svbmFtZX0iLCJyZWxlYXNlc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9yZWxlYXNlc3svaWR9IiwiZGVwbG95bWVudHNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZGVwbG95bWVudHMiLCJjcmVh\ndGVkX2F0IjoiMjAyNC0wMi0yOFQyMDowNDo0NloiLCJ1cGRhdGVkX2F0Ijoi\nMjAyNC0wMi0yOFQyMDowNDo0NloiLCJwdXNoZWRfYXQiOiIyMDI0LTAyLTI5\nVDAxOjA4OjQ5WiIsImdpdF91cmwiOiJnaXQ6Ly9naXRodWIuY29tLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi5naXQiLCJzc2hf\ndXJsIjoiZ2l0QGdpdGh1Yi5jb206PEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+LmdpdCIsImNsb25lX3VybCI6Imh0dHBzOi8vZ2l0\naHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4uZ2l0Iiwic3ZuX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJob21lcGFnZSI6\nImh0dHA6Ly9vY3Rva2l0LmdpdGh1Yi5pby88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vIiwic2l6ZSI6MTI1ODgsInN0YXJnYXplcnNfY291bnQiOjAsIndh\ndGNoZXJzX2NvdW50IjowLCJsYW5ndWFnZSI6bnVsbCwiaGFzX2lzc3VlcyI6\nZmFsc2UsImhhc19wcm9qZWN0cyI6dHJ1ZSwiaGFzX2Rvd25sb2FkcyI6dHJ1\nZSwiaGFzX3dpa2kiOmZhbHNlLCJoYXNfcGFnZXMiOmZhbHNlLCJoYXNfZGlz\nY3Vzc2lvbnMiOmZhbHNlLCJmb3Jrc19jb3VudCI6MCwibWlycm9yX3VybCI6\nbnVsbCwiYXJjaGl2ZWQiOmZhbHNlLCJkaXNhYmxlZCI6ZmFsc2UsIm9wZW5f\naXNzdWVzX2NvdW50IjowLCJsaWNlbnNlIjp7ImtleSI6Im1pdCIsIm5hbWUi\nOiJNSVQgTGljZW5zZSIsInNwZHhfaWQiOiJNSVQiLCJ1cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL2xpY2Vuc2VzL21pdCIsIm5vZGVfaWQiOiJNRGM2\nVEdsalpXNXpaVEV6In0sImFsbG93X2ZvcmtpbmciOnRydWUsImlzX3RlbXBs\nYXRlIjpmYWxzZSwid2ViX2NvbW1pdF9zaWdub2ZmX3JlcXVpcmVkIjpmYWxz\nZSwidG9waWNzIjpbXSwidmlzaWJpbGl0eSI6InB1YmxpYyIsImZvcmtzIjow\nLCJvcGVuX2lzc3VlcyI6MCwid2F0Y2hlcnMiOjAsImRlZmF1bHRfYnJhbmNo\nIjoibWFpbiJ9fSwiYmFzZSI6eyJsYWJlbCI6IjxHSVRIVUJfTE9HSU4+Om1h\naW4iLCJyZWYiOiJtYWluIiwic2hhIjoiMWYyY2UzZWFhNmNlN2JkNjA5ODAw\nNmYyYWRmNzJiMDVkMjM4M2M5MyIsInVzZXIiOnsibG9naW4iOiI8R0lUSFVC\nX0xPR0lOPiIsImlkIjo4NDk0NjQwMSwibm9kZV9pZCI6Ik1EUTZWWE5sY2pn\nME9UUTJOREF4IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZhdGFycy5naXRo\ndWJ1c2VyY29udGVudC5jb20vdS84NDk0NjQwMT92PTQiLCJncmF2YXRhcl9p\nZCI6IiIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88\nR0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vyc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2VycyIsImZv\nbGxvd2luZ191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxH\nSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9zdGFycmVkey9v\nd25lcn17L3JlcG99Iiwic3Vic2NyaXB0aW9uc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N1YnNjcmlwdGlv\nbnMiLCJvcmdhbml6YXRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vb3JncyIsInJlcG9zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVw\nb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy\ncy88R0lUSFVCX0xPR0lOPi9ldmVudHN7L3ByaXZhY3l9IiwicmVjZWl2ZWRf\nZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZlbnRzIiwidHlwZSI6IlVzZXIiLCJz\naXRlX2FkbWluIjpmYWxzZX0sInJlcG8iOnsiaWQiOjc2NDg0MTAyNCwibm9k\nZV9pZCI6IlJfa2dET0xaYU1RQSIsIm5hbWUiOiI8R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4iLCJmdWxsX25hbWUiOiI8R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4iLCJwcml2YXRlIjpmYWxzZSwib3duZXIiOnsi\nbG9naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo4NDk0NjQwMSwibm9kZV9p\nZCI6Ik1EUTZWWE5sY2pnME9UUTJOREF4IiwiYXZhdGFyX3VybCI6Imh0dHBz\nOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NDk0NjQwMT92\nPTQiLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6Imh0dHBz\nOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vyc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+\nL2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3svb3RoZXJf\ndXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Vz\nZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0aW9uc191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vb3JncyIs\nInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7L3ByaXZh\nY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZlbnRzIiwi\ndHlwZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sImh0bWxfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPiIsImRlc2NyaXB0aW9uIjoiUnVieSB0b29sa2l0IGZv\nciB0aGUgR2l0SHViIEFQSSIsImZvcmsiOnRydWUsInVybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+IiwiZm9ya3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vZm9ya3MiLCJrZXlzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+L2tleXN7L2tleV9pZH0iLCJjb2xsYWJvcmF0b3JzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9y\nYXRvcn0iLCJ0ZWFtc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi90\nZWFtcyIsImhvb2tzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2hv\nb2tzIiwiaXNzdWVfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2lzc3Vlcy9ldmVudHN7L251bWJlcn0iLCJldmVudHNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vZXZlbnRzIiwiYXNzaWduZWVzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2Fzc2lnbmVlc3svdXNlcn0iLCJi\ncmFuY2hlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9icmFuY2hl\nc3svYnJhbmNofSIsInRhZ3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vdGFncyIsImJsb2JzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL2dpdC9ibG9ic3svc2hhfSIsImdpdF90YWdzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L2dpdC90YWdzey9zaGF9IiwiZ2l0X3JlZnNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L3JlZnN7L3NoYX0iLCJ0cmVl\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvdHJlZXN7L3No\nYX0iLCJzdGF0dXNlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9z\ndGF0dXNlcy97c2hhfSIsImxhbmd1YWdlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9sYW5ndWFnZXMiLCJzdGFyZ2F6ZXJzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L3N0YXJnYXplcnMiLCJjb250cmlidXRvcnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29udHJpYnV0b3JzIiwi\nc3Vic2NyaWJlcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Vi\nc2NyaWJlcnMiLCJzdWJzY3JpcHRpb25fdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vc3Vic2NyaXB0aW9uIiwiY29tbWl0c191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9jb21taXRzey9zaGF9IiwiZ2l0X2NvbW1pdHNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L2NvbW1pdHN7L3No\nYX0iLCJjb21tZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9j\nb21tZW50c3svbnVtYmVyfSIsImlzc3VlX2NvbW1lbnRfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4vaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9Iiwi\nY29udGVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29udGVu\ndHMveytwYXRofSIsImNvbXBhcmVfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vY29tcGFyZS97YmFzZX0uLi57aGVhZH0iLCJtZXJnZXNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbWVyZ2VzIiwiYXJjaGl2ZV91cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi97YXJjaGl2ZV9mb3JtYXR9ey9y\nZWZ9IiwiZG93bmxvYWRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL2Rvd25sb2FkcyIsImlzc3Vlc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9pc3N1ZXN7L251bWJlcn0iLCJwdWxsc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9wdWxsc3svbnVtYmVyfSIsIm1pbGVzdG9uZXNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbWlsZXN0b25lc3svbnVtYmVy\nfSIsIm5vdGlmaWNhdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vbm90aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9Iiwi\nbGFiZWxzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2xhYmVsc3sv\nbmFtZX0iLCJyZWxlYXNlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9yZWxlYXNlc3svaWR9IiwiZGVwbG95bWVudHNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vZGVwbG95bWVudHMiLCJjcmVhdGVkX2F0IjoiMjAy\nNC0wMi0yOFQyMDowNDo0NloiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMi0yOFQy\nMDowNDo0NloiLCJwdXNoZWRfYXQiOiIyMDI0LTAyLTI5VDAxOjA4OjQ5WiIs\nImdpdF91cmwiOiJnaXQ6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi5naXQiLCJzc2hfdXJsIjoiZ2l0QGdp\ndGh1Yi5jb206PEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+LmdpdCIsImNsb25lX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4uZ2l0Iiwic3Zu\nX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJob21lcGFnZSI6Imh0dHA6Ly9vY3Rv\na2l0LmdpdGh1Yi5pby88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vIiwic2l6\nZSI6MTI1ODgsInN0YXJnYXplcnNfY291bnQiOjAsIndhdGNoZXJzX2NvdW50\nIjowLCJsYW5ndWFnZSI6bnVsbCwiaGFzX2lzc3VlcyI6ZmFsc2UsImhhc19w\ncm9qZWN0cyI6dHJ1ZSwiaGFzX2Rvd25sb2FkcyI6dHJ1ZSwiaGFzX3dpa2ki\nOmZhbHNlLCJoYXNfcGFnZXMiOmZhbHNlLCJoYXNfZGlzY3Vzc2lvbnMiOmZh\nbHNlLCJmb3Jrc19jb3VudCI6MCwibWlycm9yX3VybCI6bnVsbCwiYXJjaGl2\nZWQiOmZhbHNlLCJkaXNhYmxlZCI6ZmFsc2UsIm9wZW5faXNzdWVzX2NvdW50\nIjowLCJsaWNlbnNlIjp7ImtleSI6Im1pdCIsIm5hbWUiOiJNSVQgTGljZW5z\nZSIsInNwZHhfaWQiOiJNSVQiLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL2xpY2Vuc2VzL21pdCIsIm5vZGVfaWQiOiJNRGM2VEdsalpXNXpaVEV6\nIn0sImFsbG93X2ZvcmtpbmciOnRydWUsImlzX3RlbXBsYXRlIjpmYWxzZSwi\nd2ViX2NvbW1pdF9zaWdub2ZmX3JlcXVpcmVkIjpmYWxzZSwidG9waWNzIjpb\nXSwidmlzaWJpbGl0eSI6InB1YmxpYyIsImZvcmtzIjowLCJvcGVuX2lzc3Vl\ncyI6MCwid2F0Y2hlcnMiOjAsImRlZmF1bHRfYnJhbmNoIjoibWFpbiJ9fSwi\nX2xpbmtzIjp7InNlbGYiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L3B1bGxzLzIifSwiaHRtbCI6eyJocmVmIjoiaHR0cHM6Ly9naXRodWIu\nY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9w\ndWxsLzIifSwiaXNzdWUiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2lzc3Vlcy8yIn0sImNvbW1lbnRzIjp7ImhyZWYiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9pc3N1ZXMvMi9jb21tZW50cyJ9LCJyZXZpZXdfY29t\nbWVudHMiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxz\nLzIvY29tbWVudHMifSwicmV2aWV3X2NvbW1lbnQiOnsiaHJlZiI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzL2NvbW1lbnRzey9udW1iZXJ9In0s\nImNvbW1pdHMiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1\nbGxzLzIvY29tbWl0cyJ9LCJzdGF0dXNlcyI6eyJocmVmIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vc3RhdHVzZXMvMzYxZDQ3ZGYxYjliZTcxZTM0NGJi\nOGI4ZTNhMDgzODNkYTY1OGQ1MyJ9fSwiYXV0aG9yX2Fzc29jaWF0aW9uIjoi\nT1dORVIiLCJhdXRvX21lcmdlIjpudWxsLCJhY3RpdmVfbG9ja19yZWFzb24i\nOm51bGwsIm1lcmdlZCI6ZmFsc2UsIm1lcmdlYWJsZSI6dHJ1ZSwicmViYXNl\nYWJsZSI6dHJ1ZSwibWVyZ2VhYmxlX3N0YXRlIjoiY2xlYW4iLCJtZXJnZWRf\nYnkiOm51bGwsImNvbW1lbnRzIjowLCJyZXZpZXdfY29tbWVudHMiOjAsIm1h\naW50YWluZXJfY2FuX21vZGlmeSI6ZmFsc2UsImNvbW1pdHMiOjEsImFkZGl0\naW9ucyI6MjIsImRlbGV0aW9ucyI6MCwiY2hhbmdlZF9maWxlcyI6MX0=\n" + } + }, + "recorded_at": "Thu, 29 Feb 2024 01:08:48 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/octokit/client/pull_requests_spec.rb b/spec/octokit/client/pull_requests_spec.rb index ed3ec648a..fbae9e8bd 100644 --- a/spec/octokit/client/pull_requests_spec.rb +++ b/spec/octokit/client/pull_requests_spec.rb @@ -48,6 +48,28 @@ assert_requested :post, github_url("/repos/#{@test_repo}/pulls") end end + + context 'with draft argument' do + let(:arguments_to_create_pull_request) do + [@test_repo, 'main', 'branch-for-pr', 'A new PR', 'The Body', { draft: true }] + end + + it 'creates a draft pull request' do + expect(@pull.draft).to be true + assert_requested :post, github_url("/repos/#{@test_repo}/pulls") + end + end + + context 'without draft argument' do + let(:arguments_to_create_pull_request) do + [@test_repo, 'main', 'branch-for-pr-not-draft', 'A new PR', 'The Body'] + end + + it 'creates a pull request ready for review' do + expect(@pull.draft).to be false + assert_requested :post, github_url("/repos/#{@test_repo}/pulls") + end + end end # .create_pull_request describe '.pull_request', :vcr do From 9812dbc5f226bbeffbf656576b23f730f277f97e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 13:19:04 -0800 Subject: [PATCH 23/75] Update rubocop requirement from 1.60.2 to 1.61.0 (#1672) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.60.2...v1.61.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index b926e01fd..42c4c0104 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.60.2' + gem 'rubocop', '1.61.0' end gemspec From d456a3ac1dc1b23fcc332347a8b0d2d055c9d5ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Carri=C3=A7o?= Date: Thu, 7 Mar 2024 09:02:54 +0000 Subject: [PATCH 24/75] Use auto pagination when retrieving environments --- lib/octokit/client/environments.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/octokit/client/environments.rb b/lib/octokit/client/environments.rb index 33f43d984..248e9d9cd 100644 --- a/lib/octokit/client/environments.rb +++ b/lib/octokit/client/environments.rb @@ -24,7 +24,10 @@ def environment(repo, environment_name, options = {}) # @return [Sawyer::Resource] Total count of environments and list of environments # @see https://docs.github.com/en/rest/deployments/environments#list-environments def environments(repo, options = {}) - get("#{Repository.path repo}/environments", options) + paginate("#{Repository.path repo}/environments", options) do |data, last_response| + data.environments.concat last_response.data.environments + data.total_count += last_response.data.total_count + end end alias list_environments environments From 14eae66a3ed7f5996db1b5e0e55f26bbba69a9b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 14:50:37 -0700 Subject: [PATCH 25/75] Update rubocop requirement from 1.61.0 to 1.62.1 (#1674) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.61.0...v1.62.1) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 42c4c0104..0e488a660 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.61.0' + gem 'rubocop', '1.62.1' end gemspec From 2c3a0cea13f7855742bd6dede8254568cc958dff Mon Sep 17 00:00:00 2001 From: Miguel Jimenez Date: Fri, 15 Mar 2024 22:46:09 +0000 Subject: [PATCH 26/75] remove pub_sub_hubbub module --- lib/octokit/client.rb | 2 - lib/octokit/client/pub_sub_hubbub.rb | 111 --------------------- spec/octokit/client/pub_sub_hubbub_spec.rb | 98 ------------------ 3 files changed, 211 deletions(-) delete mode 100644 lib/octokit/client/pub_sub_hubbub.rb delete mode 100644 spec/octokit/client/pub_sub_hubbub_spec.rb diff --git a/lib/octokit/client.rb b/lib/octokit/client.rb index b4005bf77..cf9236854 100644 --- a/lib/octokit/client.rb +++ b/lib/octokit/client.rb @@ -50,7 +50,6 @@ require 'octokit/client/organizations' require 'octokit/client/pages' require 'octokit/client/projects' -require 'octokit/client/pub_sub_hubbub' require 'octokit/client/pull_requests' require 'octokit/client/rate_limit' require 'octokit/client/reactions' @@ -118,7 +117,6 @@ class Client include Octokit::Client::Organizations include Octokit::Client::Pages include Octokit::Client::Projects - include Octokit::Client::PubSubHubbub include Octokit::Client::PullRequests include Octokit::Client::RateLimit include Octokit::Client::Reactions diff --git a/lib/octokit/client/pub_sub_hubbub.rb b/lib/octokit/client/pub_sub_hubbub.rb deleted file mode 100644 index 28ad171de..000000000 --- a/lib/octokit/client/pub_sub_hubbub.rb +++ /dev/null @@ -1,111 +0,0 @@ -# frozen_string_literal: true - -module Octokit - class Client - # Methods for the PubSubHubbub API - # - # @see https://developer.github.com/v3/repos/hooks/#pubsubhubbub - module PubSubHubbub - # Subscribe to a pubsub topic - # - # @param topic [String] A recoginized and supported pubsub topic - # @param callback [String] A callback url to be posted to when the topic event is fired - # @param secret [String] An optional shared secret used to generate a SHA1 HMAC of the outgoing body content - # @return [Boolean] true if the subscribe was successful, otherwise an error is raised - # @see https://developer.github.com/v3/repos/hooks/#subscribing - # @example Subscribe to push events from one of your repositories, having an email sent when fired - # client = Octokit::Client.new(:oauth_token = "token") - # client.subscribe("https://github.com/joshk/devise_imapable/events/push", "github://Email?address=josh.kalderimis@gmail.com") - def subscribe(topic, callback, secret = nil) - options = { - 'hub.callback': callback, - 'hub.mode': 'subscribe', - 'hub.topic': topic - } - options.merge!('hub.secret': secret) unless secret.nil? - - response = pub_sub_hubbub_request(options) - - response.status == 204 - end - - # Unsubscribe from a pubsub topic - # - # @param topic [String] A recoginized pubsub topic - # @param callback [String] A callback url to be unsubscribed from - # @return [Boolean] true if the unsubscribe was successful, otherwise an error is raised - # @see https://developer.github.com/v3/repos/hooks/#subscribing - # @example Unsubscribe to push events from one of your repositories, no longer having an email sent when fired - # client = Octokit::Client.new(:oauth_token = "token") - # client.unsubscribe("https://github.com/joshk/devise_imapable/events/push", "github://Email?address=josh.kalderimis@gmail.com") - def unsubscribe(topic, callback) - options = { - 'hub.callback': callback, - 'hub.mode': 'unsubscribe', - 'hub.topic': topic - } - response = pub_sub_hubbub_request(options) - - response.status == 204 - end - - # Subscribe to a repository through pubsub - # - # @param repo [String, Repository, Hash] A GitHub repository - # @param service_name [String] service name owner - # @param service_arguments [Hash] params that will be passed by subscribed hook. - # List of services is available @ https://github.com/github/github-services/tree/master/docs. - # Please refer Data node for complete list of arguments. - # @param secret [String] An optional shared secret used to generate a SHA1 HMAC of the outgoing body content - # @return [Boolean] True if subscription successful, false otherwise - # @see https://developer.github.com/v3/repos/hooks/#subscribing - # @example Subscribe to push events to one of your repositories to Travis-CI - # client = Octokit::Client.new(:oauth_token = "token") - # client.subscribe_service_hook('joshk/device_imapable', 'Travis', { :token => "test", :domain => "domain", :user => "user" }) - def subscribe_service_hook(repo, service_name, service_arguments = {}, secret = nil) - topic = "#{Octokit.web_endpoint}#{Repository.new(repo)}/events/push" - callback = "github://#{service_name}?#{service_arguments.collect { |k, v| [k, v].map { |p| URI.encode_www_form_component(p) }.join('=') }.join('&')}" - subscribe(topic, callback, secret) - end - - # Unsubscribe repository through pubsub - # - # @param repo [String, Repository, Hash] A GitHub repository - # @param service_name [String] service name owner - # List of services is available @ https://github.com/github/github-services/tree/master/docs. - # @see https://developer.github.com/v3/repos/hooks/#subscribing - # @example Subscribe to push events to one of your repositories to Travis-CI - # client = Octokit::Client.new(:oauth_token = "token") - # client.unsubscribe_service_hook('joshk/device_imapable', 'Travis') - def unsubscribe_service_hook(repo, service_name) - topic = "#{Octokit.web_endpoint}#{Repository.new(repo)}/events/push" - callback = "github://#{service_name}" - unsubscribe(topic, callback) - end - - private - - def pub_sub_hubbub_request(options = {}) - # This method is janky, bypass normal stack so we don't - # serialize request as JSON - conn = Faraday.new(url: @api_endpoint) do |http| - http.headers[:user_agent] = user_agent - if basic_authenticated? - http.request(*FARADAY_BASIC_AUTH_KEYS, @login, @password) - elsif token_authenticated? - http.request :authorization, 'token', @access_token - end - http.request :url_encoded - http.use Octokit::Response::RaiseError - http.adapter Faraday.default_adapter - end - - conn.post do |req| - req.url 'hub' - req.headers['Content-Type'] = 'application/x-www-form-urlencoded' - req.body = options - end - end - end - end -end diff --git a/spec/octokit/client/pub_sub_hubbub_spec.rb b/spec/octokit/client/pub_sub_hubbub_spec.rb deleted file mode 100644 index c13f1c6e1..000000000 --- a/spec/octokit/client/pub_sub_hubbub_spec.rb +++ /dev/null @@ -1,98 +0,0 @@ -# frozen_string_literal: true - -describe Octokit::Client::PubSubHubbub do - before do - Octokit.reset! - @client = oauth_client - end - - describe '.subscribe' do - it 'subscribes to pull events' do - request = stub_post(github_url('/hub')) - .with(body: { - 'hub.callback': 'github://Travis?token=travistoken', - 'hub.mode': 'subscribe', - 'hub.topic': 'https://github.com/elskwid/github-services/events/push', - 'hub.secret': '12345' - }) - .to_return(status: 204) - result = @client.subscribe('https://github.com/elskwid/github-services/events/push', 'github://Travis?token=travistoken', '12345') - expect(result).to be true - assert_requested request - end - - it 'raises an error when topic is not recognized', :vcr do - subscribe_request_body = { - 'hub.callback': 'github://Travis?token=travistoken', - 'hub.mode': 'subscribe', - 'hub.topic': 'https://github.com/joshk/not_existing_project/events/push' - } - expect do - @client.subscribe('https://github.com/joshk/not_existing_project/events/push', 'github://Travis?token=travistoken') - end.to raise_error Octokit::UnprocessableEntity - assert_requested :post, github_url('/hub'), body: subscribe_request_body, times: 1, - headers: { 'Content-type' => 'application/x-www-form-urlencoded' } - end - end # .subscribe - - describe '.unsubscribe', :vcr do - it 'unsubscribes from pull events' do - unsubscribe_request_body = { - 'hub.callback': 'github://Travis?token=travistoken', - 'hub.mode': 'unsubscribe', - 'hub.topic': "https://github.com/#{@test_repo}/events/push" - } - - result = @client.unsubscribe("https://github.com/#{@test_repo}/events/push", 'github://Travis?token=travistoken') - assert_requested :post, github_url('/hub'), body: unsubscribe_request_body, times: 1, - headers: { 'Content-type' => 'application/x-www-form-urlencoded' } - expect(result).to be true - end - end # .unsubscribe - - describe '.subscribe_service_hook' do - it 'subscribes to pull event on specified topic' do - request = stub_post(github_url('/hub')) - .with(body: { - 'hub.callback': 'github://Travis?token=travistoken', - 'hub.mode': 'subscribe', - 'hub.topic': 'https://github.com/elskwid/github-services/events/push', - 'hub.secret': '12345' - }) - .to_return(status: 204) - result = @client.subscribe_service_hook('elskwid/github-services', 'Travis', { token: 'travistoken' }, '12345') - expect(result).to be true - assert_requested request - end - - it 'encodes URL parameters', :vcr do - irc_request_body = { - 'hub.callback': 'github://irc?server=chat.freenode.org&room=%23myproject', - 'hub.mode': 'subscribe', - 'hub.topic': 'https://github.com/joshk/completeness-fu/events/push' - } - stub_post('/hub') - .with(body: irc_request_body) - .to_return(status: 204) - expect(@client.subscribe_service_hook('joshk/completeness-fu', 'irc', { server: 'chat.freenode.org', room: '#myproject' })).to eql(true) - # Since we can't depend upon hash ordering across the Rubies - assert_requested :post, 'https://api.github.com/hub', times: 1 do |req| - req.body[/hub.callback=github%3A%2F%2Firc%3Froom%3D%2523myproject/] - req.body[/server%3Dchat.freenode.org/] - end - end - end # .subscribe_service_hook - - describe 'unsubscribe_service_hook', :vcr do - it 'unsubscribes to stop receiving events on specified topic' do - unsubscribe_request_body = { - 'hub.callback': 'github://Travis', - 'hub.mode': 'unsubscribe', - 'hub.topic': "https://github.com/#{@test_repo}/events/push" - } - expect(@client.unsubscribe_service_hook(@test_repo, 'Travis')).to eq(true) - assert_requested :post, github_url('/hub'), body: unsubscribe_request_body, times: 1, - headers: { 'Content-type' => 'application/x-www-form-urlencoded' } - end - end -end From cf26c9c82bc8835e3a15a7116f2288e1615e8182 Mon Sep 17 00:00:00 2001 From: Miguel Jimenez Date: Fri, 15 Mar 2024 22:47:13 +0000 Subject: [PATCH 27/75] remove PubSubHubbub cassettes --- .../_subscribe/raises_an_error_when_topic_is_not_recognized.json | 1 - .../_unsubscribe/unsubscribes_from_pull_events.json | 1 - ...unsubscribes_to_stop_receiving_events_on_specified_topic.json | 1 - 3 files changed, 3 deletions(-) delete mode 100644 spec/cassettes/Octokit_Client_PubSubHubbub/_subscribe/raises_an_error_when_topic_is_not_recognized.json delete mode 100644 spec/cassettes/Octokit_Client_PubSubHubbub/_unsubscribe/unsubscribes_from_pull_events.json delete mode 100644 spec/cassettes/Octokit_Client_PubSubHubbub/unsubscribe_service_hook/unsubscribes_to_stop_receiving_events_on_specified_topic.json diff --git a/spec/cassettes/Octokit_Client_PubSubHubbub/_subscribe/raises_an_error_when_topic_is_not_recognized.json b/spec/cassettes/Octokit_Client_PubSubHubbub/_subscribe/raises_an_error_when_topic_is_not_recognized.json deleted file mode 100644 index e32bc778a..000000000 --- a/spec/cassettes/Octokit_Client_PubSubHubbub/_subscribe/raises_an_error_when_topic_is_not_recognized.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions":[{"request":{"method":"post","uri":"https://api.github.com/hub","body":{"encoding":"US-ASCII","base64_string":"aHViLm1vZGU9c3Vic2NyaWJlJmh1Yi50b3BpYz1odHRwcyUzQSUyRiUyRmdp\ndGh1Yi5jb20lMkZqb3NoayUyRm5vdF9leGlzdGluZ19wcm9qZWN0JTJGZXZl\nbnRzJTJGcHVzaCZodWIuY2FsbGJhY2s9Z2l0aHViJTNBJTJGJTJGVHJhdmlz\nJTNGdG9rZW4lM0R0cmF2aXN0b2tlbg==\n"},"headers":{"User-Agent":["Octokit Ruby Gem 2.0.0.pre"],"Authorization":["token <>"],"Content-Type":["application/x-www-form-urlencoded"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":422,"message":"Unprocessable Entity"},"headers":{"Server":["GitHub.com"],"Date":["Mon, 24 Jun 2013 01:16:21 GMT"],"Content-Type":["application/json; charset=utf-8"],"Connection":["keep-alive"],"Status":["422 Unprocessable Entity"],"X-Ratelimit-Limit":["5000"],"X-Ratelimit-Remaining":["4990"],"X-Oauth-Scopes":["repo, user, gist"],"X-Github-Media-Type":["github.beta"],"X-Content-Type-Options":["nosniff"],"Content-Length":["110"]},"body":{"encoding":"UTF-8","base64_string":"eyJtZXNzYWdlIjoiTm8gcmVwb3NpdG9yeSBmb3VuZCBmb3IgaHViLnRvcGlj\nOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9qb3Noay9ub3RfZXhpc3RpbmdfcHJv\namVjdC9ldmVudHMvcHVzaFwiIn0=\n"},"http_version":null},"recorded_at":"Mon, 24 Jun 2013 01:16:20 GMT"}],"recorded_with":"VCR 2.4.0"} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_PubSubHubbub/_unsubscribe/unsubscribes_from_pull_events.json b/spec/cassettes/Octokit_Client_PubSubHubbub/_unsubscribe/unsubscribes_from_pull_events.json deleted file mode 100644 index 4cac716fb..000000000 --- a/spec/cassettes/Octokit_Client_PubSubHubbub/_unsubscribe/unsubscribes_from_pull_events.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions":[{"request":{"method":"post","uri":"https://api.github.com/hub","body":{"encoding":"UTF-8","base64_string":"aHViLmNhbGxiYWNrPWdpdGh1YiUzQSUyRiUyRlRyYXZpcyUzRnRva2VuJTNE\ndHJhdmlzdG9rZW4maHViLm1vZGU9dW5zdWJzY3JpYmUmaHViLnRvcGljPWh0\ndHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRjxHSVRIVUJfTE9HSU4+JTJGPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+JTJGZXZlbnRzJTJGcHVzaA==\n"},"headers":{"User-Agent":["Octokit Ruby Gem 3.0.0.pre"],"Authorization":["token <>"],"Content-Type":["application/x-www-form-urlencoded"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":204,"message":"No Content"},"headers":{"Server":["GitHub.com"],"Date":["Fri, 07 Mar 2014 17:34:48 GMT"],"Status":["204 No Content"],"X-Ratelimit-Limit":["5000"],"X-Ratelimit-Remaining":["4993"],"X-Ratelimit-Reset":["1394215510"],"X-Oauth-Scopes":["gist, repo, user"],"X-Accepted-Oauth-Scopes":[""],"X-Github-Media-Type":["github.beta"],"X-Content-Type-Options":["nosniff"],"X-Github-Request-Id":["4B413AB6:3BDF:4CB1D79:531A0338"],"Vary":["Accept-Encoding"]},"body":{"encoding":"UTF-8","base64_string":""},"http_version":null},"recorded_at":"Fri, 07 Mar 2014 17:34:46 GMT"}],"recorded_with":"VCR 2.8.0"} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_PubSubHubbub/unsubscribe_service_hook/unsubscribes_to_stop_receiving_events_on_specified_topic.json b/spec/cassettes/Octokit_Client_PubSubHubbub/unsubscribe_service_hook/unsubscribes_to_stop_receiving_events_on_specified_topic.json deleted file mode 100644 index d3fb0b5da..000000000 --- a/spec/cassettes/Octokit_Client_PubSubHubbub/unsubscribe_service_hook/unsubscribes_to_stop_receiving_events_on_specified_topic.json +++ /dev/null @@ -1 +0,0 @@ -{"http_interactions":[{"request":{"method":"post","uri":"https://api.github.com/hub","body":{"encoding":"UTF-8","base64_string":"aHViLmNhbGxiYWNrPWdpdGh1YiUzQSUyRiUyRlRyYXZpcyZodWIubW9kZT11\nbnN1YnNjcmliZSZodWIudG9waWM9aHR0cHMlM0ElMkYlMkZnaXRodWIuY29t\nJTJGPEdJVEhVQl9MT0dJTj4lMkY8R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4l\nMkZldmVudHMlMkZwdXNo\n"},"headers":{"User-Agent":["Octokit Ruby Gem 3.0.0.pre"],"Authorization":["token <>"],"Content-Type":["application/x-www-form-urlencoded"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"Accept":["*/*"]}},"response":{"status":{"code":204,"message":"No Content"},"headers":{"Server":["GitHub.com"],"Date":["Fri, 07 Mar 2014 17:34:07 GMT"],"Status":["204 No Content"],"X-Ratelimit-Limit":["5000"],"X-Ratelimit-Remaining":["4994"],"X-Ratelimit-Reset":["1394215510"],"X-Oauth-Scopes":["gist, repo, user"],"X-Accepted-Oauth-Scopes":[""],"X-Github-Media-Type":["github.beta"],"X-Content-Type-Options":["nosniff"],"X-Github-Request-Id":["4B413AB6:3CF9:5F46889:531A030F"],"Vary":["Accept-Encoding"]},"body":{"encoding":"UTF-8","base64_string":""},"http_version":null},"recorded_at":"Fri, 07 Mar 2014 17:34:04 GMT"}],"recorded_with":"VCR 2.8.0"} \ No newline at end of file From dac6cc603a4a9b0c34a1acd9c633954e14941b40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:22:35 -0700 Subject: [PATCH 28/75] Bump actions/add-to-project from 0.6.0 to 0.6.1 (#1676) Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 0.6.0 to 0.6.1. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/v0.6.0...v0.6.1) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_to_octokit_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_to_octokit_project.yml b/.github/workflows/add_to_octokit_project.yml index e1c533150..84f2877e3 100644 --- a/.github/workflows/add_to_octokit_project.yml +++ b/.github/workflows/add_to_octokit_project.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: true steps: - - uses: actions/add-to-project@v0.6.0 + - uses: actions/add-to-project@v0.6.1 with: project-url: https://github.com/orgs/octokit/projects/10 github-token: ${{ secrets.OCTOKITBOT_PROJECT_ACTION_TOKEN }} From c15b648e7cd1b801dd3f46df694f2a0592b72b44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 13:09:28 -0700 Subject: [PATCH 29/75] Bump actions/add-to-project from 0.6.1 to 1.0.0 (#1677) Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 0.6.1 to 1.0.0. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/v0.6.1...v1.0.0) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_to_octokit_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_to_octokit_project.yml b/.github/workflows/add_to_octokit_project.yml index 84f2877e3..0ac7fd7b4 100644 --- a/.github/workflows/add_to_octokit_project.yml +++ b/.github/workflows/add_to_octokit_project.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: true steps: - - uses: actions/add-to-project@v0.6.1 + - uses: actions/add-to-project@v1.0.0 with: project-url: https://github.com/orgs/octokit/projects/10 github-token: ${{ secrets.OCTOKITBOT_PROJECT_ACTION_TOKEN }} From f55459e518a11a458ab28ea2781629990bfd0f22 Mon Sep 17 00:00:00 2001 From: Andy Waite Date: Tue, 2 Apr 2024 16:14:53 -0400 Subject: [PATCH 30/75] Remove outdated version constraint from README The current release is v8 so this was very out of date. I think it's better just to remove than to keep updating. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34d83d8c2..c900cbbf2 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Install via Rubygems ... or add to your Gemfile - gem "octokit", "~> 5.0" + gem "octokit" Access the library in Ruby: From de40daf12e808c0c7db06691240e8083c6062805 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 19:17:52 +0000 Subject: [PATCH 31/75] Update rubocop requirement from 1.62.1 to 1.63.0 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.62.1...v1.63.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 0e488a660..e1d8d3bac 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.62.1' + gem 'rubocop', '1.63.0' end gemspec From 5dc00ea7671cfc61c1802a3b82d2eab550d3ad36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:20:37 -0700 Subject: [PATCH 32/75] Update rubocop requirement from 1.63.0 to 1.63.1 (#1682) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.63.0...v1.63.1) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index e1d8d3bac..c39a47f9d 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.63.0' + gem 'rubocop', '1.63.1' end gemspec From ceea40bb999ef868f6f1ab25336518127a17c3ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:21:02 -0700 Subject: [PATCH 33/75] Bump actions/add-to-project from 1.0.0 to 1.0.1 (#1681) Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/v1.0.0...v1.0.1) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_to_octokit_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_to_octokit_project.yml b/.github/workflows/add_to_octokit_project.yml index 0ac7fd7b4..936e1f4f8 100644 --- a/.github/workflows/add_to_octokit_project.yml +++ b/.github/workflows/add_to_octokit_project.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: true steps: - - uses: actions/add-to-project@v1.0.0 + - uses: actions/add-to-project@v1.0.1 with: project-url: https://github.com/orgs/octokit/projects/10 github-token: ${{ secrets.OCTOKITBOT_PROJECT_ACTION_TOKEN }} From ea45fd28bd44e0483a7785715da5461c830c75c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 19:09:06 +0000 Subject: [PATCH 34/75] Update rubocop requirement from 1.63.1 to 1.63.3 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.63.1...v1.63.3) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index c39a47f9d..d2924c160 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.63.1' + gem 'rubocop', '1.63.3' end gemspec From 0cb1a8ef992b786e6805faafeb82c78509fc351e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 13:55:53 -0700 Subject: [PATCH 35/75] Update rubocop requirement from 1.63.3 to 1.63.4 (#1684) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.63.3...v1.63.4) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index d2924c160..d04b49cfa 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.63.3' + gem 'rubocop', '1.63.4' end gemspec From c976852a4b54a967f26b5b943f7bc983ad2e3514 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 15:39:22 -0700 Subject: [PATCH 36/75] Update rubocop requirement from 1.63.4 to 1.63.5 (#1687) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.63.4...v1.63.5) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index d04b49cfa..8036e2789 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.63.4' + gem 'rubocop', '1.63.5' end gemspec From 87249f6a037e28d4ea649c6303f19e2f651a9577 Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Thu, 16 May 2024 07:51:21 -0600 Subject: [PATCH 37/75] Add GHES Manage API client --- lib/octokit.rb | 16 ++++- lib/octokit/manage_ghes_client.rb | 64 +++++++++++++++++++ lib/octokit/manage_ghes_client/manage_ghes.rb | 47 ++++++++++++++ 3 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 lib/octokit/manage_ghes_client.rb create mode 100644 lib/octokit/manage_ghes_client/manage_ghes.rb diff --git a/lib/octokit.rb b/lib/octokit.rb index cf5340aad..dadaab7d6 100644 --- a/lib/octokit.rb +++ b/lib/octokit.rb @@ -41,12 +41,24 @@ def enterprise_management_console_client @enterprise_management_console_client = Octokit::EnterpriseManagementConsoleClient.new(options) end + # ManageGHESClient client based on configured options {Configurable} + # + # @return [Octokit::ManageGHESClient] API wrapper + def manage_ghes_client + if defined?(@manage_ghes_client) && @manage_ghes_client.same_options?(options) + return @manage_ghes_client + end + + @manage_ghes_client = Octokit::ManageGHESClient.new(options) + end + private def respond_to_missing?(method_name, include_private = false) client.respond_to?(method_name, include_private) || enterprise_admin_client.respond_to?(method_name, include_private) || - enterprise_management_console_client.respond_to?(method_name, include_private) + enterprise_management_console_client.respond_to?(method_name, include_private) || + manage_ghes_client.respond_to?(method_name, include_private) end def method_missing(method_name, *args, &block) @@ -56,6 +68,8 @@ def method_missing(method_name, *args, &block) return enterprise_admin_client.send(method_name, *args, &block) elsif enterprise_management_console_client.respond_to?(method_name) return enterprise_management_console_client.send(method_name, *args, &block) + elsif manage_ghes_client.respond_to?(method_name) + return manage_ghes_client.send(method_name, *args, &block) end super diff --git a/lib/octokit/manage_ghes_client.rb b/lib/octokit/manage_ghes_client.rb new file mode 100644 index 000000000..dfa7a3d38 --- /dev/null +++ b/lib/octokit/manage_ghes_client.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +require 'octokit/configurable' +require 'octokit/connection' +require 'octokit/warnable' +require 'octokit/manage_ghes_client/manage_ghes' + +module Octokit + # ManageGHESClient is only meant to be used by GitHub Enterprise Server (GHES) operators + # and provides access to the Manage GHES API endpoints. + # + # @see Octokit::Client Use Octokit::Client for regular API use for GitHub + # and GitHub Enterprise. + # @see https://developer.github.com/v3/enterprise-admin/manage-ghes/ + class ManageGHESClient + include Octokit::Configurable + include Octokit::Connection + include Octokit::Warnable + include Octokit::ManageGHESClient::ManageAPI + + def initialize(options = {}) + # Use options passed in, but fall back to module defaults + # rubocop:disable Style/HashEachMethods + # + # This may look like a `.keys.each` which should be replaced with `#each_key`, but + # this doesn't actually work, since `#keys` is just a method we've defined ourselves. + # The class doesn't fulfill the whole `Enumerable` contract. + Octokit::Configurable.keys.each do |key| + # rubocop:enable Style/HashEachMethods + instance_variable_set(:"@#{key}", options[key] || Octokit.instance_variable_get(:"@#{key}")) + end + end + + protected + + def endpoint + manage_ghes_endpoint + end + + # Set Manage GHES API username + # + # @param value [String] Manage GHES API username + def manage_api_username=(value) + reset_agent + @manage_api_username = value + end + + # Set Manage GHES API password + # + # @param value [String] Manage GHES API password + def manage_api_password=(value) + reset_agent + @manage_api_password = value + end + + # Set Manage GHES API endpoint + # + # @param value [String] Manage GHES API endpoint + def manage_ghes_endpoint=(value) + reset_agent + @manage_ghes_endpoint = value + end + end +end diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb new file mode 100644 index 000000000..b9e6428b3 --- /dev/null +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +module Octokit + class ManageGHESClient + # Methods for the Manage GitHub Enterprise Server API + # + # @see https://developer.github.com/v3/enterprise-admin/manage-ghes + module ManageAPI + end + + private + + def password_hash + { query: { api_key: @management_console_password } } + end + + def basic_authenticated? + !!(@manage_api_username && @manage_api_password) + end + + def root_site_admin_assumed? + !!(@manage_api_username) + end + + def faraday_configuration + @faraday_configuration ||= Faraday.new(url: @manage_ghes_endpoint) do |http| + http.headers[:user_agent] = user_agent + http.headers[:content_type] = 'application/json' + + if root_site_admin_assumed? + http.basic_auth('api_key', @manage_api_password) + elsif basic_authenticated? + http.basic_auth(@manage_api_username, @manage_api_password) + end + + # Disabling SSL is essential for certain self-hosted Enterprise instances + if connection_options[:ssl] && !connection_options[:ssl][:verify] + http.ssl[:verify] = false + end + + http.use Octokit::Response::RaiseError + http.adapter Faraday.default_adapter + end + end + + end +end From 8a5028a077d51584c74928a1de80539868336433 Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Wed, 22 May 2024 12:29:55 -0600 Subject: [PATCH 38/75] Rework setting basic auth --- lib/octokit/manage_ghes_client/manage_ghes.rb | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index b9e6428b3..19176ea96 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -10,10 +10,6 @@ module ManageAPI private - def password_hash - { query: { api_key: @management_console_password } } - end - def basic_authenticated? !!(@manage_api_username && @manage_api_password) end @@ -23,23 +19,24 @@ def root_site_admin_assumed? end def faraday_configuration - @faraday_configuration ||= Faraday.new(url: @manage_ghes_endpoint) do |http| - http.headers[:user_agent] = user_agent - http.headers[:content_type] = 'application/json' + @faraday_configuration ||= Faraday.new(url: @manage_ghes_endpoint) do |c| + c.headers[:user_agent] = user_agent + c.request :json + c.response :json if root_site_admin_assumed? - http.basic_auth('api_key', @manage_api_password) + c.basic_auth('api_key', @manage_api_password) elsif basic_authenticated? - http.basic_auth(@manage_api_username, @manage_api_password) + c.basic_auth(@manage_api_username, @manage_api_password) end # Disabling SSL is essential for certain self-hosted Enterprise instances if connection_options[:ssl] && !connection_options[:ssl][:verify] - http.ssl[:verify] = false + c.ssl[:verify] = false end - http.use Octokit::Response::RaiseError - http.adapter Faraday.default_adapter + c.use Octokit::Response::RaiseError + c.adapter Faraday.default_adapter end end From cc27cf9c8ab8d012330b554f1927ca811cc398c7 Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Wed, 22 May 2024 12:30:08 -0600 Subject: [PATCH 39/75] Add maintenance endpoints --- lib/octokit/manage_ghes_client/manage_ghes.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 19176ea96..925a39f4d 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -6,6 +6,23 @@ class ManageGHESClient # # @see https://developer.github.com/v3/enterprise-admin/manage-ghes module ManageAPI + # Get information about the maintenance status of the GHES instance + # + # @return [Sawyer::Resource] The maintenance mode status + def get_maintenance_mode + get '/manage/v1/maintenance' + end + alias maintenance_mode get_maintenance_mode + + # Configure the maintenance mode of the GHES instance + # + # @param maintenance [Hash] A hash configuration of the maintenance mode status + # @return [nil] + def set_maintenance_mode(enabled, options = {}) + options[:enabled] = enabled + post '/manage/v1/maintenance', options + end + alias configure_maintenance_mode set_maintenance_mode end private From a5a4bad14d30d28e09340c47d02cbfeb97110da2 Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Wed, 22 May 2024 14:49:26 -0600 Subject: [PATCH 40/75] Fix Manage API client --- lib/octokit.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/octokit.rb b/lib/octokit.rb index dadaab7d6..b029d8bc9 100644 --- a/lib/octokit.rb +++ b/lib/octokit.rb @@ -4,6 +4,7 @@ require 'octokit/client' require 'octokit/enterprise_admin_client' require 'octokit/enterprise_management_console_client' +require 'octokit/manage_ghes_client' # Ruby toolkit for the GitHub API module Octokit From 42d013a87d713a96772b2a39b804ba70f1e3d896 Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Wed, 22 May 2024 15:13:18 -0600 Subject: [PATCH 41/75] Rename Manage API auth params for clarity --- lib/octokit/manage_ghes_client.rb | 8 ++++---- lib/octokit/manage_ghes_client/manage_ghes.rb | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/octokit/manage_ghes_client.rb b/lib/octokit/manage_ghes_client.rb index dfa7a3d38..9b9899bf4 100644 --- a/lib/octokit/manage_ghes_client.rb +++ b/lib/octokit/manage_ghes_client.rb @@ -40,17 +40,17 @@ def endpoint # Set Manage GHES API username # # @param value [String] Manage GHES API username - def manage_api_username=(value) + def manage_ghes_username=(value) reset_agent - @manage_api_username = value + @manage_ghes_username = value end # Set Manage GHES API password # # @param value [String] Manage GHES API password - def manage_api_password=(value) + def manage_ghes_password=(value) reset_agent - @manage_api_password = value + @manage_ghes_password = value end # Set Manage GHES API endpoint diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 925a39f4d..974191b49 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -28,11 +28,11 @@ def set_maintenance_mode(enabled, options = {}) private def basic_authenticated? - !!(@manage_api_username && @manage_api_password) + !!(@manage_ghes_username && @manage_ghes_password) end def root_site_admin_assumed? - !!(@manage_api_username) + !!(@manage_ghes_username) end def faraday_configuration @@ -42,9 +42,9 @@ def faraday_configuration c.response :json if root_site_admin_assumed? - c.basic_auth('api_key', @manage_api_password) + c.basic_auth('api_key', @manage_ghes_password) elsif basic_authenticated? - c.basic_auth(@manage_api_username, @manage_api_password) + c.basic_auth(@manage_ghes_username, @manage_ghes_password) end # Disabling SSL is essential for certain self-hosted Enterprise instances From 271cc146fa4ca1354940a0487d92b3cd3cb5a609 Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Wed, 22 May 2024 15:16:42 -0600 Subject: [PATCH 42/75] Make Manage API params usable as options --- lib/octokit/configurable.rb | 18 +++++++++++++++++- lib/octokit/default.rb | 18 ++++++++++++++++++ lib/octokit/manage_ghes_client.rb | 16 ++++++++-------- 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/lib/octokit/configurable.rb b/lib/octokit/configurable.rb index 1ec590b45..af750190a 100644 --- a/lib/octokit/configurable.rb +++ b/lib/octokit/configurable.rb @@ -32,6 +32,12 @@ module Configurable # @return [String] An admin password set up for your GitHub Enterprise management console # @!attribute management_console_endpoint # @return [String] Base URL for API requests to the GitHub Enterprise management console + # @!attribute manage_ghes_endpoint + # @return [String] Base URL for API requests to the GitHub Enterprise Server Manage API + # @!attribute manage_ghes_username + # @return [String] API username for requests to the GitHub Enterprise Server Manage API + # @!attribute manage_ghes_password + # @return [String] API user password for requests to the GitHub Enterprise Server Manage API # @!attribute middleware # @see https://github.com/lostisland/faraday # @return [Faraday::Builder or Faraday::RackBuilder] Configure middleware for Faraday @@ -59,7 +65,10 @@ module Configurable :middleware, :netrc, :netrc_file, :per_page, :proxy, :ssl_verify_mode, :user_agent attr_writer :password, :web_endpoint, :api_endpoint, :login, - :management_console_endpoint, :management_console_password + :management_console_endpoint, :management_console_password, + :manage_ghes_endpoint, + :manage_ghes_username, + :manage_ghes_password class << self # List of configurable keys for {Octokit::Client} @@ -77,6 +86,9 @@ def keys login management_console_endpoint management_console_password + manage_ghes_endpoint + manage_ghes_username + manage_ghes_password middleware netrc netrc_file @@ -126,6 +138,10 @@ def management_console_endpoint File.join(@management_console_endpoint, '') end + def manage_ghes_endpoint + File.join(@manage_ghes_endpoint, '') + end + # Base URL for generated web URLs # # @return [String] Default: https://github.com/ diff --git a/lib/octokit/default.rb b/lib/octokit/default.rb index 852e4def1..ca2e2fb73 100644 --- a/lib/octokit/default.rb +++ b/lib/octokit/default.rb @@ -102,6 +102,24 @@ def management_console_endpoint ENV.fetch('OCTOKIT_ENTERPRISE_MANAGEMENT_CONSOLE_ENDPOINT', nil) end + # Default GHES Manage API endpoint from ENV + # @return [String] + def manage_ghes_endpoint + ENV.fetch('OCTOKIT_MANAGE_GHES_ENDPOINT', nil) + end + + # Default GHES Manage API username from ENV + # @return [String] + def manage_ghes_username + ENV.fetch('OCTOKIT_MANAGE_GHES_USERNAME', nil) + end + + # Default GHES Manage API password from ENV + # @return [String] + def manage_ghes_password + ENV.fetch('OCTOKIT_MANAGE_GHES_PASSWORD', nil) + end + # Default options for Faraday::Connection # @return [Hash] def connection_options diff --git a/lib/octokit/manage_ghes_client.rb b/lib/octokit/manage_ghes_client.rb index 9b9899bf4..8570a93ad 100644 --- a/lib/octokit/manage_ghes_client.rb +++ b/lib/octokit/manage_ghes_client.rb @@ -37,6 +37,14 @@ def endpoint manage_ghes_endpoint end + # Set Manage GHES API endpoint + # + # @param value [String] Manage GHES API endpoint + def manage_ghes_endpoint=(value) + reset_agent + @manage_ghes_endpoint = value + end + # Set Manage GHES API username # # @param value [String] Manage GHES API username @@ -52,13 +60,5 @@ def manage_ghes_password=(value) reset_agent @manage_ghes_password = value end - - # Set Manage GHES API endpoint - # - # @param value [String] Manage GHES API endpoint - def manage_ghes_endpoint=(value) - reset_agent - @manage_ghes_endpoint = value - end end end From 141f94c31d52df535d003d426750069f9ba419de Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Fri, 24 May 2024 13:06:25 -0600 Subject: [PATCH 43/75] Use custom client and fix basic auth --- lib/octokit/manage_ghes_client/manage_ghes.rb | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 974191b49..71286d545 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -10,7 +10,9 @@ module ManageAPI # # @return [Sawyer::Resource] The maintenance mode status def get_maintenance_mode - get '/manage/v1/maintenance' + conn = authenticated_client + + @last_response = conn.get('/manage/v1/maintenance') end alias maintenance_mode get_maintenance_mode @@ -19,8 +21,10 @@ def get_maintenance_mode # @param maintenance [Hash] A hash configuration of the maintenance mode status # @return [nil] def set_maintenance_mode(enabled, options = {}) + conn = authenticated_client + options[:enabled] = enabled - post '/manage/v1/maintenance', options + @last_response = conn.post('/manage/v1/maintenance', options) end alias configure_maintenance_mode set_maintenance_mode end @@ -35,17 +39,20 @@ def root_site_admin_assumed? !!(@manage_ghes_username) end - def faraday_configuration - @faraday_configuration ||= Faraday.new(url: @manage_ghes_endpoint) do |c| + def authenticated_client + @authenticated_client ||= Faraday.new(url: @manage_ghes_endpoint) do |c| c.headers[:user_agent] = user_agent c.request :json c.response :json + c.adapter Faraday.default_adapter if root_site_admin_assumed? - c.basic_auth('api_key', @manage_ghes_password) + username = "api_key" elsif basic_authenticated? - c.basic_auth(@manage_ghes_username, @manage_ghes_password) + username = @manage_ghes_username end + c.request :authorization, :basic, username, @manage_ghes_password + # Disabling SSL is essential for certain self-hosted Enterprise instances if connection_options[:ssl] && !connection_options[:ssl][:verify] @@ -53,7 +60,6 @@ def faraday_configuration end c.use Octokit::Response::RaiseError - c.adapter Faraday.default_adapter end end From 41ace394528f434503d03dbb7f22721652f2f4af Mon Sep 17 00:00:00 2001 From: Manuel Bergler Date: Fri, 24 May 2024 13:39:56 -0600 Subject: [PATCH 44/75] Fix assuming root site admin --- lib/octokit/manage_ghes_client/manage_ghes.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 71286d545..6beda4a91 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -35,8 +35,9 @@ def basic_authenticated? !!(@manage_ghes_username && @manage_ghes_password) end + # If no username is provided, we assume root site admin should be used def root_site_admin_assumed? - !!(@manage_ghes_username) + !(@manage_ghes_username) end def authenticated_client From 43f6845fadd13311e5a27a1cd4c05a7ae2aec176 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Mon, 27 May 2024 12:25:31 +0200 Subject: [PATCH 45/75] Add spec files for manage_ghes_client --- README.md | 3 + lib/octokit/manage_ghes_client/manage_ghes.rb | 16 ++--- .../get_maintenance_mode.json | 69 ++++++++++++++++++ .../disable_maintenance_mode.json | 72 +++++++++++++++++++ .../enable_maintenance_mode.json | 72 +++++++++++++++++++ spec/octokit/client_spec.rb | 6 ++ .../ghes_manage_client/ghes_manage_spec.rb | 31 ++++++++ spec/octokit/ghes_manage_spec.rb | 10 +++ spec/spec_helper.rb | 41 +++++++++++ 9 files changed, 310 insertions(+), 10 deletions(-) create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json create mode 100644 spec/octokit/ghes_manage_client/ghes_manage_spec.rb create mode 100644 spec/octokit/ghes_manage_spec.rb diff --git a/README.md b/README.md index c900cbbf2..4cf4f3cf4 100644 --- a/README.md +++ b/README.md @@ -709,6 +709,9 @@ Octokit: | `OCTOKIT_TEST_GITHUB_ENTERPRISE_MANAGEMENT_CONSOLE_PASSWORD` | GitHub Enterprise management console password. | | `OCTOKIT_TEST_GITHUB_ENTERPRISE_ENDPOINT` | GitHub Enterprise hostname. | | `OCTOKIT_TEST_GITHUB_ENTERPRISE_MANAGEMENT_CONSOLE_ENDPOINT` | GitHub Enterprise Management Console endpoint. | +| `OCTOKIT_TEST_GITHUB_MANAGE_GHES_ENDPOINT` | GitHub Enterprise Server GHES Manage Endpoint. | +| `OCTOKIT_TEST_GITHUB_MANAGE_GHES_USERNAME` | GitHub Enterprise Server GHES Manage Username. | +| `OCTOKIT_TEST_GITHUB_MANAGE_GHES_PASSWORD` | GitHub Enterprise Server GHES Manage Password. | | `OCTOKIT_TEST_GITHUB_INTEGRATION` | [GitHub Integration](https://developer.github.com/early-access/integrations/) owned by your test organization. | | `OCTOKIT_TEST_GITHUB_INTEGRATION_INSTALLATION` | Installation of the GitHub Integration specified above. | | `OCTOKIT_TEST_INTEGRATION_PEM_KEY` | File path to the private key generated from your integration. | diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 6beda4a91..9d815ada7 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true module Octokit + # Client for the Manage GitHub Enterprise Server API class ManageGHESClient # Methods for the Manage GitHub Enterprise Server API # @@ -9,12 +10,11 @@ module ManageAPI # Get information about the maintenance status of the GHES instance # # @return [Sawyer::Resource] The maintenance mode status - def get_maintenance_mode + def maintenance_mode conn = authenticated_client @last_response = conn.get('/manage/v1/maintenance') end - alias maintenance_mode get_maintenance_mode # Configure the maintenance mode of the GHES instance # @@ -28,7 +28,7 @@ def set_maintenance_mode(enabled, options = {}) end alias configure_maintenance_mode set_maintenance_mode end - + private def basic_authenticated? @@ -37,7 +37,7 @@ def basic_authenticated? # If no username is provided, we assume root site admin should be used def root_site_admin_assumed? - !(@manage_ghes_username) + !@manage_ghes_username end def authenticated_client @@ -48,21 +48,17 @@ def authenticated_client c.adapter Faraday.default_adapter if root_site_admin_assumed? - username = "api_key" + username = 'api_key' elsif basic_authenticated? username = @manage_ghes_username end c.request :authorization, :basic, username, @manage_ghes_password - # Disabling SSL is essential for certain self-hosted Enterprise instances - if connection_options[:ssl] && !connection_options[:ssl][:verify] - c.ssl[:verify] = false - end + c.ssl[:verify] = false if connection_options[:ssl] && !connection_options[:ssl][:verify] c.use Octokit::Response::RaiseError end end - end end diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json new file mode 100644 index 000000000..adee1e996 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json @@ -0,0 +1,69 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "<>/manage/v1/maintenance", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Mon, 27 May 2024 10:23:40 GMT" + ], + "Content-Length": [ + "313" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwic3RhdHVzIjoib24iLCJjb25uZWN0aW9uX3NlcnZpY2Vz\nIjpbeyJuYW1lIjoiZ2l0IG9wZXJhdGlvbnMiLCJudW1iZXIiOjB9LHsibmFt\nZSI6Im15c3FsIHF1ZXJpZXMiLCJudW1iZXIiOjB9LHsibmFtZSI6InJlc3F1\nZSBqb2JzIiwibnVtYmVyIjowfSx7Im5hbWUiOiJhcXVlZHVjdCBqb2JzIiwi\nbnVtYmVyIjowfV0sImNhbl91bnNldF9tYWludGVuYW5jZSI6dHJ1ZX1dCg==\n" + } + }, + "recorded_at": "Mon, 27 May 2024 10:23:41 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json new file mode 100644 index 000000000..060f1d45f --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json @@ -0,0 +1,72 @@ +{ + "http_interactions": [ + { + "request": { + "method": "post", + "uri": "<>/manage/v1/maintenance", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJlbmFibGVkIjpmYWxzZX0=\n" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Mon, 27 May 2024 10:23:32 GMT" + ], + "Content-Length": [ + "141" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwibWVzc2FnZSI6Im1haW50ZW5hbmNlIG1vZGUgZGlzYWJs\nZWQifV0K\n" + } + }, + "recorded_at": "Mon, 27 May 2024 10:23:32 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json new file mode 100644 index 000000000..1e4778dc3 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json @@ -0,0 +1,72 @@ +{ + "http_interactions": [ + { + "request": { + "method": "post", + "uri": "<>/manage/v1/maintenance", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJlbmFibGVkIjp0cnVlfQ==\n" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Mon, 27 May 2024 10:23:37 GMT" + ], + "Content-Length": [ + "140" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwibWVzc2FnZSI6Im1haW50ZW5hbmNlIG1vZGUgZW5hYmxl\nZCJ9XQo=\n" + } + }, + "recorded_at": "Mon, 27 May 2024 10:23:37 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/octokit/client_spec.rb b/spec/octokit/client_spec.rb index 67e4fddb6..0ed906058 100644 --- a/spec/octokit/client_spec.rb +++ b/spec/octokit/client_spec.rb @@ -1219,20 +1219,26 @@ Octokit.reset! @client = oauth_client @ent_management_console = enterprise_management_console_client + @ent_manage_ghes_client = manage_ghes_client end it 'has no method collisions' do client_methods = collect_methods(Octokit::Client) admin_client = collect_methods(Octokit::EnterpriseAdminClient) console_client = collect_methods(Octokit::EnterpriseManagementConsoleClient) + manage_ghes_client = collect_methods(Octokit::ManageGHESClient) expect(client_methods & admin_client).to eql [] expect(client_methods & console_client).to eql [] + expect(client_methods & manage_ghes_client).to eql [] expect(admin_client & console_client).to eql [] + expect(admin_client & manage_ghes_client).to eql [] + expect(console_client & manage_ghes_client).to eql [] end it 'uniquely separates method missing calls' do expect { @ent_management_console.public_events }.to raise_error NoMethodError + expect { @ent_manage_ghes_client.public_events }.to raise_error NoMethodError end def collect_methods(clazz) diff --git a/spec/octokit/ghes_manage_client/ghes_manage_spec.rb b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb new file mode 100644 index 000000000..3d38baf0e --- /dev/null +++ b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +describe Octokit::ManageGHESClient::ManageAPI do + before do + Octokit.reset! + @manage_ghes = manage_ghes_client + end + + describe '.maintenance_mode', :vcr do + it 'get maintenance mode' do + @manage_ghes.maintenance_mode + expect(@manage_ghes.last_response.status).to eq(200) + assert_requested :get, github_manage_ghes_url('/manage/v1/maintenance') + end + end # .maintenance_mode + + describe '.set_maintenance_mode', :vcr do + it 'enable maintenance mode' do + @manage_ghes.set_maintenance_mode(true) + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body[0]['message']).to eq('maintenance mode enabled') + assert_requested :post, github_manage_ghes_url('/manage/v1/maintenance') + end + it 'disable maintenance mode' do + @manage_ghes.set_maintenance_mode(false) + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body[0]['message']).to eq('maintenance mode disabled') + assert_requested :post, github_manage_ghes_url('/manage/v1/maintenance') + end + end # .set_maintenance_mode +end diff --git a/spec/octokit/ghes_manage_spec.rb b/spec/octokit/ghes_manage_spec.rb new file mode 100644 index 000000000..c30caf8ad --- /dev/null +++ b/spec/octokit/ghes_manage_spec.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +describe Octokit::ManageGHESClient do + describe 'module configuration' do + it 'inherits Octokit::Client' do + manage_ghes = Octokit::ManageGHESClient.new + expect manage_ghes.is_a? Octokit::Client + end + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ba3be28fe..477f62759 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -73,6 +73,12 @@ c.filter_sensitive_data('<>') do test_github_enterprise_management_console_endpoint end + c.filter_sensitive_data('<>') do + test_github_manage_ghes_endpoint + end + c.filter_sensitive_data('<>') do + test_github_manage_ghes_password + end c.filter_sensitive_data('<>') do test_github_enterprise_endpoint end @@ -208,6 +214,18 @@ def test_github_enterprise_endpoint ENV.fetch 'OCTOKIT_TEST_GITHUB_ENTERPRISE_ENDPOINT', 'http://enterprise.github.dev/api/v3/' end +def test_github_manage_ghes_endpoint + ENV.fetch 'OCTOKIT_TEST_GITHUB_MANAGE_GHES_ENDPOINT', 'http://enterprise.github.dev:8443' +end + +def test_github_manage_ghes_username + ENV.fetch 'OCTOKIT_TEST_GITHUB_MANAGE_GHES_USERNAME', 'api_key' +end + +def test_github_manage_ghes_password + ENV.fetch 'OCTOKIT_TEST_GITHUB_MANAGE_GHES_PASSWORD', 'passworD1' +end + def test_github_repository ENV.fetch 'OCTOKIT_TEST_GITHUB_REPOSITORY', 'api-sandbox' end @@ -295,6 +313,10 @@ def github_management_console_url(url) test_github_enterprise_management_console_endpoint + url end +def github_manage_ghes_url(url) + test_github_manage_ghes_endpoint + url +end + def basic_auth_client(login: test_github_login, password: test_github_password) Octokit::Client.new(login: login, password: password) end @@ -339,6 +361,25 @@ def enterprise_management_console_client client end +def manage_ghes_client + stack = Faraday::RackBuilder.new do |builder| + builder.request :multipart + builder.request :url_encoded + builder.adapter Faraday.default_adapter + end + + client = Octokit::ManageGHESClient.new \ + manage_ghes_endpoint: test_github_manage_ghes_endpoint, + manage_ghes_username: test_github_manage_ghes_username, + manage_ghes_password: test_github_manage_ghes_password, + connection_options: { ssl: { verify: false } } + + client.configure do |c| + c.middleware = stack + end + client +end + def new_jwt_token private_pem = File.read(test_github_integration_pem_key) private_key = OpenSSL::PKey::RSA.new(private_pem) From 521070b83d946e4cfacff84746e1bde92e2c60e7 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Tue, 28 May 2024 13:54:16 +0200 Subject: [PATCH 46/75] Add rest of endpoints and tests --- lib/octokit/manage_ghes_client/manage_ghes.rb | 107 ++++++++++++++++++ ..._authorized_SSH_keys_via_a_file_path_.json | 72 ++++++++++++ .../_authorized_keys/get_authorized_keys.json | 69 +++++++++++ .../get_ghe-config-apply_status.json | 69 +++++++++++ .../_edit_settings/set_settings.json | 69 +++++++++++ .../get_maintenance_mode.json | 8 +- ...n_authorized_SSH_key_via_a_file_path_.json | 72 ++++++++++++ .../disable_maintenance_mode.json | 4 +- .../enable_maintenance_mode.json | 4 +- .../_settings/get_settings.json | 69 +++++++++++ .../start_a_ghe-config-apply.json | 72 ++++++++++++ .../_upload_license/upload_a_new_license.json | 75 ++++++++++++ .../ghes_manage_client/ghes_manage_spec.rb | 86 +++++++++++++- 13 files changed, 766 insertions(+), 10 deletions(-) create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_add_authorized_key/adds_a_new_authorized_SSH_keys_via_a_file_path_.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_authorized_keys/get_authorized_keys.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_config_status/get_ghe-config-apply_status.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_edit_settings/set_settings.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_remove_authorized_key/delete_an_authorized_SSH_key_via_a_file_path_.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_settings/get_settings.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_start_configuration/start_a_ghe-config-apply.json create mode 100644 spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 9d815ada7..4a78437c9 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -29,6 +29,113 @@ def set_maintenance_mode(enabled, options = {}) alias configure_maintenance_mode set_maintenance_mode end + # Uploads a license for the first time + # + # @param license [String] The path to your .ghl license file. + # + # @see https://docs.github.com/en/enterprise-server@3.4/rest/enterprise-admin/management-console#create-a-github-license + # @return nil + def upload_license(license) + conn = authenticated_client + conn.request :multipart + params = {} + params[:license] = Faraday::FilePart.new(license, 'binary') + @last_response = conn.put('/manage/v1/config/license', params, { 'Content-Type' => 'multipart/form-data' }) + end + + # Start a configuration process. + # + # @return nil + def start_configuration + conn = authenticated_client + @last_response = conn.post('/manage/v1/config/apply') + end + + # Get information about the Enterprise installation + # + # @return [Sawyer::Resource] The installation information + def config_status + conn = authenticated_client + @last_response = conn.get('/manage/v1/config/apply') + end + alias config_check config_status + + # Get information about the Enterprise installation + # + # @return [Sawyer::Resource] The settings + def settings + conn = authenticated_client + @last_response = conn.get('/manage/v1/config/settings') + end + alias get_settings settings + + # Modify the Enterprise settings + # + # @param settings [Hash] A hash configuration of the new settings + # + # @return [nil] + def edit_settings(settings) + conn = authenticated_client + @last_response = conn.put('/manage/v1/config/settings', settings.to_json.to_s) + end + + def authorized_keys + conn = authenticated_client + @last_response = conn.get('/manage/v1/access/ssh') + end + alias get_authorized_keys authorized_keys + + # Add an authorized SSH keys on the Enterprise install + # + # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself + # @return [Sawyer::Resource] An array of authorized SSH keys + def add_authorized_key(key) + conn = authenticated_client + case key + when String + if File.exist?(key) + key = File.open(key, 'r') + content = key.read.strip + key.close + else + content = key + end + when File + content = key.read.strip + key.close + end + + queries = {} + queries[:key] = content + @last_response = conn.post('/manage/v1/access/ssh', queries) + end + + # Removes an authorized SSH keys from the Enterprise install + # + # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself + # @return [Sawyer::Resource] An array of authorized SSH keys + def remove_authorized_key(key) + conn = authenticated_client + case key + when String + if File.exist?(key) + key = File.open(key, 'r') + content = key.read.strip + key.close + else + content = key + end + when File + content = key.read.strip + key.close + end + + queries = {} + queries[:key] = content + @last_response = conn.run_request(:delete, '/manage/v1/access/ssh', queries, nil) + end + alias delete_authorized_key remove_authorized_key + private def basic_authenticated? diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_add_authorized_key/adds_a_new_authorized_SSH_keys_via_a_file_path_.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_add_authorized_key/adds_a_new_authorized_SSH_keys_via_a_file_path_.json new file mode 100644 index 000000000..365f641c9 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_add_authorized_key/adds_a_new_authorized_SSH_keys_via_a_file_path_.json @@ -0,0 +1,72 @@ +{ + "http_interactions": [ + { + "request": { + "method": "post", + "uri": "<>/manage/v1/access/ssh", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXkiOiJzc2gtcnNhIEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSJ9" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 11:07:14 GMT" + ], + "Content-Length": [ + "158" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwibWVzc2FnZSI6IlNTSCBrZXkgYWRkZWQgc3VjY2Vzc2Z1\nbGx5IiwibW9kaWZpZWQiOnRydWV9XQo=\n" + } + }, + "recorded_at": "Tue, 28 May 2024 11:07:14 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_authorized_keys/get_authorized_keys.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_authorized_keys/get_authorized_keys.json new file mode 100644 index 000000000..2bf744639 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_authorized_keys/get_authorized_keys.json @@ -0,0 +1,69 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "<>/manage/v1/access/ssh", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 11:24:12 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "WwogICAgewogICAgICAgICJrZXkiOiAic3NoLXJzYSBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLAogICAgICAgICJmaW5nZXJwcmludCI6ICIxMjo2MzowNTo0ZjphNzoyNTpmYTo2ODoxMjo5YTozYjowNzo1ZDo3NzoxMzoxMiIKICAgIH0KXQ==" + } + }, + "recorded_at": "Tue, 28 May 2024 11:24:12 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_config_status/get_ghe-config-apply_status.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_config_status/get_ghe-config-apply_status.json new file mode 100644 index 000000000..4e915341c --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_config_status/get_ghe-config-apply_status.json @@ -0,0 +1,69 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "<>/manage/v1/config/apply", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 10:39:59 GMT" + ], + "Content-Length": [ + "175" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "eyJydW5faWQiOiI5ODI0ZjE2ZSIsInJ1bm5pbmciOmZhbHNlLCJzdWNjZXNz\nZnVsIjp0cnVlLCJub2RlcyI6W3sicnVuX2lkIjoiOTgyNGYxNmUiLCJob3N0\nbmFtZSI6ImFsZWpuZHIwLTA1ZTA4NDFiMjA3NjcyNzI3LmdoZS10ZXN0LmNv\nbSIsInJ1bm5pbmciOmZhbHNlLCJzdWNjZXNzZnVsIjp0cnVlfV19Cg==\n" + } + }, + "recorded_at": "Tue, 28 May 2024 10:39:59 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_edit_settings/set_settings.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_edit_settings/set_settings.json new file mode 100644 index 000000000..7d2735433 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_edit_settings/set_settings.json @@ -0,0 +1,69 @@ +{ + "http_interactions": [ + { + "request": { + "method": "put", + "uri": "<>/manage/v1/config/settings", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJhYnVzZV9yYXRlX2xpbWl0aW5nIjp7InJlcXVlc3RzX3Blcl9taW51dGUi\nOjkwMX19\n" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 10:57:15 GMT" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Tue, 28 May 2024 10:57:16 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json index adee1e996..800453c18 100644 --- a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_maintenance_mode/get_maintenance_mode.json @@ -51,18 +51,18 @@ "0" ], "Date": [ - "Mon, 27 May 2024 10:23:40 GMT" + "Tue, 28 May 2024 10:16:56 GMT" ], "Content-Length": [ - "313" + "314" ] }, "body": { "encoding": "UTF-8", - "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwic3RhdHVzIjoib24iLCJjb25uZWN0aW9uX3NlcnZpY2Vz\nIjpbeyJuYW1lIjoiZ2l0IG9wZXJhdGlvbnMiLCJudW1iZXIiOjB9LHsibmFt\nZSI6Im15c3FsIHF1ZXJpZXMiLCJudW1iZXIiOjB9LHsibmFtZSI6InJlc3F1\nZSBqb2JzIiwibnVtYmVyIjowfSx7Im5hbWUiOiJhcXVlZHVjdCBqb2JzIiwi\nbnVtYmVyIjowfV0sImNhbl91bnNldF9tYWludGVuYW5jZSI6dHJ1ZX1dCg==\n" + "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwic3RhdHVzIjoib2ZmIiwiY29ubmVjdGlvbl9zZXJ2aWNl\ncyI6W3sibmFtZSI6ImdpdCBvcGVyYXRpb25zIiwibnVtYmVyIjowfSx7Im5h\nbWUiOiJteXNxbCBxdWVyaWVzIiwibnVtYmVyIjowfSx7Im5hbWUiOiJyZXNx\ndWUgam9icyIsIm51bWJlciI6MH0seyJuYW1lIjoiYXF1ZWR1Y3Qgam9icyIs\nIm51bWJlciI6MH1dLCJjYW5fdW5zZXRfbWFpbnRlbmFuY2UiOnRydWV9XQo=\n" } }, - "recorded_at": "Mon, 27 May 2024 10:23:41 GMT" + "recorded_at": "Tue, 28 May 2024 10:16:56 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_remove_authorized_key/delete_an_authorized_SSH_key_via_a_file_path_.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_remove_authorized_key/delete_an_authorized_SSH_key_via_a_file_path_.json new file mode 100644 index 000000000..e7e36c452 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_remove_authorized_key/delete_an_authorized_SSH_key_via_a_file_path_.json @@ -0,0 +1,72 @@ +{ + "http_interactions": [ + { + "request": { + "method": "delete", + "uri": "<>/manage/v1/access/ssh", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJrZXkiOiJzc2gtcnNhIEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSJ9" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 11:40:00 GMT" + ], + "Content-Length": [ + "144" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwibWVzc2FnZSI6IlNTSCBrZXkgcmVtb3ZlZCBzdWNjZXNz\nZnVsbHkifV0K\n" + } + }, + "recorded_at": "Tue, 28 May 2024 11:40:00 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json index 060f1d45f..81c9b79ca 100644 --- a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/disable_maintenance_mode.json @@ -54,7 +54,7 @@ "0" ], "Date": [ - "Mon, 27 May 2024 10:23:32 GMT" + "Tue, 28 May 2024 10:16:52 GMT" ], "Content-Length": [ "141" @@ -65,7 +65,7 @@ "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwibWVzc2FnZSI6Im1haW50ZW5hbmNlIG1vZGUgZGlzYWJs\nZWQifV0K\n" } }, - "recorded_at": "Mon, 27 May 2024 10:23:32 GMT" + "recorded_at": "Tue, 28 May 2024 10:16:52 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json index 1e4778dc3..f1e6486ae 100644 --- a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_set_maintenance_mode/enable_maintenance_mode.json @@ -54,7 +54,7 @@ "0" ], "Date": [ - "Mon, 27 May 2024 10:23:37 GMT" + "Tue, 28 May 2024 10:16:43 GMT" ], "Content-Length": [ "140" @@ -65,7 +65,7 @@ "base64_string": "W3siaG9zdG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUt\ndGVzdC5jb20iLCJ1dWlkIjoiYzYyYzgyOTItMWMwOS0xMWVmLWEzZTMtMDYy\nYWMwZTlkZGIxIiwibWVzc2FnZSI6Im1haW50ZW5hbmNlIG1vZGUgZW5hYmxl\nZCJ9XQo=\n" } }, - "recorded_at": "Mon, 27 May 2024 10:23:37 GMT" + "recorded_at": "Tue, 28 May 2024 10:16:43 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_settings/get_settings.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_settings/get_settings.json new file mode 100644 index 000000000..40c67ad97 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_settings/get_settings.json @@ -0,0 +1,69 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "<>/manage/v1/config/settings", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 10:41:27 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "eyJhYnVzZV9yYXRlX2xpbWl0aW5nIjp7ImNwdV9taWxsaXNfcGVyX21pbnV0\nZSI6OTAwMDAsImVuYWJsZWQiOmZhbHNlLCJncmFwaHFsX2NwdV9taWxsaXNf\ncGVyX21pbnV0ZSI6NjAwMDAsInJlcXVlc3RzX3Blcl9taW51dGUiOjkwMCwi\nc2VhcmNoX2NwdV9taWxsaXNfcGVyX21pbnV0ZSI6NzUwMH0sImFkbWluX3Bh\nc3N3b3JkIjpudWxsLCJhcGlfcmF0ZV9saW1pdGluZyI6eyJkZWZhdWx0X3Jh\ndGVfbGltaXQiOjE1MDAwLCJlbmFibGVkIjpmYWxzZSwiZ3JhcGhxbF9kZWZh\ndWx0X3JhdGVfbGltaXQiOjUwMDAsImdyYXBocWxfdW5hdXRoZW50aWNhdGVk\nX3JhdGVfbGltaXQiOjAsImxmc19kZWZhdWx0X3JhdGVfbGltaXQiOjMwMDAs\nImxmc191bmF1dGhlbnRpY2F0ZWRfcmF0ZV9saW1pdCI6MTAwLCJzZWFyY2hf\nZGVmYXVsdF9yYXRlX2xpbWl0IjozMCwic2VhcmNoX3VuYXV0aGVudGljYXRl\nZF9yYXRlX2xpbWl0IjoxMCwidW5hdXRoZW50aWNhdGVkX3JhdGVfbGltaXQi\nOjYwfSwiYXBwbGljYXRpb25zIjp7ImF2YXRhcnNfbWF4X2FnZSI6MzYwMH0s\nImFzc2V0cyI6bnVsbCwiYXV0aF9tb2RlIjoiZGVmYXVsdCIsImJ1aWx0aW5f\nYXV0aF9mYWxsYmFjayI6ZmFsc2UsImNhcyI6bnVsbCwiY2hlY2tzX3JldGVu\ndGlvbiI6eyJhcmNoaXZlX3RocmVzaG9sZCI6NDAwLCJkZWxldGVfdGhyZXNo\nb2xkIjozMCwiZW5hYmxlZCI6ZmFsc2V9LCJjb2RlX3NjYW5uaW5nIjp7ImVu\nYWJsZWQiOnRydWV9LCJjb2xsZWN0ZCI6bnVsbCwiY29uZmlndXJhdGlvbl9p\nZCI6MTcxNjgwMTQ0MSwiY29uZmlndXJhdGlvbl9ydW5fY291bnQiOjEsImN1\nc3RvbWVyIjp7ImVtYWlsIjoibGVlQGdpdGh1Yi5jb20iLCJuYW1lIjoiR2l0\nSHViIiwicHVibGljX2tleV9kYXRhIjoiLS0tLS1CRUdJTiBQR1AgUFVCTElD\nIEtFWSBCTE9DSy0tLS0tXG5WZXJzaW9uOiBHbnVQRyB2MS40LjEwIChHTlUv\nTGludXgpXG5cbm1JMEVUcXpaWWdFRUFMU2U2WHlxdkxmU1EzNEhXRDZDN1Nv\nRndEazBPUEFhWmpUc2k0YTdoMjhjOGdZNEJCWWZcbk5TOWFMdjhDSXpvOHQx\nY1RXaVlFbUVabVp0VnJ1dklGM3JjWkM3UklrRXRBRkxlcXFZU2dGNE1pektT\nK3AyRXVcbi9lVEg1VXBncjVySVRlMTUyV2d3SU5MZ1ZnbVJNc01DV3JyM1Ur\ndStxY2J0TlpiS3ZZbGRhWHRCQUJFQkFBRzBcblBrZHBkRWgxWWlBb1lXWTJZ\nMkZqT0RBdFpUUmxNUzB3TVRKbExXUTRNakl0TVRJek1UTTRNR1UxTW1VNUtT\nQThcbmJHVmxRR2RwZEdoMVlpNWpiMjAraUxnRUV3RUNBQ0lGQWs2czJXSUNH\neThHQ3drSUJ3TUNCaFVJQWdrS0N3UVdcbkFnTUJBaDRCQWhlQUFBb0pFTDVZ\nY2loRmtHYUoyVzBEL2lzSlY1NmhaaUdzZUVwWmxQR2hwekJLS0tNSnBZa2dc\nblZNdkVoNm5SRElWV2doZlp5NW9BdUlVaW02WVMyeGg3VDhJbCt5cVJMTk9v\nekZrcUlvMFZvS1czNyt1cExnK0tcbkZBRmNncUxka3MzakFpYSt6bkdTTXN0\nSTFHR2hkQTF3NWt5dEV4ZTZId3FXTEN3Mlhqa3A3eTF2aGpRUThJOXhcbitH\nbUVRVkZDTjdSdWlRSWNCQkFCQWdBR0JRSk9yTm1FQUFvSkVJdmZRcDd5bjUx\nK0ttc1AvUjFTUHVwaVY0ZGVcblBvVnhibElnVzZVL0srMjZGY3RjeldIWFZ6\nWEVuTUN2dlA2VWNyZjFITll0N0x6Yk9kWDgxUFFjSnhWSUlQeFhcbnNaZ2tP\ndFpwS1NhWGxISE41WW5yek9CQ2hQVEg5RE9EMnJQSGY0d2hvV3Y3ZkxwY3N5\nYnBVUHBIR1VPaGhLQzhcbkZtSUYvbjFucXJnOElrdDE2K2N5RGoxaks5c3Ry\nZWs3L1pMZnE5OFpxSGh0Y3hML1JXWEdKeUt4YzM2SkZzdU1cbjh3anlHUm9V\nTm9oVzI5aTZ3Um5WUXg5NTkrSVRYNU1CaFdvbStFQzJOc24zR3BSdmxiQjRx\nWm9OQkFiT1BlMEZcbnA3ZXZOUm05aCtJamVrN0ZwTEpnNjB0VVUrcENiSUJJ\nVTVNTGZLc1BQY0U3bTFmQUo2R201THUwUWl6WjZ1ZFlcbnZXb3pTRkRSWkJW\ndzloVU5hMi9FYi82YUs4TWdRZlFOeGFaQmtGM3BTVitWbU0wUDlaU1hQMFc4\nMmtKbGZaTWpcbmRiT0wzb1Z0clk3ZlZFc1YxQ0F6OFlVdWtsckMzcGNMazJJ\nbHhRcDJXbDJkR05tak0zQVc5TU9NdWhkcDF0NXNcbnhWb3NqME9tS1Z2dUly\nQW94dlVPOGtENTdNSUNvN01zUTdCN3FMRHFHZEE5czM4WmJEOUhxd1hTYTVv\nS09oWUtcbnlSbW1oS3NQYi9ndERMcVFsR2c1YWlCN0UzVU9pdVlvREY0eGsz\ncTZoaHo0SmhYblBCcTlSZ2QzYzNZUXM0MTlcbkV4TWxtWHJpY2Q4ak1RcnJj\nZW44WFJiTE8zd2N3c1g0M1VPRTIyQ3RjR3lCcnhRcTh5aVBjbXpsSmk1V3JN\nS0tcblUxbGUrSHgvZmg5K3VKOE9rc3ZyV2lDT25CR1VyZGhjdUkwRVRxelpZ\nZ0VFQU40U29uSGF6cVZic3RVR3MyUzZcbnFMQXllQUR5czNaeDJYSHcwaVEy\nSjErWFFSYXdKSloyUlRZcVBPMjk2SllTZEljeVVSM3dkUnRjNk5jekJDWTFc\nbmo5UklVS2NRc1NwVFlibndhNWM5cHRvNUVEN3lOSVRGeGVneFZVWExoekgy\nYnM0WExpbzhtVU5UeDVHdzVZd2dcbllsSEJCSEk3VElKWmNXTkVmbWYxQUNE\nckFCRUJBQUdKQVQwRUdBRUNBQWtGQWs2czJXSUNHeTRBcUFrUXZsaHlcbktF\nV1Fab21kSUFRWkFRSUFCZ1VDVHF6WllnQUtDUkI4RGtqaXRJR0NiUHpVQS85\nVDk1SWt0aTZWRGw3ZzdWVm9cbjdqZFJ2UUFVQXU3N1kyOVVadk9pZ3hjam1J\nUzQwZEM5akM4TXNmUk9lMUs4aFhGbkdRbzRXWXF0dk1LRk1Zdmdcbm5rRk5Y\nOUh4bzMzVFBaUVFVczRkWGVWdlJOL1NFYkQwY2N6Uy9LWWZHQThaR204QWIv\nUm4reDM0RE5XaWdIc1dcblBMaThqaCtQdXZ2TGdkVkZUMjdrUnk3VXU4ektB\nLzluSTdzSmFlQzAyS1pvRmNwNlZWWlJwdzArV0RJRk9GcTlcbkc1NWMxL3FB\nUDkrbmR5Z2ZGYTIwQ2tMaDlRM0UvQzAycG5RZ0dSdWE2QlphbkgwbjdoMUxr\nOTFENnJrcmRPdUVcbk9sa21XU3FXRy9uZ1hac2FJV2dDUUZMZXk5bEx1TnFq\nOVcvM1ZVa3o1Y243cWZ2OWx4TXp0My9lcm5oeVpUTE1cbjVOWjk2cGF1UlE9\nPVxuPXROampcbi0tLS0tRU5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0i\nLCJzZWNyZXRfa2V5X2RhdGEiOiItLS0tLUJFR0lOIFBHUCBQUklWQVRFIEtF\nWSBCTE9DSy0tLS0tXG5WZXJzaW9uOiBHbnVQRyB2MS40LjEwIChHTlUvTGlu\ndXgpXG5cbmxRY1lCRTVUQ2dzQkVBQ2s0eUhwVWNCTVhZTWlMRituQ1EwbHhw\neFU0S0pDbTV2cGdsZEFDRzF4V0pweWQ4RVpcbmxZOUMxRDYyQ3djbjhiWFhZ\nQ2hkRDVQMkg5N2JBSzZpc0lGdmhNYXJqeWpCb1dCbDBWM0RmcFJDbHpkdWtH\nbEFcbnphQ1dYaUQ5aXhUa3pBdHU3WU83OUNXZ0xnbi9KaEZBQ0xPNWJpU0V1\nbElLOTlESk92N1cxSzRUZzNUWWhYMHdcbnR5QzZEWjlUNHpFYXMrWWtCbzhW\nK1gwYzlvNVh3QlJxSTZ4NGllL0VCYXZYSlQ5cW40aWI5UWdEeXFlTjh1YXNc\nbmdwVzJXczBudlBPT2gwanJJNFdOejZHeEw3ZlJVUENsVkVuOGJtV1VhT1Jx\neDJYOVhFcEJEdDUvTEEwa3NJMXVcbk0rTmI2Ty91cmVBeUY4WWx0M2hrdDRi\nYmpQaG91Vmd5c0E2NDJVTStJazQ5MnRkWUNDQmRhQW05b3Y1TUt5UGpcbklM\ndXIzeDAyVjJIejYrWnA4M05wTVJ3c3pETnM2VGxOeUNOeG43SG4rNUpac1lT\nZERVRkpIUXI0bjUwK2J6dmFcblFmdGxlOEpid0xIT1hUUDJFTTUwMHdySmRr\nNzhzcTJ1K1lyQ3lBMWVmTEFNRm5sWDJBemFyOHRxMWlwYWlSTnZcbjZjNDNw\nOW4xU0dKWVBIMWI2b3B6S2VJc1U0YzhDOVFKNGpKWjlraTg0NndHMmhmRGty\nbEt1clV1MVdyanVtUC9cbnpXaFlaaXZnVDlkRVdUeFVwQXBpcGJIT3RhZUNm\na1BpVGUzWkUwWERSNlJoOFI3OHdpUldGQ1lSSDBURklxbmRcbkJLcEU5SlZw\ndHdxYmpnWkV3Z0xVMWNmM1d6NzJTb1VyYWozMko2V1Z0NXVBVDZJY3Vxa0Ja\nVGNNSndBUkFRQUJcbkFBLytLUXFSLzhuRjlCd1lqbEorTW96cHRWdmt3S216\nS2FJaTRqSDd0cWdDV2NLa210WmMvWm5BOFhEejlRcjBcbnFvZ2E2M04zU0lh\nZW5SWWN1ZVZIRXA2ZGNSMGErRXZuYUo3YTZDei9TakJCQmZ3dW8zb1ZnTGhO\nL3UrS0JhSHZcblB1M2M4S3owNjcwZSttcExPYk9IZXFsUDF0bG9CSk45NVZY\nK3BYL21PNkh2ZkZMdHJCRTU4bnk2akNUazRoUDhcblBubkYwSFREZThSQVZJ\ndTRMWFpWZm4vSHA2OHB1MkJ2LzlxNUdMaUIzOVBUUFdKZFoxTXRBSVoyYmsv\nV25jd0ZcbjBaV3gzRGxZdms0T29KUlFqQ3k1NFdVRUQyMkpJaklqbk1KcUMv\nRERXTU16TlhOSkNEZGIxTERjcUIxb1R6Ly9cblBHaTNmTjdZZkRWRVAzU3N4\naUJRS0RtelIvLzBxWUl5Y3NYSnM2Rm40L3NibXJ5aGllVVJsVkdCbWNaYVV2\ndTVcbjZDUSt1ZXk3cHdzZDJHTC9lNTNMSHUyYUtiWnlnWnFxZDMySkhrYksy\nVDdrbThObVUxMmhubUdqTXRhbTBja0hcbnhkeHlqdWtqZ0RNZFUzVHkrOUhS\naDJsRHZTSkg2QkFJZk1TOXM5ZzQxNlNBRzc5TG1NSWVWeDdKS0lQRkVDSW5c\nblhTT0s2d0VySDRheXJiSElFNGhUNFk5UXR4MW41aUVjYm9lVURaRU4xREta\naFhjMlpHNDMveEphSnJNMU1nQU5cbi81a05CYXlJUnphNWVkbVJQNG9XVVpt\ncmhGSTF0VW1GblNuVjdZSWF5OEVSUU10Mk9GTy9xMjVXak9rbVA4bTdcbkpT\nTFFVQVZsTi8rL21VVkVNUHlDYmJLNXFtaUlENFVJRTdveG9hemd6SWxVdm5F\nSUFNSGI1VzBsdHZCQkRkRmJcbmFZSkNHekZDbVh2ZnZ3WTFKVGFZWlowaEhR\nVjc4VElpUS9aRWxqcmhlbXhiT3hXREFxYXcwOVVhSU9hU0l1L0lcblE3Yktr\nWmtQclNGU1VEQmJHd09odUlVUklWbEdpdEhEaGVBVko3MGlQM3N5MDRDOUdD\nZEsrZzIyNENXajhUWWtcbkFxelFGbUxiUjgvQnZuNHBtcjNsRS9nZ1UyK2FP\nbjZ5UnpSdDJwOVEyV1l0aW5YVGNNRU1LNHdTbW5sTDJUaGdcbnlyWkNGT09P\nWkxnMHlacHpRSHJwbmlLODB2Mlg5cGNKNkhuTjRqWW4yVDNaUnUzL1FtV2Nk\ndVVyd3FDQ2J4Q3hcbkZWOUdKR0ZERnMzYUxnaUNpMDVIVjRMSVZiVCtMS0Vo\nMEZybktWV3lCeHV3R2doOW1KV3JSb1FMQ3phcFpobXVcbmhUcUNFL2NJQU5t\nOXozSmdGeHk4YXlNZTZ0dXdCSzZLaDZiQ3VmbWFFVjJxeTlDUU5CZnNUeUQ1\ndEcvQkpYdWNcbk53Qk45dENWaVlvK2RvV3VUcGRLVlFSaWZoUWJOdHEwT1cz\ncFdjNnZMelJFTVRUVzIvdUVXRzA2NHl0V2c2eUFcbjBoT1RXZXJraHBKbU1B\neXhMRXhSdVM1dkZvZDBVcUdwZTRPSE5EOUw5S3BIYmV4NmpzdHRSWS9mNmRS\nS2MxdjRcbnVIL3l1UWZ4bldJS2tWZVBJbElGRTZJSkFqUXRpL3BTaEVtalZN\nTzE2eUhKbUlxVzQ4ZEdJZCtONVMxczRUUzFcbnR6YXNTZ0VTSkc4ZlVEM2NI\nYm9KK0k2MU9Qakh3a3U1OHdteHh0cktob2htQlRYU1NVVUU4VVNpQUlDUXhJ\nZDhcblA0Zkt5eEtXZURyNU84dUQwL1BiME41QkMxWWlYVkVILzFxMExDRkc0\nVG94TWttekdYQVlzeGtIUXMwSU5HMUhcbjQ2cTJKb1VkUDNCZllCVlozd3Zw\namtrUm13Q3V4TklSL0xFTHcxZXk0bDRCc1FWN2hIU1gwcTV6SlVOVTBwWjVc\nblR4ZWFoREQxdWxwb2h3N3d5WmNUS1JVWWtDdU5vTnhJS251d284U3lsMVZ0\nVDdnbVlQazRpUCtOZEdTMTlveUhcbjNoOFZYMy9Udmd3ZFlIbDlJdUN5bnFt\neXJWNDlHS2VtTEhkTVNFMFNmdnhkbWIyUzZyeUJXZXJIZUVockR2N2pcbk10\nelNuMlFVQ0s4RUdMUEtPM08zSUk5RDUxUUFjQVpGRVF0UGY4K0JrdkloNXFu\nU2tmY0lkY21MK09XNGlLZDBcbnRwSHpCVVFjUVkwWkZVSXUrcGZOWWR5Nyt3\ndlhPOWd2STZyNlYxZjJHS3JDZitSWmFyOTRhc1owMkxRb1IybDBcblNIVmlJ\nRU4xYzNSdmJXVnlJRXRsZVNBOGMzVndjRzl5ZEVCbmFYUm9kV0l1WTI5dFBv\na0NPQVFUQVFJQUlnVUNcblRsTUtDd0liQXdZTENRZ0hBd0lHRlFnQ0NRb0xC\nQllDQXdFQ0hnRUNGNEFBQ2drUWk5OUNudktmblg1MEF4QUFcbnBEOVMwQUpZ\nbEtXR3pTU1FtV0dRWmIxcllqdmtGTEhhOFRpQmM3TFBSL21iUVE4WE05ZlJl\nbC9hNFpGYVRQa3JcbmVuaURuNVAvNmw5cEgvNmVwdTRRTGJKdHpmaDhHVm00\nWWY3MGJSWnB4QnpLQWNQY3I1bUVNdFMxRUN5YTR6MXRcbkJOUHl6RytzQisr\nZ2dPSXprWFlna3hPc1FJcUVTMDhlbUZaVmd2OUd6dzFwU2NqeFhMZko1Tzhx\nSUdmUmsvNFRcbnVQZmNZeU9lUVNBZXltNkhuUWlYeXp1Uk14RlBwZnV2c0N5\neVh4YVVlNzhLbU00d2ppZGRIZHJCcUJwazRLeUZcbk5PS2hkYkp1b04xTmlG\nK09EWnpaeTVTcFk4SkZrV2VaNERFbDY2c043eHBhOWg3UVBaSlllaXhzd3ky\nSlJjdjFcbkdJNklnWStDOXN2T1NNNG8xMmZmOSthWEl6MEI3YXZXUElpbVRZ\nVjI4eEdnM2R4aWdvaEl2cXdublpWb1F3eGhcbjQxK2RtbXFka3NWdGJ2a09u\ndUkyUVJkMnM1SDkyeGJtcjRBaVZMdFdrV3dtQnR4M0ZKbmJhSGY3QjJVMGVH\nR2ZcblUrZis3ZUllYzRaYUdta1o0S3A3NkY5dDFCMll1c1Jna0w5RE5LYnUz\nTzJ3NVRNL08zMVZwVmxGU0JQZFI0RFRcbithTklCbFg3b3pZMjlndzVYSi80\nem82Z1VaUWVVM0x1Sys5TXZtVTVYbGVUWU9WMDNhWWRrc1lqY1Uvcm1vM1Zc\nblhGY09DYXpQbi9Ia3gvOUt1WGF1RFZpTnNaRFk0MGpUYXFmL0Y0QjR5MGFX\nb3NaNjJQQklDbE05bXM3ckFBVHZcbkVidkV0TEIyb3hJV0RnbGFNaDVyZmps\nd2FNOURQcDZ3bC9uNXk5ekdveU9kQnhnRVRsTUtDd0VRQUp5bDdZdWdcbndt\nVnY3WndlK2NnRzBLM1NFT3pDNnAxcktJWDNUcnNLMUdONytIdjRvTjBUS2Vj\nMGVUUVYvRmFsU01aODBCUWVcbjBLaDJPRXVrVmpDeGx6NHBFRWd4L0F2R20y\ncWtzK05nYkFQV0F1NVI0QWV2WlZxbS9TS2JidjllUWRQcWNKejZcbjRWbTNG\ndzUxKzA0MnhkT2NlbjRrL254SXRwRmMvRVpSMVk0Z01JMHp0ZVpEbThSQnBZ\nYWd1R3FNQjAya3M3K3Rcbk1NYWFVRlF3Q1dnMUhxRCt0bENjanczSUdBQWc3\nNXJrTElrRVRoT3JUeHdXdS8wa0JadTA3dzNTc3EwWGl0VE5cbjVBOUxERzJ4\nRzE5YVViNWNWVnQrZFgvQ3FUT3ZWUVRnUnVYOFNuNXpuMnA4b1hVcDc2dlQ5\nYlBBOU1XTitJbmVcbnpqd2I2eExLdHpjNVZtMDNDL202UkNIMDZoZnlMRG9r\nY0ttVE1uVFFoWHEyckYzVGhQSHFyS00ra2JtRUYxSnFcbnZ2OWdoYklISTBi\ndFoyRDNMMDdTVW1tdkVEOTN5UnowWER4VStHekp5RklhUmVKM0JJVERaV0Rq\nK0FoU1FnRTJcbldtZEhRQXN4MGRabDFRckRGSHc2ZHdNSGFGUC9JeTJDS3Qy\nUU4wdGhrNXh2OThlUGdYUng0WGErR1RmdE9sRERcbnM4TGRIUmZaWTdNWFR1\nTGkzNGNXNDhZbldYVzhLcEs0Q2xsa0hRbmV6emhHb2hlMWh5U0YyRXpMOGZY\nQVhQN2lcbktJR2JESHN6WHJ6a21HVDQvWkFTL3k5MGpSdVZ1QklMbEFSbjFE\nR0ZZcm9kOHhmbndtdmhSSFRPcStmMXljUTdcbldSaHRjV0JkOHN0LzhsMWww\nZkdWSU9iWGpFMERXcEZRcFRhbEFCRUJBQUVBRC8wV3BRUGdYZHUyM0lYSVBs\nQVVcbll0WjljaDJyNURJVWtkNDRuaVlJU0RTb3NhTkdPZUdqT1F4NGdFVGtk\nZE1yQVZkZENNT1pvbFMrZ3VIT0h0SllcbjFWWDI1ZXBxZC8zOEE4NEpZMTEx\nSHB0WlkwYThNSGpHdmt1cFhaOXFobmFoYUNlZG5KNkNpdC9UQ2gwYXBEZmJc\nbnVCNUQ0Z2h4RTNtaStoaVk0emRvRmtJSCtzNUVuZUkxM2JYTVJVTWZqRHlY\nSm1rOTNQUEx0SEVWeDA2YWI1dnZcbkw2ZjBWUU1zOGJJdnAxVVUyNjRDRnVt\nbDRFbndja3RoZjVzcS9sbm9odHQ4aE9YN0VLbFY3RWVEWmNiRS8vSmtcbk1v\nTVk2M0crdVZxcDgrSzZ5OUNVcWw2RllPeGNqWmFtSEVzZUlVaFBiMk50aEpT\nOXVZYTJyaVNPV3VqUi9YSkdcbmc1TGpHcGw2Z2ZJQWYzdFhCVXVTOTg4YlJF\nQnRxbFZkR3g3Ym5sUUtHQ216bXpJd1RLMXJGMU10ZWxoL3ZXNENcbmhlUU1s\nRTJDejBXN3AzODBWWldHRytFdnMrM2MvWnQrODRsYlZSZEdVMkoyemhJN3NU\nOWRXUFVtME5BZkU3YTZcbjVkK0NiZTNOTDlPcldIYXFjOEM3VmpGakJEZHZF\nQ01UMEdRUkFCYUhoK1JXUFlOTlJoZEg1MWU5T1hjTzV2VlRcbkl4bS8wdEwx\nWFVkSVRZTTQrdUpmM1ZtaDA5UXQ2eGNWNlZXS0xxUk9aM2c5ZmdWeU5wVVlB\nWS9wWE03aVJZQ3lcblJDa0Y2SnMrSzRzUXRhOEhzMCtOQ3lvZm1jdzJINUVC\neCtMa3p4c3BHMzRNZ1ZJU3JjWlprL3VRcjdkSE5BdHJcbkJvMkZFMi9QWTZG\neko0Q05hS1VFMjI0KzV3Z0F3dlN6dUFwTFYvUVBMdE9UanEyUVkyb1JVSlJR\nR0wxVjBXcm5cblEyRndZTDByNXBUZmVSbkhGWUJXZ0ZaNm45eEFmMHBMNWRY\nNjFIZ3AyTU4yMk5DMUhwMEhib1gwYW8wS0U5ZnBcbjVBdzRMd0pibWI4MUxY\nVUNMb2YwbndrTEdHdGlKWS8rOHUzaU53SlBaRENlNnhsMlZvZThNYjVTZ3Jq\nUHIrOEtcbktEczUyN3VkZXd6UUhiTE1KaTV2OWExbDUxUDZaanZTcjdEVE9O\ncVR6SmUyWXkrTGtSYUZjU2FreEZIS3VGZkdcblNERVBpRHJHS2J3anp1eXhH\nczkyVkFBbUhYek9WQXRvVXFUZi9ZNklVOFJ3d2ttMEg1SzU3UFdPZ0pNWWJY\nVEJcblgxd2NzRVRNVFZlSTRxN3ZwYXkwdDBGQXVvQTJXWVhoV01Ia0pvUFZT\nT2psN2wwTFJ3Z0F6YktOSkNFSGc1Wmxcbkg5cFVpVmJOVHd2Vk0wNjFaRzJF\nc3lQSDByZ0NHWFdjdW9RZCtmQTE4UWVyaWo5ZUJDQzNQcldpZWE3TWs4aGpc\nbjlveXI2MzRIVDMrL05aR1dlTXE3bEQ0d2ZPTHptRFpDT0NmbHlwUlBBZGVq\nbSsxc2RreVkrS294OWpNTitlMGJcblV1T090cmZOWXpBbkswV05XZnI3L3Ba\nd0wyRDFtYTBGaVVuMkRPR0NMOEwzRkxnUm9QOVJ1dlAvMTNHUGpqVVFcblQ3\nVW9lakhFMDczSk5INW9uVFh2bjdDZkEzMU5jWW1GajkxV1VCV2ZCY2hNL042\nQXZha0xzd0cxTmpZRFo3NC9cbm0yREdaaittblZFQW1QRGJNUmJrNjNuYXU1\nT3ZXNDliWmNQQVphNUtBQ1FrQlNCOTNvQzlwcE9mTVJXNmpKUmdcbkhXd2Nw\nL2tNc3dnQWk3Y1JGUVZiajhGVk5kdU9CWi9ROG1jVjhIQzRocjBtb0d0eXdU\nQTlKUHBBWWFDWU1laWlcbk1XcW45KzQ4L0V2eTM4dmxyenQ1emFKV2VCVGNW\nbitZeEEzcHpYa1NUV2pBWHU3N1ZQcGZvdkU5dFlaQnBqcnJcbmFHKzFZeXVO\nb0dndlRrY05ScEdxVWQ2YjBxbFY4dVBFSXZCMTZaOWlYQXJESm9IRWxLQlRE\nK0JiajNjZXFCMGJcbnFEcWRyd1ZpREV4SjVTVkVXZDBBSGhDaW53MFo4NkQ1\nck5TaVFRc2lwWU8raGx6ZXZ4Wk1jYlgya1E3Z010ZlNcbmVxdWZHYmhWUlFC\na25iQlIwMXdUYk1MKzVxazJUeW9BSzNaWGR2MWVlSitwNVhCVUpGc0EyczBG\nQmFqWThTVWxcbmVvVnYyRWZXblR6akJYd2Y0OVN1NGN1V2ZSRFFCSVdIL1hn\neGlRSWZCQmdCQWdBSkJRSk9Vd29MQWhzTUFBb0pcbkVJdmZRcDd5bjUxKzMz\na1AvakgyNlZGMlBvdVBZLzBFL2orMmFOOEtZSmxHczRkNkp3WDR2QWNUVVNl\nMDdRSkVcbmxGRTlHMEp3R09nOXZIanF2TVF4VFdTUDN4RG9kMWpDWjVTS05T\nNnpOTmZaYmQ0eGV0Y3NkN0s3TzRXTFRCMUFcbmFhU01aTUFVZi94WUJMdmpu\nSUdFSjExM0tMNGpSQzB6Um44dG1mSHRFZkZTTUZkUk9BVkNySnBld3R4b2FN\nbVFcbmF0cFp0eTFtM1poUStzSnNzOHN4dUJZQ0NkMVdlVTlpbmh2N1BrRjN1\nNFFyVkVNVXhDL1JlNDU3QjUvbjZuL3pcbno1YkRFOC83VWwzT0oxZkxDK2or\nRjZNNDFMNUlYanFXWjdrREdmZzl2VTJKYjYwY2VZSGo0RFFTMHYxUWFZYmhc\nblF1bTZrK3hDUkYzaGFVekFRbkN0SWJZUno2N3lzZENQaXZuMEc5YUhHSU5G\nNUl0R1E4ZzEvaTZYYXRUcmd4K0ZcbkhDQXZ3MFovSXRDZjJNVmVHdVkxMFl2\nZ2VJYUZDWEF3eTV1MjhnVlEyMUFxdERQdW1jRnBsM0sraGo5czRoaWpcbmtP\ncFcwMU5tLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v\nLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v\nLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8v\nLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v\nLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v\nLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL2xRSFlcbkJFNnMyV0lC\nQkFDMG51bDhxcnkzMGtOK0IxZytndTBxQmNBNU5EandHbVkwN0l1R3U0ZHZI\nUElHT0FRV0h6VXZcbldpNy9BaU02UExkWEUxb21CSmhHWm1iVmE3cnlCZDYz\nR1F1MFNKQkxRQlMzcXFtRW9CZURJc3lrdnFkaEx2M2tcbngrVktZSytheUUz\ndGVkbG9NQ0RTNEZZSmtUTERBbHE2OTFQcnZxbkc3VFdXeXIySlhXbDdRUUFS\nQVFBQkFBUDlcbkVjOFRZQ2srTEovQ1FObTgzOWtDbW1DYnlKTE14R1o0bjdl\nWHRabFFRV3FUWUgxREd6ZnpnMW83TDdDZHhEOFBcbi9XUVpRT05nd2ticGY4\nU1NBbUt3SFZJTEp0b0Q5OEVPUEtRQ1Q2YW13RnFCNk5CWkU5Q2FLN0lIOFlM\nQWRnWFhcbm41enU5czVwUXprTDIreWl4YTg0YjVMUFNZeVBMbmNvWDBCamlE\nYnJydU1DQU1nejlKL0luK3N2SkNhaTVwSFBcblJOMjhESEYxaUppMURGT3Bh\nU0lVZ2g4dlJ2SWVETENTNHI1bkNTSjJCQ04rc016dTNhT1FnSjJ5ZTVBaEZD\nQ0ZcbkVyOENBT2IxenlFNjZXZUJDSG5UaWEvNks3RTNVSTBXb3NEWTVTMG5z\neWZHTThSQWNoNzJCV04yalV1TVd4M2JcbmhhZ3RKcVd6eXhsd1dqUnUvMk16\nZEhsSzhmOENBSk15c1h5NEIwY2ZGQ0wwanJSQWs5Z09Ga055a0prS3ViZHhc\nbjdHL1hVOU5QcDVwV2d1T2JPaTdTdUozU084QVR0UXAzVjd4d3Y1Y040OEJt\nSkE3L1R5MmM5clErUjJsMFNIVmlcbklDaGhaalpqWVdNNE1DMWxOR1V4TFRB\neE1tVXRaRGd5TWkweE1qTXhNemd3WlRVeVpUa3BJRHhzWldWQVoybDBcbmFI\nVmlMbU52YlQ2SXVBUVRBUUlBSWdVQ1RxelpZZ0liTHdZTENRZ0hBd0lHRlFn\nQ0NRb0xCQllDQXdFQ0hnRUNcbkY0QUFDZ2tRdmxoeUtFV1Fab25aYlFQK0t3\nbFhucUZtSWF4NFNsbVU4YUduTUVvb293bWxpU0JVeThTSHFkRU1cbmhWYUNG\nOW5MbWdDNGhTS2JwaExiR0h0UHdpWDdLcEVzMDZqTVdTb2lqUldncGJmdjY2\na3VENG9VQVZ5Q290MlNcbnplTUNKcjdPY1pJeXkwalVZYUYwRFhEbVRLMFRG\nN29mQ3BZc0xEWmVPU252TFcrR05CRHdqM0g0YVlSQlVVSTNcbnRHNmRBZGdF\nVHF6WllnRUVBTjRTb25IYXpxVmJzdFVHczJTNnFMQXllQUR5czNaeDJYSHcw\naVEySjErWFFSYXdcbkpKWjJSVFlxUE8yOTZKWVNkSWN5VVIzd2RSdGM2TmN6\nQkNZMWo5UklVS2NRc1NwVFlibndhNWM5cHRvNUVEN3lcbk5JVEZ4ZWd4VlVY\nTGh6SDJiczRYTGlvOG1VTlR4NUd3NVl3Z1lsSEJCSEk3VElKWmNXTkVmbWYx\nQUNEckFCRUJcbkFBRUFBLzRqdjdBeXo5eHdOaURGdGp4dXZMV25GNWpGM2t3\nUmh5WlA5MHA4MWRMa3luNkozblVsVzRpc3ZZUHRcbmFhTGxkYmNZaEhzV2JM\nME5XSm1LK3dWeCtURmIyRHNvSy9YM3NZZW5Yb2Fnd0diS25Gc3NFTnZjbFdm\nNVJSY2Jcbm11eUF6VXRYVnNPV01vaDZacXR5TVJsTmRwNnRDSWpIc0FiU2VQ\nVHg2U2o2akRwOTBRSUE3QVdLVkpyN0FJdk9cbnBtTmJIUWF6WjFSSWtjMnpr\nNFFucjVYbDFMSkUzbVJoWFU1aytjTld0QmVxV0ZCQzBiRUF4UCtkNkQ5ckFU\nN3FcbjdsdlJxRDVYUlFJQThON1VpdE1UUEliOGR2akZaV2VqSUpvZ1RuSnQ5\nL1V6MXJkQTJ1eUV6bDRUa29xc04xMndcbjJzQzVGVHdTdGsxeXgvTW9wc0Vn\nM0tiZjJhSExIdDdDYndIL1R1dXV4b2pmZFdERk5hdU5QTmFJS3F2a0plUmVc\nbjY2SGFLYVFrU2l2TWlsb2lYZjJmNTZGTnpNYTNWMVZNQlg0bnFSSmlib3Av\nV0xCSzNFa0ZhSmpkWjZwaGlRRTlcbkJCZ0JBZ0FKQlFKT3JObGlBaHN1QUtn\nSkVMNVljaWhGa0dhSm5TQUVHUUVDQUFZRkFrNnMyV0lBQ2drUWZBNUlcbjRy\nU0JnbXo4MUFQL1UvZVNKTFl1bFE1ZTRPMVZhTzQzVWIwQUZBTHUrMk52Vkdi\nem9vTVhJNWlFdU5IUXZZd3ZcbkRMSDBUbnRTdklWeFp4a0tPRm1LcmJ6Q2hU\nR0w0SjVCVFYvUjhhTjkwejJVRUZMT0hWM2xiMFRmMGhHdzlISE1cbjB2eW1I\neGdQR1JwdkFHLzBaL3NkK0F6Vm9vQjdGank0dkk0Zmo3cjd5NEhWUlU5dTVF\nY3UxTHZNeWdQL1p5TzdcbkNXbmd0TmltYUJYS2VsVldVYWNOUGxneUJUaGF2\nUnVlWE5mNmdEL2ZwM2NvSHhXdHRBcEM0ZlVOeFB3dE5xWjBcbklCa2JtdWdX\nV3B4OUorNGRTNVBkUStxNUszVHJoRHBaSmxrcWxodjU0RjJiR2lGb0FrQlMz\nc3ZaUzdqYW8vVnZcbjkxVkpNK1hKKzZuNy9aY1RNN2QvM3E1NGNtVXl6T1RX\nZmVxV3JrVT1cbj1sWERMXG4tLS0tLUVORCBQR1AgUFJJVkFURSBLRVkgQkxP\nQ0stLS0tLSIsInV1aWQiOiJhZjZjYWM4MC1lNGUxLTAxMmUtZDgyMi0xMjMx\nMzgwZTUyZTkifSwiZGVwZW5kYWJvdCI6eyJlbmFibGVkIjpmYWxzZX0sImRl\ncGVuZGVuY3lfZ3JhcGgiOnsiZW5hYmxlZCI6ZmFsc2V9LCJkZXBsb3ltZW50\nc19kYXNoYm9hcmRfZW5hYmxlZCI6ZmFsc2UsImVuZm9yY2VfZ2NtX2NsdXN0\nZXJfY29uZmlnX3ZhbGlkYXRpb24iOmZhbHNlLCJleHBpcmVfc2Vzc2lvbnMi\nOmZhbHNlLCJmZWF0dXJlX3RvZ2dsZXMiOnsiYWN0aW9ucyI6eyJlbmFibGVk\nIjpmYWxzZSwic2V0dXBfZmFpbHVyZXNfZGV0ZWN0ZWQiOmZhbHNlfSwiY2hh\ndG9wcyI6eyJlbmFibGVkIjpmYWxzZX0sIm1pZ3JhdGlvbnMiOnsiZW5hYmxl\nZCI6ZmFsc2V9LCJtb2JpbGUiOnsiZW5hYmxlZCI6dHJ1ZX0sInBhY2thZ2Vz\nIjp7ImNvbnRhaW5lcl9ibG9iX3JlZGlyZWN0aW9uX2VuYWJsZWQiOmZhbHNl\nLCJjb250YWluZXJfZW5hYmxlZCI6ImZhbHNlIiwiZG9ja2VyX2VuYWJsZWQi\nOiJ0cnVlIiwiZW5hYmxlZCI6ZmFsc2UsIm1hdmVuX2VuYWJsZWQiOiJ0cnVl\nIiwibnBtX2VuYWJsZWQiOiJ0cnVlIiwibnBtX3Vwc3RyZWFtaW5nX2VuYWJs\nZWQiOmZhbHNlLCJudWdldF9lbmFibGVkIjoidHJ1ZSIsInJ1YnlnZW1zX2Vu\nYWJsZWQiOiJ0cnVlIn19LCJmaXBzX21vZGUiOmZhbHNlLCJnaXRodWJfaG9z\ndG5hbWUiOiJhbGVqbmRyMC0wNWUwODQxYjIwNzY3MjcyNy5naGUtdGVzdC5j\nb20iLCJnaXRodWJfb2F1dGgiOm51bGwsImdpdGh1Yl9zc2wiOnsiYWNtZSI6\neyJhY2NlcHRfdG9zIjp0cnVlLCJjb250YWN0X2VtYWlsIjoiIiwiZW5hYmxl\nZCI6ZmFsc2UsInByb3ZpZGVyIjoibGV0c2VuY3J5cHQiLCJ2YWxpZGF0aW9u\nX3R5cGUiOiJodHRwLTAxIn0sImNlcnQiOiItLS0tLUJFR0lOIENFUlRJRklD\nQVRFLS0tLS1cbk1JSUZSRENDQkN5Z0F3SUJBZ0lTQStTblhBdG1JVWdrRzIz\nYkZubUtxTDlMTUEwR0NTcUdTSWIzRFFFQkN3VUFcbk1ESXhDekFKQmdOVkJB\nWVRBbFZUTVJZd0ZBWURWUVFLRXcxTVpYUW5jeUJGYm1OeWVYQjBNUXN3Q1FZ\nRFZRUURcbkV3SlNNekFlRncweU5EQTFNamN3T0RFMk1UUmFGdzB5TkRBNE1q\nVXdPREUyTVROYU1ESXhNREF1QmdOVkJBTVRcbkoyRnNaV3B1WkhJd0xUQTFa\nVEE0TkRGaU1qQTNOamN5TnpJM0xtZG9aUzEwWlhOMExtTnZiVENDQVNJd0RR\nWUpcbktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxqZmM2dk5Z\nUHJGMXpGWWkvZVBuQ21sQytSTTNjVW1cbjc0MHo2aGM1UGdUOGtEejdOZmJJ\nWFA3ZDZuaHJtekJNbGJMZU4wODNFaGVBNEtlS2lESlR0YnZkU3ZBSXZLaGlc\nbm94cm9sVGgxNVZkbzU1Q2toc1ZVMjErR3dEdDZNUnlWaHROT2swTWNhcDVC\nbzZLcDRrc01Oak14dllkREF0bDFcbnl3QTh5TVdUcG56ZXRtSWdDYUFrOGdn\nOXphenZWellvd0hpdXFNQ0xzbGlCazBMZ0tmQWowM3AyU09FYm5pdjVcbm9z\nQ1B6SWMxVGNkbXFGTGVxUC9OQ2xjaS9PZjk4Ykl4TzF2dlFRbjkrOHRYK2hM\nR3BVQjdBUHUranl4ZFlUQnpcbjQ3SEtWczdocC92djF1L3BGdXhjQnA3ZFJz\nMnZFNjl5c0ZFSmt1aEdLcTVLNG01SER1dEsrU01DQXdFQUFhT0NcbkFsSXdn\nZ0pPTUE0R0ExVWREd0VCL3dRRUF3SUZvREFkQmdOVkhTVUVGakFVQmdnckJn\nRUZCUWNEQVFZSUt3WUJcbkJRVUhBd0l3REFZRFZSMFRBUUgvQkFJd0FEQWRC\nZ05WSFE0RUZnUVVQK2lRYkFORTh3cXhESG5PTSs2UDFQVUJcblFNVXdId1lE\nVlIwakJCZ3dGb0FVRkM2ekY3ZFlWc3V1VUFsQTVoK3ZuWXNVd3NZd1ZRWUlL\nd1lCQlFVSEFRRUVcblNUQkhNQ0VHQ0NzR0FRVUZCekFCaGhWb2RIUndPaTh2\nY2pNdWJ5NXNaVzVqY2k1dmNtY3dJZ1lJS3dZQkJRVUhcbk1BS0dGbWgwZEhB\nNkx5OXlNeTVwTG14bGJtTnlMbTl5Wnk4d1hRWURWUjBSQkZZd1ZJSXBLaTVo\nYkdWcWJtUnlcbk1DMHdOV1V3T0RReFlqSXdOelkzTWpjeU55NW5hR1V0ZEdW\nemRDNWpiMjJDSjJGc1pXcHVaSEl3TFRBMVpUQTRcbk5ERmlNakEzTmpjeU56\nSTNMbWRvWlMxMFpYTjBMbU52YlRBVEJnTlZIU0FFRERBS01BZ0dCbWVCREFF\nQ0FUQ0NcbkFRSUdDaXNHQVFRQjFua0NCQUlFZ2ZNRWdmQUE3Z0IxQUQ4WFMw\nL1hJa2RZbEIxbEhJUytEUkx0a0RkL0g0VnFcbjY4Ry9LSVhzK0dSdUFBQUJq\nN2xXQ3VnQUFBUURBRVl3UkFJZ2YrQlQ3VEI4bHJIODBkd2xSRUlqK1hhTnFK\nVGpcbjlrZGM1SjlWRk9rODFyZ0NJRFlmOE15UEZXWUl5QSs1T1M5NTZSYnFK\na2UzeEVKWmpkNXdkSkZuM3ViekFIVUFcbjMrRlc2Nm9GcjdXY0Q0WnhqYWpB\nTWs2dVZ0bHVwL1dsYWdIUndUdStVbHdBQUFHUHVWWUxvUUFBQkFNQVJqQkVc\nbkFpQWhqbitncGpQL0thRzVnMlVyRUpMR1QxV092UlkyWTZKcDdmdElYcnVR\nWVFJZ0xkVGVMbnplSm9pVHdnZzFcbmZscENWUDdoUUxka1I1TUJHODlJL0tp\nUkNLMHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSkx5VDk0UTJFN3pcbkJ3\nZEFIcVB6c1ZtaG5lK2pWSnpBcm1vR1l1Tk9JZ3FHZk84V0ZKT2lCNWs2c2lL\nZTM2blp6dU5aQTRtTzQwUUZcbnovUTFoQ3dZTWNkc2hqVitQdkNjUFdYdmVB\ndHhFZlJkOEdIQTlwL2NHVUtCU0ozT1U3UzFZRis1SFdWUWo2WmJcbm5XbWxK\nSFVjYy9OOW5CZmFBVUJTcmt5dkNsc2kvWkV2L1ZrOVJTc3Z5aUkrdzZrNjN4\nblk2alpzU3ZCS1d1TndcblNyZlJxUEJHTE9jYTFVcUx5d09IYTdKc1pKNmZV\nMDUwd2JROWtYUEs1TG1nSHdSM1VWR1NTcUtKVXJaNTAwbjBcbmRRNE5WNzR0\ncFRwM3FUZkd6NllIb2xOa09yTE1LeExvMUFaanlLRVY0SDB5Ukcrd2RDU25y\nVzJsNkxxdzdBZkRcblpZRXdFazM3cHJvPVxuLS0tLS1FTkQgQ0VSVElGSUNB\nVEUtLS0tLVxuLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tXG5NSUlGRmpD\nQ0F2NmdBd0lCQWdJUkFKRXJDRXJQREJpblUvYldMaVduWDFvd0RRWUpLb1pJ\naHZjTkFRRUxCUUF3XG5UekVMTUFrR0ExVUVCaE1DVlZNeEtUQW5CZ05WQkFv\nVElFbHVkR1Z5Ym1WMElGTmxZM1Z5YVhSNUlGSmxjMlZoXG5jbU5vSUVkeWIz\nVndNUlV3RXdZRFZRUURFd3hKVTFKSElGSnZiM1FnV0RFd0hoY05NakF3T1RB\nME1EQXdNREF3XG5XaGNOTWpVd09URTFNVFl3TURBd1dqQXlNUXN3Q1FZRFZR\nUUdFd0pWVXpFV01CUUdBMVVFQ2hNTlRHVjBKM01nXG5SVzVqY25sd2RERUxN\nQWtHQTFVRUF4TUNVak13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3\nQXdnZ0VLXG5Bb0lCQVFDN0FoVW96UGFnbE5NUEV1eU5WWkxEK0lMeG1hWjZR\nb2luWFNhcXRTdTV4VXl4cjQ1citYWElvOWNQXG5SNVFVVlRWWGpKNm9vamta\nOVlJOFFxbE9idlU3d3k3YmpjQ3dYUE5aT09mdHoybndXZ3NidnNDVUpDV0gr\namR4XG5zeFBuSEt6aG0rL2I1RHRGVWtXV3FjRlR6alRJVXU2MXJ1MlAzbUJ3\nNHFWVXE3WnREcGVsUURScks5TzhadXRtXG5OSHo2YTR1UFZ5bVorREFYWGJw\neWIvdUJ4YTNTaGxnOUY4Zm5DYnZ4Sy9lRzNNSGFjVjNVUnVQTXJTWEJpTHhn\nXG5aM1Ztcy9FWTk2SmM1bFAvT29pMlI2WC9FeGpxbUFsM1A1MVQrYzhCNWZX\nbWNCY1VyMk9rLzVtems1M2NVNmNHXG4va2lGSGFGcHJpVjF1eFBNVWdQMTdW\nR2hpOXNWQWdNQkFBR2pnZ0VJTUlJQkJEQU9CZ05WSFE4QkFmOEVCQU1DXG5B\nWVl3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQk1C\nSUdBMVVkRXdFQi93UUlNQVlCXG5BZjhDQVFBd0hRWURWUjBPQkJZRUZCUXVz\neGUzV0ZiTHJsQUpRT1lmcjUyTEZNTEdNQjhHQTFVZEl3UVlNQmFBXG5GSG0w\nV2VaN3R1WGtBWE9BQ0lqSUdsajI2WnR1TURJR0NDc0dBUVVGQndFQkJDWXdK\nREFpQmdnckJnRUZCUWN3XG5Bb1lXYUhSMGNEb3ZMM2d4TG1rdWJHVnVZM0l1\nYjNKbkx6QW5CZ05WSFI4RUlEQWVNQnlnR3FBWWhoWm9kSFJ3XG5PaTh2ZURF\ndVl5NXNaVzVqY2k1dmNtY3ZNQ0lHQTFVZElBUWJNQmt3Q0FZR1o0RU1BUUlC\nTUEwR0N5c0dBUVFCXG5ndDhUQVFFQk1BMEdDU3FHU0liM0RRRUJDd1VBQTRJ\nQ0FRQ0Z5azVIUHFQM2hVU0Z2TlZuZUxLWVk2MTFUUjZXXG5QVE5sY2xRdGdh\nRHF3KzM0SUw5ZnpMZHdBTGR1Ty9aZWxON2tJSittNzR1eUErZWl0Ulk4a2M2\nMDdUa0M1M3dsXG5pa2ZtWlc0L1J2VFo4TTZVSys1VXpoSzhqQ2RMdU1HWUw2\nS3Z6WEdSU2dpM3lMZ2pld1F0Q1BrSVZ6NkQyUVF6XG5Da2NoZUFtQ0o4TXF5\nSnU1emx6eVpNakF2bm5BVDQ1dFJBeGVrcnN1OTRzUTRlZ2RSQ25iV1NEdFk3\na2grQkltXG5sSk5Yb0IxbEJNRUtJcTRRRFVPWG9SZ2ZmdURnaGplMVdyRzlN\nTCtIYmlzcS95Rk9Hd1hEOVJpWDhGNnN3Nlc0XG5hdkF1dkRzenVlNUwzc3o4\nNUsrRUM0WS93RlZETnZabzRUWVhhbzZaMGYrbFFLYzB0OERRWXprMU9YVnU4\ncnAyXG55Sk1DNmFsTGJCZk9EQUxadllIN243ZG8xQVpsczRJOWQxUDRqbmtE\nclFveEIzVXFROWhWbDNMRUtRNzN4RjFPXG55SzVHaEREWDhvVmZHS0Y1dStk\nZWNJc0g0WWFUdzdtUDNHRnhKU3F2MyswbFVGSm9pNUxjNWRhMTQ5cDkwSWRz\nXG5oQ0V4cm9MMSs3bXJ5SWtYUGVGTTVUZ085cjBydlphQkZPdlYyejBncDM1\nWjArTDRXUGxidUVqTi9seFBGaW4rXG5IbFVqcjhnUnNJM3FmSk9RRnkvOXJL\nSUpSMFkvOE9td3QvOG9UV2d5MW1kZUhtbWprN2oxbllzdkM5SlNRNlp2XG5N\nbGRsVFRLQjN6aFRoVjErWFdZcDZyamQ1SlcxemJWV0VrTE54RTdHSlRoRVVH\nM3N6Z0JWR1A3cFNXVFVUc3FYXG5uTFJid0hPb3E3aEh3Zz09XG4tLS0tLUVO\nRCBDRVJUSUZJQ0FURS0tLS0tIiwiZW5hYmxlZCI6dHJ1ZSwia2V5IjoiLS0t\nLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuTUlJRXBBSUJBQUtDQVFF\nQXVOOXpxODFnK3NYWE1WaUw5NCtjS2FVTDVFemR4U2J2alRQcUZ6aytCUHlR\nUFBzMVxuOXNoYy90M3FlR3ViTUV5VnN0NDNUemNTRjREZ3A0cUlNbE8xdTkx\nSzhBaThxR0tqR3VpVk9IWGxWMmpua0tTR1xueFZUYlg0YkFPM294SEpXRzAw\nNlRReHhxbmtHam9xbmlTd3cyTXpHOWgwTUMyWFhMQUR6SXhaT21mTjYyWWlB\nSlxub0NUeUNEM05yTzlYTmlqQWVLNm93SXV5V0lHVFF1QXA4Q1BUZW5aSTRS\ndWVLL21pd0kvTWh6Vk54MmFvVXQ2b1xuLzgwS1Z5TDg1LzN4c2pFN1crOUJD\nZjM3eTFmNkVzYWxRSHNBKzc2UExGMWhNSFBqc2NwV3p1R24rKy9XNytrV1xu\nN0Z3R250MUd6YThUcjNLd1VRbVM2RVlxcmtyaWJrY082MHI1SXdJREFRQUJB\nb0lCQUcrMXpsNkU5dEh4bEV2a1xuRm9lY0JwLy9kRVVhMFhNZFNPbEk4bTNn\nRUFMUlhwTUt0UndQREdxUlMrcENFMzlHOTdvaW5zZEdIcStIRjdrRlxuYzdE\nOWRqWXp6T0ZvVmg5bG91dFNtVUNKdFBCeG1tT0RsMUJNSzFiNHhOWHJ5eHRi\nbXlHNlBDLzBUdFNjRXpYcVxuYzZ3bmorUzFiTEg4SXcrbUp1bFkwWFRaK0dO\nQTVYenJXeXV2QzhMYTNDUi9CTytjOWVxY0tCTEk2eFJJZCtMRlxuL254eDhF\nTmlCYzdKWURrSU12NGVmT3JIemxrNExtVVpvMWdzMkNudG5GSDRYa2FlMEJ3\nOFpVZENYZ3krV1kwbFxua2ZLQ010T3hRNDZIdTRtK0dvdnZvV3B4K1VZb0lu\ncFhQR1JqNnFmdURmWjdrbUdWZWlKZmZBTklwekdlZXUzQ1xuUytrTjAza0Nn\nWUVBM1pwaE9MWm5CTHkvZEFYb3NJbmQ5aVFyVWV4bTViRWJva1BzK1k3TWhW\ncWVvbEt0TmZ6MFxuRzdHa0RmQU1uVE0weUNQR2FYeWwvQmhITWVZYnlBbEJL\naGZiSXA3ZEN1QVVNVjFHMSt5THpLMHRJdU9kV1pGUVxuZ0Y5TU10N2xNL0FN\nUitlSTRrMU1hVm9iNVZFeFQydWM0bkFONWVHMlFURU9SZHdsYkhUZGNuY0Nn\nWUVBMVpHUFxub3o5b1o4alpTdVh2OGV3R3NrK1dMY0QxREJOZFRjSjV1ZVBQ\nbXNqY1pQRnZBN3E4V1haVWdmYjlmKzFSTmlqbVxueXJ1TjBCanp5WjBkK2gw\nY1JGRE55M3M3NXdjU2lTSlFxWlhSeUVSR3FOMDdJRUxjTEdGZHlqSnVtdDhN\nY1VZTVxuZjZuWkpQQ09yK0NxL0pIUzJHWEVISFNXL25wRmpHYlB1YXlmRGJV\nQ2dZRUFvMVh6ek9wYzJsZ0l3WXJOYkxuaFxubVZnbGVmZkdEQXpUc25GZ2pM\nemRNSG1QclZORkNpTU5CaENVUEJXd0pub2tzRlAySGJCYlk0bTlpQ0QwWHll\nN1xuR1R5R0wybHF3V1pTVytSRm9FZGc3NWJCU3hMNzJwWEtBU1M4dEU0b0lI\nVVJpRG8zWVozWjhWa1NjSjY4dXE0MVxuNzR6cUlZT1JZMUcyRkhYa082R1R5\nNWNDZ1lBcUNOdFBrelJXY1Fhcm9qUW0xb0MrNmNFeVFpODQ4RHJHQ2tmeFxu\nR1hDTUU0cWxaNHVsSFVUakN0STVQa2JJdmduazhnbnl6eFZyWnUzY3Vjcmpw\nb1Vnd1JLd1FSSWFONThqVkppeFxudUNZeEY1Y2N0MlppeENZWHFoWk9yTHh1\nU1FabTZSV2VydXhwUTl1aHJFT2JNSXhpUVMxbk9GOWJ1TzhsWWpyeVxuWFpK\nMG5RS0JnUUNTNW5hK0hpOUtXSFFaY09CY1p2OFNIYjBXekhydHBTOG1td0RF\nVi83R0I2N2JsVC9zSUtsNFxuWkpyT1JHb25Ic1RUK2U5ekQ2U2lsbEdnL3R6\nanBFYWNUUEEreEFMTEUxUHJ2UnhKNUdmMExCVnkwOUMrVDdvcVxudnMyQUVS\nRVVIT0djUTgyclpTZ2JvbUhlVGoraGV3d29pV01Sb01OUWNlNTVHMmFpcjVj\ndkdnPT1cbi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tIiwidGxzX21v\nZGUiOlsidGxzdjEyIiwidGxzdjEzIl19LCJnb3Zlcm5vciI6eyJsaW1pdF9u\nZXR3b3JrIjpudWxsLCJsaW1pdF91c2VyIjpudWxsLCJxdW90YXNfZW5hYmxl\nZCI6ZmFsc2V9LCJodHRwX25vcHJveHkiOm51bGwsImh0dHBfcHJveHkiOm51\nbGwsImlkZW50aWNvbnNfaG9zdCI6ImRvdGNvbSIsImxkYXAiOm51bGwsImxp\nY2Vuc2UiOnsiY2x1c3Rlcl9zdXBwb3J0Ijp0cnVlLCJldmFsdWF0aW9uIjpm\nYWxzZSwiZXhwaXJlX2F0IjoiMjAyNS0wMS0wMVQyMzo1OTo1OS0wODowMCIs\nInBlcnBldHVhbCI6ZmFsc2UsInNlYXRzIjowLCJzc2hfYWxsb3dlZCI6dHJ1\nZSwic3VwcG9ydF9rZXkiOm51bGwsInVubGltaXRlZF9zZWF0aW5nIjp0cnVl\nfSwibG9hZF9iYWxhbmNlciI6bnVsbCwibWFuYWdlX2F1dGgiOnsibG9naW5f\nYXR0ZW1wdF9saW1pdCI6MTAsImxvZ2luX2F0dGVtcHRfbG9ja291dF9taW51\ndGVzIjoxMH0sIm1hcHBpbmciOnsiYXp1cmVfYXBwX2NsaWVudF9pZCI6bnVs\nbCwiYXp1cmVfYXBwX2NsaWVudF9zZWNyZXQiOm51bGwsImF6dXJlX21hcF9j\nbGllbnRfaWQiOm51bGwsImF6dXJlX3RlbmFudF9pZCI6bnVsbCwiYmFzZW1h\ncCI6bnVsbCwiY3NyZl9zZWNyZXQiOm51bGwsImVuYWJsZWQiOmZhbHNlfSwi\nbXlzcWwiOnsiYmFja3VwIjp7ImJpbmFyeSI6dHJ1ZX19LCJudHAiOm51bGws\nIm51bV9wYXJhbGxlbF9kYXRhYmFzZV9taWdyYXRpb25fd29ya2VyIjo0LCJw\nYWdlcyI6eyJidWlsZF90aW1lb3V0X21pbnV0ZXMiOjExLCJlbmFibGVkIjp0\ncnVlLCJoZWFkZXJfb3ZlcnJpZGUiOiIiLCJzeW5jX3RpbWVvdXRfbWludXRl\ncyI6MTB9LCJwcml2YXRlX2luc3RhbmNlIjp7ImF6dXJlX2Nsb3VkX2Vudmly\nb25tZW50IjoiIiwiYmlsbGluZyI6eyJmcmVlX3RyaWFsX2VuYWJsZWQiOmZh\nbHNlLCJsaWNlbnNldXNhZ2UiOnsibWV0ZXJfaWQiOiIifSwicGF2MiI6eyJr\nZXlfdmF1bHRfaWRlbnRpdHlfY2xpZW50X2lkIjoiIiwia2V5X3ZhdWx0X25h\nbWUiOiIiLCJxdWV1ZV9zdG9yYWdlX2FjY291bnRfbmFtZSI6IiIsInF1ZXVl\nX3N0b3JhZ2Vfc2FzX3Rva2VuX3NlY3JldF9uYW1lIjoiIiwidGFibGVfc3Rv\ncmFnZV9hY2NvdW50X25hbWUiOiIiLCJ0YWJsZV9zdG9yYWdlX3Nhc190b2tl\nbl9zZWNyZXRfbmFtZSI6IiJ9LCJyZXNvdXJjZV9ncm91cCI6IiIsInJlc291\ncmNlX25hbWUiOiIiLCJyZXNvdXJjZV9yZWdpb24iOiIiLCJzdWJzY3JpcHRp\nb25faWQiOiIifSwiZW5hYmxlZCI6ZmFsc2UsImVuY3J5cHRpb24iOnsiYmFj\na3VwIjp7ImRpc2tfZW5jcnlwdGlvbl9zZXQiOiIiLCJrZXkiOiIiLCJrZXlf\ndmF1bHQiOiIifSwicHJpbWFyeSI6eyJkaXNrX2VuY3J5cHRpb25fc2V0Ijoi\nIiwia2V5IjoiIiwia2V5X3ZhdWx0IjoiIn0sInJlcGxpY2EiOnsiZGlza19l\nbmNyeXB0aW9uX3NldCI6IiIsImtleSI6IiIsImtleV92YXVsdCI6IiJ9LCJy\nZXNvdXJjZV9ncm91cCI6IiIsInN1YnNjcmlwdGlvbl9pZCI6IiJ9LCJpZHBf\nY29uZmlndXJhdGlvbl9yZXF1aXJlZCI6ZmFsc2UsIm1lbyI6eyJhcHBfaWQi\nOiIiLCJjbGllbnRfc2VjcmV0IjoiIiwidGVuYW50X2lkIjoiIiwidXJsIjoi\nIn19LCJwcml2YXRlX21vZGUiOnRydWUsInB1YmxpY19wYWdlcyI6ZmFsc2Us\nInNhbWwiOm51bGwsInNlY3JldF9zY2FubmluZyI6eyJlbmFibGVkIjp0cnVl\nfSwic2lnbnVwX2VuYWJsZWQiOmZhbHNlLCJzbXRwIjp7ImFkZHJlc3MiOm51\nbGwsImF1dGhlbnRpY2F0aW9uIjpudWxsLCJkaXNjYXJkX3RvX25vcmVwbHlf\nYWRkcmVzcyI6ZmFsc2UsImRvbWFpbiI6bnVsbCwiZW5hYmxlZCI6ZmFsc2Us\nImVuZm9yY2VfdGxzX2F1dGgiOmZhbHNlLCJub3JlcGx5X2FkZHJlc3MiOm51\nbGwsInBhc3N3b3JkIjpudWxsLCJwb3J0IjowLCJzdXBwb3J0X2FkZHJlc3Mi\nOm51bGwsInN1cHBvcnRfYWRkcmVzc190eXBlIjpudWxsLCJ1c2VyX25hbWUi\nOm51bGwsInVzZXJuYW1lIjpudWxsfSwic25tcCI6bnVsbCwic3ViZG9tYWlu\nX2lzb2xhdGlvbiI6dHJ1ZSwic3lzbG9nIjp7ImNlcnQiOm51bGwsImVuYWJs\nZWQiOmZhbHNlLCJwcm90b2NvbF9uYW1lIjoidWRwIiwic2VydmVyIjpudWxs\nLCJ0bHNfZW5hYmxlZCI6ZmFsc2V9LCJ0aW1lem9uZSI6bnVsbCwidG9nZ2xl\nX2djbV9jbHVzdGVyX2NvbmZpZ192YWxpZGF0aW9uIjp0cnVlLCJ1c2VfcGFy\nYWxsZWxfZGF0YWJhc2VfbWlncmF0aW9ucyI6ZmFsc2V9Cg==\n" + } + }, + "recorded_at": "Tue, 28 May 2024 10:41:27 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_start_configuration/start_a_ghe-config-apply.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_start_configuration/start_a_ghe-config-apply.json new file mode 100644 index 000000000..3bb02df52 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_start_configuration/start_a_ghe-config-apply.json @@ -0,0 +1,72 @@ +{ + "http_interactions": [ + { + "request": { + "method": "post", + "uri": "<>/manage/v1/config/apply", + "body": { + "encoding": "UTF-8", + "base64_string": "" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Content-Length": [ + "0" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 10:25:26 GMT" + ], + "Content-Length": [ + "22" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "eyJydW5faWQiOiI5ODI0ZjE2ZSJ9Cg==\n" + } + }, + "recorded_at": "Tue, 28 May 2024 10:25:26 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json new file mode 100644 index 000000000..d5a6231a2 --- /dev/null +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json @@ -0,0 +1,75 @@ +{ + "http_interactions": [ + { + "request": { + "method": "put", + "uri": "<>/manage/v1/config/license", + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "anqDHd6gSAjXRl5IUvRNla+HL\nwkjkmQMlgLD1iUomBHeBrw/LsuW+DrfUqvTaBFdAYxN5e1grmlHaBREkVADd\nqD/Tp1x8Wwte2oFVTRr3Q2AMwe5JyFsp6st0Vx7Vn8SHcxustqiH1fciJLt8\nQTmMr6yYHsZ+2YPySFDjirAbSH9xSX+zKG25VqDmMWwsjBIjaQMGfbaLDygO\nDpRvo63BnoPq2B/uxLHAE3gEUZWP8ukN9cuBPB8YxmWGpsrxeQrrfPZl4cG9\nQPBhSW+0NMmo5H3BQl/z8WZtje8uBwShb6Sc2RyqMyH2GDin3XTW78JzWl9i\nuyxOvG3FHwRnA2txkuM+54ikgwWO6vKKJFoan1X8_LOLNOTREAL_/eZ3FOUm1RCXbDrK7DwY\nqftO+hhL0kFZIz+O/Dg/a/OpeCP3UPcEaNmpkZbfXqpMsIxSGi96pisMJl6M\nRNJ6ZyiFf5CqpliiwCn9I3w9NWIXJhlLzimVwzX705s6a9ML5\n72gA8iFY3THXfNt5l7WdmssXegborR+ITb8cwXDdAAFXIZBurX4uQUWcN+tB\n9W07iqmpR7UzmPPQhcNZX/gmDjnkfaXx9neyydM6rY1yWhzEZ14WJwJLIne0uqU90SeqKDSPwzaTMbEo2ItVUgDbbEqNf/tXU2ZKnnU68Aywt5bfjLOM8sV6\ndmZHUCx6ygqMpRnlJwnsW/ikq00hJsKHS0TSJq4EnDiZaCyZYwjR7eHn2uGP\n/ufqoXKDWIY6Wxr4pyLcauDFUBnq75lEn7nA9knoDHmgrBFCL9bQcM+/Wh+8\nZ7I1NG5XUubvWCH8ywLhm6a5ftPKPsQh5mDurB55+gUxatRqgXS9XnfxSnac\nwlP02RpRlxPKfbMZqVsO2KW2TYUGXTpFCyZYLCau1Uw/+qJ/8z1ugURLjzJI3j2x4I3v6Mc952\n0TcebG/ZvuTaKft6dP+ZW++86Oynnn3T6j8BDQotLS0tLS0tLS0tLS0tUnVi\neU11bHRpcGFydFBvc3QNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0\nYTsgbmFtZT0icGFzc3dvcmQiDQoNC\n" + }, + "headers": { + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "multipart/form-data; boundary=-----------RubyMultipartPost-e8412453628eb4b99f71583f2234ae4f" + ], + "Authorization": [ + "Basic YXBpX2tleTpRMjBVcm45aWs=" + ], + "Content-Length": [ + "17459" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ], + "Accept": [ + "*/*" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Content-Security-Policy": [ + "default-src 'none';" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Server": [ + "GHES Manage" + ], + "Strict-Transport-Security": [ + "max-age=63072000; includeSubDomains; preload" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "DENY" + ], + "X-Xss-Protection": [ + "0" + ], + "Date": [ + "Tue, 28 May 2024 10:16:58 GMT" + ], + "Content-Length": [ + "3" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30K\n" + } + }, + "recorded_at": "Tue, 28 May 2024 10:16:58 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/octokit/ghes_manage_client/ghes_manage_spec.rb b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb index 3d38baf0e..fafb6a5e2 100644 --- a/spec/octokit/ghes_manage_client/ghes_manage_spec.rb +++ b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb @@ -4,12 +4,15 @@ before do Octokit.reset! @manage_ghes = manage_ghes_client + @license = 'spec/fixtures/github-enterprise.ghl' end describe '.maintenance_mode', :vcr do it 'get maintenance mode' do @manage_ghes.maintenance_mode expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body).to be_kind_of Array + expect(@manage_ghes.last_response.body.first['status']).to be_kind_of String assert_requested :get, github_manage_ghes_url('/manage/v1/maintenance') end end # .maintenance_mode @@ -18,14 +21,93 @@ it 'enable maintenance mode' do @manage_ghes.set_maintenance_mode(true) expect(@manage_ghes.last_response.status).to eq(200) - expect(@manage_ghes.last_response.body[0]['message']).to eq('maintenance mode enabled') + expect(@manage_ghes.last_response.body.first['message']).to eq('maintenance mode enabled') assert_requested :post, github_manage_ghes_url('/manage/v1/maintenance') end it 'disable maintenance mode' do @manage_ghes.set_maintenance_mode(false) expect(@manage_ghes.last_response.status).to eq(200) - expect(@manage_ghes.last_response.body[0]['message']).to eq('maintenance mode disabled') + expect(@manage_ghes.last_response.body.first['message']).to eq('maintenance mode disabled') assert_requested :post, github_manage_ghes_url('/manage/v1/maintenance') end end # .set_maintenance_mode + + describe '.upload_license', :vcr do + it 'upload a new license' do + @manage_ghes.upload_license(@license) + expect(@manage_ghes.last_response.status).to eq(201) + assert_requested :put, github_manage_ghes_url('/manage/v1/config/license') + end + end # .upload_license + + describe '.start_configuration', :vcr do + it 'start a ghe-config-apply' do + @manage_ghes.start_configuration + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body['run_id']).to be_kind_of String + assert_requested :post, github_manage_ghes_url('/manage/v1/config/apply') + end + end # .start_configuration + + describe '.config_status', :vcr do + it 'get ghe-config-apply status' do + @manage_ghes.config_status + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body['run_id']).to be_kind_of String + expect(@manage_ghes.last_response.body['nodes']).to be_kind_of Array + assert_requested :get, github_manage_ghes_url('/manage/v1/config/apply') + end + end # .config_status + + describe '.settings', :vcr do + it 'get settings' do + @manage_ghes.settings + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body).to be_kind_of Hash + expect(@manage_ghes.last_response.body['abuse_rate_limiting']['requests_per_minute']).to be_kind_of Integer + assert_requested :get, github_manage_ghes_url('/manage/v1/config/settings') + end + end # .settings + + describe '.edit_settings', :vcr do + it 'set settings' do + @manage_ghes.edit_settings({ 'abuse_rate_limiting' => { 'requests_per_minute' => 901 } }) + expect(@manage_ghes.last_response.status).to eq(204) + assert_requested :put, github_manage_ghes_url('/manage/v1/config/settings') + end + end # .edit_settings + + describe '.authorized_keys', :vcr do + it 'get authorized keys' do + @manage_ghes.authorized_keys + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body).to be_kind_of Array + expect(@manage_ghes.last_response.body.first['key']).to be_kind_of String + assert_requested :get, github_manage_ghes_url('/manage/v1/access/ssh') + end + end # .authorized_keys + + describe '.add_authorized_key', :vcr do + it 'adds a new authorized SSH keys (via a file path)' do + key = 'spec/fixtures/fake_key.pub' + @manage_ghes.add_authorized_key(key) + + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body.first['message']).to eq('SSH key added successfully') + + assert_requested :post, github_manage_ghes_url('/manage/v1/access/ssh') + end + end # .add_authorized_key + + describe '.remove_authorized_key', :vcr do + it 'delete an authorized SSH key (via a file path)' do + key = 'spec/fixtures/fake_key.pub' + @manage_ghes.remove_authorized_key(key) + + expect(@manage_ghes.last_response.status).to eq(200) + expect(@manage_ghes.last_response.body.first['message']).to eq('SSH key removed successfully') + + assert_requested :delete, github_manage_ghes_url('/manage/v1/access/ssh') + end + end # .remove_authorized_key end From bacec1f71d987b40b40ef125a72eb46a3a3ac831 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 14:59:55 -0700 Subject: [PATCH 47/75] Update rubocop requirement from 1.63.5 to 1.64.0 (#1691) * Update rubocop requirement from 1.63.5 to 1.64.0 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.63.5...v1.64.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] * Fix super calls due to new lint rule --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Keegan Campbell --- Gemfile | 2 +- lib/octokit/arguments.rb | 2 +- lib/octokit/repo_arguments.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 8036e2789..a923f7354 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.63.5' + gem 'rubocop', '1.64.0' end gemspec diff --git a/lib/octokit/arguments.rb b/lib/octokit/arguments.rb index d329ec492..3794e5513 100644 --- a/lib/octokit/arguments.rb +++ b/lib/octokit/arguments.rb @@ -8,7 +8,7 @@ class Arguments < Array def initialize(args) @options = args.last.is_a?(::Hash) ? args.pop : {} - super(args) + super end end end diff --git a/lib/octokit/repo_arguments.rb b/lib/octokit/repo_arguments.rb index 9598fb261..73eaa2211 100644 --- a/lib/octokit/repo_arguments.rb +++ b/lib/octokit/repo_arguments.rb @@ -9,7 +9,7 @@ class RepoArguments < Arguments attr_reader :repo def initialize(args) - arguments = super(args) + arguments = super @repo = arguments.shift arguments From 849b28cc54ebef3355b006a1127149bb595c6d0a Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Thu, 30 May 2024 12:14:37 +0200 Subject: [PATCH 48/75] rubocop fixes --- lib/octokit/manage_ghes_client.rb | 6 +++--- spec/spec_helper.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/octokit/manage_ghes_client.rb b/lib/octokit/manage_ghes_client.rb index 8570a93ad..f8ecaf6f1 100644 --- a/lib/octokit/manage_ghes_client.rb +++ b/lib/octokit/manage_ghes_client.rb @@ -49,9 +49,9 @@ def manage_ghes_endpoint=(value) # # @param value [String] Manage GHES API username def manage_ghes_username=(value) - reset_agent - @manage_ghes_username = value - end + reset_agent + @manage_ghes_username = value + end # Set Manage GHES API password # diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 477f62759..3b1dc992a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -32,7 +32,7 @@ end require 'vcr' -VCR.configure do |c| +VCR.configure do |c| # rubocop:disable Metrics/BlockLength c.configure_rspec_metadata! c.filter_sensitive_data('') do test_github_login From f586f54b6fa09af58dfe2ff4a42faed118af30c5 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Thu, 30 May 2024 15:55:07 +0200 Subject: [PATCH 49/75] Fix basic auth for older version --- lib/octokit/manage_ghes_client/manage_ghes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 4a78437c9..d5f0c9476 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -159,7 +159,7 @@ def authenticated_client elsif basic_authenticated? username = @manage_ghes_username end - c.request :authorization, :basic, username, @manage_ghes_password + c.request(*FARADAY_BASIC_AUTH_KEYS, username, @manage_ghes_password) # Disabling SSL is essential for certain self-hosted Enterprise instances c.ssl[:verify] = false if connection_options[:ssl] && !connection_options[:ssl][:verify] From 3e4406d29d64247ea92f3da4464d1695f2b53313 Mon Sep 17 00:00:00 2001 From: Dan Bradbury Date: Thu, 30 May 2024 21:18:35 -0700 Subject: [PATCH 50/75] add failing tests for missing endpoints --- spec/octokit/client/code_scanning_spec.rb | 115 ++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/spec/octokit/client/code_scanning_spec.rb b/spec/octokit/client/code_scanning_spec.rb index 5bc1ac0a2..b16da3980 100644 --- a/spec/octokit/client/code_scanning_spec.rb +++ b/spec/octokit/client/code_scanning_spec.rb @@ -6,6 +6,121 @@ @sarif_id = 'fb31fa2c-095d-11ee-98fe-c609abca1772' end + describe '.list_code_scanning_alerts_for_org', :vcr do + it 'lists code scanning alerts for an organization' do + scanning_alerts = @client.list_code_scanning_alerts_for_org("github") + assert_requested :get, github_url("/orgs/#{test_github_org}/code-scanning/alerts") + end + end + + describe '.list_code_scanning_alerts_for_repository', :vcr do + it 'lists code scanning alerts for a repository' do + scanning_alerts = @client.list_code_scanning_alerts_for_repository(@test_repo) + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/alerts") + end + end + + describe '.get_code_scanning_alert', :vcr do + it 'gets a code scanning alert by alert number' do + alert = @client.get_code_scanning_alert(@test_repo, 1) + expect(alert.rule_id).to eq('rubocop') + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/alerts/1") + end + end + + describe '.update_code_scanning_alert', :vcr do + it 'updates a status of a single code scanning alert' do + alert = @client.update_code_scanning_alert(@test_repo, 1, 'dismissed') + expect(alert.status).to eq('dismissed') + assert_requested :patch, github_url("/repos/#{@test_repo}/code-scanning/alerts/1") + end + end + + describe '.list_instances_of_code_scanning_alert', :vcr do + it 'lists all instances of the specified code scanning alert' do + instances = @client.list_instances_of_code_scanning_alert(@test_repo, 1) + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/alerts/1/instances") + end + end + + describe '.list_code_scanning_analysis', :vcr do + it 'lists code scanning analyses for a repository' do + analyses = @client.list_code_scanning_analysis(@test_repo) + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/analyses") + end + end + + describe '.get_code_scanning_analysis', :vcr do + it 'gets a specific code scanning analysis for a repo' do + analysis = @client.get_code_scanning_analysis(@test_repo, 1) + expect(analysis.id).to eq(1) + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/analyses/1") + end + end + + describe '.delete_code_scanning_analysis', :vcr do + it 'deletes a code scanning analysis' do + analysis = @client.delete_code_scanning_analysis(@test_repo, 1) + expect(analysis.id).to eq(1) + assert_requested :delete, github_url("/repos/#{@test_repo}/code-scanning/analyses/1") + end + end + + describe '.list_codeql_database_for_repo', :vcr do + it 'lists the codeql databases that are available in a repo' do + databases = @client.list_codeql_database_for_repo(@test_repo) + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/databases") + end + end + + describe '.get_codeql_database_for_repo', :vcr do + it 'gets a CodeQL database for a language in a repository' do + database = @client.get_codeql_database_for_repo(@test_repo, 'ruby') + expect(database.id).to eq('ruby') + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/databases/ruby") + end + end + + describe '.create_codeql_variant_analysis', :vcr do + it 'creates a new CodeQL variant analysis' do + analysis = @client.create_codeql_variant_analysis(@test_repo, 'ruby', 'main') + expect(analysis.status).to eq('queued') + assert_requested :post, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries") + end + end + + describe '.get_codeql_variant_analysis_summary', :vcr do + it 'gets the summary of a CodeQL variant analysis' do + analysis_summary = @client.get_codeql_variant_analysis_summary(@test_repo, 'ruby', 'main') + expect(analysis_summary.status).to eq('queued') + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main") + end + end + + describe '.get_codeql_variant_analysis_status', :vcr do + it 'gets the analysis status of a repo in a CodeQL variant' do + analysis_status = @client.get_codeql_variant_analysis_status(@test_repo, 'ruby', 'main') + expect(analysis_status.status).to eq('queued') + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main/status") + end + end + + describe '.get_code_scanning_default_config', :vcr do + it 'gets the default code scanning configuration for a repository' do + default_config = @client.get_code_scanning_default_config(@test_repo) + expect(default_config.analysis_enabled).to eq(true) + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/config") + end + end + + describe '.update_code_scanning_default_config', :vcr do + it 'updates the default code scanning configuration for a repository' do + default_config = @client.update_code_scanning_default_config(@test_repo, false) + expect(default_config.analysis_enabled).to eq(false) + assert_requested :patch, github_url("/repos/#{@test_repo}/code-scanning/config") + end + end + describe '.upload_sarif_data', :vcr do it 'uploads a SARIF file' do commit_sha = @client.commits(@test_repo).first.sha From 81341f18478be7bfadce70efa8c32f6e449250ee Mon Sep 17 00:00:00 2001 From: Dan Bradbury Date: Thu, 30 May 2024 22:32:15 -0700 Subject: [PATCH 51/75] first pass for missing endpoints --- lib/octokit/client/code_scanning.rb | 55 ++++++++ .../deletes_a_code_scanning_analysis.json | 124 +++++++++++++++++ ...a_code_scanning_alert_by_alert_number.json | 127 ++++++++++++++++++ ...fic_code_scanning_analysis_for_a_repo.json | 124 +++++++++++++++++ ...anning_configuration_for_a_repository.json | 124 +++++++++++++++++ ...e_scanning_alerts_for_an_organization.json | 124 +++++++++++++++++ ...code_scanning_alerts_for_a_repository.json | 127 ++++++++++++++++++ ...de_scanning_analyses_for_a_repository.json | 124 +++++++++++++++++ ...atabases_that_are_available_in_a_repo.json | 124 +++++++++++++++++ ..._of_the_specified_code_scanning_alert.json | 124 +++++++++++++++++ ...tatus_of_a_single_code_scanning_alert.json | 124 +++++++++++++++++ ...anning_configuration_for_a_repository.json | 124 +++++++++++++++++ spec/octokit/client/code_scanning_spec.rb | 99 +++++++------- 13 files changed, 1475 insertions(+), 49 deletions(-) create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_org/lists_code_scanning_alerts_for_an_organization.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json diff --git a/lib/octokit/client/code_scanning.rb b/lib/octokit/client/code_scanning.rb index 2ea8d8474..daa625f0e 100644 --- a/lib/octokit/client/code_scanning.rb +++ b/lib/octokit/client/code_scanning.rb @@ -9,6 +9,61 @@ class Client # # @see https://docs.github.com/rest/code-scanning module CodeScanning + def update_code_scanning_default_config(repo, state, query_suite=nil, languages=nil, options = {}) + options[:state] = state + options[:query_suite] = query_suite if query_suite + options[:languages] = languages if languages + + patch "#{Repository.path repo}/code-scanning/default-setup", options + end + + def get_code_scanning_default_config(repo, options = {}) + get "#{Repository.path repo}/code-scanning/default-setup", options + end + + def get_codeql_database_for_repo(repo, language, options = {}) + get "#{Repository.path repo}/code-scanning/codeql/databases/#{language}", options + end + + def list_codeql_database_for_repo(repo, options = {}) + get "#{Repository.path repo}/code-scanning/codeql/databases", options + end + + def delete_code_scanning_analysis(repo, analysis_id, options = {}) + delete "#{Repository.path repo}/code-scanning/analyses/#{analysis_id}", options + end + + def get_code_scanning_analysis(repo, analysis_id, options = {}) + get "#{Repository.path repo}/code-scanning/analyses/#{analysis_id}", options + end + + def list_code_scanning_analysis(repo, options = {}) + get "#{Repository.path repo}/code-scanning/analyses", options + end + + def list_instances_of_code_scanning_alert(repo, alert_number, options = {}) + get "#{Repository.path repo}/code-scanning/alerts/#{alert_number}/instances", options + end + + def update_code_scanning_alert(repo, alert_number, status, reason=nil, comment=nil, options = {}) + options[:state] = status + options[:dismissed_reason] = reason + options[:dismissed_comment] = comment + patch "#{Repository.path repo}/code-scanning/alerts/#{alert_number}", options + end + + def get_code_scanning_alert(repo, alert_number, options = {}) + get "#{Repository.path repo}/code-scanning/alerts/#{alert_number}", options + end + + def list_code_scanning_alerts_for_repository(repo, options = {}) + get "#{Repository.path repo}/code-scanning/alerts", options + end + + def list_code_scanning_alerts_for_org(org, options = {}) + get "orgs/#{org}/code-scanning/alerts", options + end + # Uploads SARIF data containing the results of a code scanning analysis # # @param repo [Integer, String, Repository, Hash] A GitHub repository diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json b/spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json new file mode 100644 index 000000000..7b6570e30 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "delete", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/analyses/223527352", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:22:04 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/\"4ff7c2d422afb104c75d7ed4869ad67d7d6c736670587a3a528fe04f23b92928\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4984" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "16" + ], + "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": [ + "D05A:3A257F:360FA0C:3673048:66595E7C" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJuZXh0X2FuYWx5c2lzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5p\nbmcvYW5hbHlzZXMvMjIwMTQ4NzQzIiwiY29uZmlybV9kZWxldGVfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0\naXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8yMjAxNDg3NDM/\nY29uZmlybV9kZWxldGUifQ==\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:22:04 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json new file mode 100644 index 000000000..bbca22840 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json @@ -0,0 +1,127 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:04:34 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/\"102bc5bc3b7dcf7ef68240efdeb67c68a8234ed955df99cb56df0cb4c1991d4a\"" + ], + "Last-Modified": [ + "Sat, 02 Mar 2024 23:53:54 GMT" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4998" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "2" + ], + "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": [ + "CBC3:26444E:3C37BCD:3CA2F79:66595A62" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJvcGVu\nIiwiZml4ZWRfYXQiOm51bGwsImRpc21pc3NlZF9ieSI6bnVsbCwiZGlzbWlz\nc2VkX2F0IjpudWxsLCJkaXNtaXNzZWRfcmVhc29uIjpudWxsLCJkaXNtaXNz\nZWRfY29tbWVudCI6bnVsbCwicnVsZSI6eyJpZCI6InB5L2NsZWFyLXRleHQt\nbG9nZ2luZy1zZW5zaXRpdmUtZGF0YSIsInNldmVyaXR5IjoiZXJyb3IiLCJk\nZXNjcmlwdGlvbiI6IkNsZWFyLXRleHQgbG9nZ2luZyBvZiBzZW5zaXRpdmUg\naW5mb3JtYXRpb24iLCJuYW1lIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNl\nbnNpdGl2ZS1kYXRhIiwidGFncyI6WyJleHRlcm5hbC9jd2UvY3dlLTMxMiIs\nImV4dGVybmFsL2N3ZS9jd2UtMzU5IiwiZXh0ZXJuYWwvY3dlL2N3ZS01MzIi\nLCJzZWN1cml0eSJdLCJmdWxsX2Rlc2NyaXB0aW9uIjoiTG9nZ2luZyBzZW5z\naXRpdmUgaW5mb3JtYXRpb24gd2l0aG91dCBlbmNyeXB0aW9uIG9yIGhhc2hp\nbmcgY2FuIGV4cG9zZSBpdCB0byBhbiBhdHRhY2tlci4iLCJoZWxwIjoiIyBD\nbGVhci10ZXh0IGxvZ2dpbmcgb2Ygc2Vuc2l0aXZlIGluZm9ybWF0aW9uXG5J\nZiBzZW5zaXRpdmUgZGF0YSBpcyB3cml0dGVuIHRvIGEgbG9nIGVudHJ5IGl0\nIGNvdWxkIGJlIGV4cG9zZWQgdG8gYW4gYXR0YWNrZXIgd2hvIGdhaW5zIGFj\nY2VzcyB0byB0aGUgbG9ncy5cblxuUG90ZW50aWFsIGF0dGFja2VycyBjYW4g\nb2J0YWluIHNlbnNpdGl2ZSB1c2VyIGRhdGEgd2hlbiB0aGUgbG9nIG91dHB1\ndCBpcyBkaXNwbGF5ZWQuIEFkZGl0aW9uYWxseSB0aGF0IGRhdGEgbWF5IGV4\ncG9zZSBzeXN0ZW0gaW5mb3JtYXRpb24gc3VjaCBhcyBmdWxsIHBhdGggbmFt\nZXMsIHN5c3RlbSBpbmZvcm1hdGlvbiwgYW5kIHNvbWV0aW1lcyB1c2VybmFt\nZXMgYW5kIHBhc3N3b3Jkcy5cblxuXG4jIyBSZWNvbW1lbmRhdGlvblxuU2Vu\nc2l0aXZlIGRhdGEgc2hvdWxkIG5vdCBiZSBsb2dnZWQuXG5cblxuIyMgRXhh\nbXBsZVxuSW4gdGhlIGV4YW1wbGUgdGhlIGVudGlyZSBwcm9jZXNzIGVudmly\nb25tZW50IGlzIGxvZ2dlZCB1c2luZyBcXGBwcmludFxcYC4gUmVndWxhciB1\nc2VycyBvZiB0aGUgcHJvZHVjdGlvbiBkZXBsb3llZCBhcHBsaWNhdGlvbiBz\naG91bGQgbm90IGhhdmUgYWNjZXNzIHRvIHRoaXMgbXVjaCBpbmZvcm1hdGlv\nbiBhYm91dCB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbi5cblxuXG5g\nYGBweXRob25cbiMgQkFEOiBMb2dnaW5nIGNsZWFydGV4dCBzZW5zaXRpdmUg\nZGF0YVxuaW1wb3J0IG9zXG5wcmludChmXCJbSU5GT10gRW52aXJvbm1lbnQ6\nIHtvcy5lbnZpcm9ufVwiKVxuYGBgXG5JbiB0aGUgc2Vjb25kIGV4YW1wbGUg\ndGhlIGRhdGEgdGhhdCBpcyBsb2dnZWQgaXMgbm90IHNlbnNpdGl2ZS5cblxu\nXG5gYGBweXRob25cbm5vdF9zZW5zaXRpdmVfZGF0YSA9IHsnYSc6IDEsICdi\nJzogMn1cbiMgR09PRDogaXQgaXMgZmluZSB0byBsb2cgZGF0YSB0aGF0IGlz\nIG5vdCBzZW5zaXRpdmVcbnByaW50KGZcIltJTkZPXSBTb21lIG9iamVjdCBj\nb250YWluczoge25vdF9zZW5zaXRpdmVfZGF0YX1cIilcbmBgYFxuXG4jIyBS\nZWZlcmVuY2VzXG4qIE9XQVNQOiBbSW5zZXJ0aW9uIG9mIFNlbnNpdGl2ZSBJ\nbmZvcm1hdGlvbiBpbnRvIExvZyBGaWxlXShodHRwczovL293YXNwLm9yZy9U\nb3AxMC9BMDlfMjAyMS1TZWN1cml0eV9Mb2dnaW5nX2FuZF9Nb25pdG9yaW5n\nX0ZhaWx1cmVzLykuXG4qIENvbW1vbiBXZWFrbmVzcyBFbnVtZXJhdGlvbjog\nW0NXRS0zMTJdKGh0dHBzOi8vY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRp\nb25zLzMxMi5odG1sKS5cbiogQ29tbW9uIFdlYWtuZXNzIEVudW1lcmF0aW9u\nOiBbQ1dFLTM1OV0oaHR0cHM6Ly9jd2UubWl0cmUub3JnL2RhdGEvZGVmaW5p\ndGlvbnMvMzU5Lmh0bWwpLlxuKiBDb21tb24gV2Vha25lc3MgRW51bWVyYXRp\nb246IFtDV0UtNTMyXShodHRwczovL2N3ZS5taXRyZS5vcmcvZGF0YS9kZWZp\nbml0aW9ucy81MzIuaHRtbCkuXG4iLCJzZWN1cml0eV9zZXZlcml0eV9sZXZl\nbCI6ImhpZ2gifSwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVs\nbCwidmVyc2lvbiI6IjIuMTcuMyJ9LCJtb3N0X3JlY2VudF9pbnN0YW5jZSI6\neyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImFuYWx5c2lzX2tleSI6ImR5bmFt\naWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZp\ncm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29y\neSI6Ii9sYW5ndWFnZTpweXRob24iLCJzdGF0ZSI6Im9wZW4iLCJjb21taXRf\nc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQz\nZCIsIm1lc3NhZ2UiOnsidGV4dCI6IlRoaXMgZXhwcmVzc2lvbiBsb2dzIHNl\nbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMg\nZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMg\nY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lv\nbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4\ndC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNz\nd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNl\nbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMg\nZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMg\nY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC4ifSwibG9jYXRpb24iOnsi\ncGF0aCI6Im9yYXRvci9kYXRhYmFzZV9tYW5hZ2VyLnB5Iiwic3RhcnRfbGlu\nZSI6NDEsImVuZF9saW5lIjo0MSwic3RhcnRfY29sdW1uIjoyNiwiZW5kX2Nv\nbHVtbiI6NTl9LCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5v\nL2FjdGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEvaW5zdGFu\nY2VzIn0=\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:04:34 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json new file mode 100644 index 000000000..d43bccf3d --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/analyses/223527352", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:20:09 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/\"39123d5c79c566f221a6a348358138e701ec9490ec19cac9a09ab5753c382fe4\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4986" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "14" + ], + "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": [ + "CFDF:1C3A54:359072E:35F3AC2:66595E09" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5\nNjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNf\na2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5h\nbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwi\nfSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwi\nY3JlYXRlZF9hdCI6IjIwMjQtMDUtMjhUMDg6NDk6MjhaIiwicmVzdWx0c19j\nb3VudCI6MiwicnVsZXNfY291bnQiOjM4LCJpZCI6MjIzNTI3MzUyLCJ1cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9h\nY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIyMzUyNzM1\nMiIsInNhcmlmX2lkIjoiMzE1OTBhYTItMWNjZi0xMWVmLTg1MzUtYzNlMjA0\nNzQxZGMxIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwi\ndmVyc2lvbiI6IjIuMTcuMyJ9LCJkZWxldGFibGUiOnRydWUsIndhcm5pbmci\nOiIifQ==\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:20:09 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json new file mode 100644 index 000000000..d613f21dc --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/default-setup", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:26:41 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/\"6b1d59a782b57d4d7be8df168446d4cecff3c2bc26734aa048a6518962db8228\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4982" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "18" + ], + "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": [ + "D181:1C3A54:35EF48E:3653404:66595F90" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJzdGF0ZSI6ImNvbmZpZ3VyZWQiLCJsYW5ndWFnZXMiOlsicHl0aG9uIl0s\nInF1ZXJ5X3N1aXRlIjoiZGVmYXVsdCIsInVwZGF0ZWRfYXQiOiIyMDI0LTAz\nLTAyVDIzOjUyOjAwWiIsInNjaGVkdWxlIjoid2Vla2x5In0=\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:26:41 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_org/lists_code_scanning_alerts_for_an_organization.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_org/lists_code_scanning_alerts_for_an_organization.json new file mode 100644 index 000000000..9241c4df6 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_org/lists_code_scanning_alerts_for_an_organization.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/orgs/caja-de-dano/code-scanning/alerts", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 04:36:58 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/\"739be43cbbc19575b6e61c6067f0d876bd83e33bc9897e04e443e7cfce851b98\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "public_repo, repo, security_events" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4988" + ], + "X-Ratelimit-Reset": [ + "1717131308" + ], + "X-Ratelimit-Used": [ + "12" + ], + "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": [ + "C48C:1B0962:33FB3E7:345976C:665953EA" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "W3sibnVtYmVyIjoyLCJjcmVhdGVkX2F0IjoiMjAyNC0wMy0wMlQyMzo1Mzo1\nNFoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMy0wMlQyMzo1Mzo1NFoiLCJ1cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9h\nY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FsZXJ0cy8yIiwiaHRtbF91\ncmwiOiJodHRwczovL2dpdGh1Yi5jb20vQ2FqYS1kZS1EYW5vL2FjdGl2ZS13\ncmFwcGVyL3NlY3VyaXR5L2NvZGUtc2Nhbm5pbmcvMiIsInN0YXRlIjoib3Bl\nbiIsImZpeGVkX2F0IjpudWxsLCJkaXNtaXNzZWRfYnkiOm51bGwsImRpc21p\nc3NlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX3JlYXNvbiI6bnVsbCwiZGlzbWlz\nc2VkX2NvbW1lbnQiOm51bGwsInJ1bGUiOnsiaWQiOiJweS9jbGVhci10ZXh0\nLWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJzZXZlcml0eSI6ImVycm9yIiwi\nZGVzY3JpcHRpb24iOiJDbGVhci10ZXh0IGxvZ2dpbmcgb2Ygc2Vuc2l0aXZl\nIGluZm9ybWF0aW9uIiwibmFtZSI6InB5L2NsZWFyLXRleHQtbG9nZ2luZy1z\nZW5zaXRpdmUtZGF0YSIsInRhZ3MiOlsiZXh0ZXJuYWwvY3dlL2N3ZS0zMTIi\nLCJleHRlcm5hbC9jd2UvY3dlLTM1OSIsImV4dGVybmFsL2N3ZS9jd2UtNTMy\nIiwic2VjdXJpdHkiXSwic2VjdXJpdHlfc2V2ZXJpdHlfbGV2ZWwiOiJoaWdo\nIn0sInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNp\nb24iOiIyLjE3LjMifSwibW9zdF9yZWNlbnRfaW5zdGFuY2UiOnsicmVmIjoi\ncmVmcy9oZWFkcy8wLjkiLCJhbmFseXNpc19rZXkiOiJkeW5hbWljL2dpdGh1\nYi1jb2RlLXNjYW5uaW5nL2NvZGVxbDphbmFseXplIiwiZW52aXJvbm1lbnQi\nOiJ7XCJsYW5ndWFnZVwiOlwicHl0aG9uXCJ9IiwiY2F0ZWdvcnkiOiIvbGFu\nZ3VhZ2U6cHl0aG9uIiwic3RhdGUiOiJvcGVuIiwiY29tbWl0X3NoYSI6ImRi\nODc0NDk2N2UxYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNz\nYWdlIjp7InRleHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJv\ncmF0b3IvZGF0YWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjExOSwi\nZW5kX2xpbmUiOjExOSwic3RhcnRfY29sdW1uIjoyMiwiZW5kX2NvbHVtbiI6\nNTV9LCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2\nZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzIvaW5zdGFuY2VzIiwi\ncmVwb3NpdG9yeSI6eyJpZCI6NzExNzI5NTkxLCJub2RlX2lkIjoiUl9rZ0RP\nS213aHR3IiwibmFtZSI6ImFjdGl2ZS13cmFwcGVyIiwiZnVsbF9uYW1lIjoi\nQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyIiwicHJpdmF0ZSI6ZmFsc2Us\nIm93bmVyIjp7ImxvZ2luIjoiQ2FqYS1kZS1EYW5vIiwiaWQiOjcwOTcxODM4\nLCJub2RlX2lkIjoiTURFeU9rOXlaMkZ1YVhwaGRHbHZiamN3T1RjeE9ETTQi\nLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250\nZW50LmNvbS91LzcwOTcxODM4P3Y9NCIsImdyYXZhdGFyX2lkIjoiIiwidXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9DYWphLWRlLURhbm8i\nLCJodG1sX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8i\nLCJmb2xsb3dlcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy\ncy9DYWphLWRlLURhbm8vZm9sbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvQ2FqYS1kZS1EYW5vL2ZvbGxv\nd2luZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzL0NhamEtZGUtRGFuby9naXN0c3svZ2lzdF9pZH0i\nLCJzdGFycmVkX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nQ2FqYS1kZS1EYW5vL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3Jp\ncHRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvQ2Fq\nYS1kZS1EYW5vL3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvQ2FqYS1kZS1EYW5vL29y\nZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nL0NhamEtZGUtRGFuby9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzL0NhamEtZGUtRGFuby9ldmVudHN7L3ByaXZh\nY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvQ2FqYS1kZS1EYW5vL3JlY2VpdmVkX2V2ZW50cyIsInR5\ncGUiOiJPcmdhbml6YXRpb24iLCJzaXRlX2FkbWluIjpmYWxzZX0sImh0bWxf\ndXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL0NhamEtZGUtRGFuby9hY3RpdmUt\nd3JhcHBlciIsImRlc2NyaXB0aW9uIjoiVGhlIE9yYXRvciBPUk0gcHJvdmlk\nZXMgYSBzaW1wbGUgeWV0IGJlYXV0aWZ1bCBBY3RpdmVSZWNvcmQgaW1wbGVt\nZW50YXRpb24uIiwiZm9yayI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIiLCJm\nb3Jrc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEt\nZGUtRGFuby9hY3RpdmUtd3JhcHBlci9mb3JrcyIsImtleXNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZl\nLXdyYXBwZXIva2V5c3sva2V5X2lkfSIsImNvbGxhYm9yYXRvcnNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0\naXZlLXdyYXBwZXIvY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9yfSIsInRl\nYW1zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1k\nZS1EYW5vL2FjdGl2ZS13cmFwcGVyL3RlYW1zIiwiaG9va3NfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZl\nLXdyYXBwZXIvaG9va3MiLCJpc3N1ZV9ldmVudHNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBw\nZXIvaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsImV2ZW50c191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUt\nd3JhcHBlci9ldmVudHMiLCJhc3NpZ25lZXNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIv\nYXNzaWduZWVzey91c2VyfSIsImJyYW5jaGVzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVy\nL2JyYW5jaGVzey9icmFuY2h9IiwidGFnc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci90\nYWdzIiwiYmxvYnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvZ2l0L2Jsb2Jzey9zaGF9\nIiwiZ2l0X3RhZ3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvZ2l0L3RhZ3N7L3NoYX0i\nLCJnaXRfcmVmc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9naXQvcmVmc3svc2hhfSIs\nInRyZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2Fq\nYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2dpdC90cmVlc3svc2hhfSIsInN0\nYXR1c2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2Fq\nYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL3N0YXR1c2VzL3tzaGF9IiwibGFu\nZ3VhZ2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2Fq\nYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2xhbmd1YWdlcyIsInN0YXJnYXpl\ncnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRl\nLURhbm8vYWN0aXZlLXdyYXBwZXIvc3RhcmdhemVycyIsImNvbnRyaWJ1dG9y\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUt\nRGFuby9hY3RpdmUtd3JhcHBlci9jb250cmlidXRvcnMiLCJzdWJzY3JpYmVy\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUt\nRGFuby9hY3RpdmUtd3JhcHBlci9zdWJzY3JpYmVycyIsInN1YnNjcmlwdGlv\nbl91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUt\nRGFuby9hY3RpdmUtd3JhcHBlci9zdWJzY3JpcHRpb24iLCJjb21taXRzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5v\nL2FjdGl2ZS13cmFwcGVyL2NvbW1pdHN7L3NoYX0iLCJnaXRfY29tbWl0c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFu\nby9hY3RpdmUtd3JhcHBlci9naXQvY29tbWl0c3svc2hhfSIsImNvbW1lbnRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1E\nYW5vL2FjdGl2ZS13cmFwcGVyL2NvbW1lbnRzey9udW1iZXJ9IiwiaXNzdWVf\nY29tbWVudF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0Nh\namEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9pc3N1ZXMvY29tbWVudHN7L251\nbWJlcn0iLCJjb250ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb250ZW50cy97\nK3BhdGh9IiwiY29tcGFyZV91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb21wYXJlL3ti\nYXNlfS4uLntoZWFkfSIsIm1lcmdlc191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9tZXJn\nZXMiLCJhcmNoaXZlX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL3thcmNoaXZlX2Zvcm1h\ndH17L3JlZn0iLCJkb3dubG9hZHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvZG93bmxv\nYWRzIiwiaXNzdWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2lzc3Vlc3svbnVtYmVy\nfSIsInB1bGxzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL3B1bGxzey9udW1iZXJ9Iiwi\nbWlsZXN0b25lc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9taWxlc3RvbmVzey9udW1i\nZXJ9Iiwibm90aWZpY2F0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9ub3RpZmlj\nYXRpb25zez9zaW5jZSxhbGwscGFydGljaXBhdGluZ30iLCJsYWJlbHNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8v\nYWN0aXZlLXdyYXBwZXIvbGFiZWxzey9uYW1lfSIsInJlbGVhc2VzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL3JlbGVhc2Vzey9pZH0iLCJkZXBsb3ltZW50c191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9h\nY3RpdmUtd3JhcHBlci9kZXBsb3ltZW50cyJ9fSx7Im51bWJlciI6MSwiY3Jl\nYXRlZF9hdCI6IjIwMjQtMDMtMDJUMjM6NTM6NTRaIiwidXBkYXRlZF9hdCI6\nIjIwMjQtMDMtMDJUMjM6NTM6NTRaIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29k\nZS1zY2FubmluZy9hbGVydHMvMSIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRo\ndWIuY29tL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9zZWN1cml0eS9j\nb2RlLXNjYW5uaW5nLzEiLCJzdGF0ZSI6Im9wZW4iLCJmaXhlZF9hdCI6bnVs\nbCwiZGlzbWlzc2VkX2J5IjpudWxsLCJkaXNtaXNzZWRfYXQiOm51bGwsImRp\nc21pc3NlZF9yZWFzb24iOm51bGwsImRpc21pc3NlZF9jb21tZW50IjpudWxs\nLCJydWxlIjp7ImlkIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNlbnNpdGl2\nZS1kYXRhIiwic2V2ZXJpdHkiOiJlcnJvciIsImRlc2NyaXB0aW9uIjoiQ2xl\nYXItdGV4dCBsb2dnaW5nIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiIsIm5h\nbWUiOiJweS9jbGVhci10ZXh0LWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJ0\nYWdzIjpbImV4dGVybmFsL2N3ZS9jd2UtMzEyIiwiZXh0ZXJuYWwvY3dlL2N3\nZS0zNTkiLCJleHRlcm5hbC9jd2UvY3dlLTUzMiIsInNlY3VyaXR5Il0sInNl\nY3VyaXR5X3NldmVyaXR5X2xldmVsIjoiaGlnaCJ9LCJ0b29sIjp7Im5hbWUi\nOiJDb2RlUUwiLCJndWlkIjpudWxsLCJ2ZXJzaW9uIjoiMi4xNy4zIn0sIm1v\nc3RfcmVjZW50X2luc3RhbmNlIjp7InJlZiI6InJlZnMvaGVhZHMvMC45Iiwi\nYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9j\nb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpc\nInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsInN0\nYXRlIjoib3BlbiIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3\nOWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwibWVzc2FnZSI6eyJ0ZXh0IjoiVGhp\ncyBleHByZXNzaW9uIGxvZ3Mgc2Vuc2l0aXZlIGRhdGEgKHBhc3N3b3JkKSBh\ncyBjbGVhciB0ZXh0LlxuVGhpcyBleHByZXNzaW9uIGxvZ3Mgc2Vuc2l0aXZl\nIGRhdGEgKHBhc3N3b3JkKSBhcyBjbGVhciB0ZXh0LlxuVGhpcyBleHByZXNz\naW9uIGxvZ3Mgc2Vuc2l0aXZlIGRhdGEgKHBhc3N3b3JkKSBhcyBjbGVhciB0\nZXh0LlxuVGhpcyBleHByZXNzaW9uIGxvZ3Mgc2Vuc2l0aXZlIGRhdGEgKHBh\nc3N3b3JkKSBhcyBjbGVhciB0ZXh0LlxuVGhpcyBleHByZXNzaW9uIGxvZ3Mg\nc2Vuc2l0aXZlIGRhdGEgKHBhc3N3b3JkKSBhcyBjbGVhciB0ZXh0LlxuVGhp\ncyBleHByZXNzaW9uIGxvZ3Mgc2Vuc2l0aXZlIGRhdGEgKHBhc3N3b3JkKSBh\ncyBjbGVhciB0ZXh0LlxuVGhpcyBleHByZXNzaW9uIGxvZ3Mgc2Vuc2l0aXZl\nIGRhdGEgKHBhc3N3b3JkKSBhcyBjbGVhciB0ZXh0LlxuVGhpcyBleHByZXNz\naW9uIGxvZ3Mgc2Vuc2l0aXZlIGRhdGEgKHBhc3N3b3JkKSBhcyBjbGVhciB0\nZXh0LiJ9LCJsb2NhdGlvbiI6eyJwYXRoIjoib3JhdG9yL2RhdGFiYXNlX21h\nbmFnZXIucHkiLCJzdGFydF9saW5lIjo0MSwiZW5kX2xpbmUiOjQxLCJzdGFy\ndF9jb2x1bW4iOjI2LCJlbmRfY29sdW1uIjo1OX0sImNsYXNzaWZpY2F0aW9u\ncyI6W119LCJpbnN0YW5jZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2Fu\nbmluZy9hbGVydHMvMS9pbnN0YW5jZXMiLCJyZXBvc2l0b3J5Ijp7ImlkIjo3\nMTE3Mjk1OTEsIm5vZGVfaWQiOiJSX2tnRE9LbXdodHciLCJuYW1lIjoiYWN0\naXZlLXdyYXBwZXIiLCJmdWxsX25hbWUiOiJDYWphLWRlLURhbm8vYWN0aXZl\nLXdyYXBwZXIiLCJwcml2YXRlIjpmYWxzZSwib3duZXIiOnsibG9naW4iOiJD\nYWphLWRlLURhbm8iLCJpZCI6NzA5NzE4MzgsIm5vZGVfaWQiOiJNREV5T2s5\neVoyRnVhWHBoZEdsdmJqY3dPVGN4T0RNNCIsImF2YXRhcl91cmwiOiJodHRw\nczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzA5NzE4Mzg/\ndj00IiwiZ3JhdmF0YXJfaWQiOiIiLCJ1cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzL0NhamEtZGUtRGFubyIsImh0bWxfdXJsIjoiaHR0cHM6\nLy9naXRodWIuY29tL0NhamEtZGUtRGFubyIsImZvbGxvd2Vyc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL0NhamEtZGUtRGFuby9mb2xs\nb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy9DYWphLWRlLURhbm8vZm9sbG93aW5ney9vdGhlcl91c2VyfSIs\nImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvQ2Fq\nYS1kZS1EYW5vL2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9DYWphLWRlLURhbm8vc3RhcnJl\nZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlvbnNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy9DYWphLWRlLURhbm8vc3Vic2NyaXB0\naW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS91c2Vycy9DYWphLWRlLURhbm8vb3JncyIsInJlcG9zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvQ2FqYS1kZS1EYW5vL3JlcG9z\nIiwiZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nQ2FqYS1kZS1EYW5vL2V2ZW50c3svcHJpdmFjeX0iLCJyZWNlaXZlZF9ldmVu\ndHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9DYWphLWRl\nLURhbm8vcmVjZWl2ZWRfZXZlbnRzIiwidHlwZSI6Ik9yZ2FuaXphdGlvbiIs\nInNpdGVfYWRtaW4iOmZhbHNlfSwiaHRtbF91cmwiOiJodHRwczovL2dpdGh1\nYi5jb20vQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyIiwiZGVzY3JpcHRp\nb24iOiJUaGUgT3JhdG9yIE9STSBwcm92aWRlcyBhIHNpbXBsZSB5ZXQgYmVh\ndXRpZnVsIEFjdGl2ZVJlY29yZCBpbXBsZW1lbnRhdGlvbi4iLCJmb3JrIjp0\ncnVlLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEt\nZGUtRGFuby9hY3RpdmUtd3JhcHBlciIsImZvcmtzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFw\ncGVyL2ZvcmtzIiwia2V5c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9rZXlzey9rZXlf\naWR9IiwiY29sbGFib3JhdG9yc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2xsYWJv\ncmF0b3Jzey9jb2xsYWJvcmF0b3J9IiwidGVhbXNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBw\nZXIvdGVhbXMiLCJob29rc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9ob29rcyIsImlz\nc3VlX2V2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9pc3N1ZXMvZXZlbnRzey9u\ndW1iZXJ9IiwiZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2V2ZW50cyIsImFz\nc2lnbmVlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0Nh\namEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9hc3NpZ25lZXN7L3VzZXJ9Iiwi\nYnJhbmNoZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9D\nYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvYnJhbmNoZXN7L2JyYW5jaH0i\nLCJ0YWdzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2Fq\nYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL3RhZ3MiLCJibG9ic191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3Rp\ndmUtd3JhcHBlci9naXQvYmxvYnN7L3NoYX0iLCJnaXRfdGFnc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3Rp\ndmUtd3JhcHBlci9naXQvdGFnc3svc2hhfSIsImdpdF9yZWZzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2\nZS13cmFwcGVyL2dpdC9yZWZzey9zaGF9IiwidHJlZXNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvZ2l0L3RyZWVzey9zaGF9Iiwic3RhdHVzZXNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc3RhdHVzZXMve3NoYX0iLCJsYW5ndWFnZXNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvbGFuZ3VhZ2VzIiwic3RhcmdhemVyc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBl\nci9zdGFyZ2F6ZXJzIiwiY29udHJpYnV0b3JzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVy\nL2NvbnRyaWJ1dG9ycyIsInN1YnNjcmliZXJzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVy\nL3N1YnNjcmliZXJzIiwic3Vic2NyaXB0aW9uX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVy\nL3N1YnNjcmlwdGlvbiIsImNvbW1pdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29t\nbWl0c3svc2hhfSIsImdpdF9jb21taXRzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2dp\ndC9jb21taXRzey9zaGF9IiwiY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIv\nY29tbWVudHN7L251bWJlcn0iLCJpc3N1ZV9jb21tZW50X3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13\ncmFwcGVyL2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsImNvbnRlbnRzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5v\nL2FjdGl2ZS13cmFwcGVyL2NvbnRlbnRzL3srcGF0aH0iLCJjb21wYXJlX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5v\nL2FjdGl2ZS13cmFwcGVyL2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9IiwibWVy\nZ2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1k\nZS1EYW5vL2FjdGl2ZS13cmFwcGVyL21lcmdlcyIsImFyY2hpdmVfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0\naXZlLXdyYXBwZXIve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsImRvd25sb2Fk\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUt\nRGFuby9hY3RpdmUtd3JhcHBlci9kb3dubG9hZHMiLCJpc3N1ZXNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0\naXZlLXdyYXBwZXIvaXNzdWVzey9udW1iZXJ9IiwicHVsbHNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZl\nLXdyYXBwZXIvcHVsbHN7L251bWJlcn0iLCJtaWxlc3RvbmVzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2\nZS13cmFwcGVyL21pbGVzdG9uZXN7L251bWJlcn0iLCJub3RpZmljYXRpb25z\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1E\nYW5vL2FjdGl2ZS13cmFwcGVyL25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxw\nYXJ0aWNpcGF0aW5nfSIsImxhYmVsc191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9sYWJl\nbHN7L25hbWV9IiwicmVsZWFzZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvcmVsZWFz\nZXN7L2lkfSIsImRlcGxveW1lbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2RlcGxv\neW1lbnRzIn19XQ==\n" + } + }, + "recorded_at": "Fri, 31 May 2024 04:36:58 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json new file mode 100644 index 000000000..57e78b3ca --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json @@ -0,0 +1,127 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 04:39:20 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/\"0259b717b98fdf7924e63fe1ee44845c44d00e4a0688855f7289b4141a530da2\"" + ], + "Last-Modified": [ + "Sat, 02 Mar 2024 23:53:54 GMT" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4985" + ], + "X-Ratelimit-Reset": [ + "1717131308" + ], + "X-Ratelimit-Used": [ + "15" + ], + "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": [ + "C52D:1B204E:3367483:33C5CF1:66595478" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "W3sibnVtYmVyIjoyLCJjcmVhdGVkX2F0IjoiMjAyNC0wMy0wMlQyMzo1Mzo1\nNFoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMy0wMlQyMzo1Mzo1NFoiLCJ1cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9h\nY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FsZXJ0cy8yIiwiaHRtbF91\ncmwiOiJodHRwczovL2dpdGh1Yi5jb20vQ2FqYS1kZS1EYW5vL2FjdGl2ZS13\ncmFwcGVyL3NlY3VyaXR5L2NvZGUtc2Nhbm5pbmcvMiIsInN0YXRlIjoib3Bl\nbiIsImZpeGVkX2F0IjpudWxsLCJkaXNtaXNzZWRfYnkiOm51bGwsImRpc21p\nc3NlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX3JlYXNvbiI6bnVsbCwiZGlzbWlz\nc2VkX2NvbW1lbnQiOm51bGwsInJ1bGUiOnsiaWQiOiJweS9jbGVhci10ZXh0\nLWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJzZXZlcml0eSI6ImVycm9yIiwi\nZGVzY3JpcHRpb24iOiJDbGVhci10ZXh0IGxvZ2dpbmcgb2Ygc2Vuc2l0aXZl\nIGluZm9ybWF0aW9uIiwibmFtZSI6InB5L2NsZWFyLXRleHQtbG9nZ2luZy1z\nZW5zaXRpdmUtZGF0YSIsInRhZ3MiOlsiZXh0ZXJuYWwvY3dlL2N3ZS0zMTIi\nLCJleHRlcm5hbC9jd2UvY3dlLTM1OSIsImV4dGVybmFsL2N3ZS9jd2UtNTMy\nIiwic2VjdXJpdHkiXSwic2VjdXJpdHlfc2V2ZXJpdHlfbGV2ZWwiOiJoaWdo\nIn0sInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNp\nb24iOiIyLjE3LjMifSwibW9zdF9yZWNlbnRfaW5zdGFuY2UiOnsicmVmIjoi\ncmVmcy9oZWFkcy8wLjkiLCJhbmFseXNpc19rZXkiOiJkeW5hbWljL2dpdGh1\nYi1jb2RlLXNjYW5uaW5nL2NvZGVxbDphbmFseXplIiwiZW52aXJvbm1lbnQi\nOiJ7XCJsYW5ndWFnZVwiOlwicHl0aG9uXCJ9IiwiY2F0ZWdvcnkiOiIvbGFu\nZ3VhZ2U6cHl0aG9uIiwic3RhdGUiOiJvcGVuIiwiY29tbWl0X3NoYSI6ImRi\nODc0NDk2N2UxYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNz\nYWdlIjp7InRleHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJv\ncmF0b3IvZGF0YWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjExOSwi\nZW5kX2xpbmUiOjExOSwic3RhcnRfY29sdW1uIjoyMiwiZW5kX2NvbHVtbiI6\nNTV9LCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2\nZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzIvaW5zdGFuY2VzIn0s\neyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJvcGVu\nIiwiZml4ZWRfYXQiOm51bGwsImRpc21pc3NlZF9ieSI6bnVsbCwiZGlzbWlz\nc2VkX2F0IjpudWxsLCJkaXNtaXNzZWRfcmVhc29uIjpudWxsLCJkaXNtaXNz\nZWRfY29tbWVudCI6bnVsbCwicnVsZSI6eyJpZCI6InB5L2NsZWFyLXRleHQt\nbG9nZ2luZy1zZW5zaXRpdmUtZGF0YSIsInNldmVyaXR5IjoiZXJyb3IiLCJk\nZXNjcmlwdGlvbiI6IkNsZWFyLXRleHQgbG9nZ2luZyBvZiBzZW5zaXRpdmUg\naW5mb3JtYXRpb24iLCJuYW1lIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNl\nbnNpdGl2ZS1kYXRhIiwidGFncyI6WyJleHRlcm5hbC9jd2UvY3dlLTMxMiIs\nImV4dGVybmFsL2N3ZS9jd2UtMzU5IiwiZXh0ZXJuYWwvY3dlL2N3ZS01MzIi\nLCJzZWN1cml0eSJdLCJzZWN1cml0eV9zZXZlcml0eV9sZXZlbCI6ImhpZ2gi\nfSwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lv\nbiI6IjIuMTcuMyJ9LCJtb3N0X3JlY2VudF9pbnN0YW5jZSI6eyJyZWYiOiJy\nZWZzL2hlYWRzLzAuOSIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHVi\nLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6\nIntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5n\ndWFnZTpweXRob24iLCJzdGF0ZSI6Im9wZW4iLCJjb21taXRfc2hhIjoiZGI4\nNzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsIm1lc3Nh\nZ2UiOnsidGV4dCI6IlRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lv\nbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4\ndC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNz\nd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNl\nbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMg\nZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMg\nY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lv\nbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4\ndC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNz\nd29yZCkgYXMgY2xlYXIgdGV4dC4ifSwibG9jYXRpb24iOnsicGF0aCI6Im9y\nYXRvci9kYXRhYmFzZV9tYW5hZ2VyLnB5Iiwic3RhcnRfbGluZSI6NDEsImVu\nZF9saW5lIjo0MSwic3RhcnRfY29sdW1uIjoyNiwiZW5kX2NvbHVtbiI6NTl9\nLCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13\ncmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEvaW5zdGFuY2VzIn1d\n" + } + }, + "recorded_at": "Fri, 31 May 2024 04:39:20 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json new file mode 100644 index 000000000..c48913bef --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/analyses", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:16:22 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/\"2fc8a48032990ceb9d5641e7915586a35278b8326f73a3d1520fa160c35446fa\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4993" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "7" + ], + "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": [ + "CEEA:3A078A:34A63B9:3509094:66595D26" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "W3sicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0\nOTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lz\nX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFu\nYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25c\nIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIs\nImNyZWF0ZWRfYXQiOiIyMDI0LTA1LTI4VDA4OjQ5OjI4WiIsInJlc3VsdHNf\nY291bnQiOjIsInJ1bGVzX2NvdW50IjozOCwiaWQiOjIyMzUyNzM1MiwidXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8v\nYWN0aXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8yMjM1Mjcz\nNTIiLCJzYXJpZl9pZCI6IjMxNTkwYWEyLTFjY2YtMTFlZi04NTM1LWMzZTIw\nNDc0MWRjMSIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGws\nInZlcnNpb24iOiIyLjE3LjMifSwiZGVsZXRhYmxlIjp0cnVlLCJ3YXJuaW5n\nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJk\nYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5h\nbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2Rl\ncWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5\ndGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9y\nIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDUtMjFUMDg6NDg6NTdaIiwicmVz\ndWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM4LCJpZCI6MjIwMTQ4NzQz\nLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUt\nRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIy\nMDE0ODc0MyIsInNhcmlmX2lkIjoiZjVmZGUwZDQtMTc0ZS0xMWVmLTk3ODkt\nNTQyZGE0MzMxOGZlIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6\nbnVsbCwidmVyc2lvbiI6IjIuMTcuMyJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3\nYXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9z\naGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNk\nIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fubmlu\nZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2Vc\nIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIs\nImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDUtMTRUMDg6NDg6NDVa\nIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MjE2\nNjk1MTcyLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0Nh\namEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5\nc2VzLzIxNjY5NTE3MiIsInNhcmlmX2lkIjoiYzVkZjVhMmEtMTFjZS0xMWVm\nLThiNWUtYWQ1NGJjNTY1YzE0IiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwi\nZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcuMiJ9LCJkZWxldGFibGUiOmZh\nbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNv\nbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4\nNzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1z\nY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFu\nZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5\ndGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDUtMDdUMDg6\nNDg6NDVaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJp\nZCI6MjEzMzEwODA5LCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5n\nL2FuYWx5c2VzLzIxMzMxMDgwOSIsInNhcmlmX2lkIjoiOWQwY2VjOGMtMGM0\nZS0xMWVmLThhZjQtN2YyZTdjOTRkZWFmIiwidG9vbCI6eyJuYW1lIjoiQ29k\nZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcuMSJ9LCJkZWxldGFi\nbGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAu\nOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3\nZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWIt\nY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoi\ne1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1\nYWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDQt\nMzBUMDg6NDg6NDhaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQi\nOjM3LCJpZCI6MjEwMDg5NzQzLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNj\nYW5uaW5nL2FuYWx5c2VzLzIxMDA4OTc0MyIsInNhcmlmX2lkIjoiNzVlOWFk\nMTQtMDZjZS0xMWVmLTkwNGQtZDcxNzcxYmI1ZGFlIiwidG9vbCI6eyJuYW1l\nIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcuMSJ9LCJk\nZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hl\nYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVj\nZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9n\naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25t\nZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5Ijoi\nL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIw\nMjQtMDQtMjNUMDg6NDg6MTRaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNf\nY291bnQiOjM3LCJpZCI6MjA2Njk5NTExLCJ1cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9j\nb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIwNjY5OTUxMSIsInNhcmlmX2lkIjoi\nMzkxYjM0NWEtMDE0ZS0xMWVmLThjZTktZGRlZjhjYzFkZmY0IiwidG9vbCI6\neyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcu\nMCJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJy\nZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4\nMDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHlu\nYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVu\ndmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVn\nb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9h\ndCI6IjIwMjQtMDQtMTZUMDg6NDg6MDBaIiwicmVzdWx0c19jb3VudCI6Miwi\ncnVsZXNfY291bnQiOjM3LCJpZCI6MjAzMjI1MzEyLCJ1cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3Jh\ncHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIwMzIyNTMxMiIsInNhcmlm\nX2lkIjoiMDdiZWVhZGEtZmJjZS0xMWVlLTkyYTktYWMxYWJkYjNiNTU3Iiwi\ndG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6\nIjIuMTcuMCJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJy\nZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5Njdl\nMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5\nIjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6\nZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIs\nImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3Jl\nYXRlZF9hdCI6IjIwMjQtMDQtMDlUMDg6NDg6MjRaIiwicmVzdWx0c19jb3Vu\ndCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MTk5OTU3MDkwLCJ1cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3Rp\ndmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzE5OTk1NzA5MCIs\nInNhcmlmX2lkIjoiZWQzMDBlNGEtZjY0ZC0xMWVlLTlhYmYtNmIzNWUyZjA1\nZTRlIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVy\nc2lvbiI6IjIuMTcuMCJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoi\nIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3\nNDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlz\naXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6\nYW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhv\nblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoi\nIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDQtMDJUMDg6NDg6MDVaIiwicmVzdWx0\nc19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MTk2Nzc4MTczLCJ1\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFu\nby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzE5Njc3\nODE3MyIsInNhcmlmX2lkIjoiYjhkMmU1NmMtZjBjZC0xMWVlLTk4MGItMTIy\nODEyMWIwZGMyIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVs\nbCwidmVyc2lvbiI6IjIuMTYuNSJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJu\naW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEi\nOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwi\nYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9j\nb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpc\nInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVy\ncm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDMtMjZUMDg6NTA6NDhaIiwi\ncmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MTkzODY0\nOTU2LCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEt\nZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2Vz\nLzE5Mzg2NDk1NiIsInNhcmlmX2lkIjoiZjBiYmEwODQtZWI0ZC0xMWVlLTk4\nZjctMWJjMjJlYmVjODM3IiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3Vp\nZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuNSJ9LCJkZWxldGFibGUiOmZhbHNl\nLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1p\ndF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFk\nZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fu\nbmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3Vh\nZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhv\nbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDMtMTlUMDg6NDg6\nNDhaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6\nMTkwNTM1NDY3LCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2Fu\nYWx5c2VzLzE5MDUzNTQ2NyIsInNhcmlmX2lkIjoiODA2MzJlMGUtZTVjZC0x\nMWVlLThkMzktOTllZjdkZjE0YjBmIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFM\nIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuNCJ9LCJkZWxldGFibGUi\nOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIs\nImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4\nMDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29k\nZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wi\nbGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdl\nOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDMtMTJU\nMDg6NDg6MzdaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM2\nLCJpZCI6MTg3MTkyMzgwLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5u\naW5nL2FuYWx5c2VzLzE4NzE5MjM4MCIsInNhcmlmX2lkIjoiNTE1MTc5YWMt\nZTA0ZC0xMWVlLThlZGYtZjM4MTQ1NmZkOThmIiwidG9vbCI6eyJuYW1lIjoi\nQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuMyJ9LCJkZWxl\ndGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRz\nLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3\nMGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRo\ndWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50\nIjoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xh\nbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQt\nMDMtMDVUMDg6NDc6NTFaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291\nbnQiOjM2LCJpZCI6MTgzOTM2ODkzLCJ1cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2Rl\nLXNjYW5uaW5nL2FuYWx5c2VzLzE4MzkzNjg5MyIsInNhcmlmX2lkIjoiMGM5\nNjYwYTAtZGFjZC0xMWVlLTg2NDYtMWI5ODA1YTQ3NDU3IiwidG9vbCI6eyJu\nYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuMyJ9\nLCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZz\nL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3\nOWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1p\nYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmly\nb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5\nIjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6\nIjIwMjQtMDMtMDJUMjM6NTM6NTRaIiwicmVzdWx0c19jb3VudCI6MiwicnVs\nZXNfY291bnQiOjM2LCJpZCI6MTgzMDAzMDQ1LCJ1cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBl\nci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzE4MzAwMzA0NSIsInNhcmlmX2lk\nIjoiMjAzYjA0ZGMtZDhmMC0xMWVlLThiODAtMjBhZmY3N2E5MGRkIiwidG9v\nbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIu\nMTYuMyJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn1d\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:16:22 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json new file mode 100644 index 000000000..c12cd2efd --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/codeql/databases", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:22:54 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/\"67d6abac7c7827d92e05ecf6eb3cd22cc2339104dd3ebfea9d8d1625390c4d1d\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4983" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "17" + ], + "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": [ + "D090:39E48B:357CA0F:35E0196:66595EAE" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "W3siaWQiOjYzMDc3OTI2LCJuYW1lIjoicHl0aG9uLWRhdGFiYXNlIiwibGFu\nZ3VhZ2UiOiJweXRob24iLCJ1cGxvYWRlciI6eyJsb2dpbiI6ImdpdGh1Yi1h\nY3Rpb25zW2JvdF0iLCJpZCI6NDE4OTgyODIsIm5vZGVfaWQiOiJNRE02UW05\nME5ERTRPVGd5T0RJPSIsImF2YXRhcl91cmwiOiJodHRwczovL2F2YXRhcnMu\nZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzE1MzY4P3Y9NCIsImdyYXZhdGFy\nX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9n\naXRodWItYWN0aW9ucyU1QmJvdCU1RCIsImh0bWxfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tL2FwcHMvZ2l0aHViLWFjdGlvbnMiLCJmb2xsb3dlcnNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9u\ncyU1QmJvdCU1RC9mb2xsb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1\nRC9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1\nRC9naXN0c3svZ2lzdF9pZH0iLCJzdGFycmVkX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvc3Rh\ncnJlZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlvbnNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJv\ndCU1RC9zdWJzY3JpcHRpb25zIiwib3JnYW5pemF0aW9uc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90\nJTVEL29yZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVEL3JlcG9zIiwiZXZlbnRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFj\ndGlvbnMlNUJib3QlNUQvZXZlbnRzey9wcml2YWN5fSIsInJlY2VpdmVkX2V2\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1\nYi1hY3Rpb25zJTVCYm90JTVEL3JlY2VpdmVkX2V2ZW50cyIsInR5cGUiOiJC\nb3QiLCJzaXRlX2FkbWluIjpmYWxzZX0sImNvbnRlbnRfdHlwZSI6ImFwcGxp\nY2F0aW9uL3ppcCIsInNpemUiOjMwODY1OTM2LCJjcmVhdGVkX2F0IjoiMjAy\nNC0wNS0yOFQwODo0OTozN1oiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wNS0yOFQw\nODo0OTozOFoiLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\naXRvcmllcy83MTE3Mjk1OTEvY29kZS1zY2FubmluZy9jb2RlcWwvZGF0YWJh\nc2VzL3B5dGhvbiIsImNvbW1pdF9vaWQiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3\nOWVjZWY3MGM3ZGI4MDU4NzFkZDNkIn1d\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:22:54 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json new file mode 100644 index 000000000..7b36a8322 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1/instances", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:15:20 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/\"7a33d2bc29be7f5689f859f4464362bdfe044502a042099cd11fed2e30b4ccc8\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4994" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "6" + ], + "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": [ + "CEA8:1BC1CD:359F354:3601E52:66595CE8" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "W3sicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJhbmFseXNpc19rZXkiOiJkeW5h\nbWljL2dpdGh1Yi1jb2RlLXNjYW5uaW5nL2NvZGVxbDphbmFseXplIiwiZW52\naXJvbm1lbnQiOiJ7XCJsYW5ndWFnZVwiOlwicHl0aG9uXCJ9IiwiY2F0ZWdv\ncnkiOiIvbGFuZ3VhZ2U6cHl0aG9uIiwic3RhdGUiOiJvcGVuIiwiY29tbWl0\nX3NoYSI6ImRiODc0NDk2N2UxYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRk\nM2QiLCJtZXNzYWdlIjp7InRleHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7\nInBhdGgiOiJvcmF0b3IvZGF0YWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xp\nbmUiOjQxLCJlbmRfbGluZSI6NDEsInN0YXJ0X2NvbHVtbiI6MjYsImVuZF9j\nb2x1bW4iOjU5fSwiY2xhc3NpZmljYXRpb25zIjpbXX1d\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:15:20 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json new file mode 100644 index 000000000..ff1c23f2b --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "patch", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJzdGF0ZSI6ImRpc21pc3NlZCIsImRpc21pc3NlZF9yZWFzb24iOiJ3b24n\ndCBmaXgiLCJkaXNtaXNzZWRfY29tbWVudCI6IlRlc3QgY29tbWVudCJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:12:36 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/\"c69a75c91233944d09ebebc7e06621e8732fb6229d46feb63677d9e8e931cd77\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4995" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "5" + ], + "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": [ + "CDD2:1C3A54:3522CF8:3585298:66595C43" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA1LTMxVDA1OjEyOjM1WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJkaXNt\naXNzZWQiLCJmaXhlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX2J5Ijp7ImxvZ2lu\nIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6MjU1NTA3Mywibm9kZV9pZCI6Ik1E\nUTZWWE5sY2pJMU5UVXdOek09IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZh\ndGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTU1MDczP3Y9NCIsImdy\nYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRo\ndWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93\nZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIs\nImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0\nYXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vi\nc2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3Nf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJy\nZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoi\nVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwiZGlzbWlzc2VkX2F0IjoiMjAy\nNC0wNS0zMVQwNToxMjozNVoiLCJkaXNtaXNzZWRfcmVhc29uIjoid29uJ3Qg\nZml4IiwiZGlzbWlzc2VkX2NvbW1lbnQiOiJUZXN0IGNvbW1lbnQiLCJydWxl\nIjp7ImlkIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNlbnNpdGl2ZS1kYXRh\nIiwic2V2ZXJpdHkiOiJlcnJvciIsImRlc2NyaXB0aW9uIjoiQ2xlYXItdGV4\ndCBsb2dnaW5nIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiIsIm5hbWUiOiJw\neS9jbGVhci10ZXh0LWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJ0YWdzIjpb\nImV4dGVybmFsL2N3ZS9jd2UtMzEyIiwiZXh0ZXJuYWwvY3dlL2N3ZS0zNTki\nLCJleHRlcm5hbC9jd2UvY3dlLTUzMiIsInNlY3VyaXR5Il0sImZ1bGxfZGVz\nY3JpcHRpb24iOiJMb2dnaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiB3aXRo\nb3V0IGVuY3J5cHRpb24gb3IgaGFzaGluZyBjYW4gZXhwb3NlIGl0IHRvIGFu\nIGF0dGFja2VyLiIsImhlbHAiOiIjIENsZWFyLXRleHQgbG9nZ2luZyBvZiBz\nZW5zaXRpdmUgaW5mb3JtYXRpb25cbklmIHNlbnNpdGl2ZSBkYXRhIGlzIHdy\naXR0ZW4gdG8gYSBsb2cgZW50cnkgaXQgY291bGQgYmUgZXhwb3NlZCB0byBh\nbiBhdHRhY2tlciB3aG8gZ2FpbnMgYWNjZXNzIHRvIHRoZSBsb2dzLlxuXG5Q\nb3RlbnRpYWwgYXR0YWNrZXJzIGNhbiBvYnRhaW4gc2Vuc2l0aXZlIHVzZXIg\nZGF0YSB3aGVuIHRoZSBsb2cgb3V0cHV0IGlzIGRpc3BsYXllZC4gQWRkaXRp\nb25hbGx5IHRoYXQgZGF0YSBtYXkgZXhwb3NlIHN5c3RlbSBpbmZvcm1hdGlv\nbiBzdWNoIGFzIGZ1bGwgcGF0aCBuYW1lcywgc3lzdGVtIGluZm9ybWF0aW9u\nLCBhbmQgc29tZXRpbWVzIHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzLlxuXG5c\nbiMjIFJlY29tbWVuZGF0aW9uXG5TZW5zaXRpdmUgZGF0YSBzaG91bGQgbm90\nIGJlIGxvZ2dlZC5cblxuXG4jIyBFeGFtcGxlXG5JbiB0aGUgZXhhbXBsZSB0\naGUgZW50aXJlIHByb2Nlc3MgZW52aXJvbm1lbnQgaXMgbG9nZ2VkIHVzaW5n\nIFxcYHByaW50XFxgLiBSZWd1bGFyIHVzZXJzIG9mIHRoZSBwcm9kdWN0aW9u\nIGRlcGxveWVkIGFwcGxpY2F0aW9uIHNob3VsZCBub3QgaGF2ZSBhY2Nlc3Mg\ndG8gdGhpcyBtdWNoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnZpcm9ubWVu\ndCBjb25maWd1cmF0aW9uLlxuXG5cbmBgYHB5dGhvblxuIyBCQUQ6IExvZ2dp\nbmcgY2xlYXJ0ZXh0IHNlbnNpdGl2ZSBkYXRhXG5pbXBvcnQgb3NcbnByaW50\nKGZcIltJTkZPXSBFbnZpcm9ubWVudDoge29zLmVudmlyb259XCIpXG5gYGBc\nbkluIHRoZSBzZWNvbmQgZXhhbXBsZSB0aGUgZGF0YSB0aGF0IGlzIGxvZ2dl\nZCBpcyBub3Qgc2Vuc2l0aXZlLlxuXG5cbmBgYHB5dGhvblxubm90X3NlbnNp\ndGl2ZV9kYXRhID0geydhJzogMSwgJ2InOiAyfVxuIyBHT09EOiBpdCBpcyBm\naW5lIHRvIGxvZyBkYXRhIHRoYXQgaXMgbm90IHNlbnNpdGl2ZVxucHJpbnQo\nZlwiW0lORk9dIFNvbWUgb2JqZWN0IGNvbnRhaW5zOiB7bm90X3NlbnNpdGl2\nZV9kYXRhfVwiKVxuYGBgXG5cbiMjIFJlZmVyZW5jZXNcbiogT1dBU1A6IFtJ\nbnNlcnRpb24gb2YgU2Vuc2l0aXZlIEluZm9ybWF0aW9uIGludG8gTG9nIEZp\nbGVdKGh0dHBzOi8vb3dhc3Aub3JnL1RvcDEwL0EwOV8yMDIxLVNlY3VyaXR5\nX0xvZ2dpbmdfYW5kX01vbml0b3JpbmdfRmFpbHVyZXMvKS5cbiogQ29tbW9u\nIFdlYWtuZXNzIEVudW1lcmF0aW9uOiBbQ1dFLTMxMl0oaHR0cHM6Ly9jd2Uu\nbWl0cmUub3JnL2RhdGEvZGVmaW5pdGlvbnMvMzEyLmh0bWwpLlxuKiBDb21t\nb24gV2Vha25lc3MgRW51bWVyYXRpb246IFtDV0UtMzU5XShodHRwczovL2N3\nZS5taXRyZS5vcmcvZGF0YS9kZWZpbml0aW9ucy8zNTkuaHRtbCkuXG4qIENv\nbW1vbiBXZWFrbmVzcyBFbnVtZXJhdGlvbjogW0NXRS01MzJdKGh0dHBzOi8v\nY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRpb25zLzUzMi5odG1sKS5cbiIs\nInNlY3VyaXR5X3NldmVyaXR5X2xldmVsIjoiaGlnaCJ9LCJ0b29sIjp7Im5h\nbWUiOiJDb2RlUUwiLCJndWlkIjpudWxsLCJ2ZXJzaW9uIjoiMi4xNy4zIn0s\nIm1vc3RfcmVjZW50X2luc3RhbmNlIjp7InJlZiI6InJlZnMvaGVhZHMvMC45\nIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fubmlu\nZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2Vc\nIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIs\nInN0YXRlIjoiZGlzbWlzc2VkIiwiY29tbWl0X3NoYSI6ImRiODc0NDk2N2Ux\nYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNzYWdlIjp7InRl\neHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJvcmF0b3IvZGF0\nYWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjQxLCJlbmRfbGluZSI6\nNDEsInN0YXJ0X2NvbHVtbiI6MjYsImVuZF9jb2x1bW4iOjU5fSwiY2xhc3Np\nZmljYXRpb25zIjpbXX0sImluc3RhbmNlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9j\nb2RlLXNjYW5uaW5nL2FsZXJ0cy8xL2luc3RhbmNlcyJ9\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:12:36 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json new file mode 100644 index 000000000..dccdc9d1c --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "patch", + "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/default-setup", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJzdGF0ZSI6Im5vdC1jb25maWd1cmVkIn0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:31:16 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP", + "Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"2ec9ed5bca79359728914855a288326734ed27a902fb4ea5e4bba7bf07869a1b\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "admin:repo_hook, delete_repo, read:repo_hook, repo, repo:invite, repo:status, repo_deployment, security_events, write:repo_hook" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4980" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "20" + ], + "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": [ + "D2CB:39E48B:35F6A88:365B188:665960A4" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:31:17 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/octokit/client/code_scanning_spec.rb b/spec/octokit/client/code_scanning_spec.rb index b16da3980..739ce1675 100644 --- a/spec/octokit/client/code_scanning_spec.rb +++ b/spec/octokit/client/code_scanning_spec.rb @@ -4,34 +4,35 @@ before do @client = oauth_client @sarif_id = 'fb31fa2c-095d-11ee-98fe-c609abca1772' + @test_repo = "caja-de-dano/active-wrapper" end describe '.list_code_scanning_alerts_for_org', :vcr do it 'lists code scanning alerts for an organization' do - scanning_alerts = @client.list_code_scanning_alerts_for_org("github") - assert_requested :get, github_url("/orgs/#{test_github_org}/code-scanning/alerts") + scanning_alerts = @client.list_code_scanning_alerts_for_org("caja-de-dano") + assert_requested :get, github_url("/orgs/caja-de-dano/code-scanning/alerts") end end describe '.list_code_scanning_alerts_for_repository', :vcr do it 'lists code scanning alerts for a repository' do - scanning_alerts = @client.list_code_scanning_alerts_for_repository(@test_repo) - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/alerts") + scanning_alerts = @client.list_code_scanning_alerts_for_repository("caja-de-dano/active-wrapper") + assert_requested :get, github_url("/repos/caja-de-dano/active-wrapper/code-scanning/alerts") end end describe '.get_code_scanning_alert', :vcr do it 'gets a code scanning alert by alert number' do - alert = @client.get_code_scanning_alert(@test_repo, 1) - expect(alert.rule_id).to eq('rubocop') - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/alerts/1") + alert = @client.get_code_scanning_alert("caja-de-dano/active-wrapper", 1) + expect(alert["rule"]["id"]).to eq('py/clear-text-logging-sensitive-data') + assert_requested :get, github_url("/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1") end end describe '.update_code_scanning_alert', :vcr do it 'updates a status of a single code scanning alert' do - alert = @client.update_code_scanning_alert(@test_repo, 1, 'dismissed') - expect(alert.status).to eq('dismissed') + alert = @client.update_code_scanning_alert(@test_repo, 1, 'dismissed', "won't fix", 'Test comment') + expect(alert["state"]).to eq('dismissed') assert_requested :patch, github_url("/repos/#{@test_repo}/code-scanning/alerts/1") end end @@ -52,17 +53,17 @@ describe '.get_code_scanning_analysis', :vcr do it 'gets a specific code scanning analysis for a repo' do - analysis = @client.get_code_scanning_analysis(@test_repo, 1) - expect(analysis.id).to eq(1) - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/analyses/1") + analysis = @client.get_code_scanning_analysis(@test_repo, 220148743) + expect(analysis.id).to eq(220148743) + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/analyses/220148743") end end describe '.delete_code_scanning_analysis', :vcr do it 'deletes a code scanning analysis' do - analysis = @client.delete_code_scanning_analysis(@test_repo, 1) - expect(analysis.id).to eq(1) - assert_requested :delete, github_url("/repos/#{@test_repo}/code-scanning/analyses/1") + analysis = @client.delete_code_scanning_analysis(@test_repo, 223527352) + #expect(analysis.id).to eq(223527352) + assert_requested :delete, github_url("/repos/#{@test_repo}/code-scanning/analyses/223527352") end end @@ -75,49 +76,49 @@ describe '.get_codeql_database_for_repo', :vcr do it 'gets a CodeQL database for a language in a repository' do - database = @client.get_codeql_database_for_repo(@test_repo, 'ruby') - expect(database.id).to eq('ruby') - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/databases/ruby") - end - end - - describe '.create_codeql_variant_analysis', :vcr do - it 'creates a new CodeQL variant analysis' do - analysis = @client.create_codeql_variant_analysis(@test_repo, 'ruby', 'main') - expect(analysis.status).to eq('queued') - assert_requested :post, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries") - end - end - - describe '.get_codeql_variant_analysis_summary', :vcr do - it 'gets the summary of a CodeQL variant analysis' do - analysis_summary = @client.get_codeql_variant_analysis_summary(@test_repo, 'ruby', 'main') - expect(analysis_summary.status).to eq('queued') - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main") - end - end - - describe '.get_codeql_variant_analysis_status', :vcr do - it 'gets the analysis status of a repo in a CodeQL variant' do - analysis_status = @client.get_codeql_variant_analysis_status(@test_repo, 'ruby', 'main') - expect(analysis_status.status).to eq('queued') - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main/status") - end - end + database = @client.get_codeql_database_for_repo(@test_repo, 'python') + expect(database.id).to eq('python') + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/databases/python") + end + end + + #describe '.create_codeql_variant_analysis', :vcr do + #it 'creates a new CodeQL variant analysis' do + #analysis = @client.create_codeql_variant_analysis(@test_repo, 'ruby', 'main') + #expect(analysis.status).to eq('queued') + #assert_requested :post, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries") + #end + #end + + #describe '.get_codeql_variant_analysis_summary', :vcr do + #it 'gets the summary of a CodeQL variant analysis' do + #analysis_summary = @client.get_codeql_variant_analysis_summary(@test_repo, 'ruby', 'main') + #expect(analysis_summary.status).to eq('queued') + #assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main") + #end + #end + + #describe '.get_codeql_variant_analysis_status', :vcr do + #it 'gets the analysis status of a repo in a CodeQL variant' do + #analysis_status = @client.get_codeql_variant_analysis_status(@test_repo, 'ruby', 'main') + #expect(analysis_status.status).to eq('queued') + #assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main/status") + #end + #end describe '.get_code_scanning_default_config', :vcr do it 'gets the default code scanning configuration for a repository' do default_config = @client.get_code_scanning_default_config(@test_repo) - expect(default_config.analysis_enabled).to eq(true) - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/config") + expect(default_config.state).to eq("configured") + assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/default-setup") end end describe '.update_code_scanning_default_config', :vcr do it 'updates the default code scanning configuration for a repository' do - default_config = @client.update_code_scanning_default_config(@test_repo, false) - expect(default_config.analysis_enabled).to eq(false) - assert_requested :patch, github_url("/repos/#{@test_repo}/code-scanning/config") + default_config = @client.update_code_scanning_default_config(@test_repo, "not-configured") + #expect(default_config.analysis_enabled).to eq(false) + assert_requested :patch, github_url("/repos/#{@test_repo}/code-scanning/default-setup") end end From 283cfb237bb7ebba8e30353d53b0c8ba9e7ca8e8 Mon Sep 17 00:00:00 2001 From: Dan Bradbury Date: Thu, 30 May 2024 23:52:27 -0700 Subject: [PATCH 52/75] Update tests for new CodeScanning methods --- lib/octokit/client/code_scanning.rb | 9 +- .../deletes_a_code_scanning_analysis.json | 14 +- ...a_code_scanning_alert_by_alert_number.json | 20 +-- ...fic_code_scanning_analysis_for_a_repo.json | 16 +-- ...anning_configuration_for_a_repository.json | 16 +-- ...tabase_for_a_language_in_a_repository.json | 124 ++++++++++++++++++ ...code_scanning_alerts_for_a_repository.json | 20 +-- ...de_scanning_analyses_for_a_repository.json | 16 +-- ...atabases_that_are_available_in_a_repo.json | 16 +-- ..._of_the_specified_code_scanning_alert.json | 14 +- ...tatus_of_a_single_code_scanning_alert.json | 14 +- ...anning_configuration_for_a_repository.json | 35 ++--- spec/octokit/client/code_scanning_spec.rb | 93 ++++++------- 13 files changed, 256 insertions(+), 151 deletions(-) create mode 100644 spec/cassettes/Octokit_Client_CodeScanning/_get_codeql_database_for_repo/gets_a_CodeQL_database_for_a_language_in_a_repository.json diff --git a/lib/octokit/client/code_scanning.rb b/lib/octokit/client/code_scanning.rb index daa625f0e..67b5fea1e 100644 --- a/lib/octokit/client/code_scanning.rb +++ b/lib/octokit/client/code_scanning.rb @@ -9,7 +9,7 @@ class Client # # @see https://docs.github.com/rest/code-scanning module CodeScanning - def update_code_scanning_default_config(repo, state, query_suite=nil, languages=nil, options = {}) + def update_code_scanning_default_config(repo, state, query_suite = nil, languages = nil, options = {}) options[:state] = state options[:query_suite] = query_suite if query_suite options[:languages] = languages if languages @@ -45,10 +45,11 @@ def list_instances_of_code_scanning_alert(repo, alert_number, options = {}) get "#{Repository.path repo}/code-scanning/alerts/#{alert_number}/instances", options end - def update_code_scanning_alert(repo, alert_number, status, reason=nil, comment=nil, options = {}) - options[:state] = status + def update_code_scanning_alert(repo, alert_number, state, reason, comment = nil, options = {}) + options[:state] = state options[:dismissed_reason] = reason - options[:dismissed_comment] = comment + options[:dismissed_comment] = comment if comment + patch "#{Repository.path repo}/code-scanning/alerts/#{alert_number}", options end diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json b/spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json index 7b6570e30..4f843eb47 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_delete_code_scanning_analysis/deletes_a_code_scanning_analysis.json @@ -3,7 +3,7 @@ { "request": { "method": "delete", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/analyses/223527352", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/analyses/225379147", "body": { "encoding": "UTF-8", "base64_string": "e30=\n" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:22:04 GMT" + "Fri, 31 May 2024 06:04:21 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -73,13 +73,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4984" + "4999" ], "X-Ratelimit-Reset": [ - "1717135450" + "1717139061" ], "X-Ratelimit-Used": [ - "16" + "1" ], "X-Ratelimit-Resource": [ "core" @@ -109,7 +109,7 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "D05A:3A257F:360FA0C:3673048:66595E7C" + "DB89:3A257F:386B555:38D393B:66596865" ] }, "body": { @@ -117,7 +117,7 @@ "base64_string": "eyJuZXh0X2FuYWx5c2lzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5p\nbmcvYW5hbHlzZXMvMjIwMTQ4NzQzIiwiY29uZmlybV9kZWxldGVfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0\naXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8yMjAxNDg3NDM/\nY29uZmlybV9kZWxldGUifQ==\n" } }, - "recorded_at": "Fri, 31 May 2024 05:22:04 GMT" + "recorded_at": "Fri, 31 May 2024 06:04:21 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json index bbca22840..7dd3ae6e1 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_alert/gets_a_code_scanning_alert_by_alert_number.json @@ -3,7 +3,7 @@ { "request": { "method": "get", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/alerts/1", "body": { "encoding": "US-ASCII", "base64_string": "" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:04:34 GMT" + "Fri, 31 May 2024 06:29:16 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -52,10 +52,10 @@ "Accept-Encoding, Accept, X-Requested-With" ], "Etag": [ - "W/\"102bc5bc3b7dcf7ef68240efdeb67c68a8234ed955df99cb56df0cb4c1991d4a\"" + "W/\"7a64f67a8d59361cae1e1c75521af057194fbae0442eea02ee9f498567762723\"" ], "Last-Modified": [ - "Sat, 02 Mar 2024 23:53:54 GMT" + "Fri, 31 May 2024 06:28:14 GMT" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -76,13 +76,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4998" + "4994" ], "X-Ratelimit-Reset": [ - "1717135450" + "1717139061" ], "X-Ratelimit-Used": [ - "2" + "6" ], "X-Ratelimit-Resource": [ "core" @@ -112,15 +112,15 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "CBC3:26444E:3C37BCD:3CA2F79:66595A62" + "E227:39E48B:394A257:39B53D9:66596E3C" ] }, "body": { "encoding": "ASCII-8BIT", - "base64_string": "eyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJvcGVu\nIiwiZml4ZWRfYXQiOm51bGwsImRpc21pc3NlZF9ieSI6bnVsbCwiZGlzbWlz\nc2VkX2F0IjpudWxsLCJkaXNtaXNzZWRfcmVhc29uIjpudWxsLCJkaXNtaXNz\nZWRfY29tbWVudCI6bnVsbCwicnVsZSI6eyJpZCI6InB5L2NsZWFyLXRleHQt\nbG9nZ2luZy1zZW5zaXRpdmUtZGF0YSIsInNldmVyaXR5IjoiZXJyb3IiLCJk\nZXNjcmlwdGlvbiI6IkNsZWFyLXRleHQgbG9nZ2luZyBvZiBzZW5zaXRpdmUg\naW5mb3JtYXRpb24iLCJuYW1lIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNl\nbnNpdGl2ZS1kYXRhIiwidGFncyI6WyJleHRlcm5hbC9jd2UvY3dlLTMxMiIs\nImV4dGVybmFsL2N3ZS9jd2UtMzU5IiwiZXh0ZXJuYWwvY3dlL2N3ZS01MzIi\nLCJzZWN1cml0eSJdLCJmdWxsX2Rlc2NyaXB0aW9uIjoiTG9nZ2luZyBzZW5z\naXRpdmUgaW5mb3JtYXRpb24gd2l0aG91dCBlbmNyeXB0aW9uIG9yIGhhc2hp\nbmcgY2FuIGV4cG9zZSBpdCB0byBhbiBhdHRhY2tlci4iLCJoZWxwIjoiIyBD\nbGVhci10ZXh0IGxvZ2dpbmcgb2Ygc2Vuc2l0aXZlIGluZm9ybWF0aW9uXG5J\nZiBzZW5zaXRpdmUgZGF0YSBpcyB3cml0dGVuIHRvIGEgbG9nIGVudHJ5IGl0\nIGNvdWxkIGJlIGV4cG9zZWQgdG8gYW4gYXR0YWNrZXIgd2hvIGdhaW5zIGFj\nY2VzcyB0byB0aGUgbG9ncy5cblxuUG90ZW50aWFsIGF0dGFja2VycyBjYW4g\nb2J0YWluIHNlbnNpdGl2ZSB1c2VyIGRhdGEgd2hlbiB0aGUgbG9nIG91dHB1\ndCBpcyBkaXNwbGF5ZWQuIEFkZGl0aW9uYWxseSB0aGF0IGRhdGEgbWF5IGV4\ncG9zZSBzeXN0ZW0gaW5mb3JtYXRpb24gc3VjaCBhcyBmdWxsIHBhdGggbmFt\nZXMsIHN5c3RlbSBpbmZvcm1hdGlvbiwgYW5kIHNvbWV0aW1lcyB1c2VybmFt\nZXMgYW5kIHBhc3N3b3Jkcy5cblxuXG4jIyBSZWNvbW1lbmRhdGlvblxuU2Vu\nc2l0aXZlIGRhdGEgc2hvdWxkIG5vdCBiZSBsb2dnZWQuXG5cblxuIyMgRXhh\nbXBsZVxuSW4gdGhlIGV4YW1wbGUgdGhlIGVudGlyZSBwcm9jZXNzIGVudmly\nb25tZW50IGlzIGxvZ2dlZCB1c2luZyBcXGBwcmludFxcYC4gUmVndWxhciB1\nc2VycyBvZiB0aGUgcHJvZHVjdGlvbiBkZXBsb3llZCBhcHBsaWNhdGlvbiBz\naG91bGQgbm90IGhhdmUgYWNjZXNzIHRvIHRoaXMgbXVjaCBpbmZvcm1hdGlv\nbiBhYm91dCB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbi5cblxuXG5g\nYGBweXRob25cbiMgQkFEOiBMb2dnaW5nIGNsZWFydGV4dCBzZW5zaXRpdmUg\nZGF0YVxuaW1wb3J0IG9zXG5wcmludChmXCJbSU5GT10gRW52aXJvbm1lbnQ6\nIHtvcy5lbnZpcm9ufVwiKVxuYGBgXG5JbiB0aGUgc2Vjb25kIGV4YW1wbGUg\ndGhlIGRhdGEgdGhhdCBpcyBsb2dnZWQgaXMgbm90IHNlbnNpdGl2ZS5cblxu\nXG5gYGBweXRob25cbm5vdF9zZW5zaXRpdmVfZGF0YSA9IHsnYSc6IDEsICdi\nJzogMn1cbiMgR09PRDogaXQgaXMgZmluZSB0byBsb2cgZGF0YSB0aGF0IGlz\nIG5vdCBzZW5zaXRpdmVcbnByaW50KGZcIltJTkZPXSBTb21lIG9iamVjdCBj\nb250YWluczoge25vdF9zZW5zaXRpdmVfZGF0YX1cIilcbmBgYFxuXG4jIyBS\nZWZlcmVuY2VzXG4qIE9XQVNQOiBbSW5zZXJ0aW9uIG9mIFNlbnNpdGl2ZSBJ\nbmZvcm1hdGlvbiBpbnRvIExvZyBGaWxlXShodHRwczovL293YXNwLm9yZy9U\nb3AxMC9BMDlfMjAyMS1TZWN1cml0eV9Mb2dnaW5nX2FuZF9Nb25pdG9yaW5n\nX0ZhaWx1cmVzLykuXG4qIENvbW1vbiBXZWFrbmVzcyBFbnVtZXJhdGlvbjog\nW0NXRS0zMTJdKGh0dHBzOi8vY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRp\nb25zLzMxMi5odG1sKS5cbiogQ29tbW9uIFdlYWtuZXNzIEVudW1lcmF0aW9u\nOiBbQ1dFLTM1OV0oaHR0cHM6Ly9jd2UubWl0cmUub3JnL2RhdGEvZGVmaW5p\ndGlvbnMvMzU5Lmh0bWwpLlxuKiBDb21tb24gV2Vha25lc3MgRW51bWVyYXRp\nb246IFtDV0UtNTMyXShodHRwczovL2N3ZS5taXRyZS5vcmcvZGF0YS9kZWZp\nbml0aW9ucy81MzIuaHRtbCkuXG4iLCJzZWN1cml0eV9zZXZlcml0eV9sZXZl\nbCI6ImhpZ2gifSwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVs\nbCwidmVyc2lvbiI6IjIuMTcuMyJ9LCJtb3N0X3JlY2VudF9pbnN0YW5jZSI6\neyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImFuYWx5c2lzX2tleSI6ImR5bmFt\naWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZp\ncm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29y\neSI6Ii9sYW5ndWFnZTpweXRob24iLCJzdGF0ZSI6Im9wZW4iLCJjb21taXRf\nc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQz\nZCIsIm1lc3NhZ2UiOnsidGV4dCI6IlRoaXMgZXhwcmVzc2lvbiBsb2dzIHNl\nbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMg\nZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMg\nY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lv\nbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4\ndC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNz\nd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNl\nbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMg\nZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMg\nY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC4ifSwibG9jYXRpb24iOnsi\ncGF0aCI6Im9yYXRvci9kYXRhYmFzZV9tYW5hZ2VyLnB5Iiwic3RhcnRfbGlu\nZSI6NDEsImVuZF9saW5lIjo0MSwic3RhcnRfY29sdW1uIjoyNiwiZW5kX2Nv\nbHVtbiI6NTl9LCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5v\nL2FjdGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEvaW5zdGFu\nY2VzIn0=\n" + "base64_string": "eyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA1LTMxVDA2OjI4OjE0WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJkaXNt\naXNzZWQiLCJmaXhlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX2J5Ijp7ImxvZ2lu\nIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6MjU1NTA3Mywibm9kZV9pZCI6Ik1E\nUTZWWE5sY2pJMU5UVXdOek09IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZh\ndGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTU1MDczP3Y9NCIsImdy\nYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRo\ndWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93\nZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIs\nImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0\nYXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vi\nc2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3Nf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJy\nZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoi\nVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwiZGlzbWlzc2VkX2F0IjoiMjAy\nNC0wNS0zMVQwNjoyODoxNFoiLCJkaXNtaXNzZWRfcmVhc29uIjoid29uJ3Qg\nZml4IiwiZGlzbWlzc2VkX2NvbW1lbnQiOiJUZXN0IGNvbW1lbnQiLCJydWxl\nIjp7ImlkIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNlbnNpdGl2ZS1kYXRh\nIiwic2V2ZXJpdHkiOiJlcnJvciIsImRlc2NyaXB0aW9uIjoiQ2xlYXItdGV4\ndCBsb2dnaW5nIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiIsIm5hbWUiOiJw\neS9jbGVhci10ZXh0LWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJ0YWdzIjpb\nImV4dGVybmFsL2N3ZS9jd2UtMzEyIiwiZXh0ZXJuYWwvY3dlL2N3ZS0zNTki\nLCJleHRlcm5hbC9jd2UvY3dlLTUzMiIsInNlY3VyaXR5Il0sImZ1bGxfZGVz\nY3JpcHRpb24iOiJMb2dnaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiB3aXRo\nb3V0IGVuY3J5cHRpb24gb3IgaGFzaGluZyBjYW4gZXhwb3NlIGl0IHRvIGFu\nIGF0dGFja2VyLiIsImhlbHAiOiIjIENsZWFyLXRleHQgbG9nZ2luZyBvZiBz\nZW5zaXRpdmUgaW5mb3JtYXRpb25cbklmIHNlbnNpdGl2ZSBkYXRhIGlzIHdy\naXR0ZW4gdG8gYSBsb2cgZW50cnkgaXQgY291bGQgYmUgZXhwb3NlZCB0byBh\nbiBhdHRhY2tlciB3aG8gZ2FpbnMgYWNjZXNzIHRvIHRoZSBsb2dzLlxuXG5Q\nb3RlbnRpYWwgYXR0YWNrZXJzIGNhbiBvYnRhaW4gc2Vuc2l0aXZlIHVzZXIg\nZGF0YSB3aGVuIHRoZSBsb2cgb3V0cHV0IGlzIGRpc3BsYXllZC4gQWRkaXRp\nb25hbGx5IHRoYXQgZGF0YSBtYXkgZXhwb3NlIHN5c3RlbSBpbmZvcm1hdGlv\nbiBzdWNoIGFzIGZ1bGwgcGF0aCBuYW1lcywgc3lzdGVtIGluZm9ybWF0aW9u\nLCBhbmQgc29tZXRpbWVzIHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzLlxuXG5c\nbiMjIFJlY29tbWVuZGF0aW9uXG5TZW5zaXRpdmUgZGF0YSBzaG91bGQgbm90\nIGJlIGxvZ2dlZC5cblxuXG4jIyBFeGFtcGxlXG5JbiB0aGUgZXhhbXBsZSB0\naGUgZW50aXJlIHByb2Nlc3MgZW52aXJvbm1lbnQgaXMgbG9nZ2VkIHVzaW5n\nIFxcYHByaW50XFxgLiBSZWd1bGFyIHVzZXJzIG9mIHRoZSBwcm9kdWN0aW9u\nIGRlcGxveWVkIGFwcGxpY2F0aW9uIHNob3VsZCBub3QgaGF2ZSBhY2Nlc3Mg\ndG8gdGhpcyBtdWNoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnZpcm9ubWVu\ndCBjb25maWd1cmF0aW9uLlxuXG5cbmBgYHB5dGhvblxuIyBCQUQ6IExvZ2dp\nbmcgY2xlYXJ0ZXh0IHNlbnNpdGl2ZSBkYXRhXG5pbXBvcnQgb3NcbnByaW50\nKGZcIltJTkZPXSBFbnZpcm9ubWVudDoge29zLmVudmlyb259XCIpXG5gYGBc\nbkluIHRoZSBzZWNvbmQgZXhhbXBsZSB0aGUgZGF0YSB0aGF0IGlzIGxvZ2dl\nZCBpcyBub3Qgc2Vuc2l0aXZlLlxuXG5cbmBgYHB5dGhvblxubm90X3NlbnNp\ndGl2ZV9kYXRhID0geydhJzogMSwgJ2InOiAyfVxuIyBHT09EOiBpdCBpcyBm\naW5lIHRvIGxvZyBkYXRhIHRoYXQgaXMgbm90IHNlbnNpdGl2ZVxucHJpbnQo\nZlwiW0lORk9dIFNvbWUgb2JqZWN0IGNvbnRhaW5zOiB7bm90X3NlbnNpdGl2\nZV9kYXRhfVwiKVxuYGBgXG5cbiMjIFJlZmVyZW5jZXNcbiogT1dBU1A6IFtJ\nbnNlcnRpb24gb2YgU2Vuc2l0aXZlIEluZm9ybWF0aW9uIGludG8gTG9nIEZp\nbGVdKGh0dHBzOi8vb3dhc3Aub3JnL1RvcDEwL0EwOV8yMDIxLVNlY3VyaXR5\nX0xvZ2dpbmdfYW5kX01vbml0b3JpbmdfRmFpbHVyZXMvKS5cbiogQ29tbW9u\nIFdlYWtuZXNzIEVudW1lcmF0aW9uOiBbQ1dFLTMxMl0oaHR0cHM6Ly9jd2Uu\nbWl0cmUub3JnL2RhdGEvZGVmaW5pdGlvbnMvMzEyLmh0bWwpLlxuKiBDb21t\nb24gV2Vha25lc3MgRW51bWVyYXRpb246IFtDV0UtMzU5XShodHRwczovL2N3\nZS5taXRyZS5vcmcvZGF0YS9kZWZpbml0aW9ucy8zNTkuaHRtbCkuXG4qIENv\nbW1vbiBXZWFrbmVzcyBFbnVtZXJhdGlvbjogW0NXRS01MzJdKGh0dHBzOi8v\nY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRpb25zLzUzMi5odG1sKS5cbiIs\nInNlY3VyaXR5X3NldmVyaXR5X2xldmVsIjoiaGlnaCJ9LCJ0b29sIjp7Im5h\nbWUiOiJDb2RlUUwiLCJndWlkIjpudWxsLCJ2ZXJzaW9uIjoiMi4xNy4zIn0s\nIm1vc3RfcmVjZW50X2luc3RhbmNlIjp7InJlZiI6InJlZnMvaGVhZHMvMC45\nIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fubmlu\nZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2Vc\nIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIs\nInN0YXRlIjoiZGlzbWlzc2VkIiwiY29tbWl0X3NoYSI6ImRiODc0NDk2N2Ux\nYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNzYWdlIjp7InRl\neHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJvcmF0b3IvZGF0\nYWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjQxLCJlbmRfbGluZSI6\nNDEsInN0YXJ0X2NvbHVtbiI6MjYsImVuZF9jb2x1bW4iOjU5fSwiY2xhc3Np\nZmljYXRpb25zIjpbXX0sImluc3RhbmNlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9j\nb2RlLXNjYW5uaW5nL2FsZXJ0cy8xL2luc3RhbmNlcyJ9\n" } }, - "recorded_at": "Fri, 31 May 2024 05:04:34 GMT" + "recorded_at": "Fri, 31 May 2024 06:29:16 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json index d43bccf3d..0938f0dbf 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_analysis/gets_a_specific_code_scanning_analysis_for_a_repo.json @@ -3,7 +3,7 @@ { "request": { "method": "get", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/analyses/223527352", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/analyses/225379147", "body": { "encoding": "US-ASCII", "base64_string": "" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:20:09 GMT" + "Fri, 31 May 2024 06:02:50 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -52,7 +52,7 @@ "Accept-Encoding, Accept, X-Requested-With" ], "Etag": [ - "W/\"39123d5c79c566f221a6a348358138e701ec9490ec19cac9a09ab5753c382fe4\"" + "W/\"f803af2210f82d7e78d7e8386a83de5830eba71426e17636f094c7bf7d9d3395\"" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -73,13 +73,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4986" + "4971" ], "X-Ratelimit-Reset": [ "1717135450" ], "X-Ratelimit-Used": [ - "14" + "29" ], "X-Ratelimit-Resource": [ "core" @@ -109,15 +109,15 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "CFDF:1C3A54:359072E:35F3AC2:66595E09" + "DB1E:39ED30:39EECF6:3A56E95:6659680A" ] }, "body": { "encoding": "ASCII-8BIT", - "base64_string": "eyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5\nNjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNf\na2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5h\nbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwi\nfSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwi\nY3JlYXRlZF9hdCI6IjIwMjQtMDUtMjhUMDg6NDk6MjhaIiwicmVzdWx0c19j\nb3VudCI6MiwicnVsZXNfY291bnQiOjM4LCJpZCI6MjIzNTI3MzUyLCJ1cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9h\nY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIyMzUyNzM1\nMiIsInNhcmlmX2lkIjoiMzE1OTBhYTItMWNjZi0xMWVmLTg1MzUtYzNlMjA0\nNzQxZGMxIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwi\ndmVyc2lvbiI6IjIuMTcuMyJ9LCJkZWxldGFibGUiOnRydWUsIndhcm5pbmci\nOiIifQ==\n" + "base64_string": "eyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5\nNjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNf\na2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5h\nbHl6ZSIsImVudmlyb25tZW50Ijoie1wiYnVpbGQtbW9kZVwiOlwibm9uZVwi\nLFwiY2F0ZWdvcnlcIjpcIi9sYW5ndWFnZTpweXRob25cIixcImxhbmd1YWdl\nXCI6XCJweXRob25cIixcInJ1bm5lclwiOlwiW1xcXCJ1YnVudHUtbGF0ZXN0\nXFxcIl1cIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJv\nciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0LTA1LTMxVDA1OjUxOjE1WiIsInJl\nc3VsdHNfY291bnQiOjIsInJ1bGVzX2NvdW50IjozOCwiaWQiOjIyNTM3OTE0\nNywidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRl\nLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8y\nMjUzNzkxNDciLCJzYXJpZl9pZCI6ImNiMTVkMTQwLTFmMTEtMTFlZi04ZjRl\nLTZlOGNkM2Y5Zjk1NyIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQi\nOm51bGwsInZlcnNpb24iOiIyLjE3LjMifSwiZGVsZXRhYmxlIjp0cnVlLCJ3\nYXJuaW5nIjoiIn0=\n" } }, - "recorded_at": "Fri, 31 May 2024 05:20:09 GMT" + "recorded_at": "Fri, 31 May 2024 06:02:50 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json index d613f21dc..b54072ae7 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_get_code_scanning_default_config/gets_the_default_code_scanning_configuration_for_a_repository.json @@ -3,7 +3,7 @@ { "request": { "method": "get", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/default-setup", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/default-setup", "body": { "encoding": "US-ASCII", "base64_string": "" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:26:41 GMT" + "Fri, 31 May 2024 05:52:54 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -52,7 +52,7 @@ "Accept-Encoding, Accept, X-Requested-With" ], "Etag": [ - "W/\"6b1d59a782b57d4d7be8df168446d4cecff3c2bc26734aa048a6518962db8228\"" + "W/\"4f62f5e8914ca80b26b9e7f6f9e7a86558f0b62b36cba50a06f3b67ec75dac3f\"" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -73,13 +73,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4982" + "4975" ], "X-Ratelimit-Reset": [ "1717135450" ], "X-Ratelimit-Used": [ - "18" + "25" ], "X-Ratelimit-Resource": [ "core" @@ -109,15 +109,15 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "D181:1C3A54:35EF48E:3653404:66595F90" + "D880:3A257F:37C835D:382F223:665965B6" ] }, "body": { "encoding": "ASCII-8BIT", - "base64_string": "eyJzdGF0ZSI6ImNvbmZpZ3VyZWQiLCJsYW5ndWFnZXMiOlsicHl0aG9uIl0s\nInF1ZXJ5X3N1aXRlIjoiZGVmYXVsdCIsInVwZGF0ZWRfYXQiOiIyMDI0LTAz\nLTAyVDIzOjUyOjAwWiIsInNjaGVkdWxlIjoid2Vla2x5In0=\n" + "base64_string": "eyJzdGF0ZSI6ImNvbmZpZ3VyZWQiLCJsYW5ndWFnZXMiOlsicHl0aG9uIl0s\nInF1ZXJ5X3N1aXRlIjoiZGVmYXVsdCIsInVwZGF0ZWRfYXQiOiIyMDI0LTA1\nLTMxVDA1OjQ5OjIwWiIsInNjaGVkdWxlIjoid2Vla2x5In0=\n" } }, - "recorded_at": "Fri, 31 May 2024 05:26:41 GMT" + "recorded_at": "Fri, 31 May 2024 05:52:54 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_get_codeql_database_for_repo/gets_a_CodeQL_database_for_a_language_in_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_get_codeql_database_for_repo/gets_a_CodeQL_database_for_a_language_in_a_repository.json new file mode 100644 index 000000000..c4a5f9f03 --- /dev/null +++ b/spec/cassettes/Octokit_Client_CodeScanning/_get_codeql_database_for_repo/gets_a_CodeQL_database_for_a_language_in_a_repository.json @@ -0,0 +1,124 @@ +{ + "http_interactions": [ + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/codeql/databases/python", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 8.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "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": [ + "Fri, 31 May 2024 05:57:56 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/\"f29f1306624cac173bca60b1818e30bee823c8be64758052e76ebc0929539d3f\"" + ], + "X-Oauth-Scopes": [ + "gist, read:org, repo, workflow" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4974" + ], + "X-Ratelimit-Reset": [ + "1717135450" + ], + "X-Ratelimit-Used": [ + "26" + ], + "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": [ + "D9C1:1B204E:37F8580:385FE5B:665966E4" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJpZCI6NjM2MTY1NDgsIm5hbWUiOiJweXRob24tZGF0YWJhc2UiLCJsYW5n\ndWFnZSI6InB5dGhvbiIsInVwbG9hZGVyIjp7ImxvZ2luIjoiZ2l0aHViLWFj\ndGlvbnNbYm90XSIsImlkIjo0MTg5ODI4Miwibm9kZV9pZCI6Ik1ETTZRbTkw\nTkRFNE9UZ3lPREk9IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZhdGFycy5n\naXRodWJ1c2VyY29udGVudC5jb20vaW4vMTUzNjg/dj00IiwiZ3JhdmF0YXJf\naWQiOiIiLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dp\ndGh1Yi1hY3Rpb25zJTVCYm90JTVEIiwiaHRtbF91cmwiOiJodHRwczovL2dp\ndGh1Yi5jb20vYXBwcy9naXRodWItYWN0aW9ucyIsImZvbGxvd2Vyc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25z\nJTVCYm90JTVEL2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVE\nL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVE\nL2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1RC9zdGFy\ncmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0aW9uc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90\nJTVEL3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3Ql\nNUQvb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvcmVwb3MiLCJldmVudHNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0\naW9ucyU1QmJvdCU1RC9ldmVudHN7L3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZl\nbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHVi\nLWFjdGlvbnMlNUJib3QlNUQvcmVjZWl2ZWRfZXZlbnRzIiwidHlwZSI6IkJv\ndCIsInNpdGVfYWRtaW4iOmZhbHNlfSwiY29udGVudF90eXBlIjoiYXBwbGlj\nYXRpb24vemlwIiwic2l6ZSI6MzA4NTMzMjUsImNyZWF0ZWRfYXQiOiIyMDI0\nLTA1LTMxVDA1OjUxOjI0WiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA1LTMxVDA1\nOjUxOjI1WiIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Np\ndG9yaWVzLzcxMTcyOTU5MS9jb2RlLXNjYW5uaW5nL2NvZGVxbC9kYXRhYmFz\nZXMvcHl0aG9uIiwiY29tbWl0X29pZCI6ImRiODc0NDk2N2UxYzkxYTgwMDc5\nZWNlZjcwYzdkYjgwNTg3MWRkM2QifQ==\n" + } + }, + "recorded_at": "Fri, 31 May 2024 05:57:56 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json index 57e78b3ca..770d4ce60 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_alerts_for_repository/lists_code_scanning_alerts_for_a_repository.json @@ -3,7 +3,7 @@ { "request": { "method": "get", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/alerts", "body": { "encoding": "US-ASCII", "base64_string": "" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 04:39:20 GMT" + "Fri, 31 May 2024 06:32:09 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -52,10 +52,10 @@ "Accept-Encoding, Accept, X-Requested-With" ], "Etag": [ - "W/\"0259b717b98fdf7924e63fe1ee44845c44d00e4a0688855f7289b4141a530da2\"" + "W/\"e51e035eba14b41c652c1b460bfc4edc58005e7569f81ad59badc9d23b0b3d25\"" ], "Last-Modified": [ - "Sat, 02 Mar 2024 23:53:54 GMT" + "Fri, 31 May 2024 06:28:14 GMT" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -76,13 +76,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4985" + "4992" ], "X-Ratelimit-Reset": [ - "1717131308" + "1717139061" ], "X-Ratelimit-Used": [ - "15" + "8" ], "X-Ratelimit-Resource": [ "core" @@ -112,15 +112,15 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "C52D:1B204E:3367483:33C5CF1:66595478" + "E2DF:26444E:41625CA:41D7A6E:66596EE9" ] }, "body": { "encoding": "ASCII-8BIT", - "base64_string": "W3sibnVtYmVyIjoyLCJjcmVhdGVkX2F0IjoiMjAyNC0wMy0wMlQyMzo1Mzo1\nNFoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wMy0wMlQyMzo1Mzo1NFoiLCJ1cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9h\nY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FsZXJ0cy8yIiwiaHRtbF91\ncmwiOiJodHRwczovL2dpdGh1Yi5jb20vQ2FqYS1kZS1EYW5vL2FjdGl2ZS13\ncmFwcGVyL3NlY3VyaXR5L2NvZGUtc2Nhbm5pbmcvMiIsInN0YXRlIjoib3Bl\nbiIsImZpeGVkX2F0IjpudWxsLCJkaXNtaXNzZWRfYnkiOm51bGwsImRpc21p\nc3NlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX3JlYXNvbiI6bnVsbCwiZGlzbWlz\nc2VkX2NvbW1lbnQiOm51bGwsInJ1bGUiOnsiaWQiOiJweS9jbGVhci10ZXh0\nLWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJzZXZlcml0eSI6ImVycm9yIiwi\nZGVzY3JpcHRpb24iOiJDbGVhci10ZXh0IGxvZ2dpbmcgb2Ygc2Vuc2l0aXZl\nIGluZm9ybWF0aW9uIiwibmFtZSI6InB5L2NsZWFyLXRleHQtbG9nZ2luZy1z\nZW5zaXRpdmUtZGF0YSIsInRhZ3MiOlsiZXh0ZXJuYWwvY3dlL2N3ZS0zMTIi\nLCJleHRlcm5hbC9jd2UvY3dlLTM1OSIsImV4dGVybmFsL2N3ZS9jd2UtNTMy\nIiwic2VjdXJpdHkiXSwic2VjdXJpdHlfc2V2ZXJpdHlfbGV2ZWwiOiJoaWdo\nIn0sInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNp\nb24iOiIyLjE3LjMifSwibW9zdF9yZWNlbnRfaW5zdGFuY2UiOnsicmVmIjoi\ncmVmcy9oZWFkcy8wLjkiLCJhbmFseXNpc19rZXkiOiJkeW5hbWljL2dpdGh1\nYi1jb2RlLXNjYW5uaW5nL2NvZGVxbDphbmFseXplIiwiZW52aXJvbm1lbnQi\nOiJ7XCJsYW5ndWFnZVwiOlwicHl0aG9uXCJ9IiwiY2F0ZWdvcnkiOiIvbGFu\nZ3VhZ2U6cHl0aG9uIiwic3RhdGUiOiJvcGVuIiwiY29tbWl0X3NoYSI6ImRi\nODc0NDk2N2UxYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNz\nYWdlIjp7InRleHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJv\ncmF0b3IvZGF0YWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjExOSwi\nZW5kX2xpbmUiOjExOSwic3RhcnRfY29sdW1uIjoyMiwiZW5kX2NvbHVtbiI6\nNTV9LCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2\nZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzIvaW5zdGFuY2VzIn0s\neyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJvcGVu\nIiwiZml4ZWRfYXQiOm51bGwsImRpc21pc3NlZF9ieSI6bnVsbCwiZGlzbWlz\nc2VkX2F0IjpudWxsLCJkaXNtaXNzZWRfcmVhc29uIjpudWxsLCJkaXNtaXNz\nZWRfY29tbWVudCI6bnVsbCwicnVsZSI6eyJpZCI6InB5L2NsZWFyLXRleHQt\nbG9nZ2luZy1zZW5zaXRpdmUtZGF0YSIsInNldmVyaXR5IjoiZXJyb3IiLCJk\nZXNjcmlwdGlvbiI6IkNsZWFyLXRleHQgbG9nZ2luZyBvZiBzZW5zaXRpdmUg\naW5mb3JtYXRpb24iLCJuYW1lIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNl\nbnNpdGl2ZS1kYXRhIiwidGFncyI6WyJleHRlcm5hbC9jd2UvY3dlLTMxMiIs\nImV4dGVybmFsL2N3ZS9jd2UtMzU5IiwiZXh0ZXJuYWwvY3dlL2N3ZS01MzIi\nLCJzZWN1cml0eSJdLCJzZWN1cml0eV9zZXZlcml0eV9sZXZlbCI6ImhpZ2gi\nfSwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lv\nbiI6IjIuMTcuMyJ9LCJtb3N0X3JlY2VudF9pbnN0YW5jZSI6eyJyZWYiOiJy\nZWZzL2hlYWRzLzAuOSIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHVi\nLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6\nIntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5n\ndWFnZTpweXRob24iLCJzdGF0ZSI6Im9wZW4iLCJjb21taXRfc2hhIjoiZGI4\nNzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsIm1lc3Nh\nZ2UiOnsidGV4dCI6IlRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lv\nbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4\ndC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNz\nd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNl\nbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMg\nZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMg\nY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBk\nYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4dC5cblRoaXMgZXhwcmVzc2lv\nbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNzd29yZCkgYXMgY2xlYXIgdGV4\ndC5cblRoaXMgZXhwcmVzc2lvbiBsb2dzIHNlbnNpdGl2ZSBkYXRhIChwYXNz\nd29yZCkgYXMgY2xlYXIgdGV4dC4ifSwibG9jYXRpb24iOnsicGF0aCI6Im9y\nYXRvci9kYXRhYmFzZV9tYW5hZ2VyLnB5Iiwic3RhcnRfbGluZSI6NDEsImVu\nZF9saW5lIjo0MSwic3RhcnRfY29sdW1uIjoyNiwiZW5kX2NvbHVtbiI6NTl9\nLCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2ZS13\ncmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEvaW5zdGFuY2VzIn1d\n" + "base64_string": "W3sibnVtYmVyIjoyLCJjcmVhdGVkX2F0IjoiMjAyNC0wMy0wMlQyMzo1Mzo1\nNFoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wNS0zMFQyMzowNDoyMVoiLCJ1cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9h\nY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FsZXJ0cy8yIiwiaHRtbF91\ncmwiOiJodHRwczovL2dpdGh1Yi5jb20vQ2FqYS1kZS1EYW5vL2FjdGl2ZS13\ncmFwcGVyL3NlY3VyaXR5L2NvZGUtc2Nhbm5pbmcvMiIsInN0YXRlIjoib3Bl\nbiIsImZpeGVkX2F0IjpudWxsLCJkaXNtaXNzZWRfYnkiOm51bGwsImRpc21p\nc3NlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX3JlYXNvbiI6bnVsbCwiZGlzbWlz\nc2VkX2NvbW1lbnQiOm51bGwsInJ1bGUiOnsiaWQiOiJweS9jbGVhci10ZXh0\nLWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJzZXZlcml0eSI6ImVycm9yIiwi\nZGVzY3JpcHRpb24iOiJDbGVhci10ZXh0IGxvZ2dpbmcgb2Ygc2Vuc2l0aXZl\nIGluZm9ybWF0aW9uIiwibmFtZSI6InB5L2NsZWFyLXRleHQtbG9nZ2luZy1z\nZW5zaXRpdmUtZGF0YSIsInRhZ3MiOlsiZXh0ZXJuYWwvY3dlL2N3ZS0zMTIi\nLCJleHRlcm5hbC9jd2UvY3dlLTM1OSIsImV4dGVybmFsL2N3ZS9jd2UtNTMy\nIiwic2VjdXJpdHkiXSwic2VjdXJpdHlfc2V2ZXJpdHlfbGV2ZWwiOiJoaWdo\nIn0sInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNp\nb24iOiIyLjE3LjMifSwibW9zdF9yZWNlbnRfaW5zdGFuY2UiOnsicmVmIjoi\ncmVmcy9oZWFkcy8wLjkiLCJhbmFseXNpc19rZXkiOiJkeW5hbWljL2dpdGh1\nYi1jb2RlLXNjYW5uaW5nL2NvZGVxbDphbmFseXplIiwiZW52aXJvbm1lbnQi\nOiJ7XCJsYW5ndWFnZVwiOlwicHl0aG9uXCJ9IiwiY2F0ZWdvcnkiOiIvbGFu\nZ3VhZ2U6cHl0aG9uIiwic3RhdGUiOiJvcGVuIiwiY29tbWl0X3NoYSI6ImRi\nODc0NDk2N2UxYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNz\nYWdlIjp7InRleHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJv\ncmF0b3IvZGF0YWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjExOSwi\nZW5kX2xpbmUiOjExOSwic3RhcnRfY29sdW1uIjoyMiwiZW5kX2NvbHVtbiI6\nNTV9LCJjbGFzc2lmaWNhdGlvbnMiOltdfSwiaW5zdGFuY2VzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2FjdGl2\nZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzIvaW5zdGFuY2VzIn0s\neyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA1LTMxVDA2OjI4OjE0WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJkaXNt\naXNzZWQiLCJmaXhlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX2J5Ijp7ImxvZ2lu\nIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6MjU1NTA3Mywibm9kZV9pZCI6Ik1E\nUTZWWE5sY2pJMU5UVXdOek09IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZh\ndGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTU1MDczP3Y9NCIsImdy\nYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRo\ndWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93\nZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIs\nImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0\nYXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vi\nc2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3Nf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJy\nZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoi\nVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwiZGlzbWlzc2VkX2F0IjoiMjAy\nNC0wNS0zMVQwNjoyODoxNFoiLCJkaXNtaXNzZWRfcmVhc29uIjoid29uJ3Qg\nZml4IiwiZGlzbWlzc2VkX2NvbW1lbnQiOiJUZXN0IGNvbW1lbnQiLCJydWxl\nIjp7ImlkIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNlbnNpdGl2ZS1kYXRh\nIiwic2V2ZXJpdHkiOiJlcnJvciIsImRlc2NyaXB0aW9uIjoiQ2xlYXItdGV4\ndCBsb2dnaW5nIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiIsIm5hbWUiOiJw\neS9jbGVhci10ZXh0LWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJ0YWdzIjpb\nImV4dGVybmFsL2N3ZS9jd2UtMzEyIiwiZXh0ZXJuYWwvY3dlL2N3ZS0zNTki\nLCJleHRlcm5hbC9jd2UvY3dlLTUzMiIsInNlY3VyaXR5Il0sInNlY3VyaXR5\nX3NldmVyaXR5X2xldmVsIjoiaGlnaCJ9LCJ0b29sIjp7Im5hbWUiOiJDb2Rl\nUUwiLCJndWlkIjpudWxsLCJ2ZXJzaW9uIjoiMi4xNy4zIn0sIm1vc3RfcmVj\nZW50X2luc3RhbmNlIjp7InJlZiI6InJlZnMvaGVhZHMvMC45IiwiYW5hbHlz\naXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6\nYW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhv\nblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsInN0YXRlIjoi\nZGlzbWlzc2VkIiwiY29tbWl0X3NoYSI6ImRiODc0NDk2N2UxYzkxYTgwMDc5\nZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNzYWdlIjp7InRleHQiOiJUaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJvcmF0b3IvZGF0YWJhc2VfbWFu\nYWdlci5weSIsInN0YXJ0X2xpbmUiOjQxLCJlbmRfbGluZSI6NDEsInN0YXJ0\nX2NvbHVtbiI6MjYsImVuZF9jb2x1bW4iOjU5fSwiY2xhc3NpZmljYXRpb25z\nIjpbXX0sImluc3RhbmNlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5u\naW5nL2FsZXJ0cy8xL2luc3RhbmNlcyJ9XQ==\n" } }, - "recorded_at": "Fri, 31 May 2024 04:39:20 GMT" + "recorded_at": "Fri, 31 May 2024 06:32:09 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json index c48913bef..f8700cde5 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_code_scanning_analysis/lists_code_scanning_analyses_for_a_repository.json @@ -3,7 +3,7 @@ { "request": { "method": "get", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/analyses", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/analyses", "body": { "encoding": "US-ASCII", "base64_string": "" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:16:22 GMT" + "Fri, 31 May 2024 06:00:56 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -52,7 +52,7 @@ "Accept-Encoding, Accept, X-Requested-With" ], "Etag": [ - "W/\"2fc8a48032990ceb9d5641e7915586a35278b8326f73a3d1520fa160c35446fa\"" + "W/\"45d1b8ea16e5fcbf9840cb614436661386a365fd99aa15a585c72de15423a913\"" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -73,13 +73,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4993" + "4972" ], "X-Ratelimit-Reset": [ "1717135450" ], "X-Ratelimit-Used": [ - "7" + "28" ], "X-Ratelimit-Resource": [ "core" @@ -109,15 +109,15 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "CEEA:3A078A:34A63B9:3509094:66595D26" + "DAA6:3A257F:3839199:38A0F4F:66596798" ] }, "body": { "encoding": "ASCII-8BIT", - "base64_string": "W3sicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0\nOTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lz\nX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFu\nYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25c\nIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIs\nImNyZWF0ZWRfYXQiOiIyMDI0LTA1LTI4VDA4OjQ5OjI4WiIsInJlc3VsdHNf\nY291bnQiOjIsInJ1bGVzX2NvdW50IjozOCwiaWQiOjIyMzUyNzM1MiwidXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8v\nYWN0aXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8yMjM1Mjcz\nNTIiLCJzYXJpZl9pZCI6IjMxNTkwYWEyLTFjY2YtMTFlZi04NTM1LWMzZTIw\nNDc0MWRjMSIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGws\nInZlcnNpb24iOiIyLjE3LjMifSwiZGVsZXRhYmxlIjp0cnVlLCJ3YXJuaW5n\nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJk\nYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5h\nbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2Rl\ncWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5\ndGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9y\nIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDUtMjFUMDg6NDg6NTdaIiwicmVz\ndWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM4LCJpZCI6MjIwMTQ4NzQz\nLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUt\nRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIy\nMDE0ODc0MyIsInNhcmlmX2lkIjoiZjVmZGUwZDQtMTc0ZS0xMWVmLTk3ODkt\nNTQyZGE0MzMxOGZlIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6\nbnVsbCwidmVyc2lvbiI6IjIuMTcuMyJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3\nYXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9z\naGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNk\nIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fubmlu\nZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2Vc\nIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIs\nImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDUtMTRUMDg6NDg6NDVa\nIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MjE2\nNjk1MTcyLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0Nh\namEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5\nc2VzLzIxNjY5NTE3MiIsInNhcmlmX2lkIjoiYzVkZjVhMmEtMTFjZS0xMWVm\nLThiNWUtYWQ1NGJjNTY1YzE0IiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwi\nZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcuMiJ9LCJkZWxldGFibGUiOmZh\nbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNv\nbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4\nNzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1z\nY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFu\nZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5\ndGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDUtMDdUMDg6\nNDg6NDVaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJp\nZCI6MjEzMzEwODA5LCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5n\nL2FuYWx5c2VzLzIxMzMxMDgwOSIsInNhcmlmX2lkIjoiOWQwY2VjOGMtMGM0\nZS0xMWVmLThhZjQtN2YyZTdjOTRkZWFmIiwidG9vbCI6eyJuYW1lIjoiQ29k\nZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcuMSJ9LCJkZWxldGFi\nbGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAu\nOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3\nZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWIt\nY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoi\ne1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1\nYWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDQt\nMzBUMDg6NDg6NDhaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQi\nOjM3LCJpZCI6MjEwMDg5NzQzLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNj\nYW5uaW5nL2FuYWx5c2VzLzIxMDA4OTc0MyIsInNhcmlmX2lkIjoiNzVlOWFk\nMTQtMDZjZS0xMWVmLTkwNGQtZDcxNzcxYmI1ZGFlIiwidG9vbCI6eyJuYW1l\nIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcuMSJ9LCJk\nZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hl\nYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVj\nZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9n\naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25t\nZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5Ijoi\nL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIw\nMjQtMDQtMjNUMDg6NDg6MTRaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNf\nY291bnQiOjM3LCJpZCI6MjA2Njk5NTExLCJ1cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9j\nb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIwNjY5OTUxMSIsInNhcmlmX2lkIjoi\nMzkxYjM0NWEtMDE0ZS0xMWVmLThjZTktZGRlZjhjYzFkZmY0IiwidG9vbCI6\neyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTcu\nMCJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJy\nZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4\nMDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHlu\nYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVu\ndmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVn\nb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9h\ndCI6IjIwMjQtMDQtMTZUMDg6NDg6MDBaIiwicmVzdWx0c19jb3VudCI6Miwi\ncnVsZXNfY291bnQiOjM3LCJpZCI6MjAzMjI1MzEyLCJ1cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3Jh\ncHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzIwMzIyNTMxMiIsInNhcmlm\nX2lkIjoiMDdiZWVhZGEtZmJjZS0xMWVlLTkyYTktYWMxYWJkYjNiNTU3Iiwi\ndG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6\nIjIuMTcuMCJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJy\nZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5Njdl\nMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5\nIjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6\nZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIs\nImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3Jl\nYXRlZF9hdCI6IjIwMjQtMDQtMDlUMDg6NDg6MjRaIiwicmVzdWx0c19jb3Vu\ndCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MTk5OTU3MDkwLCJ1cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3Rp\ndmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzE5OTk1NzA5MCIs\nInNhcmlmX2lkIjoiZWQzMDBlNGEtZjY0ZC0xMWVlLTlhYmYtNmIzNWUyZjA1\nZTRlIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVy\nc2lvbiI6IjIuMTcuMCJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoi\nIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3\nNDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlz\naXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6\nYW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhv\nblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoi\nIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDQtMDJUMDg6NDg6MDVaIiwicmVzdWx0\nc19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MTk2Nzc4MTczLCJ1\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFu\nby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzE5Njc3\nODE3MyIsInNhcmlmX2lkIjoiYjhkMmU1NmMtZjBjZC0xMWVlLTk4MGItMTIy\nODEyMWIwZGMyIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVs\nbCwidmVyc2lvbiI6IjIuMTYuNSJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJu\naW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEi\nOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwi\nYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2FubmluZy9j\nb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpc\nInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIsImVy\ncm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDMtMjZUMDg6NTA6NDhaIiwi\ncmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6MTkzODY0\nOTU2LCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL0NhamEt\nZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2FuYWx5c2Vz\nLzE5Mzg2NDk1NiIsInNhcmlmX2lkIjoiZjBiYmEwODQtZWI0ZC0xMWVlLTk4\nZjctMWJjMjJlYmVjODM3IiwidG9vbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3Vp\nZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuNSJ9LCJkZWxldGFibGUiOmZhbHNl\nLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIsImNvbW1p\ndF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4MDU4NzFk\nZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fu\nbmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3Vh\nZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhv\nbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDMtMTlUMDg6NDg6\nNDhaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM3LCJpZCI6\nMTkwNTM1NDY3LCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5uaW5nL2Fu\nYWx5c2VzLzE5MDUzNTQ2NyIsInNhcmlmX2lkIjoiODA2MzJlMGUtZTVjZC0x\nMWVlLThkMzktOTllZjdkZjE0YjBmIiwidG9vbCI6eyJuYW1lIjoiQ29kZVFM\nIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuNCJ9LCJkZWxldGFibGUi\nOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRzLzAuOSIs\nImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3MGM3ZGI4\nMDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29k\nZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wi\nbGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdl\nOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQtMDMtMTJU\nMDg6NDg6MzdaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291bnQiOjM2\nLCJpZCI6MTg3MTkyMzgwLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2RlLXNjYW5u\naW5nL2FuYWx5c2VzLzE4NzE5MjM4MCIsInNhcmlmX2lkIjoiNTE1MTc5YWMt\nZTA0ZC0xMWVlLThlZGYtZjM4MTQ1NmZkOThmIiwidG9vbCI6eyJuYW1lIjoi\nQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuMyJ9LCJkZWxl\ndGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZzL2hlYWRz\nLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3OWVjZWY3\nMGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRo\ndWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50\nIjoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xh\nbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6IjIwMjQt\nMDMtMDVUMDg6NDc6NTFaIiwicmVzdWx0c19jb3VudCI6MiwicnVsZXNfY291\nbnQiOjM2LCJpZCI6MTgzOTM2ODkzLCJ1cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9jb2Rl\nLXNjYW5uaW5nL2FuYWx5c2VzLzE4MzkzNjg5MyIsInNhcmlmX2lkIjoiMGM5\nNjYwYTAtZGFjZC0xMWVlLTg2NDYtMWI5ODA1YTQ3NDU3IiwidG9vbCI6eyJu\nYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIuMTYuMyJ9\nLCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn0seyJyZWYiOiJyZWZz\nL2hlYWRzLzAuOSIsImNvbW1pdF9zaGEiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3\nOWVjZWY3MGM3ZGI4MDU4NzFkZDNkIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1p\nYy9naXRodWItY29kZS1zY2FubmluZy9jb2RlcWw6YW5hbHl6ZSIsImVudmly\nb25tZW50Ijoie1wibGFuZ3VhZ2VcIjpcInB5dGhvblwifSIsImNhdGVnb3J5\nIjoiL2xhbmd1YWdlOnB5dGhvbiIsImVycm9yIjoiIiwiY3JlYXRlZF9hdCI6\nIjIwMjQtMDMtMDJUMjM6NTM6NTRaIiwicmVzdWx0c19jb3VudCI6MiwicnVs\nZXNfY291bnQiOjM2LCJpZCI6MTgzMDAzMDQ1LCJ1cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBl\nci9jb2RlLXNjYW5uaW5nL2FuYWx5c2VzLzE4MzAwMzA0NSIsInNhcmlmX2lk\nIjoiMjAzYjA0ZGMtZDhmMC0xMWVlLThiODAtMjBhZmY3N2E5MGRkIiwidG9v\nbCI6eyJuYW1lIjoiQ29kZVFMIiwiZ3VpZCI6bnVsbCwidmVyc2lvbiI6IjIu\nMTYuMyJ9LCJkZWxldGFibGUiOmZhbHNlLCJ3YXJuaW5nIjoiIn1d\n" + "base64_string": "W3sicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0\nOTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lz\nX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFu\nYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImJ1aWxkLW1vZGVcIjpcIm5vbmVc\nIixcImNhdGVnb3J5XCI6XCIvbGFuZ3VhZ2U6cHl0aG9uXCIsXCJsYW5ndWFn\nZVwiOlwicHl0aG9uXCIsXCJydW5uZXJcIjpcIltcXFwidWJ1bnR1LWxhdGVz\ndFxcXCJdXCJ9IiwiY2F0ZWdvcnkiOiIvbGFuZ3VhZ2U6cHl0aG9uIiwiZXJy\nb3IiOiIiLCJjcmVhdGVkX2F0IjoiMjAyNC0wNS0zMVQwNTo1MToxNVoiLCJy\nZXN1bHRzX2NvdW50IjoyLCJydWxlc19jb3VudCI6MzgsImlkIjoyMjUzNzkx\nNDcsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1k\nZS1EYW5vL2FjdGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYW5hbHlzZXMv\nMjI1Mzc5MTQ3Iiwic2FyaWZfaWQiOiJjYjE1ZDE0MC0xZjExLTExZWYtOGY0\nZS02ZThjZDNmOWY5NTciLCJ0b29sIjp7Im5hbWUiOiJDb2RlUUwiLCJndWlk\nIjpudWxsLCJ2ZXJzaW9uIjoiMi4xNy4zIn0sImRlbGV0YWJsZSI6dHJ1ZSwi\nd2FybmluZyI6IiJ9LHsicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRf\nc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQz\nZCIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5p\nbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImxhbmd1YWdl\nXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24i\nLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0LTA1LTIxVDA4OjQ4OjU3\nWiIsInJlc3VsdHNfY291bnQiOjIsInJ1bGVzX2NvdW50IjozOCwiaWQiOjIy\nMDE0ODc0MywidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9D\nYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFs\neXNlcy8yMjAxNDg3NDMiLCJzYXJpZl9pZCI6ImY1ZmRlMGQ0LTE3NGUtMTFl\nZi05Nzg5LTU0MmRhNDMzMThmZSIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIs\nImd1aWQiOm51bGwsInZlcnNpb24iOiIyLjE3LjMifSwiZGVsZXRhYmxlIjpm\nYWxzZSwid2FybmluZyI6IiJ9LHsicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJj\nb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1\nODcxZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUt\nc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImxh\nbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpw\neXRob24iLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0LTA1LTE0VDA4\nOjQ4OjQ1WiIsInJlc3VsdHNfY291bnQiOjIsInJ1bGVzX2NvdW50IjozNywi\naWQiOjIxNjY5NTE3MiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2Fubmlu\nZy9hbmFseXNlcy8yMTY2OTUxNzIiLCJzYXJpZl9pZCI6ImM1ZGY1YTJhLTEx\nY2UtMTFlZi04YjVlLWFkNTRiYzU2NWMxNCIsInRvb2wiOnsibmFtZSI6IkNv\nZGVRTCIsImd1aWQiOm51bGwsInZlcnNpb24iOiIyLjE3LjIifSwiZGVsZXRh\nYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9LHsicmVmIjoicmVmcy9oZWFkcy8w\nLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBj\nN2RiODA1ODcxZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHVi\nLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6\nIntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5n\ndWFnZTpweXRob24iLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0LTA1\nLTA3VDA4OjQ4OjQ1WiIsInJlc3VsdHNfY291bnQiOjIsInJ1bGVzX2NvdW50\nIjozNywiaWQiOjIxMzMxMDgwOSwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1z\nY2FubmluZy9hbmFseXNlcy8yMTMzMTA4MDkiLCJzYXJpZl9pZCI6IjlkMGNl\nYzhjLTBjNGUtMTFlZi04YWY0LTdmMmU3Yzk0ZGVhZiIsInRvb2wiOnsibmFt\nZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNpb24iOiIyLjE3LjEifSwi\nZGVsZXRhYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9LHsicmVmIjoicmVmcy9o\nZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzll\nY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMv\nZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9u\nbWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6\nIi9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQiOiIy\nMDI0LTA0LTMwVDA4OjQ4OjQ4WiIsInJlc3VsdHNfY291bnQiOjIsInJ1bGVz\nX2NvdW50IjozNywiaWQiOjIxMDA4OTc0MywidXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIv\nY29kZS1zY2FubmluZy9hbmFseXNlcy8yMTAwODk3NDMiLCJzYXJpZl9pZCI6\nIjc1ZTlhZDE0LTA2Y2UtMTFlZi05MDRkLWQ3MTc3MWJiNWRhZSIsInRvb2wi\nOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNpb24iOiIyLjE3\nLjEifSwiZGVsZXRhYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9LHsicmVmIjoi\ncmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFh\nODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5\nbmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJl\nbnZpcm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRl\nZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIsImNyZWF0ZWRf\nYXQiOiIyMDI0LTA0LTIzVDA4OjQ4OjE0WiIsInJlc3VsdHNfY291bnQiOjIs\nInJ1bGVzX2NvdW50IjozNywiaWQiOjIwNjY5OTUxMSwidXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8yMDY2OTk1MTEiLCJzYXJp\nZl9pZCI6IjM5MWIzNDVhLTAxNGUtMTFlZi04Y2U5LWRkZWY4Y2MxZGZmNCIs\nInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNpb24i\nOiIyLjE3LjAifSwiZGVsZXRhYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9LHsi\ncmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3\nZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lzX2tl\neSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5\nemUiLCJlbnZpcm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0i\nLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIsImNy\nZWF0ZWRfYXQiOiIyMDI0LTA0LTE2VDA4OjQ4OjAwWiIsInJlc3VsdHNfY291\nbnQiOjIsInJ1bGVzX2NvdW50IjozNywiaWQiOjIwMzIyNTMxMiwidXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0\naXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8yMDMyMjUzMTIi\nLCJzYXJpZl9pZCI6IjA3YmVlYWRhLWZiY2UtMTFlZS05MmE5LWFjMWFiZGIz\nYjU1NyIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZl\ncnNpb24iOiIyLjE3LjAifSwiZGVsZXRhYmxlIjpmYWxzZSwid2FybmluZyI6\nIiJ9LHsicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4\nNzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5\nc2lzX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFs\nOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRo\nb25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6\nIiIsImNyZWF0ZWRfYXQiOiIyMDI0LTA0LTA5VDA4OjQ4OjI0WiIsInJlc3Vs\ndHNfY291bnQiOjIsInJ1bGVzX2NvdW50IjozNywiaWQiOjE5OTk1NzA5MCwi\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURh\nbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8xOTk5\nNTcwOTAiLCJzYXJpZl9pZCI6ImVkMzAwZTRhLWY2NGQtMTFlZS05YWJmLTZi\nMzVlMmYwNWU0ZSIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51\nbGwsInZlcnNpb24iOiIyLjE3LjAifSwiZGVsZXRhYmxlIjpmYWxzZSwid2Fy\nbmluZyI6IiJ9LHsicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hh\nIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIs\nImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcv\nY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImxhbmd1YWdlXCI6\nXCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJl\ncnJvciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0LTA0LTAyVDA4OjQ4OjA1WiIs\nInJlc3VsdHNfY291bnQiOjIsInJ1bGVzX2NvdW50IjozNywiaWQiOjE5Njc3\nODE3MywidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWph\nLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNl\ncy8xOTY3NzgxNzMiLCJzYXJpZl9pZCI6ImI4ZDJlNTZjLWYwY2QtMTFlZS05\nODBiLTEyMjgxMjFiMGRjMiIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1\naWQiOm51bGwsInZlcnNpb24iOiIyLjE2LjUifSwiZGVsZXRhYmxlIjpmYWxz\nZSwid2FybmluZyI6IiJ9LHsicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJjb21t\naXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2RiODA1ODcx\nZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nh\nbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6IntcImxhbmd1\nYWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRo\nb24iLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTI2VDA4OjUw\nOjQ4WiIsInJlc3VsdHNfY291bnQiOjIsInJ1bGVzX2NvdW50IjozNywiaWQi\nOjE5Mzg2NDk1NiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2FubmluZy9h\nbmFseXNlcy8xOTM4NjQ5NTYiLCJzYXJpZl9pZCI6ImYwYmJhMDg0LWViNGQt\nMTFlZS05OGY3LTFiYzIyZWJlYzgzNyIsInRvb2wiOnsibmFtZSI6IkNvZGVR\nTCIsImd1aWQiOm51bGwsInZlcnNpb24iOiIyLjE2LjUifSwiZGVsZXRhYmxl\nIjpmYWxzZSwid2FybmluZyI6IiJ9LHsicmVmIjoicmVmcy9oZWFkcy8wLjki\nLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2VmNzBjN2Ri\nODA1ODcxZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0aHViLWNv\nZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVudCI6Intc\nImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9sYW5ndWFn\nZTpweXRob24iLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTE5\nVDA4OjQ4OjQ4WiIsInJlc3VsdHNfY291bnQiOjIsInJ1bGVzX2NvdW50Ijoz\nNywiaWQiOjE5MDUzNTQ2NywidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29kZS1zY2Fu\nbmluZy9hbmFseXNlcy8xOTA1MzU0NjciLCJzYXJpZl9pZCI6IjgwNjMyZTBl\nLWU1Y2QtMTFlZS04ZDM5LTk5ZWY3ZGYxNGIwZiIsInRvb2wiOnsibmFtZSI6\nIkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNpb24iOiIyLjE2LjQifSwiZGVs\nZXRhYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9LHsicmVmIjoicmVmcy9oZWFk\ncy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAwNzllY2Vm\nNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5bmFtaWMvZ2l0\naHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZpcm9ubWVu\ndCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29yeSI6Ii9s\nYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQiOiIyMDI0\nLTAzLTEyVDA4OjQ4OjM3WiIsInJlc3VsdHNfY291bnQiOjIsInJ1bGVzX2Nv\ndW50IjozNiwiaWQiOjE4NzE5MjM4MCwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBwZXIvY29k\nZS1zY2FubmluZy9hbmFseXNlcy8xODcxOTIzODAiLCJzYXJpZl9pZCI6IjUx\nNTE3OWFjLWUwNGQtMTFlZS04ZWRmLWYzODE0NTZmZDk4ZiIsInRvb2wiOnsi\nbmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNpb24iOiIyLjE2LjMi\nfSwiZGVsZXRhYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9LHsicmVmIjoicmVm\ncy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFjOTFhODAw\nNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lzX2tleSI6ImR5bmFt\naWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUiLCJlbnZp\ncm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJjYXRlZ29y\neSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIsImNyZWF0ZWRfYXQi\nOiIyMDI0LTAzLTA1VDA4OjQ3OjUxWiIsInJlc3VsdHNfY291bnQiOjIsInJ1\nbGVzX2NvdW50IjozNiwiaWQiOjE4MzkzNjg5MywidXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZlLXdyYXBw\nZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8xODM5MzY4OTMiLCJzYXJpZl9p\nZCI6IjBjOTY2MGEwLWRhY2QtMTFlZS04NjQ2LTFiOTgwNWE0NzQ1NyIsInRv\nb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNpb24iOiIy\nLjE2LjMifSwiZGVsZXRhYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9LHsicmVm\nIjoicmVmcy9oZWFkcy8wLjkiLCJjb21taXRfc2hhIjoiZGI4NzQ0OTY3ZTFj\nOTFhODAwNzllY2VmNzBjN2RiODA1ODcxZGQzZCIsImFuYWx5c2lzX2tleSI6\nImR5bmFtaWMvZ2l0aHViLWNvZGUtc2Nhbm5pbmcvY29kZXFsOmFuYWx5emUi\nLCJlbnZpcm9ubWVudCI6IntcImxhbmd1YWdlXCI6XCJweXRob25cIn0iLCJj\nYXRlZ29yeSI6Ii9sYW5ndWFnZTpweXRob24iLCJlcnJvciI6IiIsImNyZWF0\nZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0WiIsInJlc3VsdHNfY291bnQi\nOjIsInJ1bGVzX2NvdW50IjozNiwiaWQiOjE4MzAwMzA0NSwidXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9DYWphLWRlLURhbm8vYWN0aXZl\nLXdyYXBwZXIvY29kZS1zY2FubmluZy9hbmFseXNlcy8xODMwMDMwNDUiLCJz\nYXJpZl9pZCI6IjIwM2IwNGRjLWQ4ZjAtMTFlZS04YjgwLTIwYWZmNzdhOTBk\nZCIsInRvb2wiOnsibmFtZSI6IkNvZGVRTCIsImd1aWQiOm51bGwsInZlcnNp\nb24iOiIyLjE2LjMifSwiZGVsZXRhYmxlIjpmYWxzZSwid2FybmluZyI6IiJ9\nXQ==\n" } }, - "recorded_at": "Fri, 31 May 2024 05:16:22 GMT" + "recorded_at": "Fri, 31 May 2024 06:00:56 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json index c12cd2efd..f3eb37480 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_codeql_database_for_repo/lists_the_codeql_databases_that_are_available_in_a_repo.json @@ -3,7 +3,7 @@ { "request": { "method": "get", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/codeql/databases", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/codeql/databases", "body": { "encoding": "US-ASCII", "base64_string": "" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:22:54 GMT" + "Fri, 31 May 2024 05:58:55 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -52,7 +52,7 @@ "Accept-Encoding, Accept, X-Requested-With" ], "Etag": [ - "W/\"67d6abac7c7827d92e05ecf6eb3cd22cc2339104dd3ebfea9d8d1625390c4d1d\"" + "W/\"fb0108393e04f1308210f8de1dc9f9e0cf2e208abead03b465cb0826a8fe36ef\"" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -73,13 +73,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4983" + "4973" ], "X-Ratelimit-Reset": [ "1717135450" ], "X-Ratelimit-Used": [ - "17" + "27" ], "X-Ratelimit-Resource": [ "core" @@ -109,15 +109,15 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "D090:39E48B:357CA0F:35E0196:66595EAE" + "DA24:1B0962:38D3169:393AB84:6659671F" ] }, "body": { "encoding": "ASCII-8BIT", - "base64_string": "W3siaWQiOjYzMDc3OTI2LCJuYW1lIjoicHl0aG9uLWRhdGFiYXNlIiwibGFu\nZ3VhZ2UiOiJweXRob24iLCJ1cGxvYWRlciI6eyJsb2dpbiI6ImdpdGh1Yi1h\nY3Rpb25zW2JvdF0iLCJpZCI6NDE4OTgyODIsIm5vZGVfaWQiOiJNRE02UW05\nME5ERTRPVGd5T0RJPSIsImF2YXRhcl91cmwiOiJodHRwczovL2F2YXRhcnMu\nZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzE1MzY4P3Y9NCIsImdyYXZhdGFy\nX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9n\naXRodWItYWN0aW9ucyU1QmJvdCU1RCIsImh0bWxfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tL2FwcHMvZ2l0aHViLWFjdGlvbnMiLCJmb2xsb3dlcnNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9u\ncyU1QmJvdCU1RC9mb2xsb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1\nRC9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1\nRC9naXN0c3svZ2lzdF9pZH0iLCJzdGFycmVkX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvc3Rh\ncnJlZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlvbnNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJv\ndCU1RC9zdWJzY3JpcHRpb25zIiwib3JnYW5pemF0aW9uc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90\nJTVEL29yZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVEL3JlcG9zIiwiZXZlbnRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFj\ndGlvbnMlNUJib3QlNUQvZXZlbnRzey9wcml2YWN5fSIsInJlY2VpdmVkX2V2\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1\nYi1hY3Rpb25zJTVCYm90JTVEL3JlY2VpdmVkX2V2ZW50cyIsInR5cGUiOiJC\nb3QiLCJzaXRlX2FkbWluIjpmYWxzZX0sImNvbnRlbnRfdHlwZSI6ImFwcGxp\nY2F0aW9uL3ppcCIsInNpemUiOjMwODY1OTM2LCJjcmVhdGVkX2F0IjoiMjAy\nNC0wNS0yOFQwODo0OTozN1oiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wNS0yOFQw\nODo0OTozOFoiLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\naXRvcmllcy83MTE3Mjk1OTEvY29kZS1zY2FubmluZy9jb2RlcWwvZGF0YWJh\nc2VzL3B5dGhvbiIsImNvbW1pdF9vaWQiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3\nOWVjZWY3MGM3ZGI4MDU4NzFkZDNkIn1d\n" + "base64_string": "W3siaWQiOjYzNjE2NTQ4LCJuYW1lIjoicHl0aG9uLWRhdGFiYXNlIiwibGFu\nZ3VhZ2UiOiJweXRob24iLCJ1cGxvYWRlciI6eyJsb2dpbiI6ImdpdGh1Yi1h\nY3Rpb25zW2JvdF0iLCJpZCI6NDE4OTgyODIsIm5vZGVfaWQiOiJNRE02UW05\nME5ERTRPVGd5T0RJPSIsImF2YXRhcl91cmwiOiJodHRwczovL2F2YXRhcnMu\nZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzE1MzY4P3Y9NCIsImdyYXZhdGFy\nX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9n\naXRodWItYWN0aW9ucyU1QmJvdCU1RCIsImh0bWxfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tL2FwcHMvZ2l0aHViLWFjdGlvbnMiLCJmb2xsb3dlcnNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9u\ncyU1QmJvdCU1RC9mb2xsb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1\nRC9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1\nRC9naXN0c3svZ2lzdF9pZH0iLCJzdGFycmVkX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvc3Rh\ncnJlZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlvbnNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJv\ndCU1RC9zdWJzY3JpcHRpb25zIiwib3JnYW5pemF0aW9uc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90\nJTVEL29yZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVEL3JlcG9zIiwiZXZlbnRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFj\ndGlvbnMlNUJib3QlNUQvZXZlbnRzey9wcml2YWN5fSIsInJlY2VpdmVkX2V2\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1\nYi1hY3Rpb25zJTVCYm90JTVEL3JlY2VpdmVkX2V2ZW50cyIsInR5cGUiOiJC\nb3QiLCJzaXRlX2FkbWluIjpmYWxzZX0sImNvbnRlbnRfdHlwZSI6ImFwcGxp\nY2F0aW9uL3ppcCIsInNpemUiOjMwODUzMzI1LCJjcmVhdGVkX2F0IjoiMjAy\nNC0wNS0zMVQwNTo1MToyNFoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wNS0zMVQw\nNTo1MToyNVoiLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\naXRvcmllcy83MTE3Mjk1OTEvY29kZS1zY2FubmluZy9jb2RlcWwvZGF0YWJh\nc2VzL3B5dGhvbiIsImNvbW1pdF9vaWQiOiJkYjg3NDQ5NjdlMWM5MWE4MDA3\nOWVjZWY3MGM3ZGI4MDU4NzFkZDNkIn1d\n" } }, - "recorded_at": "Fri, 31 May 2024 05:22:54 GMT" + "recorded_at": "Fri, 31 May 2024 05:58:55 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json b/spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json index 7b36a8322..5c9119da7 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_list_instances_of_code_scanning_alert/lists_all_instances_of_the_specified_code_scanning_alert.json @@ -3,7 +3,7 @@ { "request": { "method": "get", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1/instances", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/alerts/1/instances", "body": { "encoding": "US-ASCII", "base64_string": "" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:15:20 GMT" + "Fri, 31 May 2024 06:26:39 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -73,13 +73,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4994" + "4996" ], "X-Ratelimit-Reset": [ - "1717135450" + "1717139061" ], "X-Ratelimit-Used": [ - "6" + "4" ], "X-Ratelimit-Resource": [ "core" @@ -109,7 +109,7 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "CEA8:1BC1CD:359F354:3601E52:66595CE8" + "E15C:26444E:411190B:4186376:66596D9F" ] }, "body": { @@ -117,7 +117,7 @@ "base64_string": "W3sicmVmIjoicmVmcy9oZWFkcy8wLjkiLCJhbmFseXNpc19rZXkiOiJkeW5h\nbWljL2dpdGh1Yi1jb2RlLXNjYW5uaW5nL2NvZGVxbDphbmFseXplIiwiZW52\naXJvbm1lbnQiOiJ7XCJsYW5ndWFnZVwiOlwicHl0aG9uXCJ9IiwiY2F0ZWdv\ncnkiOiIvbGFuZ3VhZ2U6cHl0aG9uIiwic3RhdGUiOiJvcGVuIiwiY29tbWl0\nX3NoYSI6ImRiODc0NDk2N2UxYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRk\nM2QiLCJtZXNzYWdlIjp7InRleHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7\nInBhdGgiOiJvcmF0b3IvZGF0YWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xp\nbmUiOjQxLCJlbmRfbGluZSI6NDEsInN0YXJ0X2NvbHVtbiI6MjYsImVuZF9j\nb2x1bW4iOjU5fSwiY2xhc3NpZmljYXRpb25zIjpbXX1d\n" } }, - "recorded_at": "Fri, 31 May 2024 05:15:20 GMT" + "recorded_at": "Fri, 31 May 2024 06:26:39 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json index ff1c23f2b..41c964c53 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_alert/updates_a_status_of_a_single_code_scanning_alert.json @@ -3,7 +3,7 @@ { "request": { "method": "patch", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/alerts/1", "body": { "encoding": "UTF-8", "base64_string": "eyJzdGF0ZSI6ImRpc21pc3NlZCIsImRpc21pc3NlZF9yZWFzb24iOiJ3b24n\ndCBmaXgiLCJkaXNtaXNzZWRfY29tbWVudCI6IlRlc3QgY29tbWVudCJ9\n" @@ -36,7 +36,7 @@ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:12:36 GMT" + "Fri, 31 May 2024 06:28:14 GMT" ], "Content-Type": [ "application/json; charset=utf-8" @@ -52,7 +52,7 @@ "Accept-Encoding, Accept, X-Requested-With" ], "Etag": [ - "W/\"c69a75c91233944d09ebebc7e06621e8732fb6229d46feb63677d9e8e931cd77\"" + "W/\"7a64f67a8d59361cae1e1c75521af057194fbae0442eea02ee9f498567762723\"" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -76,7 +76,7 @@ "4995" ], "X-Ratelimit-Reset": [ - "1717135450" + "1717139061" ], "X-Ratelimit-Used": [ "5" @@ -109,15 +109,15 @@ "default-src 'none'" ], "X-Github-Request-Id": [ - "CDD2:1C3A54:3522CF8:3585298:66595C43" + "E1BF:1C3A54:3967120:39D21D8:66596DFE" ] }, "body": { "encoding": "ASCII-8BIT", - "base64_string": "eyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA1LTMxVDA1OjEyOjM1WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJkaXNt\naXNzZWQiLCJmaXhlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX2J5Ijp7ImxvZ2lu\nIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6MjU1NTA3Mywibm9kZV9pZCI6Ik1E\nUTZWWE5sY2pJMU5UVXdOek09IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZh\ndGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTU1MDczP3Y9NCIsImdy\nYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRo\ndWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93\nZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIs\nImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0\nYXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vi\nc2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3Nf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJy\nZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoi\nVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwiZGlzbWlzc2VkX2F0IjoiMjAy\nNC0wNS0zMVQwNToxMjozNVoiLCJkaXNtaXNzZWRfcmVhc29uIjoid29uJ3Qg\nZml4IiwiZGlzbWlzc2VkX2NvbW1lbnQiOiJUZXN0IGNvbW1lbnQiLCJydWxl\nIjp7ImlkIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNlbnNpdGl2ZS1kYXRh\nIiwic2V2ZXJpdHkiOiJlcnJvciIsImRlc2NyaXB0aW9uIjoiQ2xlYXItdGV4\ndCBsb2dnaW5nIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiIsIm5hbWUiOiJw\neS9jbGVhci10ZXh0LWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJ0YWdzIjpb\nImV4dGVybmFsL2N3ZS9jd2UtMzEyIiwiZXh0ZXJuYWwvY3dlL2N3ZS0zNTki\nLCJleHRlcm5hbC9jd2UvY3dlLTUzMiIsInNlY3VyaXR5Il0sImZ1bGxfZGVz\nY3JpcHRpb24iOiJMb2dnaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiB3aXRo\nb3V0IGVuY3J5cHRpb24gb3IgaGFzaGluZyBjYW4gZXhwb3NlIGl0IHRvIGFu\nIGF0dGFja2VyLiIsImhlbHAiOiIjIENsZWFyLXRleHQgbG9nZ2luZyBvZiBz\nZW5zaXRpdmUgaW5mb3JtYXRpb25cbklmIHNlbnNpdGl2ZSBkYXRhIGlzIHdy\naXR0ZW4gdG8gYSBsb2cgZW50cnkgaXQgY291bGQgYmUgZXhwb3NlZCB0byBh\nbiBhdHRhY2tlciB3aG8gZ2FpbnMgYWNjZXNzIHRvIHRoZSBsb2dzLlxuXG5Q\nb3RlbnRpYWwgYXR0YWNrZXJzIGNhbiBvYnRhaW4gc2Vuc2l0aXZlIHVzZXIg\nZGF0YSB3aGVuIHRoZSBsb2cgb3V0cHV0IGlzIGRpc3BsYXllZC4gQWRkaXRp\nb25hbGx5IHRoYXQgZGF0YSBtYXkgZXhwb3NlIHN5c3RlbSBpbmZvcm1hdGlv\nbiBzdWNoIGFzIGZ1bGwgcGF0aCBuYW1lcywgc3lzdGVtIGluZm9ybWF0aW9u\nLCBhbmQgc29tZXRpbWVzIHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzLlxuXG5c\nbiMjIFJlY29tbWVuZGF0aW9uXG5TZW5zaXRpdmUgZGF0YSBzaG91bGQgbm90\nIGJlIGxvZ2dlZC5cblxuXG4jIyBFeGFtcGxlXG5JbiB0aGUgZXhhbXBsZSB0\naGUgZW50aXJlIHByb2Nlc3MgZW52aXJvbm1lbnQgaXMgbG9nZ2VkIHVzaW5n\nIFxcYHByaW50XFxgLiBSZWd1bGFyIHVzZXJzIG9mIHRoZSBwcm9kdWN0aW9u\nIGRlcGxveWVkIGFwcGxpY2F0aW9uIHNob3VsZCBub3QgaGF2ZSBhY2Nlc3Mg\ndG8gdGhpcyBtdWNoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnZpcm9ubWVu\ndCBjb25maWd1cmF0aW9uLlxuXG5cbmBgYHB5dGhvblxuIyBCQUQ6IExvZ2dp\nbmcgY2xlYXJ0ZXh0IHNlbnNpdGl2ZSBkYXRhXG5pbXBvcnQgb3NcbnByaW50\nKGZcIltJTkZPXSBFbnZpcm9ubWVudDoge29zLmVudmlyb259XCIpXG5gYGBc\nbkluIHRoZSBzZWNvbmQgZXhhbXBsZSB0aGUgZGF0YSB0aGF0IGlzIGxvZ2dl\nZCBpcyBub3Qgc2Vuc2l0aXZlLlxuXG5cbmBgYHB5dGhvblxubm90X3NlbnNp\ndGl2ZV9kYXRhID0geydhJzogMSwgJ2InOiAyfVxuIyBHT09EOiBpdCBpcyBm\naW5lIHRvIGxvZyBkYXRhIHRoYXQgaXMgbm90IHNlbnNpdGl2ZVxucHJpbnQo\nZlwiW0lORk9dIFNvbWUgb2JqZWN0IGNvbnRhaW5zOiB7bm90X3NlbnNpdGl2\nZV9kYXRhfVwiKVxuYGBgXG5cbiMjIFJlZmVyZW5jZXNcbiogT1dBU1A6IFtJ\nbnNlcnRpb24gb2YgU2Vuc2l0aXZlIEluZm9ybWF0aW9uIGludG8gTG9nIEZp\nbGVdKGh0dHBzOi8vb3dhc3Aub3JnL1RvcDEwL0EwOV8yMDIxLVNlY3VyaXR5\nX0xvZ2dpbmdfYW5kX01vbml0b3JpbmdfRmFpbHVyZXMvKS5cbiogQ29tbW9u\nIFdlYWtuZXNzIEVudW1lcmF0aW9uOiBbQ1dFLTMxMl0oaHR0cHM6Ly9jd2Uu\nbWl0cmUub3JnL2RhdGEvZGVmaW5pdGlvbnMvMzEyLmh0bWwpLlxuKiBDb21t\nb24gV2Vha25lc3MgRW51bWVyYXRpb246IFtDV0UtMzU5XShodHRwczovL2N3\nZS5taXRyZS5vcmcvZGF0YS9kZWZpbml0aW9ucy8zNTkuaHRtbCkuXG4qIENv\nbW1vbiBXZWFrbmVzcyBFbnVtZXJhdGlvbjogW0NXRS01MzJdKGh0dHBzOi8v\nY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRpb25zLzUzMi5odG1sKS5cbiIs\nInNlY3VyaXR5X3NldmVyaXR5X2xldmVsIjoiaGlnaCJ9LCJ0b29sIjp7Im5h\nbWUiOiJDb2RlUUwiLCJndWlkIjpudWxsLCJ2ZXJzaW9uIjoiMi4xNy4zIn0s\nIm1vc3RfcmVjZW50X2luc3RhbmNlIjp7InJlZiI6InJlZnMvaGVhZHMvMC45\nIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fubmlu\nZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2Vc\nIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIs\nInN0YXRlIjoiZGlzbWlzc2VkIiwiY29tbWl0X3NoYSI6ImRiODc0NDk2N2Ux\nYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNzYWdlIjp7InRl\neHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJvcmF0b3IvZGF0\nYWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjQxLCJlbmRfbGluZSI6\nNDEsInN0YXJ0X2NvbHVtbiI6MjYsImVuZF9jb2x1bW4iOjU5fSwiY2xhc3Np\nZmljYXRpb25zIjpbXX0sImluc3RhbmNlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9j\nb2RlLXNjYW5uaW5nL2FsZXJ0cy8xL2luc3RhbmNlcyJ9\n" + "base64_string": "eyJudW1iZXIiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTAzLTAyVDIzOjUzOjU0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA1LTMxVDA2OjI4OjE0WiIsInVybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvQ2FqYS1kZS1EYW5vL2Fj\ndGl2ZS13cmFwcGVyL2NvZGUtc2Nhbm5pbmcvYWxlcnRzLzEiLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9DYWphLWRlLURhbm8vYWN0aXZlLXdy\nYXBwZXIvc2VjdXJpdHkvY29kZS1zY2FubmluZy8xIiwic3RhdGUiOiJkaXNt\naXNzZWQiLCJmaXhlZF9hdCI6bnVsbCwiZGlzbWlzc2VkX2J5Ijp7ImxvZ2lu\nIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6MjU1NTA3Mywibm9kZV9pZCI6Ik1E\nUTZWWE5sY2pJMU5UVXdOek09IiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZh\ndGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTU1MDczP3Y9NCIsImdy\nYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRo\ndWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93\nZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIs\nImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJ\nVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0\nYXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vi\nc2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3Nf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJy\nZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91\nc2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoi\nVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwiZGlzbWlzc2VkX2F0IjoiMjAy\nNC0wNS0zMVQwNjoyODoxNFoiLCJkaXNtaXNzZWRfcmVhc29uIjoid29uJ3Qg\nZml4IiwiZGlzbWlzc2VkX2NvbW1lbnQiOiJUZXN0IGNvbW1lbnQiLCJydWxl\nIjp7ImlkIjoicHkvY2xlYXItdGV4dC1sb2dnaW5nLXNlbnNpdGl2ZS1kYXRh\nIiwic2V2ZXJpdHkiOiJlcnJvciIsImRlc2NyaXB0aW9uIjoiQ2xlYXItdGV4\ndCBsb2dnaW5nIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiIsIm5hbWUiOiJw\neS9jbGVhci10ZXh0LWxvZ2dpbmctc2Vuc2l0aXZlLWRhdGEiLCJ0YWdzIjpb\nImV4dGVybmFsL2N3ZS9jd2UtMzEyIiwiZXh0ZXJuYWwvY3dlL2N3ZS0zNTki\nLCJleHRlcm5hbC9jd2UvY3dlLTUzMiIsInNlY3VyaXR5Il0sImZ1bGxfZGVz\nY3JpcHRpb24iOiJMb2dnaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiB3aXRo\nb3V0IGVuY3J5cHRpb24gb3IgaGFzaGluZyBjYW4gZXhwb3NlIGl0IHRvIGFu\nIGF0dGFja2VyLiIsImhlbHAiOiIjIENsZWFyLXRleHQgbG9nZ2luZyBvZiBz\nZW5zaXRpdmUgaW5mb3JtYXRpb25cbklmIHNlbnNpdGl2ZSBkYXRhIGlzIHdy\naXR0ZW4gdG8gYSBsb2cgZW50cnkgaXQgY291bGQgYmUgZXhwb3NlZCB0byBh\nbiBhdHRhY2tlciB3aG8gZ2FpbnMgYWNjZXNzIHRvIHRoZSBsb2dzLlxuXG5Q\nb3RlbnRpYWwgYXR0YWNrZXJzIGNhbiBvYnRhaW4gc2Vuc2l0aXZlIHVzZXIg\nZGF0YSB3aGVuIHRoZSBsb2cgb3V0cHV0IGlzIGRpc3BsYXllZC4gQWRkaXRp\nb25hbGx5IHRoYXQgZGF0YSBtYXkgZXhwb3NlIHN5c3RlbSBpbmZvcm1hdGlv\nbiBzdWNoIGFzIGZ1bGwgcGF0aCBuYW1lcywgc3lzdGVtIGluZm9ybWF0aW9u\nLCBhbmQgc29tZXRpbWVzIHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzLlxuXG5c\nbiMjIFJlY29tbWVuZGF0aW9uXG5TZW5zaXRpdmUgZGF0YSBzaG91bGQgbm90\nIGJlIGxvZ2dlZC5cblxuXG4jIyBFeGFtcGxlXG5JbiB0aGUgZXhhbXBsZSB0\naGUgZW50aXJlIHByb2Nlc3MgZW52aXJvbm1lbnQgaXMgbG9nZ2VkIHVzaW5n\nIFxcYHByaW50XFxgLiBSZWd1bGFyIHVzZXJzIG9mIHRoZSBwcm9kdWN0aW9u\nIGRlcGxveWVkIGFwcGxpY2F0aW9uIHNob3VsZCBub3QgaGF2ZSBhY2Nlc3Mg\ndG8gdGhpcyBtdWNoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnZpcm9ubWVu\ndCBjb25maWd1cmF0aW9uLlxuXG5cbmBgYHB5dGhvblxuIyBCQUQ6IExvZ2dp\nbmcgY2xlYXJ0ZXh0IHNlbnNpdGl2ZSBkYXRhXG5pbXBvcnQgb3NcbnByaW50\nKGZcIltJTkZPXSBFbnZpcm9ubWVudDoge29zLmVudmlyb259XCIpXG5gYGBc\nbkluIHRoZSBzZWNvbmQgZXhhbXBsZSB0aGUgZGF0YSB0aGF0IGlzIGxvZ2dl\nZCBpcyBub3Qgc2Vuc2l0aXZlLlxuXG5cbmBgYHB5dGhvblxubm90X3NlbnNp\ndGl2ZV9kYXRhID0geydhJzogMSwgJ2InOiAyfVxuIyBHT09EOiBpdCBpcyBm\naW5lIHRvIGxvZyBkYXRhIHRoYXQgaXMgbm90IHNlbnNpdGl2ZVxucHJpbnQo\nZlwiW0lORk9dIFNvbWUgb2JqZWN0IGNvbnRhaW5zOiB7bm90X3NlbnNpdGl2\nZV9kYXRhfVwiKVxuYGBgXG5cbiMjIFJlZmVyZW5jZXNcbiogT1dBU1A6IFtJ\nbnNlcnRpb24gb2YgU2Vuc2l0aXZlIEluZm9ybWF0aW9uIGludG8gTG9nIEZp\nbGVdKGh0dHBzOi8vb3dhc3Aub3JnL1RvcDEwL0EwOV8yMDIxLVNlY3VyaXR5\nX0xvZ2dpbmdfYW5kX01vbml0b3JpbmdfRmFpbHVyZXMvKS5cbiogQ29tbW9u\nIFdlYWtuZXNzIEVudW1lcmF0aW9uOiBbQ1dFLTMxMl0oaHR0cHM6Ly9jd2Uu\nbWl0cmUub3JnL2RhdGEvZGVmaW5pdGlvbnMvMzEyLmh0bWwpLlxuKiBDb21t\nb24gV2Vha25lc3MgRW51bWVyYXRpb246IFtDV0UtMzU5XShodHRwczovL2N3\nZS5taXRyZS5vcmcvZGF0YS9kZWZpbml0aW9ucy8zNTkuaHRtbCkuXG4qIENv\nbW1vbiBXZWFrbmVzcyBFbnVtZXJhdGlvbjogW0NXRS01MzJdKGh0dHBzOi8v\nY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRpb25zLzUzMi5odG1sKS5cbiIs\nInNlY3VyaXR5X3NldmVyaXR5X2xldmVsIjoiaGlnaCJ9LCJ0b29sIjp7Im5h\nbWUiOiJDb2RlUUwiLCJndWlkIjpudWxsLCJ2ZXJzaW9uIjoiMi4xNy4zIn0s\nIm1vc3RfcmVjZW50X2luc3RhbmNlIjp7InJlZiI6InJlZnMvaGVhZHMvMC45\nIiwiYW5hbHlzaXNfa2V5IjoiZHluYW1pYy9naXRodWItY29kZS1zY2Fubmlu\nZy9jb2RlcWw6YW5hbHl6ZSIsImVudmlyb25tZW50Ijoie1wibGFuZ3VhZ2Vc\nIjpcInB5dGhvblwifSIsImNhdGVnb3J5IjoiL2xhbmd1YWdlOnB5dGhvbiIs\nInN0YXRlIjoiZGlzbWlzc2VkIiwiY29tbWl0X3NoYSI6ImRiODc0NDk2N2Ux\nYzkxYTgwMDc5ZWNlZjcwYzdkYjgwNTg3MWRkM2QiLCJtZXNzYWdlIjp7InRl\neHQiOiJUaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUg\nZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Np\nb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRl\neHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFz\nc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlzIGV4cHJlc3Npb24gbG9ncyBz\nZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFzIGNsZWFyIHRleHQuXG5UaGlz\nIGV4cHJlc3Npb24gbG9ncyBzZW5zaXRpdmUgZGF0YSAocGFzc3dvcmQpIGFz\nIGNsZWFyIHRleHQuIn0sImxvY2F0aW9uIjp7InBhdGgiOiJvcmF0b3IvZGF0\nYWJhc2VfbWFuYWdlci5weSIsInN0YXJ0X2xpbmUiOjQxLCJlbmRfbGluZSI6\nNDEsInN0YXJ0X2NvbHVtbiI6MjYsImVuZF9jb2x1bW4iOjU5fSwiY2xhc3Np\nZmljYXRpb25zIjpbXX0sImluc3RhbmNlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9j\nb2RlLXNjYW5uaW5nL2FsZXJ0cy8xL2luc3RhbmNlcyJ9\n" } }, - "recorded_at": "Fri, 31 May 2024 05:12:36 GMT" + "recorded_at": "Fri, 31 May 2024 06:28:14 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json index dccdc9d1c..4e7904b65 100644 --- a/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json +++ b/spec/cassettes/Octokit_Client_CodeScanning/_update_code_scanning_default_config/updates_the_default_code_scanning_configuration_for_a_repository.json @@ -3,10 +3,10 @@ { "request": { "method": "patch", - "uri": "https://api.github.com/repos/caja-de-dano/active-wrapper/code-scanning/default-setup", + "uri": "https://api.github.com/repos/Caja-de-Dano/active-wrapper/code-scanning/default-setup", "body": { "encoding": "UTF-8", - "base64_string": "eyJzdGF0ZSI6Im5vdC1jb25maWd1cmVkIn0=\n" + "base64_string": "eyJzdGF0ZSI6ImNvbmZpZ3VyZWQifQ==\n" }, "headers": { "Accept": [ @@ -28,31 +28,21 @@ }, "response": { "status": { - "code": 200, - "message": "OK" + "code": 202, + "message": "Accepted" }, "headers": { "Server": [ "GitHub.com" ], "Date": [ - "Fri, 31 May 2024 05:31:16 GMT" + "Fri, 31 May 2024 05:51:36 GMT" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "2" - ], - "Cache-Control": [ - "private, max-age=60, s-maxage=60" - ], - "Vary": [ - "Accept, Authorization, Cookie, X-GitHub-OTP", - "Accept-Encoding, Accept, X-Requested-With" - ], - "Etag": [ - "\"2ec9ed5bca79359728914855a288326734ed27a902fb4ea5e4bba7bf07869a1b\"" + "114" ], "X-Oauth-Scopes": [ "gist, read:org, repo, workflow" @@ -73,13 +63,13 @@ "5000" ], "X-Ratelimit-Remaining": [ - "4980" + "4976" ], "X-Ratelimit-Reset": [ "1717135450" ], "X-Ratelimit-Used": [ - "20" + "24" ], "X-Ratelimit-Resource": [ "core" @@ -108,16 +98,19 @@ "Content-Security-Policy": [ "default-src 'none'" ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], "X-Github-Request-Id": [ - "D2CB:39E48B:35F6A88:365B188:665960A4" + "D824:1C3A54:3748F72:37AFCB2:66596567" ] }, "body": { "encoding": "UTF-8", - "base64_string": "e30=\n" + "base64_string": "eyJydW5faWQiOjkzMTM1NjI1MjIsInJ1bl91cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zL0NhamEtZGUtRGFuby9hY3RpdmUtd3JhcHBlci9h\nY3Rpb25zL3J1bnMvOTMxMzU2MjUyMiJ9\n" } }, - "recorded_at": "Fri, 31 May 2024 05:31:17 GMT" + "recorded_at": "Fri, 31 May 2024 05:51:36 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/octokit/client/code_scanning_spec.rb b/spec/octokit/client/code_scanning_spec.rb index 739ce1675..4d11799e4 100644 --- a/spec/octokit/client/code_scanning_spec.rb +++ b/spec/octokit/client/code_scanning_spec.rb @@ -4,121 +4,108 @@ before do @client = oauth_client @sarif_id = 'fb31fa2c-095d-11ee-98fe-c609abca1772' - @test_repo = "caja-de-dano/active-wrapper" + @code_scanning_test_repo = "Caja-de-Dano/active-wrapper" end describe '.list_code_scanning_alerts_for_org', :vcr do it 'lists code scanning alerts for an organization' do scanning_alerts = @client.list_code_scanning_alerts_for_org("caja-de-dano") + expect(scanning_alerts).to be_kind_of Array + expect(scanning_alerts.first.state).to eq('open') assert_requested :get, github_url("/orgs/caja-de-dano/code-scanning/alerts") end end describe '.list_code_scanning_alerts_for_repository', :vcr do it 'lists code scanning alerts for a repository' do - scanning_alerts = @client.list_code_scanning_alerts_for_repository("caja-de-dano/active-wrapper") - assert_requested :get, github_url("/repos/caja-de-dano/active-wrapper/code-scanning/alerts") + scanning_alerts = @client.list_code_scanning_alerts_for_repository(@code_scanning_test_repo) + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/alerts") end end describe '.get_code_scanning_alert', :vcr do it 'gets a code scanning alert by alert number' do - alert = @client.get_code_scanning_alert("caja-de-dano/active-wrapper", 1) - expect(alert["rule"]["id"]).to eq('py/clear-text-logging-sensitive-data') - assert_requested :get, github_url("/repos/caja-de-dano/active-wrapper/code-scanning/alerts/1") + alert = @client.get_code_scanning_alert(@code_scanning_test_repo, 1) + expect(alert.rule.id).to eq('py/clear-text-logging-sensitive-data') + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/alerts/1") end end describe '.update_code_scanning_alert', :vcr do it 'updates a status of a single code scanning alert' do - alert = @client.update_code_scanning_alert(@test_repo, 1, 'dismissed', "won't fix", 'Test comment') - expect(alert["state"]).to eq('dismissed') - assert_requested :patch, github_url("/repos/#{@test_repo}/code-scanning/alerts/1") + alert = @client.update_code_scanning_alert(@code_scanning_test_repo, 1, 'dismissed', "won't fix", 'Test comment') + expect(alert.state).to eq('dismissed') + assert_requested :patch, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/alerts/1") end end describe '.list_instances_of_code_scanning_alert', :vcr do it 'lists all instances of the specified code scanning alert' do - instances = @client.list_instances_of_code_scanning_alert(@test_repo, 1) - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/alerts/1/instances") + instances = @client.list_instances_of_code_scanning_alert(@code_scanning_test_repo, 1) + expect(instances).to be_kind_of Array + expect(instances.first.state).to eq('open') + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/alerts/1/instances") end end describe '.list_code_scanning_analysis', :vcr do it 'lists code scanning analyses for a repository' do - analyses = @client.list_code_scanning_analysis(@test_repo) - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/analyses") + analyses = @client.list_code_scanning_analysis(@code_scanning_test_repo) + expect(analyses).to be_kind_of Array + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/analyses") end end describe '.get_code_scanning_analysis', :vcr do it 'gets a specific code scanning analysis for a repo' do - analysis = @client.get_code_scanning_analysis(@test_repo, 220148743) - expect(analysis.id).to eq(220148743) - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/analyses/220148743") + analysis = @client.get_code_scanning_analysis(@code_scanning_test_repo, 225379147) + expect(analysis.tool.name).to eq('CodeQL') + expect(analysis.id).to eq(225379147) + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/analyses/225379147") end end describe '.delete_code_scanning_analysis', :vcr do it 'deletes a code scanning analysis' do - analysis = @client.delete_code_scanning_analysis(@test_repo, 223527352) - #expect(analysis.id).to eq(223527352) - assert_requested :delete, github_url("/repos/#{@test_repo}/code-scanning/analyses/223527352") + analysis = @client.delete_code_scanning_analysis(@code_scanning_test_repo, 225379147) + expect(analysis.confirm_delete_url).to eq("#{analysis.next_analysis_url}?confirm_delete") + assert_requested :delete, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/analyses/225379147") end end describe '.list_codeql_database_for_repo', :vcr do it 'lists the codeql databases that are available in a repo' do - databases = @client.list_codeql_database_for_repo(@test_repo) - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/databases") + databases = @client.list_codeql_database_for_repo(@code_scanning_test_repo) + expect(databases).to be_kind_of Array + expect(databases.first.language).to eq('python') + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/codeql/databases") end end describe '.get_codeql_database_for_repo', :vcr do it 'gets a CodeQL database for a language in a repository' do - database = @client.get_codeql_database_for_repo(@test_repo, 'python') - expect(database.id).to eq('python') - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/databases/python") + database = @client.get_codeql_database_for_repo(@code_scanning_test_repo, 'python') + expect(database.language).to eq('python') + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/codeql/databases/python") end end - #describe '.create_codeql_variant_analysis', :vcr do - #it 'creates a new CodeQL variant analysis' do - #analysis = @client.create_codeql_variant_analysis(@test_repo, 'ruby', 'main') - #expect(analysis.status).to eq('queued') - #assert_requested :post, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries") - #end - #end - - #describe '.get_codeql_variant_analysis_summary', :vcr do - #it 'gets the summary of a CodeQL variant analysis' do - #analysis_summary = @client.get_codeql_variant_analysis_summary(@test_repo, 'ruby', 'main') - #expect(analysis_summary.status).to eq('queued') - #assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main") - #end - #end - - #describe '.get_codeql_variant_analysis_status', :vcr do - #it 'gets the analysis status of a repo in a CodeQL variant' do - #analysis_status = @client.get_codeql_variant_analysis_status(@test_repo, 'ruby', 'main') - #expect(analysis_status.status).to eq('queued') - #assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/codeql/queries/ruby/main/status") - #end - #end - describe '.get_code_scanning_default_config', :vcr do it 'gets the default code scanning configuration for a repository' do - default_config = @client.get_code_scanning_default_config(@test_repo) + default_config = @client.get_code_scanning_default_config(@code_scanning_test_repo) expect(default_config.state).to eq("configured") - assert_requested :get, github_url("/repos/#{@test_repo}/code-scanning/default-setup") + expect(default_config.query_suite).to eq("default") + expect(default_config.languages).to eq(["python"]) + assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/default-setup") end end describe '.update_code_scanning_default_config', :vcr do it 'updates the default code scanning configuration for a repository' do - default_config = @client.update_code_scanning_default_config(@test_repo, "not-configured") - #expect(default_config.analysis_enabled).to eq(false) - assert_requested :patch, github_url("/repos/#{@test_repo}/code-scanning/default-setup") + default_config = @client.update_code_scanning_default_config(@code_scanning_test_repo, "configured") + expect(default_config.run_id).to be_kind_of Integer + expect(default_config.run_url).to eq("https://api.github.com/repos/#{@code_scanning_test_repo}/actions/runs/#{default_config.run_id}") + assert_requested :patch, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/default-setup") end end From 2ec1b4615d0bf37d0705adf441e9ad01f387ab2a Mon Sep 17 00:00:00 2001 From: Dan Bradbury Date: Fri, 31 May 2024 08:17:26 +0000 Subject: [PATCH 53/75] add documentation --- lib/octokit/client/code_scanning.rb | 92 +++++++++++++++++++++-- spec/octokit/client/code_scanning_spec.rb | 2 +- 2 files changed, 88 insertions(+), 6 deletions(-) diff --git a/lib/octokit/client/code_scanning.rb b/lib/octokit/client/code_scanning.rb index 67b5fea1e..8af17fe90 100644 --- a/lib/octokit/client/code_scanning.rb +++ b/lib/octokit/client/code_scanning.rb @@ -9,6 +9,15 @@ class Client # # @see https://docs.github.com/rest/code-scanning module CodeScanning + # Updates a code scanning default setup configuration + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # @param state [String] The desired state of code scanning default setup + # @param query_suite [String] CodeQL query suite to be used + # @param languages [Array] List of CodeQL languages to be analyzed + + # @return [Sawyer::Resource] Action Run information + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration def update_code_scanning_default_config(repo, state, query_suite = nil, languages = nil, options = {}) options[:state] = state options[:query_suite] = query_suite if query_suite @@ -17,34 +26,88 @@ def update_code_scanning_default_config(repo, state, query_suite = nil, language patch "#{Repository.path repo}/code-scanning/default-setup", options end + # Get Code Scanning Default Configuration + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # + # @return [Sawyer::Resource] CodeQl Default Setup Configuration Information + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration def get_code_scanning_default_config(repo, options = {}) get "#{Repository.path repo}/code-scanning/default-setup", options end + # Gets a CodeQL database for a language in a repository + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # @param language [String] + # + # @return [Sawyer::Resource] CodeQl Default Setup Configuration Information + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository def get_codeql_database_for_repo(repo, language, options = {}) get "#{Repository.path repo}/code-scanning/codeql/databases/#{language}", options end + # Lists the CodeQL databases that are available in a repository + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # + # @return [Array] List of CodeQL Databases + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository def list_codeql_database_for_repo(repo, options = {}) get "#{Repository.path repo}/code-scanning/codeql/databases", options end + # Delete a specified code scanning analysis from a repository + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # @param analysis_id [Integer] ID of the code scanning analysis + # + # @return [Sawyer::Resource] Next Code Scanning Analysis Information + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository def delete_code_scanning_analysis(repo, analysis_id, options = {}) delete "#{Repository.path repo}/code-scanning/analyses/#{analysis_id}", options end + # Get a code scanning analysis for a repository + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # @param analysis_id [Integer] ID of the code scanning analysis + # + # @return [Sawyer::Resource] Code Scanning Analysis + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository def get_code_scanning_analysis(repo, analysis_id, options = {}) get "#{Repository.path repo}/code-scanning/analyses/#{analysis_id}", options end + # List code scanning analyses for a repository + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # + # @return [Array] List of Code Scanning Analyses + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository def list_code_scanning_analysis(repo, options = {}) - get "#{Repository.path repo}/code-scanning/analyses", options + paginate "#{Repository.path repo}/code-scanning/analyses", options end + # List instances of a code scanning alert + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # @param alert_number [Integer] The number that identifies an alert + # + # @return [Array] List of Code Scanning Alerts + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert def list_instances_of_code_scanning_alert(repo, alert_number, options = {}) - get "#{Repository.path repo}/code-scanning/alerts/#{alert_number}/instances", options + paginate "#{Repository.path repo}/code-scanning/alerts/#{alert_number}/instances", options end + # Update a code scanning alert + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # @param alert_number [Integer] The number that identifies an alert + # @param state [String] The reason for dismissing or closing the alert. Required when the state is dismissed + # + # @return [Sawyer::Resource] Code Scanning Alert information + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#update-a-code-scanning-alert def update_code_scanning_alert(repo, alert_number, state, reason, comment = nil, options = {}) options[:state] = state options[:dismissed_reason] = reason @@ -53,16 +116,35 @@ def update_code_scanning_alert(repo, alert_number, state, reason, comment = nil, patch "#{Repository.path repo}/code-scanning/alerts/#{alert_number}", options end + # Gets a single code scanning alert + # + # @param repo [Integer, String, Repository, Hash] A GitHub repository + # @param alert_number [Integer] The number that identifies an alert + # + # @return [Sawyer::Resource] Code Scanning Alert + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#get-a-code-scanning-alert def get_code_scanning_alert(repo, alert_number, options = {}) get "#{Repository.path repo}/code-scanning/alerts/#{alert_number}", options end - def list_code_scanning_alerts_for_repository(repo, options = {}) - get "#{Repository.path repo}/code-scanning/alerts", options + # List code scanning alerts for a repository + # + # @param org [String] A GitHub organization + # + # @return [Array] Code Scanning Alert information + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-a-repository + def list_code_scanning_alerts_for_repo(repo, options = {}) + paginate "#{Repository.path repo}/code-scanning/alerts", options end + # List code scanning alerts for an organization + # + # @param org [String] A GitHub organization + # + # @return [Array] Code Scanning Alert information + # @see https://docs.github.com/en/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization def list_code_scanning_alerts_for_org(org, options = {}) - get "orgs/#{org}/code-scanning/alerts", options + paginate "orgs/#{org}/code-scanning/alerts", options end # Uploads SARIF data containing the results of a code scanning analysis diff --git a/spec/octokit/client/code_scanning_spec.rb b/spec/octokit/client/code_scanning_spec.rb index 4d11799e4..da9cef487 100644 --- a/spec/octokit/client/code_scanning_spec.rb +++ b/spec/octokit/client/code_scanning_spec.rb @@ -18,7 +18,7 @@ describe '.list_code_scanning_alerts_for_repository', :vcr do it 'lists code scanning alerts for a repository' do - scanning_alerts = @client.list_code_scanning_alerts_for_repository(@code_scanning_test_repo) + scanning_alerts = @client.list_code_scanning_alerts_for_repo(@code_scanning_test_repo) assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/alerts") end end From 5858261cffabb6382a7dea797985c27e0740c03e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20=C5=A0im=C3=A1nek?= Date: Fri, 31 May 2024 11:28:47 +0200 Subject: [PATCH 54/75] Add Ruby 3.3 as supported one. --- .github/workflows/octokit.yml | 1 + README.md | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/octokit.yml b/.github/workflows/octokit.yml index 88214be6c..181edc586 100644 --- a/.github/workflows/octokit.yml +++ b/.github/workflows/octokit.yml @@ -21,6 +21,7 @@ jobs: - "3.0" - "3.1" - "3.2" + - "3.3" - head faraday: - ~> 1.0 diff --git a/README.md b/README.md index c900cbbf2..9f7c843ed 100644 --- a/README.md +++ b/README.md @@ -738,6 +738,7 @@ implementations: * Ruby 3.0 * Ruby 3.1 * Ruby 3.2 +* Ruby 3.3 If something doesn't work on one of these Ruby versions, it's a bug. From 63766ea13e0ff3038de2d2d825b9755842b64524 Mon Sep 17 00:00:00 2001 From: Dan Bradbury Date: Fri, 31 May 2024 09:48:25 -0700 Subject: [PATCH 55/75] cleanup with the comments --- lib/octokit/client/code_scanning.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/octokit/client/code_scanning.rb b/lib/octokit/client/code_scanning.rb index 8af17fe90..a03a07548 100644 --- a/lib/octokit/client/code_scanning.rb +++ b/lib/octokit/client/code_scanning.rb @@ -15,7 +15,7 @@ module CodeScanning # @param state [String] The desired state of code scanning default setup # @param query_suite [String] CodeQL query suite to be used # @param languages [Array] List of CodeQL languages to be analyzed - + # # @return [Sawyer::Resource] Action Run information # @see https://docs.github.com/en/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration def update_code_scanning_default_config(repo, state, query_suite = nil, languages = nil, options = {}) From 7bc6dd50d9d82cd1ce1e025b8aaf34f9823846a2 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Mon, 3 Jun 2024 13:16:46 +0200 Subject: [PATCH 56/75] Align ghesmanage client with management console client --- lib/octokit/default.rb | 5 +++ lib/octokit/manage_ghes_client/manage_ghes.rb | 18 ++++----- .../_upload_license/upload_a_new_license.json | 39 ++++++------------- .../ghes_manage_client/ghes_manage_spec.rb | 4 +- 4 files changed, 28 insertions(+), 38 deletions(-) diff --git a/lib/octokit/default.rb b/lib/octokit/default.rb index ca2e2fb73..47bdf3a6c 100644 --- a/lib/octokit/default.rb +++ b/lib/octokit/default.rb @@ -12,6 +12,11 @@ rescue LoadError Octokit::Warnable.octokit_warn 'To use retry middleware with Faraday v2.0+, install `faraday-retry` gem' end + begin + require 'faraday/multipart' + rescue LoadError + Octokit::Warnable.octokit_warn 'To use retry middleware with Faraday v2.0+, install `faraday-multipart` gem' + end end module Octokit diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index d5f0c9476..806614a8e 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -9,7 +9,7 @@ class ManageGHESClient module ManageAPI # Get information about the maintenance status of the GHES instance # - # @return [Sawyer::Resource] The maintenance mode status + # @return [nil] def maintenance_mode conn = authenticated_client @@ -33,19 +33,19 @@ def set_maintenance_mode(enabled, options = {}) # # @param license [String] The path to your .ghl license file. # - # @see https://docs.github.com/en/enterprise-server@3.4/rest/enterprise-admin/management-console#create-a-github-license - # @return nil + # @return [nil] def upload_license(license) conn = authenticated_client conn.request :multipart params = {} params[:license] = Faraday::FilePart.new(license, 'binary') - @last_response = conn.put('/manage/v1/config/license', params, { 'Content-Type' => 'multipart/form-data' }) + params[:password] = @manage_ghes_password + @last_response = conn.post('/manage/v1/config/init', params, { 'Content-Type' => 'multipart/form-data' }) end # Start a configuration process. # - # @return nil + # @return [nil] def start_configuration conn = authenticated_client @last_response = conn.post('/manage/v1/config/apply') @@ -53,7 +53,7 @@ def start_configuration # Get information about the Enterprise installation # - # @return [Sawyer::Resource] The installation information + # @return [nil] def config_status conn = authenticated_client @last_response = conn.get('/manage/v1/config/apply') @@ -62,7 +62,7 @@ def config_status # Get information about the Enterprise installation # - # @return [Sawyer::Resource] The settings + # @return [nil] def settings conn = authenticated_client @last_response = conn.get('/manage/v1/config/settings') @@ -88,7 +88,7 @@ def authorized_keys # Add an authorized SSH keys on the Enterprise install # # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself - # @return [Sawyer::Resource] An array of authorized SSH keys + # @return [nil] def add_authorized_key(key) conn = authenticated_client case key @@ -113,7 +113,7 @@ def add_authorized_key(key) # Removes an authorized SSH keys from the Enterprise install # # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself - # @return [Sawyer::Resource] An array of authorized SSH keys + # @return [nil] def remove_authorized_key(key) conn = authenticated_client case key diff --git a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json index d5a6231a2..4e6df5abf 100644 --- a/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json +++ b/spec/cassettes/Octokit_ManageGHESClient_ManageAPI/_upload_license/upload_a_new_license.json @@ -2,24 +2,24 @@ "http_interactions": [ { "request": { - "method": "put", - "uri": "<>/manage/v1/config/license", + "method": "post", + "uri": "<>/manage/v1/config/init", "body": { "encoding": "ASCII-8BIT", - "base64_string": "anqDHd6gSAjXRl5IUvRNla+HL\nwkjkmQMlgLD1iUomBHeBrw/LsuW+DrfUqvTaBFdAYxN5e1grmlHaBREkVADd\nqD/Tp1x8Wwte2oFVTRr3Q2AMwe5JyFsp6st0Vx7Vn8SHcxustqiH1fciJLt8\nQTmMr6yYHsZ+2YPySFDjirAbSH9xSX+zKG25VqDmMWwsjBIjaQMGfbaLDygO\nDpRvo63BnoPq2B/uxLHAE3gEUZWP8ukN9cuBPB8YxmWGpsrxeQrrfPZl4cG9\nQPBhSW+0NMmo5H3BQl/z8WZtje8uBwShb6Sc2RyqMyH2GDin3XTW78JzWl9i\nuyxOvG3FHwRnA2txkuM+54ikgwWO6vKKJFoan1X8_LOLNOTREAL_/eZ3FOUm1RCXbDrK7DwY\nqftO+hhL0kFZIz+O/Dg/a/OpeCP3UPcEaNmpkZbfXqpMsIxSGi96pisMJl6M\nRNJ6ZyiFf5CqpliiwCn9I3w9NWIXJhlLzimVwzX705s6a9ML5\n72gA8iFY3THXfNt5l7WdmssXegborR+ITb8cwXDdAAFXIZBurX4uQUWcN+tB\n9W07iqmpR7UzmPPQhcNZX/gmDjnkfaXx9neyydM6rY1yWhzEZ14WJwJLIne0uqU90SeqKDSPwzaTMbEo2ItVUgDbbEqNf/tXU2ZKnnU68Aywt5bfjLOM8sV6\ndmZHUCx6ygqMpRnlJwnsW/ikq00hJsKHS0TSJq4EnDiZaCyZYwjR7eHn2uGP\n/ufqoXKDWIY6Wxr4pyLcauDFUBnq75lEn7nA9knoDHmgrBFCL9bQcM+/Wh+8\nZ7I1NG5XUubvWCH8ywLhm6a5ftPKPsQh5mDurB55+gUxatRqgXS9XnfxSnac\nwlP02RpRlxPKfbMZqVsO2KW2TYUGXTpFCyZYLCau1Uw/+qJ/8z1ugURLjzJI3j2x4I3v6Mc952\n0TcebG/ZvuTaKft6dP+ZW++86Oynnn3T6j8BDQotLS0tLS0tLS0tLS0tUnVi\neU11bHRpcGFydFBvc3QNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0\nYTsgbmFtZT0icGFzc3dvcmQiDQoNC\n" + "base64_string": "anqDHd6gSAjXRl5IUvRNla+HL\nwkjkmQMlgLD1iUomBHeBrw/LsuW+DrfUqvTaBFdAYxN5e1grmlHaBREkVADd\nqD/Tp1x8Wwte2oFVTRr3Q2AMwe5JyFsp6st0Vx7Vn8SHcxustqiH1fciJLt8\nQTmMr6yYHsZ+2YPySFDjirAbSH9xSX+zKG25VqDmMWwsjBIjaQMGfbaLDygO\nDpRvo63BnoPq2B/uxLHAE3gEUZWP8ukN9cuBPB8YxmWGpsrxeQrrfPZl4cG9\nQPBhSW+0NMmo5H3BQl/z8WZtje8uBwShb6Sc2RyqMyH2GDin3XTW78JzWl9i\nuyxOvG3FHwRnA2txkuM+54ikgwWO6vKKJFoan1X8_LOLNOTREAL_/eZ3FOUm1RCXbDrK7DwY\nqftO+hhL0kFZIz+O/Dg/a/OpeCP3UPcEaNmpkZbfXqpMsIxSGi96pisMJl6M\nRNJ6ZyiFf5CqpliiwCn9I3w9NWIXJhlLzimVwzX705s6a9ML5\n72gA8iFY3THXfNt5l7WdmssXegborR+ITb8cwXDdAAFXIZBurX4uQUWcN+tB\n9W07iqmpR7UzmPPQhcNZX/gmDjnkfaXx9neyydM6rY1yWhzEZ14WJwJLIne0uqU90SeqKDSPwzaTMbEo2ItVUgDbbEqNf/tXU2ZKnnU68Aywt5bfjLOM8sV6\ndmZHUCx6ygqMpRnlJwnsW/ikq00hJsKHS0TSJq4EnDiZaCyZYwjR7eHn2uGP\n/ufqoXKDWIY6Wxr4pyLcauDFUBnq75lEn7nA9knoDHmgrBFCL9bQcM+/Wh+8\nZ7I1NG5XUubvWCH8ywLhm6a5ftPKPsQh5mDurB55+gUxatRqgXS9XnfxSnac\nwlP02RpRlxPKfbMZqVsO2KW2TYUGXTpFCyZYLCau1Uw/+qJ/8z1ugURLjzJI3j2x4I3v6Mc952\n0TcebG/ZvuTaKft6dP+ZW++86Oynnn3T6j8BDQotLS0tLS0tLS0tLS0tUnVi\neU11bHRpcGFydFBvc3QNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0\nYTsgbmFtZT0icGFzc3dvcmQiDQoNC\n\n" }, "headers": { "User-Agent": [ "Octokit Ruby Gem 8.1.0" ], "Content-Type": [ - "multipart/form-data; boundary=-----------RubyMultipartPost-e8412453628eb4b99f71583f2234ae4f" + "multipart/form-data; boundary=-----------RubyMultipartPost-2cfc1d28d56dda99e4bebdcded8c4f41" ], "Authorization": [ "Basic YXBpX2tleTpRMjBVcm45aWs=" ], "Content-Length": [ - "17459" + "17583" ], "Accept-Encoding": [ "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" @@ -31,36 +31,21 @@ }, "response": { "status": { - "code": 201, - "message": "Created" + "code": 202, + "message": "Accepted" }, "headers": { - "Content-Security-Policy": [ - "default-src 'none';" - ], "Content-Type": [ "application/json; charset=utf-8" ], - "Server": [ - "GHES Manage" - ], - "Strict-Transport-Security": [ - "max-age=63072000; includeSubDomains; preload" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "X-Frame-Options": [ - "DENY" - ], - "X-Xss-Protection": [ - "0" - ], "Date": [ - "Tue, 28 May 2024 10:16:58 GMT" + "Mon, 03 Jun 2024 11:12:05 GMT" ], "Content-Length": [ "3" + ], + "X-Frame-Options": [ + "DENY" ] }, "body": { @@ -68,7 +53,7 @@ "base64_string": "e30K\n" } }, - "recorded_at": "Tue, 28 May 2024 10:16:58 GMT" + "recorded_at": "Mon, 03 Jun 2024 11:12:05 GMT" } ], "recorded_with": "VCR 6.2.0" diff --git a/spec/octokit/ghes_manage_client/ghes_manage_spec.rb b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb index fafb6a5e2..4cbf3fac0 100644 --- a/spec/octokit/ghes_manage_client/ghes_manage_spec.rb +++ b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb @@ -35,8 +35,8 @@ describe '.upload_license', :vcr do it 'upload a new license' do @manage_ghes.upload_license(@license) - expect(@manage_ghes.last_response.status).to eq(201) - assert_requested :put, github_manage_ghes_url('/manage/v1/config/license') + expect(@manage_ghes.last_response.status).to eq(202) + assert_requested :post, github_manage_ghes_url('/manage/v1/config/init') end end # .upload_license From fc842485ecab9b269e9cad42302e02599692df02 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Mon, 3 Jun 2024 16:07:22 +0200 Subject: [PATCH 57/75] add deprecation warnings --- .../management_console.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/octokit/enterprise_management_console_client/management_console.rb b/lib/octokit/enterprise_management_console_client/management_console.rb index f267ee58c..6ff70926d 100644 --- a/lib/octokit/enterprise_management_console_client/management_console.rb +++ b/lib/octokit/enterprise_management_console_client/management_console.rb @@ -14,6 +14,7 @@ module ManagementConsole # @see https://docs.github.com/en/enterprise-server@3.4/rest/enterprise-admin/management-console#create-a-github-license # @return nil def upload_license(license, settings = nil) + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') conn = faraday_configuration params = {} @@ -28,6 +29,7 @@ def upload_license(license, settings = nil) # # @return nil def start_configuration + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') post '/setup/api/configure', password_hash end @@ -37,6 +39,7 @@ def start_configuration # # @return nil def upgrade(license) + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') conn = faraday_configuration params = {} @@ -49,6 +52,7 @@ def upgrade(license) # # @return [Sawyer::Resource] The installation information def config_status + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') get '/setup/api/configcheck', password_hash end alias config_check config_status @@ -57,6 +61,7 @@ def config_status # # @return [Sawyer::Resource] The settings def settings + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') get '/setup/api/settings', password_hash end alias get_settings settings @@ -67,6 +72,7 @@ def settings # # @return [nil] def edit_settings(settings) + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') queries = password_hash queries[:query][:settings] = settings.to_json.to_s put '/setup/api/settings', queries @@ -76,6 +82,7 @@ def edit_settings(settings) # # @return [Sawyer::Resource] The maintenance status def maintenance_status + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') get '/setup/api/maintenance', password_hash end alias get_maintenance_status maintenance_status @@ -85,6 +92,7 @@ def maintenance_status # @param maintenance [Hash] A hash configuration of the maintenance settings # @return [nil] def set_maintenance_status(maintenance) + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') queries = password_hash queries[:query][:maintenance] = maintenance.to_json.to_s post '/setup/api/maintenance', queries @@ -95,6 +103,7 @@ def set_maintenance_status(maintenance) # # @return [Sawyer::Resource] An array of authorized SSH keys def authorized_keys + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') get '/setup/api/settings/authorized-keys', password_hash end alias get_authorized_keys authorized_keys @@ -104,6 +113,7 @@ def authorized_keys # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself # @return [Sawyer::Resource] An array of authorized SSH keys def add_authorized_key(key) + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') queries = password_hash case key when String @@ -128,6 +138,7 @@ def add_authorized_key(key) # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself # @return [Sawyer::Resource] An array of authorized SSH keys def remove_authorized_key(key) + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') queries = password_hash case key when String From 13a03a2bce8ceea70d05f01bd8b140f48bbab5f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 19:22:32 +0000 Subject: [PATCH 58/75] Update rubocop requirement from 1.64.0 to 1.64.1 Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.64.0...v1.64.1) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index a923f7354..d5b9cb9c6 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.64.0' + gem 'rubocop', '1.64.1' end gemspec From edb51d46c4d8142292cf4ade7b77015f675a84f8 Mon Sep 17 00:00:00 2001 From: Octokit Bot <33075676+octokitbot@users.noreply.github.com> Date: Tue, 4 Jun 2024 18:47:29 +0000 Subject: [PATCH 59/75] Updates for workflows --- .github/workflows/immediate-response.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/immediate-response.yml b/.github/workflows/immediate-response.yml index e8bb8ee5b..8a29b200f 100644 --- a/.github/workflows/immediate-response.yml +++ b/.github/workflows/immediate-response.yml @@ -25,5 +25,5 @@ jobs: body: > 👋 Hi! Thank you for this contribution! Just to let you know, our GitHub SDK team does a round of issue and PR reviews twice a week, every Monday and Friday! We have a [process in place](https://github.com/octokit/.github/blob/main/community/prioritization_response.md#overview) for prioritizing and responding to your input. - Because you are a part of this community please feel free to comment, add to, or pick up any issues/PRs that are labled with `Status: Up for grabs`. + Because you are a part of this community please feel free to comment, add to, or pick up any issues/PRs that are labeled with `Status: Up for grabs`. You & others like you are the reason all of this works! So thank you & happy coding! 🚀 From 57761db48e8e03d089866aebce386ff207b265f4 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Wed, 5 Jun 2024 08:21:00 +0200 Subject: [PATCH 60/75] Update lib/octokit/default.rb Co-authored-by: Nick Floyd <139819+nickfloyd@users.noreply.github.com> --- lib/octokit/default.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/octokit/default.rb b/lib/octokit/default.rb index 47bdf3a6c..35eba066a 100644 --- a/lib/octokit/default.rb +++ b/lib/octokit/default.rb @@ -15,7 +15,7 @@ begin require 'faraday/multipart' rescue LoadError - Octokit::Warnable.octokit_warn 'To use retry middleware with Faraday v2.0+, install `faraday-multipart` gem' + Octokit::Warnable.octokit_warn 'To use multipart middleware with Faraday v2.0+, install `faraday-multipart` gem; note: this is used by the ManageGHES client for uploading licenses' end end From 894794eb3b5b8b5222f2303e04a3f2d2fc78f5df Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Fri, 7 Jun 2024 11:12:25 +0200 Subject: [PATCH 61/75] create error 410 --- lib/octokit/error.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/octokit/error.rb b/lib/octokit/error.rb index f607bf02c..4ef40f75c 100644 --- a/lib/octokit/error.rb +++ b/lib/octokit/error.rb @@ -23,6 +23,7 @@ def self.from_response(response) when 405 then Octokit::MethodNotAllowed when 406 then Octokit::NotAcceptable when 409 then Octokit::Conflict + when 410 then Octokit::Deprecated when 415 then Octokit::UnsupportedMediaType when 422 then error_for_422(body) when 451 then Octokit::UnavailableForLegalReasons @@ -110,6 +111,10 @@ def self.error_for_404(body) end end + def self.error_for_410(body) + Octokit::Gone + end + # Return most appropriate error for 422 HTTP status code # @private # rubocop:disable Naming/VariableNumber @@ -317,6 +322,9 @@ class NotAcceptable < ClientError; end # Raised when GitHub returns a 409 HTTP status code class Conflict < ClientError; end + # Raised when GHES Manage return a 410 HTTP status code + class Deprecated < ClientError; end + # Raised when GitHub returns a 414 HTTP status code class UnsupportedMediaType < ClientError; end From 2a79e2c1d98408c0535fba0fd23abd9a28fd9831 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Mon, 10 Jun 2024 15:42:24 +0200 Subject: [PATCH 62/75] remove unused method --- lib/octokit/error.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/octokit/error.rb b/lib/octokit/error.rb index 4ef40f75c..ec94c3ebd 100644 --- a/lib/octokit/error.rb +++ b/lib/octokit/error.rb @@ -111,10 +111,6 @@ def self.error_for_404(body) end end - def self.error_for_410(body) - Octokit::Gone - end - # Return most appropriate error for 422 HTTP status code # @private # rubocop:disable Naming/VariableNumber From 9ed27c68c3cb59fcc400fea5ec773df2c0b65b59 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Mon, 10 Jun 2024 15:56:40 +0200 Subject: [PATCH 63/75] disable Metrics/CyclomaticComplexity check --- lib/octokit/error.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/octokit/error.rb b/lib/octokit/error.rb index ec94c3ebd..2430d472d 100644 --- a/lib/octokit/error.rb +++ b/lib/octokit/error.rb @@ -10,6 +10,7 @@ class Error < StandardError # # @param [Hash] response HTTP response # @return [Octokit::Error] + # rubocop:disable Metrics/CyclomaticComplexity def self.from_response(response) status = response[:status].to_i body = response[:body].to_s From e11782bdd3b40f56d2582600659240a3d7e8a5c5 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Mon, 10 Jun 2024 16:10:21 +0200 Subject: [PATCH 64/75] enable check --- lib/octokit/error.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/octokit/error.rb b/lib/octokit/error.rb index 2430d472d..114ba37f4 100644 --- a/lib/octokit/error.rb +++ b/lib/octokit/error.rb @@ -38,6 +38,7 @@ def self.from_response(response) klass.new(response) end end + # rubocop:enable Metrics/CyclomaticComplexity def build_error_context if RATE_LIMITED_ERRORS.include?(self.class) From 8b23a3cc7973048491021061374031b286ee337b Mon Sep 17 00:00:00 2001 From: Nick Floyd <139819+nickfloyd@users.noreply.github.com> Date: Mon, 10 Jun 2024 13:11:14 -0500 Subject: [PATCH 65/75] v9.0.0 --- lib/octokit/version.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/octokit/version.rb b/lib/octokit/version.rb index 628af1c33..2a464fcce 100644 --- a/lib/octokit/version.rb +++ b/lib/octokit/version.rb @@ -3,11 +3,11 @@ module Octokit # Current major release. # @return [Integer] - MAJOR = 8 + MAJOR = 9 # Current minor release. # @return [Integer] - MINOR = 1 + MINOR = 0 # Current patch level. # @return [Integer] From b54f8b9d36a06bb6b890b9cf683b6d4201d07dcd Mon Sep 17 00:00:00 2001 From: Dan Bradbury Date: Mon, 10 Jun 2024 14:30:11 -0700 Subject: [PATCH 66/75] Fix linting issues --- spec/octokit/client/code_scanning_spec.rb | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/spec/octokit/client/code_scanning_spec.rb b/spec/octokit/client/code_scanning_spec.rb index da9cef487..6192aef68 100644 --- a/spec/octokit/client/code_scanning_spec.rb +++ b/spec/octokit/client/code_scanning_spec.rb @@ -4,21 +4,22 @@ before do @client = oauth_client @sarif_id = 'fb31fa2c-095d-11ee-98fe-c609abca1772' - @code_scanning_test_repo = "Caja-de-Dano/active-wrapper" + @code_scanning_test_repo = 'Caja-de-Dano/active-wrapper' end describe '.list_code_scanning_alerts_for_org', :vcr do it 'lists code scanning alerts for an organization' do - scanning_alerts = @client.list_code_scanning_alerts_for_org("caja-de-dano") + scanning_alerts = @client.list_code_scanning_alerts_for_org('caja-de-dano') expect(scanning_alerts).to be_kind_of Array expect(scanning_alerts.first.state).to eq('open') - assert_requested :get, github_url("/orgs/caja-de-dano/code-scanning/alerts") + assert_requested :get, github_url('/orgs/caja-de-dano/code-scanning/alerts') end end describe '.list_code_scanning_alerts_for_repository', :vcr do it 'lists code scanning alerts for a repository' do scanning_alerts = @client.list_code_scanning_alerts_for_repo(@code_scanning_test_repo) + expect(scanning_alerts).to be_kind_of Array assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/alerts") end end @@ -58,16 +59,16 @@ describe '.get_code_scanning_analysis', :vcr do it 'gets a specific code scanning analysis for a repo' do - analysis = @client.get_code_scanning_analysis(@code_scanning_test_repo, 225379147) + analysis = @client.get_code_scanning_analysis(@code_scanning_test_repo, 225_379_147) expect(analysis.tool.name).to eq('CodeQL') - expect(analysis.id).to eq(225379147) + expect(analysis.id).to eq(225_379_147) assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/analyses/225379147") end end describe '.delete_code_scanning_analysis', :vcr do it 'deletes a code scanning analysis' do - analysis = @client.delete_code_scanning_analysis(@code_scanning_test_repo, 225379147) + analysis = @client.delete_code_scanning_analysis(@code_scanning_test_repo, 225_379_147) expect(analysis.confirm_delete_url).to eq("#{analysis.next_analysis_url}?confirm_delete") assert_requested :delete, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/analyses/225379147") end @@ -93,16 +94,16 @@ describe '.get_code_scanning_default_config', :vcr do it 'gets the default code scanning configuration for a repository' do default_config = @client.get_code_scanning_default_config(@code_scanning_test_repo) - expect(default_config.state).to eq("configured") - expect(default_config.query_suite).to eq("default") - expect(default_config.languages).to eq(["python"]) + expect(default_config.state).to eq('configured') + expect(default_config.query_suite).to eq('default') + expect(default_config.languages).to eq(['python']) assert_requested :get, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/default-setup") end end describe '.update_code_scanning_default_config', :vcr do it 'updates the default code scanning configuration for a repository' do - default_config = @client.update_code_scanning_default_config(@code_scanning_test_repo, "configured") + default_config = @client.update_code_scanning_default_config(@code_scanning_test_repo, 'configured') expect(default_config.run_id).to be_kind_of Integer expect(default_config.run_url).to eq("https://api.github.com/repos/#{@code_scanning_test_repo}/actions/runs/#{default_config.run_id}") assert_requested :patch, github_url("/repos/#{@code_scanning_test_repo}/code-scanning/default-setup") From 10886bff72ce90621bbfa7863ce340991cef0851 Mon Sep 17 00:00:00 2001 From: Nick Floyd Date: Tue, 11 Jun 2024 10:16:38 -0500 Subject: [PATCH 67/75] v9.1.0 --- lib/octokit/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/octokit/version.rb b/lib/octokit/version.rb index 2a464fcce..80e57538e 100644 --- a/lib/octokit/version.rb +++ b/lib/octokit/version.rb @@ -7,7 +7,7 @@ module Octokit # Current minor release. # @return [Integer] - MINOR = 0 + MINOR = 1 # Current patch level. # @return [Integer] From 66bf1a928412e514afd528af1cd8cff3fa140a6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:17:05 -0700 Subject: [PATCH 68/75] Bump actions/add-to-project from 1.0.1 to 1.0.2 (#1702) Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_to_octokit_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_to_octokit_project.yml b/.github/workflows/add_to_octokit_project.yml index 936e1f4f8..8621996e4 100644 --- a/.github/workflows/add_to_octokit_project.yml +++ b/.github/workflows/add_to_octokit_project.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest continue-on-error: true steps: - - uses: actions/add-to-project@v1.0.1 + - uses: actions/add-to-project@v1.0.2 with: project-url: https://github.com/orgs/octokit/projects/10 github-token: ${{ secrets.OCTOKITBOT_PROJECT_ACTION_TOKEN }} From c1a9cb779bc31702ea398bce840c92ad87b9ade6 Mon Sep 17 00:00:00 2001 From: alejndr0 Date: Tue, 2 Jul 2024 19:43:59 +0200 Subject: [PATCH 69/75] Management Console Client: Update deprecation version (#1703) Update deprecation version --- .../management_console.rb | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/octokit/enterprise_management_console_client/management_console.rb b/lib/octokit/enterprise_management_console_client/management_console.rb index 6ff70926d..4355ebfbb 100644 --- a/lib/octokit/enterprise_management_console_client/management_console.rb +++ b/lib/octokit/enterprise_management_console_client/management_console.rb @@ -14,7 +14,7 @@ module ManagementConsole # @see https://docs.github.com/en/enterprise-server@3.4/rest/enterprise-admin/management-console#create-a-github-license # @return nil def upload_license(license, settings = nil) - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') conn = faraday_configuration params = {} @@ -29,7 +29,7 @@ def upload_license(license, settings = nil) # # @return nil def start_configuration - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') post '/setup/api/configure', password_hash end @@ -39,7 +39,7 @@ def start_configuration # # @return nil def upgrade(license) - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') conn = faraday_configuration params = {} @@ -52,7 +52,7 @@ def upgrade(license) # # @return [Sawyer::Resource] The installation information def config_status - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') get '/setup/api/configcheck', password_hash end alias config_check config_status @@ -61,7 +61,7 @@ def config_status # # @return [Sawyer::Resource] The settings def settings - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') get '/setup/api/settings', password_hash end alias get_settings settings @@ -72,7 +72,7 @@ def settings # # @return [nil] def edit_settings(settings) - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') queries = password_hash queries[:query][:settings] = settings.to_json.to_s put '/setup/api/settings', queries @@ -82,7 +82,7 @@ def edit_settings(settings) # # @return [Sawyer::Resource] The maintenance status def maintenance_status - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') get '/setup/api/maintenance', password_hash end alias get_maintenance_status maintenance_status @@ -92,7 +92,7 @@ def maintenance_status # @param maintenance [Hash] A hash configuration of the maintenance settings # @return [nil] def set_maintenance_status(maintenance) - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') queries = password_hash queries[:query][:maintenance] = maintenance.to_json.to_s post '/setup/api/maintenance', queries @@ -103,7 +103,7 @@ def set_maintenance_status(maintenance) # # @return [Sawyer::Resource] An array of authorized SSH keys def authorized_keys - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') get '/setup/api/settings/authorized-keys', password_hash end alias get_authorized_keys authorized_keys @@ -113,7 +113,7 @@ def authorized_keys # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself # @return [Sawyer::Resource] An array of authorized SSH keys def add_authorized_key(key) - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') queries = password_hash case key when String @@ -138,7 +138,7 @@ def add_authorized_key(key) # @param key Either the file path to a key, a File handler to the key, or the contents of the key itself # @return [Sawyer::Resource] An array of authorized SSH keys def remove_authorized_key(key) - octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.14.0, please use the ManageGHES client instead.') + octokit_warn('The Management Console API will be deprecated in GitHub Enterprise Server 3.15.0, please use the ManageGHES client instead.') queries = password_hash case key when String From a2558959ea06bda85378a843762ff0a8bf562c88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 13:03:07 -0700 Subject: [PATCH 70/75] Update rubocop requirement from 1.64.1 to 1.65.0 (#1707) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.64.1...v1.65.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index d5b9cb9c6..0af8fe122 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.64.1' + gem 'rubocop', '1.65.0' end gemspec From 843ea2031e102db1c405398fa1cd6a797239493d Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Sun, 7 Jul 2024 07:55:58 -0400 Subject: [PATCH 71/75] feat: enable and disable automated security features --- lib/octokit/client/repositories.rb | 43 ++++ ...ith_automated_security_fixes_disabled.json | 229 ++++++++++++++++++ ..._automated_security_fixes_are_enabled.json | 229 ++++++++++++++++++ ...ted_security_fixes_for_the_repository.json | 111 +++++++++ ...ted_security_fixes_for_the_repository.json | 111 +++++++++ spec/octokit/client/repositories_spec.rb | 34 +++ 6 files changed, 757 insertions(+) create mode 100644 spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_false_with_automated_security_fixes_disabled.json create mode 100644 spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_true_when_automated_security_fixes_are_enabled.json create mode 100644 spec/cassettes/Octokit_Client_Repositories/_disable_automated_security_fixes/disables_automated_security_fixes_for_the_repository.json create mode 100644 spec/cassettes/Octokit_Client_Repositories/_enable_automated_security_fixes/enables_automated_security_fixes_for_the_repository.json diff --git a/lib/octokit/client/repositories.rb b/lib/octokit/client/repositories.rb index 8e4479653..ae598377c 100644 --- a/lib/octokit/client/repositories.rb +++ b/lib/octokit/client/repositories.rb @@ -774,6 +774,49 @@ def enable_vulnerability_alerts(repo, options = {}) def disable_vulnerability_alerts(repo, options = {}) boolean_from_response(:delete, "#{Repository.path repo}/vulnerability-alerts", options) end + + # Check to see if automated security fixes are enabled for a repository + # + # The authenticated user must have admin access to the repository. + # + # @param repo [Integer, String, Hash, Repository] A GitHub repository. + # @return [Boolean] True if automated security fixes are enabled, false otherwise. + # @see https://docs.github.com/en/rest/reference/repos#check-if-automated-security-fixes-are-enabled-for-a-repository + # + # @example + # @client.automated_security_fixes_enabled?("octokit/octokit.rb") + def automated_security_fixes_enabled?(repo, options = {}) + response = get "#{Repository.path repo}/automated-security-fixes", options + return response[:enabled] if @last_response.status == 200 + + false + end + + # Enable automated security fixes for a repository + # + # @param repo [Integer, String, Hash, Repository] A GitHub repository. + # @param options [Hash] + # + # @return [Boolean] True if vulnerability alerts enabled, false otherwise. + # @see https://docs.github.com/en/rest/reference/repos#automated-security-fixes + # @example Enable automated security fixes for a repository + # @client.enable_automated_security_fixes("octokit/octokit.rb") + def enable_automated_security_fixes(repo, options = {}) + boolean_from_response(:put, "#{Repository.path repo}/automated-security-fixes", options) + end + + # Disable automated security fixes for a repository + # + # @param repo [Integer, String, Hash, Repository] A GitHub repository. + # @param options [Hash] + # + # @return [Boolean] True if vulnerability alerts disabled, false otherwise. + # @see https://docs.github.com/en/rest/reference/repos#automated-security-fixes + # @example Disable automated security fixes for a repository + # @client.disable_automated_security_fixes("octokit/octokit.rb") + def disable_automated_security_fixes(repo, options = {}) + boolean_from_response(:delete, "#{Repository.path repo}/automated-security-fixes", options) + end end end end diff --git a/spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_false_with_automated_security_fixes_disabled.json b/spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_false_with_automated_security_fixes_disabled.json new file mode 100644 index 000000000..4cb5193db --- /dev/null +++ b/spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_false_with_automated_security_fixes_disabled.json @@ -0,0 +1,229 @@ +{ + "http_interactions": [ + { + "request": { + "method": "delete", + "uri": "https://api.github.com/repos///automated-security-fixes", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Date": [ + "Thu, 18 Jul 2024 13:41:54 GMT" + ], + "X-Oauth-Scopes": [ + "admin:public_key, codespace, gist, read:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4894" + ], + "X-Ratelimit-Reset": [ + "1721311964" + ], + "X-Ratelimit-Used": [ + "106" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DA10:39DB3F:20F911E:3DE6752:66991BA1" + ], + "Server": [ + "github.com" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 18 Jul 2024 13:41:54 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos///automated-security-fixes", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Thu, 18 Jul 2024 13:41:54 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "W/\"7a86f4321c1d0f17a11c8d0a1c1105f6bda69697bfd035b8d50a6cda1e17c5a6\"" + ], + "X-Oauth-Scopes": [ + "admin:public_key, codespace, gist, read:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4891" + ], + "X-Ratelimit-Reset": [ + "1721311964" + ], + "X-Ratelimit-Used": [ + "109" + ], + "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'" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Github-Request-Id": [ + "DA13:209DFA:411CDC6:78D2A89:66991BA2" + ], + "Server": [ + "github.com" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJlbmFibGVkIjpmYWxzZSwicGF1c2VkIjpmYWxzZX0=\n" + } + }, + "recorded_at": "Thu, 18 Jul 2024 13:41:54 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_true_when_automated_security_fixes_are_enabled.json b/spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_true_when_automated_security_fixes_are_enabled.json new file mode 100644 index 000000000..c6dfd1793 --- /dev/null +++ b/spec/cassettes/Octokit_Client_Repositories/_automated_security_fixes_enabled_/returns_true_when_automated_security_fixes_are_enabled.json @@ -0,0 +1,229 @@ +{ + "http_interactions": [ + { + "request": { + "method": "put", + "uri": "https://api.github.com/repos///automated-security-fixes", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Date": [ + "Thu, 18 Jul 2024 13:41:38 GMT" + ], + "X-Oauth-Scopes": [ + "admin:public_key, codespace, gist, read:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4900" + ], + "X-Ratelimit-Reset": [ + "1721311964" + ], + "X-Ratelimit-Used": [ + "100" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DA06:307B49:219DF39:3F47174:66991B92" + ], + "Server": [ + "github.com" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 18 Jul 2024 13:41:38 GMT" + }, + { + "request": { + "method": "get", + "uri": "https://api.github.com/repos///automated-security-fixes", + "body": { + "encoding": "US-ASCII", + "base64_string": "" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Thu, 18 Jul 2024 13:41:39 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "W/\"c1017bef99473260bb4a77e5bbf50af9cb7623bcb9c42ea3b4d06941dddb5a57\"" + ], + "X-Oauth-Scopes": [ + "admin:public_key, codespace, gist, read:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4897" + ], + "X-Ratelimit-Reset": [ + "1721311964" + ], + "X-Ratelimit-Used": [ + "103" + ], + "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'" + ], + "Transfer-Encoding": [ + "chunked" + ], + "X-Github-Request-Id": [ + "DA0B:307B49:219E2A7:3F47802:66991B93" + ], + "Server": [ + "github.com" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJlbmFibGVkIjp0cnVlLCJwYXVzZWQiOmZhbHNlfQ==\n" + } + }, + "recorded_at": "Thu, 18 Jul 2024 13:41:39 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_Repositories/_disable_automated_security_fixes/disables_automated_security_fixes_for_the_repository.json b/spec/cassettes/Octokit_Client_Repositories/_disable_automated_security_fixes/disables_automated_security_fixes_for_the_repository.json new file mode 100644 index 000000000..2cd56ff8a --- /dev/null +++ b/spec/cassettes/Octokit_Client_Repositories/_disable_automated_security_fixes/disables_automated_security_fixes_for_the_repository.json @@ -0,0 +1,111 @@ +{ + "http_interactions": [ + { + "request": { + "method": "delete", + "uri": "https://api.github.com/repos///automated-security-fixes", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Date": [ + "Thu, 18 Jul 2024 13:42:37 GMT" + ], + "X-Oauth-Scopes": [ + "admin:public_key, codespace, gist, read:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4885" + ], + "X-Ratelimit-Reset": [ + "1721311964" + ], + "X-Ratelimit-Used": [ + "115" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DA2A:1CD271:1234B45:231003D:66991BCC" + ], + "Server": [ + "github.com" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 18 Jul 2024 13:42:37 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/cassettes/Octokit_Client_Repositories/_enable_automated_security_fixes/enables_automated_security_fixes_for_the_repository.json b/spec/cassettes/Octokit_Client_Repositories/_enable_automated_security_fixes/enables_automated_security_fixes_for_the_repository.json new file mode 100644 index 000000000..b39710de0 --- /dev/null +++ b/spec/cassettes/Octokit_Client_Repositories/_enable_automated_security_fixes/enables_automated_security_fixes_for_the_repository.json @@ -0,0 +1,111 @@ +{ + "http_interactions": [ + { + "request": { + "method": "put", + "uri": "https://api.github.com/repos///automated-security-fixes", + "body": { + "encoding": "UTF-8", + "base64_string": "e30=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 204, + "message": "No Content" + }, + "headers": { + "Date": [ + "Thu, 18 Jul 2024 13:42:24 GMT" + ], + "X-Oauth-Scopes": [ + "admin:public_key, codespace, gist, read:org, repo" + ], + "X-Accepted-Oauth-Scopes": [ + "repo" + ], + "X-Oauth-Client-Id": [ + "178c6fc778ccc68e1d6a" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4888" + ], + "X-Ratelimit-Reset": [ + "1721311964" + ], + "X-Ratelimit-Used": [ + "112" + ], + "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'" + ], + "Vary": [ + "Accept-Encoding, Accept, X-Requested-With" + ], + "X-Github-Request-Id": [ + "DA25:1AD52:11B9514:2215AE5:66991BC0" + ], + "Server": [ + "github.com" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "" + } + }, + "recorded_at": "Thu, 18 Jul 2024 13:42:24 GMT" + } + ], + "recorded_with": "VCR 6.2.0" +} \ No newline at end of file diff --git a/spec/octokit/client/repositories_spec.rb b/spec/octokit/client/repositories_spec.rb index ce5ea21fe..4a83a7ff5 100644 --- a/spec/octokit/client/repositories_spec.rb +++ b/spec/octokit/client/repositories_spec.rb @@ -609,4 +609,38 @@ expect(result).to be true end end # .disable_vulnerability_alerts + + describe '.automated_security_fixes_enabled?', :vcr do + it 'returns true when automated security fixes are enabled' do + @client.enable_automated_security_fixes(@test_repo) + + result = @client.automated_security_fixes_enabled?(@test_repo) + assert_requested :get, github_url("/repos/#{@test_repo}/automated-security-fixes") + expect(result).to be true + end + + it 'returns false with automated security fixes disabled' do + @client.disable_automated_security_fixes(@test_repo) + + result = @client.automated_security_fixes_enabled?(@test_repo) + assert_requested :get, github_url("/repos/#{@test_repo}/automated-security-fixes") + expect(result).to be false + end + end # .automated_security_fixes_enabled? + + describe '.enable_automated_security_fixes', :vcr do + it 'enables automated security fixes for the repository' do + result = @client.enable_automated_security_fixes(@test_repo) + assert_requested :put, github_url("/repos/#{@test_repo}/automated-security-fixes") + expect(result).to be true + end + end # .enable_automated_security_fixes + + describe '.disable_automated_security_fixes', :vcr do + it 'disables automated security fixes for the repository' do + result = @client.disable_automated_security_fixes(@test_repo) + assert_requested :delete, github_url("/repos/#{@test_repo}/automated-security-fixes") + expect(result).to be true + end + end # .disable_automated_security_fixes end From a4bae886efeaafaca8958f7c594b1aa8c0eaa901 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Tue, 23 Jul 2024 13:02:15 +0200 Subject: [PATCH 72/75] Fix compatibility with Ruby 3.4 But also older Rubies if the default URI parser is set to `RFC3986`. --- lib/octokit/repository.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/octokit/repository.rb b/lib/octokit/repository.rb index c6524cef1..47f9a26f1 100644 --- a/lib/octokit/repository.rb +++ b/lib/octokit/repository.rb @@ -81,8 +81,14 @@ def url private + ABS_URI_REGEXP = if URI.const_defined?(:RFC2396_PARSER) # Ruby 3.4+ + URI::RFC2396_PARSER.regexp.fetch(:ABS_URI) + else + URI::RFC2396_Parser.new.regexp.fetch(:ABS_URI) + end + def validate_owner_and_name!(repo) - if @owner.include?('/') || @name.include?('/') || !url.match(URI::ABS_URI) + if @owner.include?('/') || @name.include?('/') || !url.match?(ABS_URI_REGEXP) raise_invalid_repository!(repo) end end From 32b73b67f6676b24f5bd0eb58b332c4312934603 Mon Sep 17 00:00:00 2001 From: Edouard CHIN Date: Tue, 3 Sep 2024 16:25:38 +0200 Subject: [PATCH 73/75] Raise an error at runtime when Faraday Multipart is not installed: - In 7bc6dd50d9d82cd1ce1e025b8aaf34f9823846a2, a warning message was added to let users know that faraday-multipart is required when using Faraday 2.0. This warning is not very helpful, and may lead to projects adding the gem to their dependencies even if they don't need it, as the faraday-multipart middleware is only used for uploading license for GitHub entrepise. This patch will avoid printing the warning unnecessarily but also display a better error message when ultimately the call to `conn.request :multipart` fails. Fix #1701 --- lib/octokit/default.rb | 5 ----- .../management_console.rb | 9 ++++++++- lib/octokit/manage_ghes_client/manage_ghes.rb | 9 ++++++++- .../management_console_spec.rb | 9 +++++++++ spec/octokit/ghes_manage_client/ghes_manage_spec.rb | 9 +++++++++ 5 files changed, 34 insertions(+), 7 deletions(-) diff --git a/lib/octokit/default.rb b/lib/octokit/default.rb index 35eba066a..ca2e2fb73 100644 --- a/lib/octokit/default.rb +++ b/lib/octokit/default.rb @@ -12,11 +12,6 @@ rescue LoadError Octokit::Warnable.octokit_warn 'To use retry middleware with Faraday v2.0+, install `faraday-retry` gem' end - begin - require 'faraday/multipart' - rescue LoadError - Octokit::Warnable.octokit_warn 'To use multipart middleware with Faraday v2.0+, install `faraday-multipart` gem; note: this is used by the ManageGHES client for uploading licenses' - end end module Octokit diff --git a/lib/octokit/enterprise_management_console_client/management_console.rb b/lib/octokit/enterprise_management_console_client/management_console.rb index 4355ebfbb..587187063 100644 --- a/lib/octokit/enterprise_management_console_client/management_console.rb +++ b/lib/octokit/enterprise_management_console_client/management_console.rb @@ -171,7 +171,14 @@ def password_hash def faraday_configuration @faraday_configuration ||= Faraday.new(url: @management_console_endpoint) do |http| http.headers[:user_agent] = user_agent - http.request :multipart + begin + http.request :multipart + rescue Faraday::Error + raise Faraday::Error, <<~ERROR + The `faraday-multipart` gem is required to upload a license. + Please add `gem "faraday-multipart"` to your Gemfile. + ERROR + end http.request :url_encoded # Disabling SSL is essential for certain self-hosted Enterprise instances diff --git a/lib/octokit/manage_ghes_client/manage_ghes.rb b/lib/octokit/manage_ghes_client/manage_ghes.rb index 806614a8e..53ca79665 100644 --- a/lib/octokit/manage_ghes_client/manage_ghes.rb +++ b/lib/octokit/manage_ghes_client/manage_ghes.rb @@ -36,7 +36,14 @@ def set_maintenance_mode(enabled, options = {}) # @return [nil] def upload_license(license) conn = authenticated_client - conn.request :multipart + begin + conn.request :multipart + rescue Faraday::Error + raise Faraday::Error, <<~ERROR + The `faraday-multipart` gem is required to upload a license. + Please add `gem "faraday-multipart"` to your Gemfile. + ERROR + end params = {} params[:license] = Faraday::FilePart.new(license, 'binary') params[:password] = @manage_ghes_password diff --git a/spec/octokit/enterprise_management_console_client/management_console_spec.rb b/spec/octokit/enterprise_management_console_client/management_console_spec.rb index 1cc802af7..a2049a1dc 100644 --- a/spec/octokit/enterprise_management_console_client/management_console_spec.rb +++ b/spec/octokit/enterprise_management_console_client/management_console_spec.rb @@ -14,6 +14,15 @@ expect(@enterprise_management_console_client.last_response.status).to eq(202) assert_requested :post, github_management_console_url('setup/api/start') end + + it 'raises an error if the faraday-multipart gem is not installed' do + middleware_key = :multipart + middleware = Faraday::Request.unregister_middleware(middleware_key) + + expect { @enterprise_management_console_client.upload_license(@license) }.to raise_error Faraday::Error + ensure + Faraday::Request.register_middleware(middleware_key => middleware) if middleware + end end # .upload_license describe '.start_configuration', :vcr do diff --git a/spec/octokit/ghes_manage_client/ghes_manage_spec.rb b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb index 4cbf3fac0..e63079904 100644 --- a/spec/octokit/ghes_manage_client/ghes_manage_spec.rb +++ b/spec/octokit/ghes_manage_client/ghes_manage_spec.rb @@ -38,6 +38,15 @@ expect(@manage_ghes.last_response.status).to eq(202) assert_requested :post, github_manage_ghes_url('/manage/v1/config/init') end + + it 'raises an error if the faraday-multipart gem is not installed' do + middleware_key = :multipart + middleware = Faraday::Request.unregister_middleware(middleware_key) + + expect { @manage_ghes.upload_license(@license) }.to raise_error Faraday::Error + ensure + Faraday::Request.register_middleware(middleware_key => middleware) if middleware + end end # .upload_license describe '.start_configuration', :vcr do From 71e3d209400ff29440d87581db90314b6272355b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:12:04 -0700 Subject: [PATCH 74/75] Update rubocop requirement from 1.65.0 to 1.66.1 (#1714) Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.65.0...v1.66.1) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 0af8fe122..71a6aafac 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ group :test, :development do gem 'bundler', '>= 1', '< 3' gem 'pry-byebug' gem 'redcarpet' - gem 'rubocop', '1.65.0' + gem 'rubocop', '1.66.1' end gemspec From c0ce2e5b43757f386f4038e19254b1fe77400aad Mon Sep 17 00:00:00 2001 From: Camillo Facello Date: Fri, 11 Oct 2024 15:41:29 -0300 Subject: [PATCH 75/75] Add support for file comments in PRs (#1717) * Add specs for file PR comments * Add support for file comments in PRs --- lib/octokit/client/pull_requests.rb | 24 +- ...t_on_a_pull_request_at_the_file_level.json | 356 ++++++++++++++++++ spec/octokit/client/pull_requests_spec.rb | 16 +- 3 files changed, 386 insertions(+), 10 deletions(-) create mode 100644 spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/methods_requiring_a_pull_request_comment/_create_pull_request_comment/without_line_argument/creates_a_new_comment_on_a_pull_request_at_the_file_level.json diff --git a/lib/octokit/client/pull_requests.rb b/lib/octokit/client/pull_requests.rb index b0f2124a6..086f573dc 100644 --- a/lib/octokit/client/pull_requests.rb +++ b/lib/octokit/client/pull_requests.rb @@ -197,22 +197,30 @@ def pull_request_comment(repo, comment_id, options = {}) # @param body [String] Comment content # @param commit_id [String] Sha of the commit to comment on. # @param path [String] Relative path of the file to comment on. - # @param line [Integer] Line index in the diff to comment on. + # @param line [Integer] Optional line index in the diff to comment on. # For a multi-line comment, the last line of the range # and specify 'start_line' in the 'options'. + # If not specified, the comment will be on the whole file. # @return [Sawyer::Resource] Hash representing the new comment # @deprecated The position will be deprecated in the next major version. Please refer to the details below. # @see https://developer.github.com/v3/pulls/comments/#create-a-comment # @example # @client.create_pull_request_comment("octokit/octokit.rb", 163, ":shipit:", # "2d3201e4440903d8b04a5487842053ca4883e5f0", "lib/octokit/request.rb", 47) - def create_pull_request_comment(repo, pull_id, body, commit_id, path, line, options = {}) - options.merge!({ - body: body, - commit_id: commit_id, - path: path, - line: line - }) + def create_pull_request_comment(repo, pull_id, body, commit_id, path, line = nil, options = {}) + comment = { + body: body, + commit_id: commit_id, + path: path + } + + if line.nil? + comment[:subject_type] = 'file' + else + comment[:line] = line + end + + options.merge! comment post "#{Repository.path repo}/pulls/#{pull_id}/comments", options end alias create_pull_comment create_pull_request_comment diff --git a/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/methods_requiring_a_pull_request_comment/_create_pull_request_comment/without_line_argument/creates_a_new_comment_on_a_pull_request_at_the_file_level.json b/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/methods_requiring_a_pull_request_comment/_create_pull_request_comment/without_line_argument/creates_a_new_comment_on_a_pull_request_at_the_file_level.json new file mode 100644 index 000000000..72320c5c5 --- /dev/null +++ b/spec/cassettes/Octokit_Client_PullRequests/methods_that_require_a_new_pull/methods_requiring_a_pull_request_comment/_create_pull_request_comment/without_line_argument/creates_a_new_comment_on_a_pull_request_at_the_file_level.json @@ -0,0 +1,356 @@ +{ + "http_interactions": [ + { + "request": { + "method": "post", + "uri": "https://api.github.com/repos///pulls", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJiYXNlIjoibWFzdGVyIiwiaGVhZCI6ImJyYW5jaC1mb3ItcHIiLCJ0aXRs\nZSI6IkEgbmV3IFBSIiwiYm9keSI6IlRoZSBCb2R5In0=\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Thu, 10 Oct 2024 16:05:34 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "15381" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"8f9ee31eb309c935f9e6ea1454bb2d5064a37db56f1c5642afc23a4cf774e768\"" + ], + "Github-Authentication-Token-Expiration": [ + "2024-10-17 12:00:07 -0300" + ], + "Location": [ + "https://api.github.com/repos///pulls/5" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Accepted-Github-Permissions": [ + "pull_requests=write" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4887" + ], + "X-Ratelimit-Reset": [ + "1728577221" + ], + "X-Ratelimit-Used": [ + "113" + ], + "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'" + ], + "Server": [ + "github.com" + ], + "X-Github-Request-Id": [ + "F914:30CA90:31906D:34479C:6707FB4D" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy81IiwiaWQi\nOjIxMTgwMzAwMTgsIm5vZGVfaWQiOiJQUl9rd0RPTS1aeUE4NS1QcExDIiwi\naHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvNSIsImRpZmZfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9wdWxsLzUuZGlmZiIsInBhdGNoX3VybCI6Imh0dHBz\nOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbC81LnBhdGNoIiwiaXNzdWVfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzUiLCJudW1iZXIiOjUsInN0YXRlIjoi\nb3BlbiIsImxvY2tlZCI6ZmFsc2UsInRpdGxlIjoiQSBuZXcgUFIiLCJ1c2Vy\nIjp7ImxvZ2luIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6NTI0MTk5NzcsIm5v\nZGVfaWQiOiJNRFE2VlhObGNqVXlOREU1T1RjMyIsImF2YXRhcl91cmwiOiJo\ndHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTI0MTk5\nNzc/dj00IiwiZ3JhdmF0YXJfaWQiOiIiLCJ1cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+IiwiaHRtbF91cmwiOiJo\ndHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4iLCJmb2xsb3dlcnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9mb2xsb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9mb2xsb3dpbmd7L290\naGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9naXN0c3svZ2lzdF9pZH0iLCJzdGFy\ncmVkX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhV\nQl9MT0dJTj4vc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlv\nbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVC\nX0xPR0lOPi9zdWJzY3JpcHRpb25zIiwib3JnYW5pemF0aW9uc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L29y\nZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L3JlcG9zIiwiZXZlbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZXZlbnRzey9w\ncml2YWN5fSIsInJlY2VpdmVkX2V2ZW50c191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3JlY2VpdmVkX2V2ZW50\ncyIsInR5cGUiOiJVc2VyIiwic2l0ZV9hZG1pbiI6ZmFsc2V9LCJib2R5Ijoi\nVGhlIEJvZHkiLCJjcmVhdGVkX2F0IjoiMjAyNC0xMC0xMFQxNjowNTozNFoi\nLCJ1cGRhdGVkX2F0IjoiMjAyNC0xMC0xMFQxNjowNTozNFoiLCJjbG9zZWRf\nYXQiOm51bGwsIm1lcmdlZF9hdCI6bnVsbCwibWVyZ2VfY29tbWl0X3NoYSI6\nbnVsbCwiYXNzaWduZWUiOm51bGwsImFzc2lnbmVlcyI6W10sInJlcXVlc3Rl\nZF9yZXZpZXdlcnMiOltdLCJyZXF1ZXN0ZWRfdGVhbXMiOltdLCJsYWJlbHMi\nOltdLCJtaWxlc3RvbmUiOm51bGwsImRyYWZ0IjpmYWxzZSwiY29tbWl0c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy81L2NvbW1pdHMi\nLCJyZXZpZXdfY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vcHVsbHMvNS9jb21tZW50cyIsInJldmlld19jb21tZW50X3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzL2NvbW1lbnRzey9udW1iZXJ9\nIiwiY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNz\ndWVzLzUvY29tbWVudHMiLCJzdGF0dXNlc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9zdGF0dXNlcy85MmMwNjM5NjA2ZjI3ZjgyNDc5M2M1Nzlm\nZGEyN2EwZjliODg1ZDA0IiwiaGVhZCI6eyJsYWJlbCI6IjxHSVRIVUJfTE9H\nSU4+OmJyYW5jaC1mb3ItcHIiLCJyZWYiOiJicmFuY2gtZm9yLXByIiwic2hh\nIjoiOTJjMDYzOTYwNmYyN2Y4MjQ3OTNjNTc5ZmRhMjdhMGY5Yjg4NWQwNCIs\nInVzZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo1MjQxOTk3\nNywibm9kZV9pZCI6Ik1EUTZWWE5sY2pVeU5ERTVPVGMzIiwiYXZhdGFyX3Vy\nbCI6Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81\nMjQxOTk3Nz92PTQiLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxv\nd2Vyc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2lu\nZ3svb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIs\nInN0YXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88\nR0lUSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2Ny\naXB0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxH\nSVRIVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4vb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ndXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVu\ndHN7L3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRf\nZXZlbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sInJl\ncG8iOnsiaWQiOjg3MDc0MDQ4Mywibm9kZV9pZCI6IlJfa2dET00tWnlBdyIs\nIm5hbWUiOiI8R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJmdWxsX25hbWUi\nOiI8R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJw\ncml2YXRlIjp0cnVlLCJvd25lciI6eyJsb2dpbiI6IjxHSVRIVUJfTE9HSU4+\nIiwiaWQiOjUyNDE5OTc3LCJub2RlX2lkIjoiTURRNlZYTmxjalV5TkRFNU9U\nYzMiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJj\nb250ZW50LmNvbS91LzUyNDE5OTc3P3Y9NCIsImdyYXZhdGFyX2lkIjoiIiwi\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJf\nTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93ZXJzIiwiZm9sbG93aW5n\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9M\nT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIsImdpc3RzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZ2lz\ndHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0YXJyZWR7L293bmVyfXsv\ncmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vic2NyaXB0aW9ucyIsIm9y\nZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy\ncy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3NfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZXBvcyIsImV2\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJyZWNlaXZlZF9ldmVudHNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoiVXNlciIsInNpdGVfYWRt\naW4iOmZhbHNlfSwiaHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+IiwiZGVzY3Jp\ncHRpb24iOm51bGwsImZvcmsiOmZhbHNlLCJ1cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPiIsImZvcmtzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2ZvcmtzIiwia2V5c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9rZXlzey9rZXlfaWR9IiwiY29sbGFib3JhdG9yc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9jb2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9\nIiwidGVhbXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vdGVhbXMi\nLCJob29rc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9ob29rcyIs\nImlzc3VlX2V2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9p\nc3N1ZXMvZXZlbnRzey9udW1iZXJ9IiwiZXZlbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L2V2ZW50cyIsImFzc2lnbmVlc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9hc3NpZ25lZXN7L3VzZXJ9IiwiYnJhbmNo\nZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vYnJhbmNoZXN7L2Jy\nYW5jaH0iLCJ0YWdzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3Rh\nZ3MiLCJibG9ic191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQv\nYmxvYnN7L3NoYX0iLCJnaXRfdGFnc191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9naXQvdGFnc3svc2hhfSIsImdpdF9yZWZzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L2dpdC9yZWZzey9zaGF9IiwidHJlZXNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L3RyZWVzey9zaGF9Iiwi\nc3RhdHVzZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3RhdHVz\nZXMve3NoYX0iLCJsYW5ndWFnZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vbGFuZ3VhZ2VzIiwic3RhcmdhemVyc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9zdGFyZ2F6ZXJzIiwiY29udHJpYnV0b3JzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbnRyaWJ1dG9ycyIsInN1YnNj\ncmliZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3N1YnNjcmli\nZXJzIiwic3Vic2NyaXB0aW9uX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L3N1YnNjcmlwdGlvbiIsImNvbW1pdHNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vY29tbWl0c3svc2hhfSIsImdpdF9jb21taXRzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC9jb21taXRzey9zaGF9Iiwi\nY29tbWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29tbWVu\ndHN7L251bWJlcn0iLCJpc3N1ZV9jb21tZW50X3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsImNvbnRl\nbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbnRlbnRzL3sr\ncGF0aH0iLCJjb21wYXJlX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9IiwibWVyZ2VzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L21lcmdlcyIsImFyY2hpdmVfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4ve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIs\nImRvd25sb2Fkc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9kb3du\nbG9hZHMiLCJpc3N1ZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\naXNzdWVzey9udW1iZXJ9IiwicHVsbHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbHN7L251bWJlcn0iLCJtaWxlc3RvbmVzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L21pbGVzdG9uZXN7L251bWJlcn0iLCJu\nb3RpZmljYXRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L25v\ndGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsImxhYmVs\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9sYWJlbHN7L25hbWV9\nIiwicmVsZWFzZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcmVs\nZWFzZXN7L2lkfSIsImRlcGxveW1lbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L2RlcGxveW1lbnRzIiwiY3JlYXRlZF9hdCI6IjIwMjQtMTAt\nMTBUMTU6MjQ6NDBaIiwidXBkYXRlZF9hdCI6IjIwMjQtMTAtMTBUMTU6MjU6\nMTdaIiwicHVzaGVkX2F0IjoiMjAyNC0xMC0xMFQxNTozMTo1OVoiLCJnaXRf\ndXJsIjoiZ2l0Oi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4uZ2l0Iiwic3NoX3VybCI6ImdpdEBnaXRodWIu\nY29tOjxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi5n\naXQiLCJjbG9uZV91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIsInN2bl91cmwi\nOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+IiwiaG9tZXBhZ2UiOm51bGwsInNpemUiOjAsInN0\nYXJnYXplcnNfY291bnQiOjAsIndhdGNoZXJzX2NvdW50IjowLCJsYW5ndWFn\nZSI6bnVsbCwiaGFzX2lzc3VlcyI6dHJ1ZSwiaGFzX3Byb2plY3RzIjp0cnVl\nLCJoYXNfZG93bmxvYWRzIjp0cnVlLCJoYXNfd2lraSI6ZmFsc2UsImhhc19w\nYWdlcyI6ZmFsc2UsImhhc19kaXNjdXNzaW9ucyI6ZmFsc2UsImZvcmtzX2Nv\ndW50IjowLCJtaXJyb3JfdXJsIjpudWxsLCJhcmNoaXZlZCI6ZmFsc2UsImRp\nc2FibGVkIjpmYWxzZSwib3Blbl9pc3N1ZXNfY291bnQiOjEsImxpY2Vuc2Ui\nOm51bGwsImFsbG93X2ZvcmtpbmciOnRydWUsImlzX3RlbXBsYXRlIjpmYWxz\nZSwid2ViX2NvbW1pdF9zaWdub2ZmX3JlcXVpcmVkIjpmYWxzZSwidG9waWNz\nIjpbXSwidmlzaWJpbGl0eSI6InByaXZhdGUiLCJmb3JrcyI6MCwib3Blbl9p\nc3N1ZXMiOjEsIndhdGNoZXJzIjowLCJkZWZhdWx0X2JyYW5jaCI6Im1hc3Rl\nciJ9fSwiYmFzZSI6eyJsYWJlbCI6IjxHSVRIVUJfTE9HSU4+Om1hc3RlciIs\nInJlZiI6Im1hc3RlciIsInNoYSI6IjNkN2IyMGQyNjlmMDYzOTc3YTViZGMz\nMTgxOTExNTAzNzcxMjVhMGEiLCJ1c2VyIjp7ImxvZ2luIjoiPEdJVEhVQl9M\nT0dJTj4iLCJpZCI6NTI0MTk5NzcsIm5vZGVfaWQiOiJNRFE2VlhObGNqVXlO\nREU1T1RjMyIsImF2YXRhcl91cmwiOiJodHRwczovL2F2YXRhcnMuZ2l0aHVi\ndXNlcmNvbnRlbnQuY29tL3UvNTI0MTk5Nzc/dj00IiwiZ3JhdmF0YXJfaWQi\nOiIiLCJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+IiwiaHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJ\nVEhVQl9MT0dJTj4iLCJmb2xsb3dlcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9mb2xsb3dlcnMiLCJmb2xs\nb3dpbmdfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwiZ2lzdHNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lO\nPi9naXN0c3svZ2lzdF9pZH0iLCJzdGFycmVkX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3RhcnJlZHsvb3du\nZXJ9ey9yZXBvfSIsInN1YnNjcmlwdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9zdWJzY3JpcHRpb25z\nIiwib3JnYW5pemF0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzLzxHSVRIVUJfTE9HSU4+L29yZ3MiLCJyZXBvc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3JlcG9z\nIiwiZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vZXZlbnRzey9wcml2YWN5fSIsInJlY2VpdmVkX2V2\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L3JlY2VpdmVkX2V2ZW50cyIsInR5cGUiOiJVc2VyIiwic2l0\nZV9hZG1pbiI6ZmFsc2V9LCJyZXBvIjp7ImlkIjo4NzA3NDA0ODMsIm5vZGVf\naWQiOiJSX2tnRE9NLVp5QXciLCJuYW1lIjoiPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+IiwiZnVsbF9uYW1lIjoiPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+IiwicHJpdmF0ZSI6dHJ1ZSwib3duZXIiOnsibG9n\naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo1MjQxOTk3Nywibm9kZV9pZCI6\nIk1EUTZWWE5sY2pVeU5ERTVPVGMzIiwiYXZhdGFyX3VybCI6Imh0dHBzOi8v\nYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MjQxOTk3Nz92PTQi\nLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6Imh0dHBzOi8v\nZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vyc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2Zv\nbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3svb3RoZXJfdXNl\ncn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lO\nPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0aW9uc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+\nL3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vb3JncyIsInJl\ncG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhV\nQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7L3ByaXZhY3l9\nIiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZlbnRzIiwidHlw\nZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sImh0bWxfdXJsIjoiaHR0\ncHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPiIsImRlc2NyaXB0aW9uIjpudWxsLCJmb3JrIjpmYWxzZSwi\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJmb3Jrc191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9mb3JrcyIsImtleXNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4va2V5c3sva2V5X2lkfSIsImNvbGxhYm9y\nYXRvcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29sbGFib3Jh\ndG9yc3svY29sbGFib3JhdG9yfSIsInRlYW1zX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L3RlYW1zIiwiaG9va3NfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vaG9va3MiLCJpc3N1ZV9ldmVudHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4vaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsImV2\nZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9ldmVudHMiLCJh\nc3NpZ25lZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vYXNzaWdu\nZWVzey91c2VyfSIsImJyYW5jaGVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+L2JyYW5jaGVzey9icmFuY2h9IiwidGFnc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi90YWdzIiwiYmxvYnNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vZ2l0L2Jsb2Jzey9zaGF9IiwiZ2l0X3RhZ3NfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L3RhZ3N7L3NoYX0iLCJn\naXRfcmVmc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvcmVm\nc3svc2hhfSIsInRyZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL2dpdC90cmVlc3svc2hhfSIsInN0YXR1c2VzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L3N0YXR1c2VzL3tzaGF9IiwibGFuZ3VhZ2VzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2xhbmd1YWdlcyIsInN0YXJnYXpl\ncnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3RhcmdhemVycyIs\nImNvbnRyaWJ1dG9yc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9j\nb250cmlidXRvcnMiLCJzdWJzY3JpYmVyc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9zdWJzY3JpYmVycyIsInN1YnNjcmlwdGlvbl91cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdWJzY3JpcHRpb24iLCJjb21taXRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbW1pdHN7L3NoYX0i\nLCJnaXRfY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9n\naXQvY29tbWl0c3svc2hhfSIsImNvbW1lbnRzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L2NvbW1lbnRzey9udW1iZXJ9IiwiaXNzdWVfY29tbWVu\ndF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXMvY29tbWVu\ndHN7L251bWJlcn0iLCJjb250ZW50c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9jb250ZW50cy97K3BhdGh9IiwiY29tcGFyZV91cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIs\nIm1lcmdlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9tZXJnZXMi\nLCJhcmNoaXZlX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3thcmNo\naXZlX2Zvcm1hdH17L3JlZn0iLCJkb3dubG9hZHNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vZG93bmxvYWRzIiwiaXNzdWVzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vlc3svbnVtYmVyfSIsInB1bGxzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzey9udW1iZXJ9Iiwi\nbWlsZXN0b25lc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9taWxl\nc3RvbmVzey9udW1iZXJ9Iiwibm90aWZpY2F0aW9uc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9ub3RpZmljYXRpb25zez9zaW5jZSxhbGwscGFy\ndGljaXBhdGluZ30iLCJsYWJlbHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vbGFiZWxzey9uYW1lfSIsInJlbGVhc2VzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L3JlbGVhc2Vzey9pZH0iLCJkZXBsb3ltZW50c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9kZXBsb3ltZW50cyIsImNy\nZWF0ZWRfYXQiOiIyMDI0LTEwLTEwVDE1OjI0OjQwWiIsInVwZGF0ZWRfYXQi\nOiIyMDI0LTEwLTEwVDE1OjI1OjE3WiIsInB1c2hlZF9hdCI6IjIwMjQtMTAt\nMTBUMTU6MzE6NTlaIiwiZ2l0X3VybCI6ImdpdDovL2dpdGh1Yi5jb20vPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIsInNz\naF91cmwiOiJnaXRAZ2l0aHViLmNvbTo8R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4uZ2l0IiwiY2xvbmVfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi5naXQiLCJzdm5fdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsImhvbWVwYWdl\nIjpudWxsLCJzaXplIjowLCJzdGFyZ2F6ZXJzX2NvdW50IjowLCJ3YXRjaGVy\nc19jb3VudCI6MCwibGFuZ3VhZ2UiOm51bGwsImhhc19pc3N1ZXMiOnRydWUs\nImhhc19wcm9qZWN0cyI6dHJ1ZSwiaGFzX2Rvd25sb2FkcyI6dHJ1ZSwiaGFz\nX3dpa2kiOmZhbHNlLCJoYXNfcGFnZXMiOmZhbHNlLCJoYXNfZGlzY3Vzc2lv\nbnMiOmZhbHNlLCJmb3Jrc19jb3VudCI6MCwibWlycm9yX3VybCI6bnVsbCwi\nYXJjaGl2ZWQiOmZhbHNlLCJkaXNhYmxlZCI6ZmFsc2UsIm9wZW5faXNzdWVz\nX2NvdW50IjoxLCJsaWNlbnNlIjpudWxsLCJhbGxvd19mb3JraW5nIjp0cnVl\nLCJpc190ZW1wbGF0ZSI6ZmFsc2UsIndlYl9jb21taXRfc2lnbm9mZl9yZXF1\naXJlZCI6ZmFsc2UsInRvcGljcyI6W10sInZpc2liaWxpdHkiOiJwcml2YXRl\nIiwiZm9ya3MiOjAsIm9wZW5faXNzdWVzIjoxLCJ3YXRjaGVycyI6MCwiZGVm\nYXVsdF9icmFuY2giOiJtYXN0ZXIifX0sIl9saW5rcyI6eyJzZWxmIjp7Imhy\nZWYiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy81In0sImh0bWwi\nOnsiaHJlZiI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbC81In0sImlzc3VlIjp7Imhy\nZWYiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXMvNSJ9LCJjb21t\nZW50cyI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88\nR0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNzdWVz\nLzUvY29tbWVudHMifSwicmV2aWV3X2NvbW1lbnRzIjp7ImhyZWYiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy81L2NvbW1lbnRzIn0sInJldmll\nd19jb21tZW50Ijp7ImhyZWYiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9w\ndWxscy9jb21tZW50c3svbnVtYmVyfSJ9LCJjb21taXRzIjp7ImhyZWYiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy81L2NvbW1pdHMifSwic3Rh\ndHVzZXMiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3N0YXR1\nc2VzLzkyYzA2Mzk2MDZmMjdmODI0NzkzYzU3OWZkYTI3YTBmOWI4ODVkMDQi\nfX0sImF1dGhvcl9hc3NvY2lhdGlvbiI6Ik9XTkVSIiwiYXV0b19tZXJnZSI6\nbnVsbCwiYWN0aXZlX2xvY2tfcmVhc29uIjpudWxsLCJtZXJnZWQiOmZhbHNl\nLCJtZXJnZWFibGUiOm51bGwsInJlYmFzZWFibGUiOm51bGwsIm1lcmdlYWJs\nZV9zdGF0ZSI6InVua25vd24iLCJtZXJnZWRfYnkiOm51bGwsImNvbW1lbnRz\nIjowLCJyZXZpZXdfY29tbWVudHMiOjAsIm1haW50YWluZXJfY2FuX21vZGlm\neSI6ZmFsc2UsImNvbW1pdHMiOjEsImFkZGl0aW9ucyI6MSwiZGVsZXRpb25z\nIjoxLCJjaGFuZ2VkX2ZpbGVzIjoxfQ==\n" + } + }, + "recorded_at": "Thu, 10 Oct 2024 16:05:34 GMT" + }, + { + "request": { + "method": "post", + "uri": "https://api.github.com/repos///pulls/5/comments", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJzdWJqZWN0X3R5cGUiOiJmaWxlIiwiYm9keSI6Ikhhd3QiLCJjb21taXRf\naWQiOiI5MmMwNjM5NjA2ZjI3ZjgyNDc5M2M1NzlmZGEyN2EwZjliODg1ZDA0\nIiwicGF0aCI6InRlc3QifQ==\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 201, + "message": "Created" + }, + "headers": { + "Date": [ + "Thu, 10 Oct 2024 16:05:39 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "2173" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "\"db3c2b387512a721071886edc07894cc9a25700052c452224f468607ecae5260\"" + ], + "Github-Authentication-Token-Expiration": [ + "2024-10-17 12:00:07 -0300" + ], + "Location": [ + "https://api.github.com/repos///pulls/comments/1795733015" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Accepted-Github-Permissions": [ + "pull_requests=write" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4884" + ], + "X-Ratelimit-Reset": [ + "1728577221" + ], + "X-Ratelimit-Used": [ + "116" + ], + "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'" + ], + "Server": [ + "github.com" + ], + "X-Github-Request-Id": [ + "F92C:2FD0EE:326770:351F26:6707FB52" + ] + }, + "body": { + "encoding": "UTF-8", + "base64_string": "eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy9jb21tZW50\ncy8xNzk1NzMzMDE1IiwicHVsbF9yZXF1ZXN0X3Jldmlld19pZCI6MjM2MDgy\nNDgwMCwiaWQiOjE3OTU3MzMwMTUsIm5vZGVfaWQiOiJQUlJDX2t3RE9NLVp5\nQTg1ckNMWVgiLCJkaWZmX2h1bmsiOiIiLCJwYXRoIjoidGVzdCIsImNvbW1p\ndF9pZCI6IjkyYzA2Mzk2MDZmMjdmODI0NzkzYzU3OWZkYTI3YTBmOWI4ODVk\nMDQiLCJvcmlnaW5hbF9jb21taXRfaWQiOiI5MmMwNjM5NjA2ZjI3ZjgyNDc5\nM2M1NzlmZGEyN2EwZjliODg1ZDA0IiwidXNlciI6eyJsb2dpbiI6IjxHSVRI\nVUJfTE9HSU4+IiwiaWQiOjUyNDE5OTc3LCJub2RlX2lkIjoiTURRNlZYTmxj\nalV5TkRFNU9UYzMiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdp\ndGh1YnVzZXJjb250ZW50LmNvbS91LzUyNDE5OTc3P3Y9NCIsImdyYXZhdGFy\nX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88\nR0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9naXRodWIuY29t\nLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93ZXJzIiwi\nZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2VyfSIsImdpc3Rz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9M\nT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N0YXJyZWR7\nL293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3Vic2NyaXB0\naW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVwb3NfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9y\nZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Vz\nZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0iLCJyZWNlaXZl\nZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88\nR0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBlIjoiVXNlciIs\nInNpdGVfYWRtaW4iOmZhbHNlfSwiYm9keSI6Ikhhd3QiLCJjcmVhdGVkX2F0\nIjoiMjAyNC0xMC0xMFQxNjowNTozOFoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0x\nMC0xMFQxNjowNTozOFoiLCJodG1sX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNv\nbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVs\nbC81I2Rpc2N1c3Npb25fcjE3OTU3MzMwMTUiLCJwdWxsX3JlcXVlc3RfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvNSIsImF1dGhvcl9h\nc3NvY2lhdGlvbiI6Ik9XTkVSIiwiX2xpbmtzIjp7InNlbGYiOnsiaHJlZiI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzL2NvbW1lbnRzLzE3OTU3\nMzMwMTUifSwiaHRtbCI6eyJocmVmIjoiaHR0cHM6Ly9naXRodWIuY29tLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxsLzUj\nZGlzY3Vzc2lvbl9yMTc5NTczMzAxNSJ9LCJwdWxsX3JlcXVlc3QiOnsiaHJl\nZiI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzLzUifX0sInJlYWN0\naW9ucyI6eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy9j\nb21tZW50cy8xNzk1NzMzMDE1L3JlYWN0aW9ucyIsInRvdGFsX2NvdW50Ijow\nLCIrMSI6MCwiLTEiOjAsImxhdWdoIjowLCJob29yYXkiOjAsImNvbmZ1c2Vk\nIjowLCJoZWFydCI6MCwicm9ja2V0IjowLCJleWVzIjowfSwic3RhcnRfbGlu\nZSI6bnVsbCwib3JpZ2luYWxfc3RhcnRfbGluZSI6bnVsbCwic3RhcnRfc2lk\nZSI6bnVsbCwibGluZSI6MSwib3JpZ2luYWxfbGluZSI6MSwic2lkZSI6IlJJ\nR0hUIiwib3JpZ2luYWxfcG9zaXRpb24iOjEsInBvc2l0aW9uIjoxLCJzdWJq\nZWN0X3R5cGUiOiJmaWxlIn0=\n" + } + }, + "recorded_at": "Thu, 10 Oct 2024 16:05:39 GMT" + }, + { + "request": { + "method": "patch", + "uri": "https://api.github.com/repos///pulls/5", + "body": { + "encoding": "UTF-8", + "base64_string": "eyJzdGF0ZSI6ImNsb3NlZCJ9\n" + }, + "headers": { + "Accept": [ + "application/vnd.github.v3+json" + ], + "User-Agent": [ + "Octokit Ruby Gem 9.1.0" + ], + "Content-Type": [ + "application/json" + ], + "Authorization": [ + "token <>" + ], + "Accept-Encoding": [ + "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" + ] + } + }, + "response": { + "status": { + "code": 200, + "message": "OK" + }, + "headers": { + "Date": [ + "Thu, 10 Oct 2024 16:05:43 GMT" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Cache-Control": [ + "private, max-age=60, s-maxage=60" + ], + "Vary": [ + "Accept, Authorization, Cookie, X-GitHub-OTP,Accept-Encoding, Accept, X-Requested-With" + ], + "Etag": [ + "W/\"a8adc167bb5a84650df5b1120c49baaeb11918343a25994326682bcceddb069d\"" + ], + "Github-Authentication-Token-Expiration": [ + "2024-10-17 12:00:07 -0300" + ], + "X-Github-Media-Type": [ + "github.v3; format=json" + ], + "X-Accepted-Github-Permissions": [ + "pull_requests=write" + ], + "X-Github-Api-Version-Selected": [ + "2022-11-28" + ], + "X-Ratelimit-Limit": [ + "5000" + ], + "X-Ratelimit-Remaining": [ + "4881" + ], + "X-Ratelimit-Reset": [ + "1728577221" + ], + "X-Ratelimit-Used": [ + "119" + ], + "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'" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Server": [ + "github.com" + ], + "X-Github-Request-Id": [ + "F943:2F6FE7:31F9AF:34B1D9:6707FB57" + ] + }, + "body": { + "encoding": "ASCII-8BIT", + "base64_string": "eyJ1cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy81IiwiaWQi\nOjIxMTgwMzAwMTgsIm5vZGVfaWQiOiJQUl9rd0RPTS1aeUE4NS1QcExDIiwi\naHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvNSIsImRpZmZfdXJsIjoi\naHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9wdWxsLzUuZGlmZiIsInBhdGNoX3VybCI6Imh0dHBz\nOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vcHVsbC81LnBhdGNoIiwiaXNzdWVfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4vaXNzdWVzLzUiLCJudW1iZXIiOjUsInN0YXRlIjoi\nY2xvc2VkIiwibG9ja2VkIjpmYWxzZSwidGl0bGUiOiJBIG5ldyBQUiIsInVz\nZXIiOnsibG9naW4iOiI8R0lUSFVCX0xPR0lOPiIsImlkIjo1MjQxOTk3Nywi\nbm9kZV9pZCI6Ik1EUTZWWE5sY2pVeU5ERTVPVGMzIiwiYXZhdGFyX3VybCI6\nImh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MjQx\nOTk3Nz92PTQiLCJncmF2YXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6\nImh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vy\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJf\nTE9HSU4+L2ZvbGxvd2VycyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3sv\nb3RoZXJfdXNlcn0iLCJnaXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0\nYXJyZWRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9zdGFycmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0\naW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L3N1YnNjcmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4v\nb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7\nL3ByaXZhY3l9IiwicmVjZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZl\nbnRzIiwidHlwZSI6IlVzZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sImJvZHki\nOiJUaGUgQm9keSIsImNyZWF0ZWRfYXQiOiIyMDI0LTEwLTEwVDE2OjA1OjM0\nWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTEwLTEwVDE2OjA1OjQzWiIsImNsb3Nl\nZF9hdCI6IjIwMjQtMTAtMTBUMTY6MDU6NDNaIiwibWVyZ2VkX2F0IjpudWxs\nLCJtZXJnZV9jb21taXRfc2hhIjoiOWIwMWQ0NjlhYjkzMmJmMjA5MDNlNDFl\nYjFiNGVhOTBjYjRjNWY5OSIsImFzc2lnbmVlIjpudWxsLCJhc3NpZ25lZXMi\nOltdLCJyZXF1ZXN0ZWRfcmV2aWV3ZXJzIjpbXSwicmVxdWVzdGVkX3RlYW1z\nIjpbXSwibGFiZWxzIjpbXSwibWlsZXN0b25lIjpudWxsLCJkcmFmdCI6ZmFs\nc2UsImNvbW1pdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVs\nbHMvNS9jb21taXRzIiwicmV2aWV3X2NvbW1lbnRzX3VybCI6Imh0dHBzOi8v\nYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9U\nRVNUX1JFUE9TSVRPUlk+L3B1bGxzLzUvY29tbWVudHMiLCJyZXZpZXdfY29t\nbWVudF91cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxscy9jb21t\nZW50c3svbnVtYmVyfSIsImNvbW1lbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L2lzc3Vlcy81L2NvbW1lbnRzIiwic3RhdHVzZXNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3RhdHVzZXMvOTJjMDYzOTYwNmYy\nN2Y4MjQ3OTNjNTc5ZmRhMjdhMGY5Yjg4NWQwNCIsImhlYWQiOnsibGFiZWwi\nOiI8R0lUSFVCX0xPR0lOPjpicmFuY2gtZm9yLXByIiwicmVmIjoiYnJhbmNo\nLWZvci1wciIsInNoYSI6IjkyYzA2Mzk2MDZmMjdmODI0NzkzYzU3OWZkYTI3\nYTBmOWI4ODVkMDQiLCJ1c2VyIjp7ImxvZ2luIjoiPEdJVEhVQl9MT0dJTj4i\nLCJpZCI6NTI0MTk5NzcsIm5vZGVfaWQiOiJNRFE2VlhObGNqVXlOREU1T1Rj\nMyIsImF2YXRhcl91cmwiOiJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNv\nbnRlbnQuY29tL3UvNTI0MTk5Nzc/dj00IiwiZ3JhdmF0YXJfaWQiOiIiLCJ1\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+IiwiaHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9M\nT0dJTj4iLCJmb2xsb3dlcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9mb2xsb3dlcnMiLCJmb2xsb3dpbmdf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xP\nR0lOPi9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9naXN0\nc3svZ2lzdF9pZH0iLCJzdGFycmVkX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vc3RhcnJlZHsvb3duZXJ9ey9y\nZXBvfSIsInN1YnNjcmlwdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9zdWJzY3JpcHRpb25zIiwib3Jn\nYW5pemF0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz\nLzxHSVRIVUJfTE9HSU4+L29yZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3JlcG9zIiwiZXZl\nbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhV\nQl9MT0dJTj4vZXZlbnRzey9wcml2YWN5fSIsInJlY2VpdmVkX2V2ZW50c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+L3JlY2VpdmVkX2V2ZW50cyIsInR5cGUiOiJVc2VyIiwic2l0ZV9hZG1p\nbiI6ZmFsc2V9LCJyZXBvIjp7ImlkIjo4NzA3NDA0ODMsIm5vZGVfaWQiOiJS\nX2tnRE9NLVp5QXciLCJuYW1lIjoiPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nIiwiZnVsbF9uYW1lIjoiPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+IiwicHJpdmF0ZSI6dHJ1ZSwib3duZXIiOnsibG9naW4iOiI8\nR0lUSFVCX0xPR0lOPiIsImlkIjo1MjQxOTk3Nywibm9kZV9pZCI6Ik1EUTZW\nWE5sY2pVeU5ERTVPVGMzIiwiYXZhdGFyX3VybCI6Imh0dHBzOi8vYXZhdGFy\ncy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MjQxOTk3Nz92PTQiLCJncmF2\nYXRhcl9pZCI6IiIsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4iLCJodG1sX3VybCI6Imh0dHBzOi8vZ2l0aHVi\nLmNvbS88R0lUSFVCX0xPR0lOPiIsImZvbGxvd2Vyc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2Vy\ncyIsImZvbGxvd2luZ191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Vz\nZXJzLzxHSVRIVUJfTE9HSU4+L2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLCJn\naXN0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRI\nVUJfTE9HSU4+L2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9zdGFy\ncmVkey9vd25lcn17L3JlcG99Iiwic3Vic2NyaXB0aW9uc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3N1YnNj\ncmlwdGlvbnMiLCJvcmdhbml6YXRpb25zX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vb3JncyIsInJlcG9zX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJ\nTj4vcmVwb3MiLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9ldmVudHN7L3ByaXZhY3l9IiwicmVj\nZWl2ZWRfZXZlbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl\ncnMvPEdJVEhVQl9MT0dJTj4vcmVjZWl2ZWRfZXZlbnRzIiwidHlwZSI6IlVz\nZXIiLCJzaXRlX2FkbWluIjpmYWxzZX0sImh0bWxfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPiIsImRlc2NyaXB0aW9uIjpudWxsLCJmb3JrIjpmYWxzZSwidXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJmb3Jrc191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9mb3JrcyIsImtleXNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RF\nU1RfUkVQT1NJVE9SWT4va2V5c3sva2V5X2lkfSIsImNvbGxhYm9yYXRvcnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29sbGFib3JhdG9yc3sv\nY29sbGFib3JhdG9yfSIsInRlYW1zX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+L3RlYW1zIiwiaG9va3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vaG9va3MiLCJpc3N1ZV9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsImV2ZW50c191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9ldmVudHMiLCJhc3NpZ25l\nZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vYXNzaWduZWVzey91\nc2VyfSIsImJyYW5jaGVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL2JyYW5jaGVzey9icmFuY2h9IiwidGFnc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi90YWdzIiwiYmxvYnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vZ2l0L2Jsb2Jzey9zaGF9IiwiZ2l0X3RhZ3NfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vZ2l0L3RhZ3N7L3NoYX0iLCJnaXRfcmVm\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvcmVmc3svc2hh\nfSIsInRyZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC90\ncmVlc3svc2hhfSIsInN0YXR1c2VzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+L3N0YXR1c2VzL3tzaGF9IiwibGFuZ3VhZ2VzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L2xhbmd1YWdlcyIsInN0YXJnYXplcnNfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lO\nPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3RhcmdhemVycyIsImNvbnRy\naWJ1dG9yc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb250cmli\ndXRvcnMiLCJzdWJzY3JpYmVyc191cmwiOiJodHRwczovL2FwaS5naXRodWIu\nY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi9zdWJzY3JpYmVycyIsInN1YnNjcmlwdGlvbl91cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJf\nVEVTVF9SRVBPU0lUT1JZPi9zdWJzY3JpcHRpb24iLCJjb21taXRzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2NvbW1pdHN7L3NoYX0iLCJnaXRf\nY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9naXQvY29t\nbWl0c3svc2hhfSIsImNvbW1lbnRzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+L2NvbW1lbnRzey9udW1iZXJ9IiwiaXNzdWVfY29tbWVudF91cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXMvY29tbWVudHN7L251\nbWJlcn0iLCJjb250ZW50c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZ\nPi9jb250ZW50cy97K3BhdGh9IiwiY29tcGFyZV91cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsIm1lcmdl\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9tZXJnZXMiLCJhcmNo\naXZlX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3thcmNoaXZlX2Zv\ncm1hdH17L3JlZn0iLCJkb3dubG9hZHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vZG93bmxvYWRzIiwiaXNzdWVzX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNU\nX1JFUE9TSVRPUlk+L2lzc3Vlc3svbnVtYmVyfSIsInB1bGxzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJ\nVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGxzey9udW1iZXJ9IiwibWlsZXN0\nb25lc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRI\nVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9taWxlc3RvbmVz\ney9udW1iZXJ9Iiwibm90aWZpY2F0aW9uc191cmwiOiJodHRwczovL2FwaS5n\naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9S\nRVBPU0lUT1JZPi9ub3RpZmljYXRpb25zez9zaW5jZSxhbGwscGFydGljaXBh\ndGluZ30iLCJsYWJlbHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\nbGFiZWxzey9uYW1lfSIsInJlbGVhc2VzX3VybCI6Imh0dHBzOi8vYXBpLmdp\ndGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JF\nUE9TSVRPUlk+L3JlbGVhc2Vzey9pZH0iLCJkZXBsb3ltZW50c191cmwiOiJo\ndHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxH\nSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9kZXBsb3ltZW50cyIsImNyZWF0ZWRf\nYXQiOiIyMDI0LTEwLTEwVDE1OjI0OjQwWiIsInVwZGF0ZWRfYXQiOiIyMDI0\nLTEwLTEwVDE1OjI1OjE3WiIsInB1c2hlZF9hdCI6IjIwMjQtMTAtMTBUMTU6\nMzE6NTlaIiwiZ2l0X3VybCI6ImdpdDovL2dpdGh1Yi5jb20vPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIsInNzaF91cmwi\nOiJnaXRAZ2l0aHViLmNvbTo8R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4uZ2l0IiwiY2xvbmVfdXJsIjoiaHR0cHM6Ly9naXRodWIu\nY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi5n\naXQiLCJzdm5fdXJsIjoiaHR0cHM6Ly9naXRodWIuY29tLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsImhvbWVwYWdlIjpudWxs\nLCJzaXplIjowLCJzdGFyZ2F6ZXJzX2NvdW50IjowLCJ3YXRjaGVyc19jb3Vu\ndCI6MCwibGFuZ3VhZ2UiOm51bGwsImhhc19pc3N1ZXMiOnRydWUsImhhc19w\ncm9qZWN0cyI6dHJ1ZSwiaGFzX2Rvd25sb2FkcyI6dHJ1ZSwiaGFzX3dpa2ki\nOmZhbHNlLCJoYXNfcGFnZXMiOmZhbHNlLCJoYXNfZGlzY3Vzc2lvbnMiOmZh\nbHNlLCJmb3Jrc19jb3VudCI6MCwibWlycm9yX3VybCI6bnVsbCwiYXJjaGl2\nZWQiOmZhbHNlLCJkaXNhYmxlZCI6ZmFsc2UsIm9wZW5faXNzdWVzX2NvdW50\nIjowLCJsaWNlbnNlIjpudWxsLCJhbGxvd19mb3JraW5nIjp0cnVlLCJpc190\nZW1wbGF0ZSI6ZmFsc2UsIndlYl9jb21taXRfc2lnbm9mZl9yZXF1aXJlZCI6\nZmFsc2UsInRvcGljcyI6W10sInZpc2liaWxpdHkiOiJwcml2YXRlIiwiZm9y\na3MiOjAsIm9wZW5faXNzdWVzIjowLCJ3YXRjaGVycyI6MCwiZGVmYXVsdF9i\ncmFuY2giOiJtYXN0ZXIifX0sImJhc2UiOnsibGFiZWwiOiI8R0lUSFVCX0xP\nR0lOPjptYXN0ZXIiLCJyZWYiOiJtYXN0ZXIiLCJzaGEiOiIzZDdiMjBkMjY5\nZjA2Mzk3N2E1YmRjMzE4MTkxMTUwMzc3MTI1YTBhIiwidXNlciI6eyJsb2dp\nbiI6IjxHSVRIVUJfTE9HSU4+IiwiaWQiOjUyNDE5OTc3LCJub2RlX2lkIjoi\nTURRNlZYTmxjalV5TkRFNU9UYzMiLCJhdmF0YXJfdXJsIjoiaHR0cHM6Ly9h\ndmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyNDE5OTc3P3Y9NCIs\nImdyYXZhdGFyX2lkIjoiIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPiIsImh0bWxfdXJsIjoiaHR0cHM6Ly9n\naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+IiwiZm9sbG93ZXJzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9s\nbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZm9sbG93aW5ney9vdGhlcl91c2Vy\nfSIsImdpc3RzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vZ2lzdHN7L2dpc3RfaWR9Iiwic3RhcnJlZF91cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+\nL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4v\nc3Vic2NyaXB0aW9ucyIsIm9yZ2FuaXphdGlvbnNfdXJsIjoiaHR0cHM6Ly9h\ncGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9vcmdzIiwicmVw\nb3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVC\nX0xPR0lOPi9yZXBvcyIsImV2ZW50c191cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L2V2ZW50c3svcHJpdmFjeX0i\nLCJyZWNlaXZlZF9ldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy88R0lUSFVCX0xPR0lOPi9yZWNlaXZlZF9ldmVudHMiLCJ0eXBl\nIjoiVXNlciIsInNpdGVfYWRtaW4iOmZhbHNlfSwicmVwbyI6eyJpZCI6ODcw\nNzQwNDgzLCJub2RlX2lkIjoiUl9rZ0RPTS1aeUF3IiwibmFtZSI6IjxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPiIsImZ1bGxfbmFtZSI6IjxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPiIsInByaXZhdGUiOnRydWUs\nIm93bmVyIjp7ImxvZ2luIjoiPEdJVEhVQl9MT0dJTj4iLCJpZCI6NTI0MTk5\nNzcsIm5vZGVfaWQiOiJNRFE2VlhObGNqVXlOREU1T1RjMyIsImF2YXRhcl91\ncmwiOiJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Uv\nNTI0MTk5Nzc/dj00IiwiZ3JhdmF0YXJfaWQiOiIiLCJ1cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+IiwiaHRtbF91\ncmwiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJVEhVQl9MT0dJTj4iLCJmb2xs\nb3dlcnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lU\nSFVCX0xPR0lOPi9mb2xsb3dlcnMiLCJmb2xsb3dpbmdfdXJsIjoiaHR0cHM6\nLy9hcGkuZ2l0aHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9mb2xsb3dp\nbmd7L290aGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS91c2Vycy88R0lUSFVCX0xPR0lOPi9naXN0c3svZ2lzdF9pZH0i\nLCJzdGFycmVkX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv\nPEdJVEhVQl9MT0dJTj4vc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsInN1YnNj\ncmlwdGlvbnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy88\nR0lUSFVCX0xPR0lOPi9zdWJzY3JpcHRpb25zIiwib3JnYW5pemF0aW9uc191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9H\nSU4+L29yZ3MiLCJyZXBvc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3JlcG9zIiwiZXZlbnRzX3VybCI6Imh0\ndHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvPEdJVEhVQl9MT0dJTj4vZXZl\nbnRzey9wcml2YWN5fSIsInJlY2VpdmVkX2V2ZW50c191cmwiOiJodHRwczov\nL2FwaS5naXRodWIuY29tL3VzZXJzLzxHSVRIVUJfTE9HSU4+L3JlY2VpdmVk\nX2V2ZW50cyIsInR5cGUiOiJVc2VyIiwic2l0ZV9hZG1pbiI6ZmFsc2V9LCJo\ndG1sX3VybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4iLCJkZXNjcmlwdGlvbiI6bnVsbCwi\nZm9yayI6ZmFsc2UsInVybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw\nb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+Iiwi\nZm9ya3NfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZm9ya3MiLCJr\nZXlzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhV\nQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2tleXN7L2tleV9p\nZH0iLCJjb2xsYWJvcmF0b3JzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5j\nb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRP\nUlk+L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRvcn0iLCJ0ZWFtc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi90ZWFtcyIsImhvb2tzX3VybCI6\nImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4v\nPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2hvb2tzIiwiaXNzdWVfZXZlbnRz\nX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2lzc3Vlcy9ldmVudHN7\nL251bWJlcn0iLCJldmVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4vZXZlbnRzIiwiYXNzaWduZWVzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+L2Fzc2lnbmVlc3svdXNlcn0iLCJicmFuY2hlc191cmwiOiJodHRw\nczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRI\nVUJfVEVTVF9SRVBPU0lUT1JZPi9icmFuY2hlc3svYnJhbmNofSIsInRhZ3Nf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vdGFncyIsImJsb2JzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC9ibG9ic3svc2hhfSIs\nImdpdF90YWdzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv\nPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2dpdC90\nYWdzey9zaGF9IiwiZ2l0X3JlZnNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vZ2l0L3JlZnN7L3NoYX0iLCJ0cmVlc191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVT\nVF9SRVBPU0lUT1JZPi9naXQvdHJlZXN7L3NoYX0iLCJzdGF0dXNlc191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9zdGF0dXNlcy97c2hhfSIsImxh\nbmd1YWdlc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxH\nSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9sYW5ndWFn\nZXMiLCJzdGFyZ2F6ZXJzX3VybCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v\ncmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+\nL3N0YXJnYXplcnMiLCJjb250cmlidXRvcnNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vY29udHJpYnV0b3JzIiwic3Vic2NyaWJlcnNfdXJsIjoi\naHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88\nR0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Vic2NyaWJlcnMiLCJzdWJzY3Jp\ncHRpb25fdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vc3Vic2NyaXB0\naW9uIiwiY29tbWl0c191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Jl\ncG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9j\nb21taXRzey9zaGF9IiwiZ2l0X2NvbW1pdHNfdXJsIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vZ2l0L2NvbW1pdHN7L3NoYX0iLCJjb21tZW50c191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+\nLzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9jb21tZW50c3svbnVtYmVyfSIs\nImlzc3VlX2NvbW1lbnRfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y\nZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4v\naXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9IiwiY29udGVudHNfdXJsIjoiaHR0\ncHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lU\nSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29udGVudHMveytwYXRofSIsImNvbXBh\ncmVfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vY29tcGFyZS97YmFz\nZX0uLi57aGVhZH0iLCJtZXJnZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHVi\nLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJ\nVE9SWT4vbWVyZ2VzIiwiYXJjaGl2ZV91cmwiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9IiwiZG93bmxvYWRzX3Vy\nbCI6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJ\nTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L2Rvd25sb2FkcyIsImlzc3Vl\nc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJf\nTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9pc3N1ZXN7L251bWJl\ncn0iLCJwdWxsc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z\nLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9wdWxs\nc3svbnVtYmVyfSIsIm1pbGVzdG9uZXNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0\naHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQ\nT1NJVE9SWT4vbWlsZXN0b25lc3svbnVtYmVyfSIsIm5vdGlmaWNhdGlvbnNf\ndXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xP\nR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vbm90aWZpY2F0aW9uc3s/\nc2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwibGFiZWxzX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhV\nQl9URVNUX1JFUE9TSVRPUlk+L2xhYmVsc3svbmFtZX0iLCJyZWxlYXNlc191\ncmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLzxHSVRIVUJfTE9H\nSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lUT1JZPi9yZWxlYXNlc3svaWR9Iiwi\nZGVwbG95bWVudHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vZGVw\nbG95bWVudHMiLCJjcmVhdGVkX2F0IjoiMjAyNC0xMC0xMFQxNToyNDo0MFoi\nLCJ1cGRhdGVkX2F0IjoiMjAyNC0xMC0xMFQxNToyNToxN1oiLCJwdXNoZWRf\nYXQiOiIyMDI0LTEwLTEwVDE1OjMxOjU5WiIsImdpdF91cmwiOiJnaXQ6Ly9n\naXRodWIuY29tLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBPU0lU\nT1JZPi5naXQiLCJzc2hfdXJsIjoiZ2l0QGdpdGh1Yi5jb206PEdJVEhVQl9M\nT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+LmdpdCIsImNsb25lX3Vy\nbCI6Imh0dHBzOi8vZ2l0aHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVC\nX1RFU1RfUkVQT1NJVE9SWT4uZ2l0Iiwic3ZuX3VybCI6Imh0dHBzOi8vZ2l0\naHViLmNvbS88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9S\nWT4iLCJob21lcGFnZSI6bnVsbCwic2l6ZSI6MCwic3RhcmdhemVyc19jb3Vu\ndCI6MCwid2F0Y2hlcnNfY291bnQiOjAsImxhbmd1YWdlIjpudWxsLCJoYXNf\naXNzdWVzIjp0cnVlLCJoYXNfcHJvamVjdHMiOnRydWUsImhhc19kb3dubG9h\nZHMiOnRydWUsImhhc193aWtpIjpmYWxzZSwiaGFzX3BhZ2VzIjpmYWxzZSwi\naGFzX2Rpc2N1c3Npb25zIjpmYWxzZSwiZm9ya3NfY291bnQiOjAsIm1pcnJv\ncl91cmwiOm51bGwsImFyY2hpdmVkIjpmYWxzZSwiZGlzYWJsZWQiOmZhbHNl\nLCJvcGVuX2lzc3Vlc19jb3VudCI6MCwibGljZW5zZSI6bnVsbCwiYWxsb3df\nZm9ya2luZyI6dHJ1ZSwiaXNfdGVtcGxhdGUiOmZhbHNlLCJ3ZWJfY29tbWl0\nX3NpZ25vZmZfcmVxdWlyZWQiOmZhbHNlLCJ0b3BpY3MiOltdLCJ2aXNpYmls\naXR5IjoicHJpdmF0ZSIsImZvcmtzIjowLCJvcGVuX2lzc3VlcyI6MCwid2F0\nY2hlcnMiOjAsImRlZmF1bHRfYnJhbmNoIjoibWFzdGVyIn19LCJfbGlua3Mi\nOnsic2VsZiI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVs\nbHMvNSJ9LCJodG1sIjp7ImhyZWYiOiJodHRwczovL2dpdGh1Yi5jb20vPEdJ\nVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9TSVRPUlk+L3B1bGwvNSJ9\nLCJpc3N1ZSI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv\ncy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vaXNz\ndWVzLzUifSwiY29tbWVudHMiOnsiaHJlZiI6Imh0dHBzOi8vYXBpLmdpdGh1\nYi5jb20vcmVwb3MvPEdJVEhVQl9MT0dJTj4vPEdJVEhVQl9URVNUX1JFUE9T\nSVRPUlk+L2lzc3Vlcy81L2NvbW1lbnRzIn0sInJldmlld19jb21tZW50cyI6\neyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVC\nX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvNS9jb21t\nZW50cyJ9LCJyZXZpZXdfY29tbWVudCI6eyJocmVmIjoiaHR0cHM6Ly9hcGku\nZ2l0aHViLmNvbS9yZXBvcy88R0lUSFVCX0xPR0lOPi88R0lUSFVCX1RFU1Rf\nUkVQT1NJVE9SWT4vcHVsbHMvY29tbWVudHN7L251bWJlcn0ifSwiY29tbWl0\ncyI6eyJocmVmIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy88R0lU\nSFVCX0xPR0lOPi88R0lUSFVCX1RFU1RfUkVQT1NJVE9SWT4vcHVsbHMvNS9j\nb21taXRzIn0sInN0YXR1c2VzIjp7ImhyZWYiOiJodHRwczovL2FwaS5naXRo\ndWIuY29tL3JlcG9zLzxHSVRIVUJfTE9HSU4+LzxHSVRIVUJfVEVTVF9SRVBP\nU0lUT1JZPi9zdGF0dXNlcy85MmMwNjM5NjA2ZjI3ZjgyNDc5M2M1NzlmZGEy\nN2EwZjliODg1ZDA0In19LCJhdXRob3JfYXNzb2NpYXRpb24iOiJPV05FUiIs\nImF1dG9fbWVyZ2UiOm51bGwsImFjdGl2ZV9sb2NrX3JlYXNvbiI6bnVsbCwi\nbWVyZ2VkIjpmYWxzZSwibWVyZ2VhYmxlIjp0cnVlLCJyZWJhc2VhYmxlIjp0\ncnVlLCJtZXJnZWFibGVfc3RhdGUiOiJjbGVhbiIsIm1lcmdlZF9ieSI6bnVs\nbCwiY29tbWVudHMiOjAsInJldmlld19jb21tZW50cyI6MSwibWFpbnRhaW5l\ncl9jYW5fbW9kaWZ5IjpmYWxzZSwiY29tbWl0cyI6MSwiYWRkaXRpb25zIjox\nLCJkZWxldGlvbnMiOjEsImNoYW5nZWRfZmlsZXMiOjF9\n" + } + }, + "recorded_at": "Thu, 10 Oct 2024 16:05:43 GMT" + } + ], + "recorded_with": "VCR 6.3.1" +} \ No newline at end of file diff --git a/spec/octokit/client/pull_requests_spec.rb b/spec/octokit/client/pull_requests_spec.rb index fbae9e8bd..9f7e30681 100644 --- a/spec/octokit/client/pull_requests_spec.rb +++ b/spec/octokit/client/pull_requests_spec.rb @@ -96,13 +96,16 @@ end # .pull_merged? context 'methods requiring a pull request comment' do - before do - new_comment = { + let(:new_comment) do + { body: 'Hawt', commit_id: '9bf22dff54fd6a7650230b70417b55e8cccfc4f2', path: 'test.md', line: 1 } + end + + before do @comment = @client.create_pull_request_comment \ @test_repo, @pull.number, @@ -116,6 +119,15 @@ it 'creates a new comment on a pull request' do assert_requested :post, github_url("/repos/#{@test_repo}/pulls/#{@pull.number}/comments") end + + context 'without line argument' do + let(:new_comment) { super().except(:line) } + + it 'creates a new comment on a pull request at the file level' do + assert_requested :post, github_url("/repos/#{@test_repo}/pulls/#{@pull.number}/comments") + expect(@comment.subject_type).to eq('file') + end + end end # .create_pull_request_comment describe '.create_pull_request_comment_reply', :vcr do