Skip to main content
The Pull Shark achievement is earned by creating pull requests that get merged. Unlike Pair Extraordinaire, this achievement doesn’t require coauthored commits.

Achievement Details

PropertyValue
Achievement IDpull-shark
Icon🦈
DescriptionOpened pull requests that have been merged
Helper AccountNot required

Tiers

Default Tier

2 merged pull requests

Bronze Tier

16 merged pull requests

Silver Tier

128 merged pull requests

Gold Tier

1024 merged pull requests
The Gold tier requires 1024 merged PRs. This will take significant time and create substantial repository history.

How It Works

The automation creates and merges pull requests:
  1. Creates a branch - Temporary branch like achievements-shark-1
  2. Makes commit - Regular commit (no coauthor needed)
  3. Opens pull request - Creates PR from branch to main
  4. Merges PR - Uses squash merge
  5. Cleans up - Deletes the temporary branch
Each operation creates one merged PR, incrementing your Pull Shark count.

Configuration

Minimal configuration required in .env:
GITHUB_TOKEN=ghp_your_token_here
GITHUB_USERNAME=your-username
TARGET_REPO=your-username/your-repo
No helper account or coauthor configuration needed for Pull Shark.

Implementation Details

From src/achievements/pullShark.ts:62-68:
const commit = await createAchievementCommit(this.owner, this.repo, {
  branch: branchName,
  achievementName: 'Pull Shark',
  number,
  tier: this.tier,
  // No coauthor for Pull Shark
});
The PR creation and merge (from src/achievements/pullShark.ts:71-85):
const pr = await createAndMergePR(this.owner, this.repo, {
  title: `Achievement: Pull Shark #${number}`,
  body: `## Pull Shark Achievement

This PR was created as part of the Pull Shark achievement (${this.tier} tier).

Operation #${number}/${this.targetCount}

---
*Created by GitHub Achievements Manager*`,
  head: branchName,
  base: this.defaultBranch,
  mergeMethod: 'squash',
  delayBeforeMerge: 500,
});

Workflow Example

Here’s what happens when you run Pull Shark for Default tier (2 PRs):
✓ Create branch achievements-shark-1
✓ Commit to ACHIEVEMENTS.md
✓ Open PR #1: "Achievement: Pull Shark #1"
✓ Merge PR #1 (squash)
✓ Delete branch achievements-shark-1

✓ Create branch achievements-shark-2
✓ Commit to ACHIEVEMENTS.md
✓ Open PR #2: "Achievement: Pull Shark #2"
✓ Merge PR #2 (squash)
✓ Delete branch achievements-shark-2

Gold Tier Considerations

1024 merged PRs will:
  • Take approximately 85 minutes to complete
  • Create significant commit history in your repository
  • Generate 1024 closed PRs in your GitHub profile
Recommendations for Gold tier:
  1. Use a dedicated repository - Don’t mix with real project work
  2. Plan cleanup - Use “Reset Repo History” immediately after completion
  3. Consider deletion - You may want to delete and recreate the repo to clear PR history
  4. Monitor rate limits - The tool handles this automatically, but be aware of the volume

Branch Cleanup

Automatic cleanup for orphaned branches (from src/achievements/pullShark.ts:113-121):
async cleanup(): Promise<void> {
  const { deleteAllBranchesWithPrefix } = await import('../github/branch.js');
  const prefix = `${this.config.branchPrefix}-shark`;
  
  const deleted = await deleteAllBranchesWithPrefix(this.owner, this.repo, prefix);
  if (deleted > 0) {
    logger.info(`Cleaned up ${deleted} orphaned branches`);
  }
}

Estimated Time

From the achievement definition in src/achievements/index.ts:39:
  • Estimated time per unit: 5000ms (5 seconds)
  • Default tier (2): ~10 seconds
  • Bronze tier (16): ~80 seconds
  • Silver tier (128): ~640 seconds (~10.5 minutes)
  • Gold tier (1024): ~5120 seconds (~85 minutes)
Actual time may vary based on GitHub API response times and rate limiting. The tool uses 2 concurrent operations and 15 operations per minute.

Differences from Pair Extraordinaire

FeaturePull SharkPair Extraordinaire
CoauthorNot requiredRequired
Default tier2 PRs1 PR
Gold tier1024 PRs48 PRs
Commit typeRegular commitCoauthored commit
Branch prefixsharkpair

Next Steps

Pair Extraordinaire

Similar PR-based achievement with coauthor requirement

Usage Guide

Learn how to run achievements

Build docs developers (and LLMs) love