Skip to content

Commit

Permalink
Rename queries (#793)
Browse files Browse the repository at this point in the history
* Rename query

* Rename query
  • Loading branch information
int128 authored Aug 16, 2023
1 parent 9bcf759 commit 1fd71f7
Show file tree
Hide file tree
Showing 12 changed files with 103 additions and 107 deletions.
18 changes: 9 additions & 9 deletions src/generated/graphql.ts

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions src/pullRequest/metrics.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { v1 } from '@datadog/datadog-api-client'
import { PullRequestClosedEvent, PullRequestEvent, PullRequestOpenedEvent } from '@octokit/webhooks-types'
import { ClosedPullRequest } from '../queries/closedPullRequest'
import { PullRequestFirstCommit } from '../queries/getPullRequest'

const computeCommonTags = (e: PullRequestEvent): string[] => {
const tags = [
Expand Down Expand Up @@ -65,8 +65,8 @@ type ClosedMetricsOptions = {

export const computePullRequestClosedMetrics = (
e: PullRequestClosedEvent,
pr: ClosedPullRequest | undefined,
options: ClosedMetricsOptions
pullRequestFirstCommit: PullRequestFirstCommit | undefined,
options: ClosedMetricsOptions,
): v1.Series[] => {
const tags = computeCommonTags(e)
tags.push(`merged:${String(e.pull_request.merged)}`)
Expand Down Expand Up @@ -116,22 +116,22 @@ export const computePullRequestClosedMetrics = (
},
]

if (pr !== undefined) {
if (pullRequestFirstCommit !== undefined) {
series.push(
{
host: 'github.com',
tags,
metric: 'github.actions.pull_request_closed.since_first_authored_seconds',
type: 'gauge',
points: [[t, t - unixTime(pr.firstCommit.authoredDate)]],
points: [[t, t - unixTime(pullRequestFirstCommit.authoredDate)]],
},
{
host: 'github.com',
tags,
metric: 'github.actions.pull_request_closed.since_first_committed_seconds',
type: 'gauge',
points: [[t, t - unixTime(pr.firstCommit.committedDate)]],
}
points: [[t, t - unixTime(pullRequestFirstCommit.committedDate)]],
},
)
}

Expand Down
43 changes: 0 additions & 43 deletions src/queries/closedPullRequest.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import assert from 'assert'
import { CompletedCheckSuiteQuery, CompletedCheckSuiteQueryVariables } from '../generated/graphql'
import { GetCheckSuiteQuery, GetCheckSuiteQueryVariables } from '../generated/graphql'
import { CheckAnnotation, CheckRun, CheckStep } from '../generated/graphql-types'
import { Octokit } from '../types'

const query = /* GraphQL */ `
query completedCheckSuite($node_id: ID!, $workflow_path: String!) {
query getCheckSuite($node_id: ID!, $workflow_path: String!) {
node(id: $node_id) {
__typename
... on CheckSuite {
Expand Down Expand Up @@ -81,11 +81,11 @@ type CompletedCheckRun = Pick<CheckRun, 'databaseId' | 'name' | 'status'> &
type CompletedStep = Pick<CheckStep, 'number' | 'name' | 'status'> &
NonNullablePick<CheckStep, 'startedAt' | 'completedAt' | 'conclusion'>

export const queryCompletedCheckSuite = async (
export const getCompletedCheckSuite = async (
o: Octokit,
v: CompletedCheckSuiteQueryVariables
): Promise<CompletedCheckSuite | undefined> => {
const r = await o.graphql<CompletedCheckSuiteQuery>(query, v)
v: GetCheckSuiteQueryVariables,
): Promise<CompletedCheckSuite> => {
const r = await o.graphql<GetCheckSuiteQuery>(query, v)
return {
node: {
__typename: 'CheckSuite',
Expand All @@ -95,7 +95,7 @@ export const queryCompletedCheckSuite = async (
}
}

const extractCheckRuns = (r: CompletedCheckSuiteQuery): CompletedCheckSuite['node']['checkRuns'] => {
const extractCheckRuns = (r: GetCheckSuiteQuery): CompletedCheckSuite['node']['checkRuns'] => {
assert(r.node != null)
assert.strictEqual(r.node.__typename, 'CheckSuite')

Expand Down Expand Up @@ -146,7 +146,7 @@ const extractCheckRuns = (r: CompletedCheckSuiteQuery): CompletedCheckSuite['nod
return { nodes: checkRuns }
}

const extractCommit = (r: CompletedCheckSuiteQuery): CompletedCheckSuite['node']['commit'] => {
const extractCommit = (r: GetCheckSuiteQuery): CompletedCheckSuite['node']['commit'] => {
assert(r.node != null)
assert.strictEqual(r.node.__typename, 'CheckSuite')
assert(r.node.commit.file != null)
Expand Down
41 changes: 41 additions & 0 deletions src/queries/getPullRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import assert from 'assert'
import { GetPullRequestQuery, GetPullRequestQueryVariables } from '../generated/graphql'
import { Octokit } from '../types'

const query = /* GraphQL */ `
query getPullRequest($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
commits(first: 1) {
nodes {
commit {
authoredDate
committedDate
}
}
}
}
}
}
`

export type PullRequestFirstCommit = {
authoredDate: string
committedDate: string
}

export const getPullRequestFirstCommit = async (
o: Octokit,
v: GetPullRequestQueryVariables,
): Promise<PullRequestFirstCommit | undefined> => {
const r = await o.graphql<GetPullRequestQuery>(query, v)
assert(r.repository != null)
assert(r.repository.pullRequest != null)
assert(r.repository.pullRequest.commits != null)
assert(r.repository.pullRequest.commits.nodes != null)
if (r.repository.pullRequest.commits.nodes.length === 0) {
return // pull request has no commit
}
assert(r.repository.pullRequest.commits.nodes[0] != null)
return r.repository.pullRequest.commits.nodes[0].commit
}
12 changes: 6 additions & 6 deletions src/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import * as github from '@actions/github'
import { PullRequestEvent, PushEvent, WorkflowRunEvent } from '@octokit/webhooks-types'
import { computePullRequestClosedMetrics, computePullRequestOpenedMetrics } from './pullRequest/metrics'
import { computePushMetrics } from './push/metrics'
import { queryCompletedCheckSuite } from './queries/completedCheckSuite'
import { queryClosedPullRequest } from './queries/closedPullRequest'
import { getCompletedCheckSuite } from './queries/getCheckSuite'
import { getPullRequestFirstCommit } from './queries/getPullRequest'
import { computeRateLimitMetrics } from './rateLimit/metrics'
import { GitHubContext } from './types'
import { computeWorkflowRunJobStepMetrics } from './workflowRun/metrics'
Expand Down Expand Up @@ -52,7 +52,7 @@ const handleWorkflowRun = async (submitMetrics: SubmitMetrics, e: WorkflowRunEve
if (inputs.collectJobMetrics || inputs.collectStepMetrics) {
const octokit = github.getOctokit(inputs.githubToken)
try {
checkSuite = await queryCompletedCheckSuite(octokit, {
checkSuite = await getCompletedCheckSuite(octokit, {
node_id: e.workflow_run.check_suite_node_id,
workflow_path: e.workflow.path,
})
Expand Down Expand Up @@ -92,17 +92,17 @@ const handlePullRequest = async (

if (e.action === 'closed') {
const octokit = github.getOctokit(inputs.githubToken)
let closedPullRequest
let pullRequestFirstCommit
try {
closedPullRequest = await queryClosedPullRequest(octokit, {
pullRequestFirstCommit = await getPullRequestFirstCommit(octokit, {
owner: context.repo.owner,
name: context.repo.repo,
number: e.pull_request.number,
})
} catch (error) {
core.warning(`Could not get the pull request: ${String(error)}`)
}
return await submitMetrics(computePullRequestClosedMetrics(e, closedPullRequest, inputs), 'pull request')
return await submitMetrics(computePullRequestClosedMetrics(e, pullRequestFirstCommit, inputs), 'pull request')
}

core.warning(`Not supported action ${e.action}`)
Expand Down
2 changes: 1 addition & 1 deletion src/workflowRun/metrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as core from '@actions/core'
import { v1 } from '@datadog/datadog-api-client'
import { WorkflowRunCompletedEvent } from '@octokit/webhooks-types'
import { inferRunner, parseWorkflowFile, WorkflowDefinition } from './parse'
import { CompletedCheckSuite } from '../queries/completedCheckSuite'
import { CompletedCheckSuite } from '../queries/getCheckSuite'

const computeCommonTags = (e: WorkflowRunCompletedEvent): string[] => [
`repository_owner:${e.workflow_run.repository.owner.login}`,
Expand Down
26 changes: 0 additions & 26 deletions tests/pullRequest/fixtures/closedPullRequest.ts

This file was deleted.

24 changes: 24 additions & 0 deletions tests/pullRequest/fixtures/getPullRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { PullRequestFirstCommit } from '../../../src/queries/getPullRequest'
import { GetPullRequestQuery } from '../../../src/generated/graphql'

export const exampleGetPullRequestQuery: GetPullRequestQuery = {
repository: {
pullRequest: {
commits: {
nodes: [
{
commit: {
authoredDate: '2019-05-15T15:00:11Z',
committedDate: '2019-05-15T15:11:22Z',
},
},
],
},
},
},
}

export const examplePullRequestFirstCommit: PullRequestFirstCommit = {
authoredDate: '2019-05-15T15:00:11Z',
committedDate: '2019-05-15T15:11:22Z',
}
4 changes: 2 additions & 2 deletions tests/pullRequest/metrics.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { computePullRequestClosedMetrics, computePullRequestOpenedMetrics } from '../../src/pullRequest/metrics'
import { examplePullRequestClosedEvent } from '../fixtures'
import { examplePullRequestOpenedEvent } from '../fixtures'
import { exampleClosedPullRequest } from './fixtures/closedPullRequest'
import { examplePullRequestFirstCommit } from './fixtures/getPullRequest'

test('computePullRequestOpenedMetrics', () => {
const series = computePullRequestOpenedMetrics(examplePullRequestOpenedEvent)
Expand All @@ -16,7 +16,7 @@ test('computePullRequestClosedMetrics', () => {
})

test('computePullRequestClosedMetricsWithQuery', () => {
const series = computePullRequestClosedMetrics(examplePullRequestClosedEvent, exampleClosedPullRequest, {
const series = computePullRequestClosedMetrics(examplePullRequestClosedEvent, examplePullRequestFirstCommit, {
sendPullRequestLabels: true,
})
expect(series).toMatchSnapshot()
Expand Down
4 changes: 2 additions & 2 deletions tests/run.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { exampleCompletedCheckSuite } from './workflowRun/fixtures/completedChec
import { examplePullRequestClosedEvent } from './fixtures'
import { WebhookPayload } from '@actions/github/lib/interfaces'
import { examplePullRequestOpenedEvent } from './fixtures'
import { exampleClosedPullRequestQuery } from './pullRequest/fixtures/closedPullRequest'
import { exampleGetPullRequestQuery } from './pullRequest/fixtures/getPullRequest'

jest.mock('@actions/core')

Expand Down Expand Up @@ -100,7 +100,7 @@ test('pull_request_opened', async () => {
})

test('pull_request_closed', async () => {
octokitMock.graphql.mockResolvedValue(exampleClosedPullRequestQuery)
octokitMock.graphql.mockResolvedValue(exampleGetPullRequestQuery)
octokitMock.rest.rateLimit.get.mockResolvedValue(exampleRateLimitResponse)
submitMetrics.mockResolvedValue({ status: 'ok' })

Expand Down
6 changes: 3 additions & 3 deletions tests/workflowRun/fixtures/completedCheckSuite.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CompletedCheckSuite } from '../../../src/queries/completedCheckSuite'
import { CompletedCheckSuite } from '../../../src/queries/getCheckSuite'
import { CheckConclusionState, CheckStatusState } from '../../../src/generated/graphql-types'
import { CompletedCheckSuiteQuery } from '../../../src/generated/graphql'
import { GetCheckSuiteQuery } from '../../../src/generated/graphql'

const exampleWorkflowText = `
on:
Expand All @@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v2
`

export const exampleCompletedCheckSuite: CompletedCheckSuiteQuery & CompletedCheckSuite = {
export const exampleCompletedCheckSuite: GetCheckSuiteQuery & CompletedCheckSuite = {
// https://docs.github.com/en/rest/reference/actions#list-jobs-for-a-workflow-run
node: {
__typename: 'CheckSuite',
Expand Down

0 comments on commit 1fd71f7

Please sign in to comment.