diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 88e5582f8ab77a225789f4a0f9b5455f724f6f5f..7d88bb04a438ebc312f77a33dc768473ba3cf2ee 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -124,7 +124,12 @@ black:
   before_script:
     - pip install black
   script:
-    - black --check --diff .
+    - black --check --diff api/
+  only:
+    refs:
+      - branches
+    changes:
+      - api/**/*
 
 flake8:
   interruptible: true
@@ -140,6 +145,11 @@ flake8:
     key: "$CI_PROJECT_ID__flake8_pip_cache"
     paths:
       - "$PIP_CACHE_DIR"
+  only:
+    refs:
+      - branches
+    changes:
+      - api/**/*
 
 eslint:
   interruptible: true
@@ -155,6 +165,11 @@ eslint:
     key: "$CI_PROJECT_ID__eslint_npm_cache"
     paths:
       - front/node_modules
+  only:
+    refs:
+      - branches
+    changes:
+      - front/**/*
 
 test_api:
   interruptible: true
diff --git a/CHANGELOG b/CHANGELOG
index 5496270559885127f3c247d4902dbffa9aac61e1..e447d42ddcff17dc4c503430045ba1c6d9d4c052 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,6 +10,31 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.
 
 .. towncrier
 
+1.2.7 (2022-07-14)
+------------------
+
+Upgrade instructions are available at
+https://docs.funkwhale.audio/admin/upgrading.html
+
+Bugfixes:
+
+- Fixed libre.fm plugin not submitting scrobbles (#1817)
+
+Committers:
+
+- Georg Krause
+- Marcos Peña
+
+Contributors to our Issues:
+
+- Ciarán Ainsworth
+- Marcos Peña
+
+Contributors to our Merge Requests:
+
+- Georg Krause
+- Marcos Peña
+
 1.2.6 (2022-07-04)
 ------------------
 
diff --git a/api/funkwhale_api/__init__.py b/api/funkwhale_api/__init__.py
index ca39fe0ceaf3c132dac816f444d15c80a478259a..10d6f210fb45c73756d9a92549e3f87eb9791cb3 100644
--- a/api/funkwhale_api/__init__.py
+++ b/api/funkwhale_api/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-__version__ = "1.2.6"
+__version__ = "1.2.7"
 __version_info__ = tuple(
     [
         int(num) if num.isdigit() else num
diff --git a/api/funkwhale_api/contrib/scrobbler/scrobbler.py b/api/funkwhale_api/contrib/scrobbler/scrobbler.py
index 51656de1eeb44f105fdddb2785e0886fa6e77ca1..fe9676df14355828377a621bec11939f26af49fe 100644
--- a/api/funkwhale_api/contrib/scrobbler/scrobbler.py
+++ b/api/funkwhale_api/contrib/scrobbler/scrobbler.py
@@ -17,7 +17,7 @@ def handshake_v1(session, url, username, password):
     params = {
         "hs": "true",
         "p": "1.2",
-        "c": PLUGIN["name"],
+        "c": "fw",
         "v": PLUGIN["version"],
         "u": username,
         "t": timestamp,
diff --git a/api/funkwhale_api/federation/utils.py b/api/funkwhale_api/federation/utils.py
index 9dce782464d7eff003d45151cd96e3416b76c44d..d04d639aaf0c9c825978552cae13837a507ba26c 100644
--- a/api/funkwhale_api/federation/utils.py
+++ b/api/funkwhale_api/federation/utils.py
@@ -67,11 +67,7 @@ def slugify_username(username):
 
 
 def retrieve_ap_object(
-    fid,
-    actor,
-    serializer_class=None,
-    queryset=None,
-    apply_instance_policies=True,
+    fid, actor, serializer_class=None, queryset=None, apply_instance_policies=True,
 ):
     # we have a duplicate check here because it's less expensive to do those checks
     # twice than to trigger a HTTP request