Skip to content

Commit 02745ca

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/frontend/development-dependencies-ff8b8db279
2 parents 2bdff27 + aae3c88 commit 02745ca

File tree

15 files changed

+168
-124
lines changed

15 files changed

+168
-124
lines changed

backend/.env.example

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,10 @@ MONGODB_URI=mongodb://localhost:27017/github-value
1919
# Webhook proxy URL (optional)
2020
# This is only needed if you don't want to use smee.io
2121
# WEBHOOK_PROXY_URL=https://5950-2601-589-4885-e850-b1eb-a754-b856-6038.ngrok-free.app
22+
#
23+
24+
# Log rotation settings
25+
# In observing organizations with large amounts of activity, the debug logs can
26+
# grow quite large, so having flexibility about how long to store those helps.
27+
# LOG_ROTATION_PERIOD=1d
28+
# LOG_ROTATION_COUNT=14

backend/src/app.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import express, { Express } from 'express';
33
import rateLimit from 'express-rate-limit';
44
import bodyParser from 'body-parser';
55
import cors from 'cors';
6-
import path, { dirname } from 'path';
7-
import { fileURLToPath } from 'url';
6+
import path from 'path';
87
import * as http from 'http';
98
import Database from './database.js';
109
import logger, { expressLoggerMiddleware } from './services/logger.js';
@@ -133,7 +132,7 @@ class App {
133132
this.e.get('*', (_, res) => res.sendFile(path.join(frontendPath, 'index.html')));
134133

135134
this.eListener = this.e.listen(this.port, '0.0.0.0');
136-
logger.info(`eListener on port ${this.port}`);
135+
logger.info(`eListener on port ${this.port} (http://localhost:${this.port})`);
137136
}
138137

139138
private initializeSettings() {

backend/src/controllers/usage.controller.ts

Lines changed: 0 additions & 24 deletions
This file was deleted.

backend/src/database.ts

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,28 +60,6 @@ class Database {
6060
name: String,
6161
value: {}
6262
}));
63-
mongoose.model('Usage', new mongoose.Schema({
64-
org: String,
65-
team: String,
66-
day: Date,
67-
total_suggestions_count: Number,
68-
total_acceptances_count: Number,
69-
total_lines_suggested: Number,
70-
total_lines_accepted: Number,
71-
total_active_users: Number,
72-
total_chat_acceptances: Number,
73-
total_chat_turns: Number,
74-
total_active_chat_users: Number,
75-
breakdown: [{
76-
language: String,
77-
editor: String,
78-
suggestions_count: Number,
79-
acceptances_count: Number,
80-
lines_suggested: Number,
81-
lines_accepted: Number,
82-
active_users: Number
83-
}]
84-
}));
8563

8664
// Language Schema 📝
8765
const LanguageSchema = new mongoose.Schema({

backend/src/models/usage.model.ts

Lines changed: 0 additions & 42 deletions
This file was deleted.

backend/src/routes/index.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Router, Request, Response } from 'express';
22
import surveyController from '../controllers/survey.controller.js';
3-
import usageController from '../controllers/usage.controller.js';
43
import settingsController from '../controllers/settings.controller.js';
54
import setupController from '../controllers/setup.controller.js';
65
import SeatsController from '../controllers/seats.controller.js';
@@ -12,7 +11,7 @@ import adoptionController from '../controllers/adoption.controller.js';
1211
const router = Router();
1312

1413
router.get('/', (req: Request, res: Response) => {
15-
res.send('Hello World!');
14+
res.send('Hello github-value!');
1615
});
1716

1817
router.get('/survey', surveyController.getAllSurveys);
@@ -22,8 +21,6 @@ router.put('/survey/:id', surveyController.updateSurvey); // put github survey l
2221
router.delete('/survey/:id', surveyController.deleteSurvey);
2322
router.post('/survey/:id/github', surveyController.updateSurveyGitHub);
2423

25-
router.get('/usage', usageController.getUsage);
26-
2724
router.get('/metrics', metricsController.getMetrics);
2825
router.get('/metrics/totals', metricsController.getMetricsTotals);
2926

backend/src/services/logger.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ const packageJsonPath = path.resolve(__dirname, '../../package.json');
1616
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
1717
export const appName = packageJson.name || 'GitHub Value';
1818

19+
const period = process.env.LOG_ROTATION_PERIOD || '1d';
20+
const count = process.env.LOG_ROTATION_COUNT ? parseInt(process.env.LOG_ROTATION_COUNT) : 14;
21+
1922
const logger = bunyan.createLogger({
2023
name: appName,
2124
level: 'debug',
@@ -42,14 +45,16 @@ const logger = bunyan.createLogger({
4245
},
4346
{
4447
path: `${logsDir}/error.json`,
45-
period: '1d',
46-
count: 14,
48+
type: 'rotating-file',
49+
period,
50+
count,
4751
level: 'error'
4852
},
4953
{
5054
path: `${logsDir}/debug.json`,
51-
period: '1d',
52-
count: 14,
55+
type: 'rotating-file',
56+
period,
57+
count,
5358
level: 'debug'
5459
}
5560
]

backend/src/services/query.service.ts

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { CronJob, CronJobParams, CronTime } from 'cron';
22
import logger from './logger.js';
3-
import { insertUsage } from '../models/usage.model.js';
43
import SeatService, { SeatEntry } from './seats.service.js';
54
import { App, Octokit } from 'octokit';
65
import { MetricDailyResponseType } from '../models/metrics.model.js';
@@ -80,6 +79,7 @@ class QueryService {
8079
}
8180

8281
await adoptionService.createAdoption(enterpriseAdoptionData);
82+
logger.info(`Task finished. Last ran at `, this.cronJob.lastDate());
8383
}
8484

8585
private async orgTask(octokit: Octokit, queryAt: Date, org: string) {
@@ -98,11 +98,7 @@ class QueryService {
9898
}
9999

100100
const queries = [
101-
this.queryCopilotUsageMetrics(octokit, org).then(result => {
102-
this.status.usage = true;
103-
return result;
104-
}),
105-
this.queryCopilotUsageMetricsNew(octokit, org).then(result => {
101+
this.queryCopilotMetrics(octokit, org).then(result => {
106102
this.status.metrics = true;
107103
return result;
108104
}),
@@ -112,12 +108,11 @@ class QueryService {
112108
}),
113109
];
114110

115-
const [usageMetrics, usageMetricsNew, copilotSeatAssignments] = await Promise.all(queries);
111+
const [copilotMetrics, copilotSeatAssignments] = await Promise.all(queries);
116112
this.status.dbInitialized = true;
117113

118114
return {
119-
usageMetrics,
120-
usageMetricsNew,
115+
copilotMetrics,
121116
copilotSeatAssignments,
122117
teamsAndMembers
123118
}
@@ -127,7 +122,7 @@ class QueryService {
127122
logger.info(`${org} finished task`);
128123
}
129124

130-
public async queryCopilotUsageMetricsNew(octokit: Octokit, org: string, team?: string) {
125+
public async queryCopilotMetrics(octokit: Octokit, org: string, team?: string) {
131126
try {
132127
const metricsArray = await octokit.paginate<MetricDailyResponseType>(
133128
'GET /orgs/{org}/copilot/metrics',
@@ -142,19 +137,6 @@ class QueryService {
142137
}
143138
}
144139

145-
public async queryCopilotUsageMetrics(octokit: Octokit, org: string) {
146-
try {
147-
const rsp = await octokit.rest.copilot.usageMetricsForOrg({
148-
org
149-
});
150-
151-
insertUsage(org, rsp.data);
152-
logger.info(`${org} usage metrics updated`);
153-
} catch (error) {
154-
logger.error(`Error updating ${org} usage metrics`, error);
155-
}
156-
}
157-
158140
public async queryCopilotSeatAssignments(octokit: Octokit, org: string, queryAt: Date) {
159141
try {
160142
const rsp = await octokit.paginate(octokit.rest.copilot.listCopilotSeats, {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<highcharts-chart
2+
*ngIf="options"
3+
[Highcharts]="Highcharts"
4+
[options]="options"
5+
style="width: 100%; height: 400px; display: block;">
6+
</highcharts-chart>

frontend/src/app/main/copilot/copilot-dashboard/dashboard-card/dashboard-card-line-chart/dashboard-card-line-chart.component.scss

Whitespace-only changes.

0 commit comments

Comments
 (0)