14 Sep 2026

feedPlanet Mozilla

Jonathan Almeida: Checkout a Github pull request from one-off contributions

Sometimes on Github, I need to fetch a patch from a fork I don't typically see everyday so I can try it out locally. I use the line at the top of the patch which has a copy button next to it because it's convenient.

The common steps for this are:

  1. Click the contributor's branch and go to their github fork repository.
  2. Copy the repository link.
  3. Add a new git remote with an alias (typically their username).
  4. git fetch <alias>
  5. git checkout <alias>/<branch>

Here is a one-liner for it that you can add to your gitconfig:

[alias]
  co = "!f() { PNAME=$(basename `git rev-parse --show-toplevel`); OWNER=$(echo $1 | cut -d':' -f1); BRANCH=$(echo $1 | cut -d':' -f2); git fetch git@github.com:$OWNER/$PNAME.git $BRANCH; git checkout FETCH_HEAD; }; f"

You might ask why do all of this when the github hub CLI does this for you. I haven't had a need for that CLI and this was the most promising feature it had that ends up being an alias for me.

This fetch also works well with jj too because the fetch and checkout remain headless.


Formatted and commented, it looks less intimidating:

f() {
  # Get the repository name from your checkout (assuming it is the
  # original directory name as the remote).
  PNAME=$(basename `git rev-parse --show-toplevel`);

  # Parse out the fork's owner.
  # Example: `<owner>:<branch>`
  OWNER=$(echo $1 | cut -d':' -f1);

  # Parse out the branch name.
  # Example: `<owner>:<branch>`
  BRANCH=$(echo $1 | cut -d':' -f2);

  # Do a fetch of that particular branch using the extracted
  # information from above.
  # This assumes the remote is hosted on github.
  git fetch git@github.com:$OWNER/$PNAME.git $BRANCH;

  # Checkout using the alias `FETCH_HEAD` which git provides.
  git checkout FETCH_HEAD;
};

# Execute the function!
# It's easier to build a function that holds variables and execute
# rather than in-line it.
f

14 Sep 2026 12:00am GMT

11 Sep 2026

feedPlanet Mozilla

Firefox Nightly: The Need for Speed Controls – These Weeks in Firefox: Issue 208

Highlights

Playback speed settings panel in a Picture-in-Picture window.

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
WebExtensions Framework

DevTools

::picker rules for a pseudo element within the DevTools Inspector pane.

A tooltip showing a breakdown of a CSS var function

WebDriver

New Tab Page

A layout variation for the New Tab page with the Widgets column on the left and Popular Today column on the right.

Picture-in-Picture

Search and Urlbar

The Firefox New Tab page with an unstyled in-page search bar in the center, showing Google search suggestions for "what's a scotch bonnet"

11 Sep 2026 5:32pm GMT

Mozilla Data YouTube Channel: Monitoring Sensitive Data: How do we monitor data we don't store?

We try to be responsible with data. For example, we: - store as little sensitive data as possible - monitor changes in incoming data on which we've built models But what happens when those two approaches conflict? How do we monitor changes in incoming data that we don't want to store? This talk explains the schema we use to monitor changes in what people are searching for in Firefox...even when we deliberately don't store some of what people are searching for.

11 Sep 2026 12:19am GMT