Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions bamboo/detect-pr.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@ const graphql = require('@octokit/graphql');
// Query Github API for first commit on target ref and see if it has an associated pull request

async function getPrsForRef(headRefName, baseRefName) {
const queryResponse = await graphql(`{
repository(owner:"nasa", name:"cumulus") {
const queryResponse = await graphql(`
query($headRefName: String!) {
repository(owner:"nasa", name:"cumulus") {
name
ref(qualifiedName: "${headRefName}") {
ref(qualifiedName: $headRefName) {
name
target {
... on Commit{
... on Commit {
history(first: 1) {
nodes{
nodes {
id
associatedPullRequests(last: 100) {
edges{
node{
edges {
node {
title
state
headRefName
baseRefName
}
}
}
}
Expand All @@ -32,7 +32,10 @@ async function getPrsForRef(headRefName, baseRefName) {
}
}
}
}`, {
}
}
`, {
headRefName: `refs/heads/${headRefName}`,
headers: {
authorization: `token ${process.env.GITHUB_TOKEN}`,
},
Expand Down
6 changes: 3 additions & 3 deletions packages/api-client/src/cumulusApiClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,17 @@ export async function invokeApi(
throw new Error('No payload received from lambda invocation');
}

const parsedPayload = JSON.parse(new TextDecoder('utf-8').decode(apiOutput.Payload));
let parsedPayload; try { parsedPayload = JSON.parse(new TextDecoder('utf-8').decode(apiOutput.Payload)); } catch (e) { throw new CumulusApiClientError(`Error parsing lambda payload: ${e.message}`, 500, undefined); }

if (parsedPayload?.errorMessage?.includes('Task timed out')) {
if (parsedPayload && parsedPayload.errorMessage && parsedPayload.errorMessage.includes('Task timed out')) {
throw new CumulusApiClientError(
`Error calling ${payload.path}: ${parsedPayload.errorMessage}`,
parsedPayload?.statusCode,
undefined
);
}

if (!expectedStatusCodesFlat.includes(parsedPayload?.statusCode)) {
if (parsedPayload && !expectedStatusCodesFlat.includes(parsedPayload.statusCode)) {
throw new CumulusApiClientError(
`${payload.path} returned ${parsedPayload.statusCode}: ${parsedPayload.body}`,
parsedPayload?.statusCode,
Expand Down