Category: Feature Reference
Pull Requests Done Right: Stop Splitting Tickets and Code Reviews
If you’ve ever worked on a bug fix in GitHub or GitLab, you know the drill: create a branch, write your code, open a pull request, and then… create a whole new artifact that lives separately from the original issue. Now you’re managing two things—the bug report and the PR—with links bouncing between them, comments scattered across both, and a history that requires detective work to piece together.
What if your code, commits, review comments, and the original ticket all lived in one place?
That’s how GForge works.
The Problem with Separate Pull Requests
This pattern shows up across modern toolchains—from GitHub and GitLab to Atlassian’s Jira + Bitbucket stack—where issues and pull requests are linked, but still exist as fundamentally separate objects.
In most DevOps tools, a pull request is its own entity. You have:
- Issue #1234: “Login button doesn’t work on mobile”
- PR #567: “Fix mobile login button”
They are connected, but they are not the same thing.
The ticket describes the work. The pull request holds the code review, comments, approvals, and merge action. That split may feel harmless in the moment, but it creates friction over time.
A developer opens a ticket. A branch is created. A pull request is opened. Review comments and approvals live in the PR. The ticket shows a link or status update. The PR is merged, the branch is deleted, and the team moves on.
Months later, someone needs to understand what was reviewed, who approved it, and why certain decisions were made. Now the team is reconstructing context across multiple tools: the ticket history, commit logs, and a pull request that may no longer exist in any meaningful way. Critical review discussion is fragmented—or gone entirely.
For regulated industries—defense, aerospace, finance, and on-premise enterprise environments—this isn’t just inconvenient. It’s a structural risk. When compliance, audits, or long-lived programs demand a clear, authoritative history of work and review, “linked artifacts” aren’t enough.
What’s needed is a single system of record where the work item is the review.
GForge’s Approach: The Ticket IS the Pull Request
In GForge, when a developer is ready for code review, they simply change the ticket’s status to “Needs Merge” (or whatever status your team configures for this stage). The ticket itself becomes the pull request.ds Merge” (or whatever status your team configures for this stage). The ticket itself becomes the pull request.
Here’s what that looks like in practice:
1. Work Branch Association
When creating or editing a ticket, developers specify a Work Branch—for example, next/ticlone_events_#64221. GForge automatically associates all commits on that branch with the ticket. No need to remember special commit message formats (though you can use [#64221] in commit messages if you prefer).
2. One-Click Code Review
When the ticket moves to “Needs Merge” status, reviewers see a Merge tab right on the ticket. This shows:
- All commits on the work branch
- A full diff with inline and side-by-side views
- The ability to add line-by-line comments directly in the code
3. Inline Review Comments
Reviewers can click any line of code and add a comment. Need to mention a teammate? Just type @mtutty and they’ll be notified. These comments appear in the ticket’s timeline alongside status changes, assignment updates, and follow-up discussions..
4. Comments That Survive Branch Deletion
When you add a comment on a specific line of code, GForge captures the surrounding context. Even after the work branch is merged and eventually deleted, those review comments—with their code context—remain part of the ticket’s permanent history.Here’s a detail that matters: when you add a comment on a specific line of code, GForge captures the surrounding context. Even after the work branch is merged and eventually deleted, those review comments—with their code context—remain part of the ticket’s permanent history.
5. Complete the Merge
When review is done and the code is approved, click Complete Merge. GForge performs the merge server-side (no need to switch to your terminal). If there are conflicts, you’ll see them immediately and can complete the merge locally instead.
The Promotion Model: Structured Branch Flow
GForge supports a Promotion Model that defines how code flows from development to production. You configure the sequence of branches—for example:
gforge-next(development)gforge-next-deploy(staging)gforge-com(production candidate)master(production)
When merging from a work branch, GForge automatically targets the first branch in your promotion model. Reviewers can override this if needed, but the default keeps your process consistent.
Commit Message Intelligence
GForge parses commit messages to link commits to tickets and even advance workflow status. Some examples:
Basic linking:
git commit -m '[#12345] Make the spinning logo bigger'
This links the commit to ticket #12345.
With time tracking and status change:
git commit -m '[#12345,1.5,merge] Make the spinning logo bigger'
This links the commit, logs 1.5 hours of work, and moves the ticket to “Needs Merge” status.
Multiple tickets:
git commit -m '[#12345,1.5,merge] [#11234,.5,wontfix] Refactor shared component'
Handle multiple tickets in a single commit, each with their own time and status updates.
Why This Matters for Regulated Industries
For defense contractors, aerospace companies, and other organizations with strict audit requirements, GForge’s unified approach provides:
Complete Traceability: Every code change, review comment, and approval lives in one place. An auditor can open a single ticket and see the entire history of a change from request to deployment.
Simplified Compliance: No need to correlate separate PR systems with ticketing systems. The ticket number IS the change record.
On-Premise Deployment: For ITAR compliance or air-gapped networks, GForge runs entirely on your infrastructure. Your code review history never leaves your network.
Two Ways to Merge
GForge actually offers two approaches to code review:
1. Ticket-Based Merge (Recommended): Use the Merge tab on tickets in “Needs Merge” status. This is the full-featured approach with complete audit trails and comment preservation.
2. SCM-Based Merge: For teams not using GForge’s tracker, the Git repository’s Merge tab lets you select source and target branches directly. This works well for small teams or simple workflows, but you lose the ticket integration benefits.
The Bottom Line
Pull requests shouldn’t be separate artifacts. Your bug report or feature request should evolve naturally into a code review and then into a merged change—all in one place, with one timeline, one set of comments, and one audit trail.
That’s what GForge delivers. No more bouncing between issues and PRs. No more scattered review comments. No more compliance headaches trying to prove who approved what.
Ready to see it in action? Start a free trial or schedule a demo with our team.
GForge is an integrated DevOps platform that combines project tracking, Git/SVN repositories, wikis, CI/CD, and team collaboration in a single solution. Available as SaaS or self-hosted for organizations requiring on-premise deployment.