27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
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.repoName = pull.base.repo.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;
|
|
});
|
|
}
|