import { GithubPullRequestResponse } from '../../data_sources/github'; import { GithubPullRequest } from '../../entities'; /** * Converts a Github response from the API into an GithubRepo entity. * @param rawRepo A Github response from the API into an GithubRepo entity. */ export function parseGithubPulls( response: GithubPullRequestResponse[], observedTimestamp: number, ): GithubPullRequest[] { return response.map(pull => { const parsedPullRequest = new GithubPullRequest(); parsedPullRequest.observedTimestamp = observedTimestamp; parsedPullRequest.repoFullName = pull.base.repo.full_name; parsedPullRequest.createdAt = Date.parse(pull.created_at); parsedPullRequest.updatedAt = Date.parse(pull.updated_at); parsedPullRequest.closedAt = pull.closed_at ? Date.parse(pull.closed_at) : null; parsedPullRequest.mergedAt = pull.merged_at ? Date.parse(pull.merged_at) : null; parsedPullRequest.pullRequestNumber = pull.number; parsedPullRequest.state = pull.state; parsedPullRequest.title = pull.title; parsedPullRequest.userLogin = pull.user.login; return parsedPullRequest; }); }