Merge pull request #263 from wakatime/fix-187
Detect code review category based on GitHub url
This commit is contained in:
@@ -8,7 +8,7 @@ import config from '../config/config';
|
|||||||
import { SendHeartbeat } from '../types/heartbeats';
|
import { SendHeartbeat } from '../types/heartbeats';
|
||||||
import { GrandTotal, SummariesPayload } from '../types/summaries';
|
import { GrandTotal, SummariesPayload } from '../types/summaries';
|
||||||
import { ApiKeyPayload, AxiosUserResponse, User } from '../types/user';
|
import { ApiKeyPayload, AxiosUserResponse, User } from '../types/user';
|
||||||
import { IS_EDGE, IS_FIREFOX, generateProjectFromDevSites } from '../utils';
|
import { IS_EDGE, IS_FIREFOX, generateProjectFromDevSites, isCodeReviewing } from '../utils';
|
||||||
import { getApiKey } from '../utils/apiKey';
|
import { getApiKey } from '../utils/apiKey';
|
||||||
import changeExtensionState from '../utils/changeExtensionState';
|
import changeExtensionState from '../utils/changeExtensionState';
|
||||||
import contains from '../utils/contains';
|
import contains from '../utils/contains';
|
||||||
@@ -112,7 +112,7 @@ class WakaTimeCore {
|
|||||||
* Depending on various factors detects the current active tab URL or domain,
|
* Depending on various factors detects the current active tab URL or domain,
|
||||||
* and sends it to WakaTime for logging.
|
* and sends it to WakaTime for logging.
|
||||||
*/
|
*/
|
||||||
async recordHeartbeat(payload = {}): Promise<void> {
|
async recordHeartbeat(payload: Record<string, unknown> = {}): Promise<void> {
|
||||||
const apiKey = await getApiKey();
|
const apiKey = await getApiKey();
|
||||||
if (!apiKey) {
|
if (!apiKey) {
|
||||||
return changeExtensionState('notLogging');
|
return changeExtensionState('notLogging');
|
||||||
@@ -166,6 +166,12 @@ class WakaTimeCore {
|
|||||||
// Checks dev websites
|
// Checks dev websites
|
||||||
const project = generateProjectFromDevSites(url);
|
const project = generateProjectFromDevSites(url);
|
||||||
|
|
||||||
|
// Check if code reviewing
|
||||||
|
const codeReviewing = isCodeReviewing(url);
|
||||||
|
if (codeReviewing) {
|
||||||
|
payload.category = 'code reviewing';
|
||||||
|
}
|
||||||
|
|
||||||
if (items.loggingStyle == 'blacklist') {
|
if (items.loggingStyle == 'blacklist') {
|
||||||
if (!contains(url, items.blacklist as string)) {
|
if (!contains(url, items.blacklist as string)) {
|
||||||
await this.sendHeartbeat(
|
await this.sendHeartbeat(
|
||||||
|
|||||||
@@ -29,3 +29,14 @@ export const generateProjectFromDevSites = (url: string): string | null => {
|
|||||||
|
|
||||||
return match?.[0] ?? null;
|
return match?.[0] ?? null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const CODE_REVIEW_URL_REG_LIST = [/github.com\/[^/]+\/[^/]+\/pull\/\d+\/files/];
|
||||||
|
|
||||||
|
export const isCodeReviewing = (url: string): boolean => {
|
||||||
|
for (const reg of CODE_REVIEW_URL_REG_LIST) {
|
||||||
|
if (url.match(reg)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user