Skip to content
Merged
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
2 changes: 2 additions & 0 deletions frontend/server/api/organization/commit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ export default defineEventHandler(async (event): Promise<OrgDashCommit[]> => {
granularity,
activity_type: 'authored-commit',
onlyContributions: false,
includeCodeContributions: true,
includeCollaborations: true,
},
)

Expand Down
2 changes: 2 additions & 0 deletions frontend/server/api/organization/pr-opened.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ export default defineEventHandler(async (event): Promise<OrgDashPrOpened[]> => {
granularity,
activity_type: 'pull_request-opened',
onlyContributions: false,
includeCodeContributions: true,
includeCollaborations: true,
},
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import { DateTime } from 'luxon'
import { createDataSource } from '~~/server/data/data-sources'
import type { ActiveContributorsFilter } from '~~/server/data/types'
import { Granularity } from '~~/types/shared/granularity'
import { getBooleanQueryParam } from '~~/server/utils/common'

export default defineEventHandler(async (event) => {
// TODO: Check the project configuration to determine whether to show the data.
Expand All @@ -39,11 +40,16 @@ export default defineEventHandler(async (event) => {

const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined

const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)

// TODO: Validate the query params
const filter: ActiveContributorsFilter = {
granularity: (query.granularity as Granularity) || Granularity.QUARTERLY,
project,
repos,
includeCodeContributions,
includeCollaborations,
startDate: undefined,
endDate: undefined,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { DateTime } from 'luxon'
import type { ActiveOrganizationsFilter } from '~~/server/data/types'
import { createDataSource } from '~~/server/data/data-sources'
import { Granularity } from '~~/types/shared/granularity'
import { getBooleanQueryParam } from '~~/server/utils/common'

/**
* Query params:
Expand All @@ -38,11 +39,16 @@ export default defineEventHandler(async (event) => {

const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined

const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)

// TODO: Validate the query params
const filter: ActiveOrganizationsFilter = {
granularity: (query.granularity as Granularity) || Granularity.QUARTERLY,
project,
repos,
includeCodeContributions,
includeCollaborations,
startDate: undefined,
endDate: undefined,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { createDataSource } from '~~/server/data/data-sources'
import type { ContributorDependencyFilter } from '~~/server/data/types'
import { ActivityTypes } from '~~/types/shared/activity-types'
import { ActivityPlatforms } from '~~/types/shared/activity-platforms'
import { getBooleanQueryParam } from '~~/server/utils/common'

/**
* Frontend expects the data to be in the following format:
Expand Down Expand Up @@ -42,12 +43,16 @@ export default defineEventHandler(async (event) => {

const activityPlatform = query.platform as ActivityPlatforms
const activityType = query.activityType as ActivityTypes
const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)
const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined

const filter: ContributorDependencyFilter = {
project,
platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined,
activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined,
includeCodeContributions,
includeCollaborations,
repos,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { createDataSource } from '~~/server/data/data-sources'
import type { ContributorsLeaderboardFilter } from '~~/server/data/types'
import { ActivityTypes } from '~~/types/shared/activity-types'
import { ActivityPlatforms } from '~~/types/shared/activity-platforms'
import { getBooleanQueryParam } from '~~/server/utils/common'

/**
* Frontend expects the data to be in the following format:
Expand Down Expand Up @@ -41,6 +42,8 @@ export default defineEventHandler(async (event) => {
const project = (event.context.params as { slug: string }).slug
const activityPlatform = query.platform as ActivityPlatforms
const activityType = query.activityType as ActivityTypes
const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)
const limit = query.limit ? parseInt(query.limit as string, 10) : 10
const offset = query.offset ? parseInt(query.offset as string, 10) : 0
const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined
Expand All @@ -49,6 +52,8 @@ export default defineEventHandler(async (event) => {
project,
platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined,
activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined,
includeCodeContributions,
includeCollaborations,
repos,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ export default defineEventHandler(async (event) => {
project,
platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined,
activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined,
includeCodeContributions: true,
includeCollaborations: false,
repos,
type: (query.type as DemographicType) || DemographicType.CONTRIBUTORS,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import type { OrganizationDependencyFilter } from '~~/server/data/types'
import { createDataSource } from '~~/server/data/data-sources'
import { ActivityTypes } from '~~/types/shared/activity-types'
import { ActivityPlatforms } from '~~/types/shared/activity-platforms'
import { getBooleanQueryParam } from '~~/server/utils/common'

/**
* Frontend expects the data to be in the following format:
Expand Down Expand Up @@ -43,12 +44,17 @@ export default defineEventHandler(async (event) => {
const activityPlatform = query.platform as ActivityPlatforms
const activityType = query.activityType as ActivityTypes

const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)

const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined

const filter: OrganizationDependencyFilter = {
project,
platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined,
activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined,
includeCodeContributions,
includeCollaborations,
repos,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { createDataSource } from '~~/server/data/data-sources'
import type { OrganizationsLeaderboardFilter } from '~~/server/data/types'
import { ActivityTypes } from '~~/types/shared/activity-types'
import { ActivityPlatforms } from '~~/types/shared/activity-platforms'
import { getBooleanQueryParam } from '~~/server/utils/common'

/**
* Frontend expects the data to be in the following format:
Expand Down Expand Up @@ -40,6 +41,8 @@ export default defineEventHandler(async (event) => {
const project = (event.context.params as { slug: string }).slug
const activityPlatform = query.platform as ActivityPlatforms
const activityType = query.activityType as ActivityTypes
const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)
const limit = query.limit ? parseInt(query.limit as string, 10) : 10
const offset = query.offset ? parseInt(query.offset as string, 10) : 0

Expand All @@ -55,6 +58,8 @@ export default defineEventHandler(async (event) => {
project,
platform: activityPlatform !== ActivityPlatforms.ALL ? activityPlatform : undefined,
activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined,
includeCodeContributions,
includeCollaborations,
repos,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { DemographicType } from '~~/server/data/types'
import { createDataSource } from '~~/server/data/data-sources'
import { ActivityTypes } from '~~/types/shared/activity-types'
import { Granularity } from '~~/types/shared/granularity'
import { getBooleanQueryParam } from '~~/server/utils/common'

/**
* Frontend expects the data to be in the following format:
Expand All @@ -28,12 +29,17 @@ export default defineEventHandler(async (event) => {
const project = (event.context.params as { slug: string }).slug
const activityType = query.activityType as ActivityTypes

const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)

const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined

const filter: RetentionFilter = {
project,
granularity: query.granularity as Granularity,
activity_type: activityType !== ActivityTypes.ALL ? activityType : undefined,
includeCodeContributions,
includeCollaborations,
repos,
demographicType: (query.type as DemographicType) || DemographicType.CONTRIBUTORS,
onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ export default defineEventHandler(async (event) => {
const filter: ActiveDaysFilter = {
project,
granularity: query.granularity as Granularity,
includeCodeContributions: true,
includeCollaborations: false,
repos,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ export default defineEventHandler(async (event) => {
countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW,
activity_type: (query.activityType as ActivityTypes) || ActivityTypes.AUTHORED_COMMIT,
onlyContributions: true, // only count contributions
includeCodeContributions: true,
includeCollaborations: false,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import { DateTime } from 'luxon'
import { createDataSource } from '~~/server/data/data-sources'
import type { ContributionsOutsideWorkHoursFilter } from '~~/types/development/requests.types'
import { getBooleanQueryParam } from '~~/server/utils/common'

/**
* Frontend expects the data to be in the following format:
Expand Down Expand Up @@ -37,9 +38,14 @@ export default defineEventHandler(async (event) => {

const repos = Array.isArray(query.repos) ? query.repos : query.repos ? [query.repos] : undefined

const includeCodeContributions = getBooleanQueryParam(query, 'includeCodeContributions', true)
const includeCollaborations = getBooleanQueryParam(query, 'includeCollaborations', false)

const filter: ContributionsOutsideWorkHoursFilter = {
project,
repos,
includeCodeContributions,
includeCollaborations,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ export default defineEventHandler(async (event) => {
countType: ActivityFilterCountType.NEW,
activity_type: ActivityTypes.ISSUES_CLOSED,
onlyContributions: false,
includeCodeContributions: true,
includeCollaborations: true,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ export default defineEventHandler(async (event) => {
granularity: query.granularity as Granularity,
repos,
onlyContributions: false,
includeCodeContributions: true,
includeCollaborations: true,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
}
Expand Down
2 changes: 2 additions & 0 deletions frontend/server/api/project/[slug]/popularity/forks.get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ export default defineEventHandler(async (event) => {
countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW,
activity_type: (query.activityType as ActivityTypes) || ActivityTypes.FORKS,
onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them.
includeCodeContributions: true,
includeCollaborations: true,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ export default defineEventHandler(async (event) => {
countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW,
activity_type: (query.activityType as ActivityTypes) || ActivityTypes.MESSAGE,
onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them.
includeCodeContributions: true,
includeCollaborations: true,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
}
Expand Down
2 changes: 2 additions & 0 deletions frontend/server/api/project/[slug]/popularity/stars.get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ export default defineEventHandler(async (event) => {
countType: (query.countType as ActivityFilterCountType) || ActivityFilterCountType.NEW,
activity_type: (query.activityType as ActivityTypes) || ActivityTypes.STARS,
onlyContributions: false, // forks and stars are non-contribution activities, but we want to count them.
includeCodeContributions: true,
includeCollaborations: true,
startDate: query.startDate ? DateTime.fromISO(query.startDate as string) : undefined,
endDate: query.endDate ? DateTime.fromISO(query.endDate as string) : undefined,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ describe('Active Contributors Data Source', () => {

const filter = {
granularity: Granularity.WEEKLY,
includeCodeContributions: true,
includeCollaborations: false,
project: 'the-linux-kernel-organization',
startDate,
endDate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,17 @@ export async function fetchActiveContributors(filter: ActiveContributorsFilter)
const currentSummaryQuery = {
project: filter.project,
repos: filter.repos,
includeCodeContributions: filter.includeCodeContributions,
includeCollaborations: filter.includeCollaborations,
startDate: dates.current.from,
endDate: dates.current.to
};

const previousSummaryQuery = {
project: filter.project,
repos: filter.repos,
includeCodeContributions: filter.includeCodeContributions,
includeCollaborations: filter.includeCollaborations,
startDate: dates.previous.from,
endDate: dates.previous.to
};
Expand All @@ -55,6 +59,8 @@ export async function fetchActiveContributors(filter: ActiveContributorsFilter)
project: filter.project,
granularity: filter.granularity,
repos: filter.repos,
includeCodeContributions: filter.includeCodeContributions,
includeCollaborations: filter.includeCollaborations,
startDate: dates.current.from,
endDate: dates.current.to
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,10 @@ describe('Active Organizations Data Source', () => {
const endDate = DateTime.utc(2025, 3, 20);

const filter = {
granularity: Granularity.WEEKLY,
project: 'the-linux-kernel-organization',
granularity: Granularity.WEEKLY,
includeCodeContributions: true,
includeCollaborations: false,
startDate,
endDate
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,17 @@ export async function fetchActiveOrganizations(filter: ActiveOrganizationsFilter
const currentSummaryQuery = {
project: filter.project,
repos: filter.repos,
includeCodeContributions: filter.includeCodeContributions,
includeCollaborations: filter.includeCollaborations,
startDate: dates.current.from,
endDate: dates.current.to
};

const previousSummaryQuery = {
project: filter.project,
repos: filter.repos,
includeCodeContributions: filter.includeCodeContributions,
includeCollaborations: filter.includeCollaborations,
startDate: dates.previous.from,
endDate: dates.previous.to
};
Expand All @@ -65,6 +69,8 @@ export async function fetchActiveOrganizations(filter: ActiveOrganizationsFilter
project: filter.project,
granularity: filter.granularity,
repos: filter.repos,
includeCodeContributions: filter.includeCodeContributions,
includeCollaborations: filter.includeCollaborations,
startDate: dates.current.from,
endDate: dates.current.to
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ describe('Code Review Engagement Data Source', () => {
const expectedCurrentDataQuery: ActivityHeatmapByWeekdayTBQuery = {
project: filter.project,
repos: filter.repos,
includeCodeContributions: filter.includeCodeContributions,
includeCollaborations: filter.includeCollaborations,
startDate: filter.startDate,
endDate: filter.endDate,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ describe('Contributors Dependency Data Source', () => {
const filter = {
project: 'the-linux-kernel-organization',
limit: 100,
includeCodeContributions: true,
includeCollaborations: false,
startDate,
endDate
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ describe('Contributors Leaderboard Data Source', () => {
repos: ['linux'],
platform: ActivityPlatforms.GITHUB,
activity_type: ActivityTypes.AUTHORED_COMMIT,
includeCodeContributions: true,
includeCollaborations: false,
startDate,
endDate
};
Expand Down
Loading