keepr
ENRU
Log inGet started
Help centerIntegrationsBring GitVerse pull requests into Keepr and comment the time back

Bring GitVerse pull requests into Keepr and comment the time back

Updated Oct 15, 2026
7 min read

What the integration does

One integration connects a GitVerse repository to one Keepr project. Inbound, GitVerse tells Keepr about its pull requests: a new pull request becomes a task in the Keepr project, editing its title renames the task, closing or merging it archives the task, and reopening it restores the task.

Outbound, Keepr reports tracked time back. GitVerse has no time-tracking field, so each time entry on a pull request’s task becomes one comment on the pull request, edited when the entry changes and deleted when the entry is deleted. Only time from the integration’s Keepr project is sent, to the second, never rounded.

What it does not do: GitVerse’s task tracker — the tasks at — has no public API and sends no webhooks. Keepr cannot create, close or rename tasks from it, and cannot post time to it. See “Tracker tasks” below for how to track time on them anyway.

Before you start

In Keepr you need to be an owner or admin of the organization, or a manager of the workspace that holds the project. Every plan includes integrations: Free runs one at a time, Team three, and Ultimate — trial included — as many as you need.

In GitVerse you need to be able to change the repository’s settings to add a webhook. GitVerse has one address, , so there is nothing to type for it.

1. Create the integration in Keepr

Open Organization settings → Integrations and press “New integration”. Choose GitVerse, the Keepr project its tasks go into, and the name it acts under: Keepr shows its actions as, for example, “Archived by GitVerse · Website”.

Keepr then shows the webhook secret, once. Copy it before closing the dialog. Afterwards only its first characters are shown; if it is lost, rotate it on the integration’s page and paste the new one into GitVerse.

2. Add the webhook in GitVerse

In the repository, open Settings → Webhooks and add a webhook with your own URL — not one of the Telegram, MAX or Discord presets. Paste the endpoint from the integration’s Inbound webhooks section as its address.

GitVerse signs nothing, so Keepr checks the Authorization header instead. Under “Authorization header”, enter , a space and the webhook secret. A delivery without it, or with an old secret, is refused.

Under events, choose selective events and tick the pull request events, or choose all events: Keepr records the others and leaves them alone. Save the webhook.

3. Choose who the time is reported as

GitVerse shows every comment as written by the owner of the token Keepr uses. The comment names the Keepr member who tracked the time, but the author is that account, for everyone’s entries.

A GitVerse token has no scopes: it can do whatever its account can. So use a dedicated account for Keepr, give it write access to the repositories the integration covers and nothing else, sign in as it and create a token at Settings → Tokens. GitVerse shows the token once; copy it.

Your own token works the same way, but then every comment is shown as yours, and Keepr holds a key to everything you can reach.

4. Give Keepr the token

On the integration’s page, open Credentials and press “Set…” next to the GitVerse credential. The address is already ; paste the token and save.

Keepr stores the token encrypted and afterwards shows only its first characters. It uses it to write time back and to read a pull request’s branch and description, to link it to a tracker task; nothing else. Without it, pull requests still come in, but none is linked and the recent deliveries show “Couldn’t read its issues”.

Linking pull requests to tracker tasks

A pull request is folded into a tracker task — its time lands on the Keepr task for that tracker key, not on a task of its own — when its branch follows Conventional Branch with the key leading the description, such as . The prefixes read are feature, feat, bugfix, fix, hotfix, chore, ai, claude, codex, copilot and cursor; release branches are not.

Failing that, Keepr reads the pull request’s description for a Conventional Commits footer line naming the key, such as , wherever it sits, so a closing line after it does no harm. Closes, Fixes and Resolves work too, with or after the word.

The key must name a tracker task Keepr already tracks: one you started a timer on from its page with the browser extension, in the integration’s project. Keepr never creates a tracker task from a pull request, so a branch like cannot invent one. A tracked branch key wins; otherwise exactly one tracked footer key folds. With none, or several, the pull request is its own task, archived when it is merged or closed, and it moves onto the tracker task at its next event once that task is tracked. Branches and descriptions that follow neither convention are not linked. Time on a tracker key’s task is not posted anywhere in GitVerse — the tracker has no API — and stays in Keepr.

What Keepr sends

An entry is sent once it is finished — a running timer sends nothing until it stops — and only when its task is in the integration’s project and links to a pull request in that repository. Tasks the integration created link that way.

Each entry gets one comment on the pull request naming the member, the duration and the day. An edit rewrites that comment instead of adding another, and deleting the entry deletes it. A comment deleted by hand is written again the next time the entry changes.

Imported time is history and is never sent. The integration’s “Recently sent” list shows the latest entries, each with its pull request, the member, the time GitVerse holds for it, and whether the last send worked; a failed row says why and what to do.

Tracker tasks

GitVerse’s task tracker sends Keepr nothing, so its tasks never become Keepr tasks on their own. Track time on one with the Keepr browser extension: open the task’s page, and the extension reads the key and title from it and starts the timer on the matching Keepr task — the same task a linked pull request folds into. Get the extension on the Downloads page.

That time stays in Keepr, in its reports and invoices; nothing is written to the tracker task.

Pause, rotate or revoke

The switch on the integration’s page turns it off without losing anything. While it is off, deliveries are recorded but not acted on, and no time is sent: an entry saved during the pause is sent the next time it changes. Switching it back on takes a slot under your plan’s limit again.

“Rotate…” in Credentials replaces the webhook secret at once, with no grace period: deliveries fail until and the new secret are in the webhook’s Authorization header. “Remove” next to the GitVerse credential stops time reporting and leaves the inbound direction alone.

Revoke is final. Keepr destroys both secrets and acts on nothing more; the integration stays in the list as history, and what it did stays attributed to it in the audit log and on archived tasks. Delete the token in GitVerse as well.

If something goes wrong

Every delivery appears under the integration’s recent deliveries with what it did. One that GitVerse shows as refused with a 401 carried no Authorization header, or a different secret: check that it reads , a space and the current secret. “Not acted on” is an event other than a pull request’s, such as a push. “Task already there” means a task for the pull request existed, and nothing was duplicated.

In “Recently sent”, “Address or credential not set” means the integration has no token yet. “Credential rejected” means the token was deleted or its account lost access to the repository. “Issue not found” means the pull request is gone or the token’s account cannot see it. “Tool refused it” is any other refusal from GitVerse; “Tool unreachable, retrying” clears on its own once GitVerse answers.

A send that failed for good is tried again the next time the entry changes.