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 { GrandTotal, SummariesPayload } from '../types/summaries';
|
||||
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 changeExtensionState from '../utils/changeExtensionState';
|
||||
import contains from '../utils/contains';
|
||||
@@ -112,7 +112,7 @@ class WakaTimeCore {
|
||||
* Depending on various factors detects the current active tab URL or domain,
|
||||
* and sends it to WakaTime for logging.
|
||||
*/
|
||||
async recordHeartbeat(payload = {}): Promise<void> {
|
||||
async recordHeartbeat(payload: Record<string, unknown> = {}): Promise<void> {
|
||||
const apiKey = await getApiKey();
|
||||
if (!apiKey) {
|
||||
return changeExtensionState('notLogging');
|
||||
@@ -166,6 +166,12 @@ class WakaTimeCore {
|
||||
// Checks dev websites
|
||||
const project = generateProjectFromDevSites(url);
|
||||
|
||||
// Check if code reviewing
|
||||
const codeReviewing = isCodeReviewing(url);
|
||||
if (codeReviewing) {
|
||||
payload.category = 'code reviewing';
|
||||
}
|
||||
|
||||
if (items.loggingStyle == 'blacklist') {
|
||||
if (!contains(url, items.blacklist as string)) {
|
||||
await this.sendHeartbeat(
|
||||
|
||||
@@ -29,3 +29,14 @@ export const generateProjectFromDevSites = (url: string): string | 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