Terraform-aws-github-runner: Header benötigt für Checks API for Enterprise Server

Erstellt am 19. Jan. 2021  ·  13Kommentare  ·  Quelle: philips-labs/terraform-aws-github-runner

2021-01-19T16:58:27.528Z    784f32d9-df03-522b-86b6-6a58cee71a88    ERROR   RequestError [HttpError]: If you would like to help us test the Checks API during its preview period, you must specify a custom media type in the 'Accept' header. Please see the docs for full details. 

Vermutlich verursacht durch #386

Hilfreichster Kommentar

Erstellte Version 0.9.1

Alle 13 Kommentare

Schlagen Sie vor, dass wir #386 vorerst zurücksetzen.

Gelöst von #481

Ich bekomme immer noch diesen Fehler. Ich habe gestern versucht, die Lambdas selbst zu bauen, nachdem #481 zusammengeführt wurde, sowie die gerade veröffentlichten 0.9.0 Lambda-Reißverschlüsse.

2021-01-21T18:33:14.240Z    66df9451-e423-5303-ab9e-ccd22f36bbf2    ERROR   RequestError [HttpError]: If you would like to help us test the Checks API during its preview period, you must specify a custom media type in the 'Accept' header. Please see the docs for full details.
    at /var/task/index.js:2756:23
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  status: 415,
  headers: {
    'access-control-allow-origin': '*',
    'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset',
    'alt-svc': 'clear',
    connection: 'close',
    'content-length': '288',
    'content-security-policy': "default-src 'none'",
    'content-type': 'application/json; charset=utf-8',
    date: 'Thu, 21 Jan 2021 18:33:14 GMT',
    'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
    server: 'GitHub.com',
    status: '415 Unsupported Media Type',
    'strict-transport-security': 'max-age=31536000; includeSubdomains',
    via: '1.1 google',
    'x-content-type-options': 'nosniff',
    'x-frame-options': 'deny',
    'x-github-enterprise-version': '2.22.6',
    'x-github-media-type': 'github.v3; format=json',
    'x-github-request-id': '197c6068-c1d5-43d2-9ed4-bb0d409b2500',
    'x-ratelimit-limit': '12500',
    'x-ratelimit-remaining': '12036',
    'x-ratelimit-reset': '1611255703',
    'x-runtime-rack': '0.038530',
    'x-xss-protection': '1; mode=block'
  },
  request: {
    method: 'GET',
    url: 'https://github.example.com/api/v3/repos/acme/somerepo/check-runs/68859',
    headers: {
      accept: 'application/vnd.github.v3+json',
      'user-agent': 'octokit-rest.js/18.0.12 octokit-core.js/3.2.4 Node.js/12.20.1 (linux; x64)',
      authorization: 'token [REDACTED]'
    },
    request: { hook: [Function: bound bound register] }
  },
  documentation_url: 'https://docs.github.com/enterprise/2.22/rest/reference/checks#get-a-check-run'
}
server: 'GitHub.com',

Sie verwenden immer noch einen älteren Commit für Ihre Lambdas ..

Nein. Ich bin mir sehr sicher, dass ich die Lambdas v0.9.0 verwende, die hier von Github heruntergeladen werden können. Der Header server: 'GitHub.com' wird von unserem Unternehmen GitHub Enterprise zurückgegeben.

Was könnte der Grund sein, warum der Header Accept: application/vnd.github.v3+json immer noch anstelle von application/vnd.github.antiope-preview+json gesendet wird? Der ghesApiUrl wird unter https://github.com/philips-labs/terraform-aws-github-runner/blob/v0.9.0/modules/runners/lambdas/runners/src/scale-runners/ festgelegt. gh-auth.ts# L51 -L56.

@buamod Ich bekomme den gleichen server Header. Scheint normal zu sein?

@samuelb Ich habe es verpasst, den Test für den Fix zu ändern, der es in v0.9.0 geschafft hat, also habe ich L120 von gh-auth.test.ts lokal geändert:

request: mockedRequestInterface.defaults({ baseUrl: githubServerUrl, mediaType: { previews: ['antiope'] } }),

Die Prüfung bestanden.

Ich habe auch festgestellt, dass Sie das Debuggen in Octokit aktivieren können. log: console, wurde in L11 von gh-auth.ts eingefügt, neu kompiliert, hochgeladen und ergab Folgendes:

2021-01-22T13:33:31.960Z    a3e98909-2b21-52b0-9e5c-d18dfd7d23cf    DEBUG   request {
  method: 'GET',
  baseUrl: 'https://githubtest.internal/api/v3',
  headers: {
    accept: 'application/vnd.github.v3+json',
    'user-agent': 'octokit-rest.js/18.0.9 octokit-core.js/3.2.4 Node.js/12.19.0 (linux; x64)'
  },
  mediaType: { format: '', previews: [ 'antiope' ] },
  request: { hook: [Function: bound bound register] },
  url: '/repos/{owner}/{repo}/check-runs/{check_run_id}',
  check_run_id: 845,
  owner: 'ActionsTest',
  repo: 'repo-test'
}

Der Header wird immer noch übergeben, aber jetzt wird ein neues mediaType gesetzt.

Beim Hinzufügen von log: console, erhalte ich Folgendes:

021-01-22T15:15:21.285Z 68d40d07-e072-55a8-b924-55830e47ae02    DEBUG   request {
  method: 'GET',
  baseUrl: 'https://github.example.com/api/v3',
  headers: {
    accept: 'application/vnd.github.v3+json',
    'user-agent': 'octokit-rest.js/18.0.12 octokit-core.js/3.2.4 Node.js/12.20.1 (linux; x64)'
  },
  mediaType: { format: '', previews: [] },
  request: { hook: [Function: bound bound register] },
  url: '/repos/{owner}/{repo}/check-runs/{check_run_id}',
  check_run_id: 69556,
  owner: 'acme',
  repo: 'somerepo'
}

Dieser Medientyp ist nicht festgelegt.
Ich habe die rechte Filiale doppelt und dreifach überprüft. Ich habe es sogar frisch überprüft, das Lambda-Docker-Image entfernt usw.

Ich sehe nur aus dem User-Agent, dass sich die octokit-rest.js-Version von Ihrer unterscheidet. Sie haben vorhin vorgeschlagen, dass das Zurücksetzen von #386 eine Möglichkeit wäre, das Problem zu lösen. Könnte es sein, dass #481 dieses Problem tatsächlich nicht gelöst hat, Sie es aber versehentlich als behoben betrachtet haben, als Sie es mit octokit-rest.js/18.0.9 erstellt haben?

Sieht so aus, als hätte meine letzte Kompilierung eine zwischengespeicherte Bibliothek verwendet. Ich habe neu kompiliert und das gleiche Ergebnis wie du erhalten.

Diese Modifikation hat bei mir funktioniert:
( gh-auth.ts L8)

export async function createOctoClient(token: string, ghesApiUrl: string = ''): Promise<Octokit> {
  const ocktokitOptions: OctokitOptions = {
    auth: token,
    log: console,
  };
  if (ghesApiUrl) {
    ocktokitOptions.baseUrl = ghesApiUrl;
    ocktokitOptions.previews = ['antiope'];
  }
  return new Octokit(ocktokitOptions);
}

Ich kann bestätigen, dass es bei mir funktioniert

iff --git a/modules/runners/lambdas/runners/src/scale-runners/gh-auth.ts b/modules/runners/lambdas/runners/src/scale-runners/gh-auth.ts
index 01dc3cf..ae3720e 100644
--- a/modules/runners/lambdas/runners/src/scale-runners/gh-auth.ts
+++ b/modules/runners/lambdas/runners/src/scale-runners/gh-auth.ts
@@ -11,6 +11,7 @@ export async function createOctoClient(token: string, ghesApiUrl: string = ''):
   };
   if (ghesApiUrl) {
     ocktokitOptions.baseUrl = ghesApiUrl;
+    ocktokitOptions.previews = ['antiope'];
   }
   return new Octokit(ocktokitOptions);
 }
@@ -51,7 +52,6 @@ export async function createGithubAuth(
   if (ghesApiUrl) {
     authOptions.request = request.defaults({
       baseUrl: ghesApiUrl,
-      mediaType: { previews: ['antiope'] }
     });
   }
   return await createAppAuth(authOptions)({ type: authType });

Von CloudWatch:

2021-01-22T16:34:00.464Z    750ac5d2-fd1a-52ff-a26a-9d57fdbb2281    DEBUG   request {
  method: 'GET',
  baseUrl: 'https://github.example.com/api/v3',
  headers: {
    accept: 'application/vnd.github.v3+json',
    'user-agent': 'octokit-rest.js/18.0.12 octokit-core.js/3.2.4 Node.js/12.20.1 (linux; x64)'
  },
  mediaType: { format: '', previews: [ 'antiope' ] },
  request: { hook: [Function: bound bound register] },
  url: '/repos/{owner}/{repo}/check-runs/{check_run_id}',
  check_run_id: 69599,
  owner: 'acme',
  repo: 'somerepo'
}

2021-01-22T16:34:00.841Z    750ac5d2-fd1a-52ff-a26a-9d57fdbb2281    INFO    GET /repos/acme/somerepo/check-runs/69599 - 200 in 377ms

Geöffnet #482

Erstellte Version 0.9.1

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen