Skip to content

Sources

A source contributes to a day. Some give commits, some give tasks, some give the activities that make a day of meetings or firefighting count as work.

What each one gives you

SourceGives youAuth
GitHubCommits, PRs opened, reviews left, issues closedOAuth or personal access token
GitLabCommits, merge requests — cloud or self-managedPersonal access token
BitbucketCommits, merged pull requestsUsername + app password + workspace
Azure DevOpsCommits, work itemsOrganization + project + PAT
JiraAssigned issues as tasks; resolutions as activitySite URL + email + API token
LinearAssigned issues as tasks; completions as activityPersonal API key
GitHub IssuesAssigned issues as tasksPersonal access token
Google CalendarMeetings attended, with durationAccess token (calendar.readonly)
Outlook CalendarThe same, via Microsoft GraphGraph access token
SentryIncidents you resolvedAuth token + organization slug
Any toolActivities pushed in over HTTPAPI key

Everything is configured under Integrations. Each connector has a Test button that verifies the credential without importing anything and shows the provider's own message when it fails.

GitHub and GitLab

Signing in with GitHub connects it. Public and private repositories are discovered automatically; use Settings → Repository rules to exclude any. Beyond commits, Devlog imports the pull requests you opened, the reviews you left on others' PRs, and the issues you closed, so a day spent reviewing is not an empty day.

GitLab takes a personal access token and an optional host for self-managed instances. Merge requests are imported the same way PRs are.

Issue trackers and the task link

Jira, Linear, GitHub Issues and Azure DevOps import the issues assigned to you as Devlog tasks. Issue keys shaped like DEV-42 are exactly what the commit scanner looks for, so a developer who already writes the key in commit messages gets the link for free. GitHub issue numbers and Azure work-item ids are bare integers, so those connectors synthesise a key of the same shape (API-42, ADO-118).

Imported tasks land in a holding project per connector and can be moved into a real project afterwards. Re-syncing updates rather than duplicates: the identity is the origin system's id, not the key, so renaming an issue in Jira does not create a second copy.

Write-back — Jira and Linear can receive the day's log as a comment on the issue it advanced. It is off by default and enabled per connection, and it only fires for a task a commit named, never one the model inferred.

Calendars and monitoring

Google Calendar and Outlook import the meetings you attended, with their duration, as activities. Sentry imports the incidents you resolved. Neither produces a commit, and both used to read as idle time.

Days are wall-clock where you are: every connector receives your timezone and a meeting at 01:00 belongs to that day, not the previous one.

Work with no source at all

From Daily Work, log a meeting, a pairing session, planning or on-call by form — or type a sentence like “spent the morning on the incident and then reviewed two PRs” and let the model turn it into dated draft entries. Dictation uses the browser's own speech recognition, so no audio leaves your machine; Firefox lacks it and hides the control rather than offering something broken.

The parser never does date arithmetic. It is given today's date and asked for absolute dates, every date it returns is checked against a bounded window, and a guessed date is flagged as guessed.

When a source fails

Every connector runs isolated and is capped at 25 seconds. A failure is recorded against that connection, shown on the Integrations page, and reported as a warning on the run rather than thrown. An expired Jira token costs you Jira, not your GitHub summary.