Microsoft caught sneaking "Co-Authored-by Copilot" into VS Code commits - even with AI off
Back to Tutorials
techTutorialbeginner

Microsoft caught sneaking "Co-Authored-by Copilot" into VS Code commits - even with AI off

May 3, 202632 views4 min read

Learn how to inspect Git commits for AI-generated co-author lines and manage commit metadata in Visual Studio Code.

Introduction

In this tutorial, you'll learn how to work with Git commit messages and understand how AI tools like GitHub Copilot can automatically add co-author information to your commits. Even if you've turned off AI features in your IDE, it's important to know how to check and manage these automatic additions. This tutorial will teach you how to inspect your Git history, identify co-author lines, and control what gets added to your commits.

Prerequisites

  • A computer with Git installed
  • A basic understanding of Git concepts (commits, repositories)
  • Visual Studio Code installed
  • A GitHub account (optional, but recommended)

Step-by-Step Instructions

1. Create a New Git Repository

First, let's set up a simple Git repository to experiment with. This will help us understand how commit messages work.

mkdir my-test-repo
 cd my-test-repo
 git init

Why: We need a repository to make commits and see how commit messages are structured.

2. Configure Git User Information

Before making commits, we need to tell Git who we are.

git config user.name "Your Name"
 git config user.email "[email protected]"

Why: Git needs to know who is making changes to track contributions properly.

3. Create a Test File and Make Your First Commit

Let's create a simple file and commit it to see the standard commit message format.

echo "Hello, World!" > test.txt
 git add test.txt
 git commit -m "Add test file"

Why: This creates a baseline commit to examine how commit messages work before adding AI elements.

4. View Your Commit History

Now let's see what your commit looks like in detail.

git log --oneline --show-signature

Why: This shows a compact view of your commits, helping us understand the structure.

5. Examine the Full Commit Details

Let's look at the full details of your commit to see how it's structured.

git show --format=fuller

Why: This shows the complete commit information including author, committer, and any additional metadata.

6. Understand the Co-Authored-By Format

Let's create a commit that includes a co-author line manually to understand how it works:

echo "This is a test file" > manual-coauthor.txt
 git add manual-coauthor.txt
 git commit -m "Add manual co-author test file\n\nCo-authored-by: AI Assistant "

Why: This demonstrates how to manually add co-author information to a commit, which is what AI tools might do automatically.

7. Check Commit History with Co-Authors

Now let's see how the commit with co-author looks:

git log --format=fuller

Why: This will show you the commit with the co-author information included.

8. Create a Script to Check for Co-Authors

Let's create a simple script that can help you identify commits with co-author lines:

cat > check-coauthors.sh << EOF
#!/bin/bash
echo "Checking for co-author lines in commits..."
git log --pretty=format:"%H %s" --grep="Co-authored-by" | while read commit_hash message; do
    echo "Commit: $commit_hash"
    echo "Message: $message"
    echo "---"
done
EOF
chmod +x check-coauthors.sh

Why: This script automates the process of finding commits that include co-author information.

9. Run the Co-Author Checker Script

Execute the script to see if any of your commits contain co-author lines:

./check-coauthors.sh

Why: This helps you quickly identify any commits that have AI-generated co-author information.

10. Learn How to Remove Co-Author Lines

If you find unwanted co-author lines, you can remove them by amending the commit:

git commit --amend -m "Add test file without co-author"

Why: Amending allows you to modify the most recent commit's message, removing unwanted co-author information.

11. Understanding the Risks of Automatic Co-Author Lines

Let's create a demonstration of how to prevent unwanted co-author additions:

git config --global commit.gpgsign false
 git config --global user.signingkey ""

Why: These settings help prevent automatic signing and can be part of a broader strategy to control commit metadata.

12. Final Verification

Let's make one more commit to verify our setup works:

echo "Final test" > final-test.txt
 git add final-test.txt
 git commit -m "Final test commit"
 git log --oneline

Why: This final commit confirms our understanding of the commit process and ensures we can track our work properly.

Summary

In this tutorial, you've learned how to work with Git commits, including how to identify and manage co-author lines in commit messages. You've seen how AI tools like GitHub Copilot can automatically add co-author information to commits, even when AI features are turned off. You've also learned how to check your commit history for these automatic additions and how to remove them if needed.

Remember, understanding how your commits are structured helps you maintain control over your code contributions and ensures that your work is properly attributed. This knowledge is especially important when working with teams or when you want to maintain clear records of your development process.

Source: The Decoder

Related Articles