GitLab + Go Fig
Connect GitLab to Go Fig for engineering cost allocation, R&D capitalization, and DevOps spend visibility.
GitLab holds the commits, merge requests, pipelines, and issue history that finance needs to allocate engineering cost accurately, support R&D capitalization under ASC 730 or similar policy, and attribute CI/CD spend back to the teams consuming it. Go Fig connects to GitLab (SaaS or self-managed) via the REST and GraphQL APIs, pulls project, group, and contributor data at full detail, and joins it to BambooHR roster and GL payroll inside the Financial Intelligence Graph. The result is per-engineer, per-project, per-epic cost allocation that an auditor can defend, produced automatically every close rather than reconstructed by hand at year-end.
Key facts
- Deployment
- GitLab SaaS and self-managed
- Auth
- Personal or project access token with read_api scope
- Grain
- Commit, MR, issue, and pipeline level
- Groups and subgroups
- Full hierarchy traversal supported
- Sync cadence
- Hourly incremental, webhook-driven for MR events
What you can do with GitLab data in Go Fig
R&D capitalization reporting
Classify engineering work into capitalizable (new feature development) vs expensed (maintenance, bug fixes) using issue labels and MR metadata, then produce the quarterly R&D cap schedule automatically with a journal entry for posting.
Engineering cost per initiative
Roll contributor time, joined to fully-loaded labor cost from BambooHR, up to epics, milestones, or project groups so leadership can see what each strategic bet actually cost to ship.
DevOps and CI/CD spend allocation
Attribute pipeline minutes, runner cost, and registry storage to the projects consuming them so platform costs land on the right cost center instead of sitting in a single bucket.
Data available from GitLab
Go Fig extracts and normalizes the following data from your GitLab account:
How to connect GitLab
Decide between SaaS and self-managed connection pattern
GitLab SaaS (gitlab.com) connects over the public internet with a token, no networking setup required. Self-managed behind a corporate network needs either an IP allowlist to Go Fig's egress IPs, an SSH tunnel through a bastion, or a Go Fig runner deployed inside your VPC. Choose the path that matches your security posture before generating tokens.
Generate a token with the right scopes
Under User Settings, Access Tokens (or Group Settings, Access Tokens for a group-level token), create a token with read_api, read_repository, and read_registry. Scope it to the projects and groups you want exposed. Group Access Tokens are preferred for organizations with many projects because rotation is centralized.
Map labels and issue types to R&D categories
If you are capitalizing R&D, tell Go Fig which labels or issue types map to Capitalizable vs Expensed. Common patterns include labeling feature work as type::feature and bugs as type::bug, or using epic-level categorization. Celeste can suggest mappings based on your last four quarters of label history.
Wire in BambooHR for fully-loaded cost
If BambooHR or your HRIS is already connected, Go Fig joins GitLab contributor identities (email or username) to employee records and pulls fully-loaded labor cost. This is what turns commit counts into actual dollars. If HRIS is not connected, you can upload a CSV of contributor-to-cost mappings to get started.
Authentication: Personal Access Token or Project Access Token scoped to read_api, read_repository, and read_registry as needed. For self-managed GitLab behind a VPN, an SSH tunnel or IP allowlist is supported. Group-level access tokens are recommended for multi-project visibility under one authentication.
Common Questions About GitLab Integration
Does Go Fig work with self-managed (self-hosted) GitLab?
Yes. Self-managed GitLab installations are supported with the same REST and GraphQL API surface as GitLab SaaS. Networking options include allowlisting Go Fig's egress IPs, an SSH tunnel through a bastion host, or a Go Fig runner deployed inside your VPC for fully private connectivity. The only difference from SaaS is that the sync cadence is tunable to match your instance's API rate limits, which you control yourself.
How does Go Fig support R&D capitalization under ASC 730?
Capitalization under ASC 730 (or IFRS IAS 38) requires classifying engineering work into capitalizable vs expensed and producing an auditable trail. Go Fig joins issue labels, epic categories, and MR metadata to contributor time, then to fully-loaded labor cost from BambooHR, to produce a per-initiative capitalization schedule. The full source trail (which commits, MRs, and epics rolled into which amount) is preserved so an auditor can trace any number in the schedule back to the underlying engineering work.
How are contributor identities matched to employees?
Go Fig matches on email first, then GitLab username if email does not match a known employee. Contractors are flagged separately so their cost can be allocated differently (typically to contractor expense rather than employee expense). A manual mapping override is available for cases where GitLab usernames do not match directly to HRIS records, which is common in older repositories.
Can I allocate GitLab CI/CD pipeline cost?
Yes. Go Fig pulls pipeline minutes, runner utilization, and registry storage per project. For GitLab SaaS, these numbers feed directly from GitLab's own billing API. For self-managed, the allocation uses runner-minute consumption times your internal rate card. Either way, the output is a per-project CI/CD cost that lands on the right cost center instead of sitting in a single platform expense line.
Does Go Fig respect GitLab's permission model?
Yes. The sync runs as the token owner, so whatever repositories, groups, and issues that user can see is what Go Fig can see. For sensitive repositories (security research, acquired companies in integration), you can scope the access token narrowly and explicitly exclude them. Go Fig does not read source code content, only metadata: commit counts, MR titles and descriptions, issue labels, and structural fields.
Ready to connect GitLab?
See how your GitLab data looks in Go Fig with a personalized demo.
Book a Demo