launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #23608
[Merge] lp:~cjwatson/launchpad/git-repository-macaroon-secret-key into lp:launchpad
Colin Watson has proposed merging lp:~cjwatson/launchpad/git-repository-macaroon-secret-key into lp:launchpad.
Commit message:
Use a different secret key for Git access tokens.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
Related bugs:
Bug #1824399 in Launchpad itself: "Add Git HTTPS push tokens for snapcraft experiment"
https://bugs.launchpad.net/launchpad/+bug/1824399
For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/git-repository-macaroon-secret-key/+merge/366918
When I set up launchpad.internal_macaroon_secret_key I'd intended that it only be used for macaroons passed around between Launchpad components for their own purposes, and not for ones issued to users since we might need to rotate that key on a different schedule. I forgot about that when writing the GitRepository macaroon issuer.
--
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~cjwatson/launchpad/git-repository-macaroon-secret-key into lp:launchpad.
=== modified file 'lib/lp/code/model/gitrepository.py'
--- lib/lp/code/model/gitrepository.py 2019-05-01 16:31:20 +0000
+++ lib/lp/code/model/gitrepository.py 2019-05-03 13:26:10 +0000
@@ -1787,6 +1787,14 @@
"lp.expires": self.verifyExpires,
}
+ @property
+ def _root_secret(self):
+ secret = config.codehosting.git_macaroon_secret_key
+ if not secret:
+ raise RuntimeError(
+ "codehosting.git_macaroon_secret_key not configured.")
+ return secret
+
def checkIssuingContext(self, context, user=None, **kwargs):
"""See `MacaroonIssuerBase`.
=== modified file 'lib/lp/code/model/tests/test_gitrepository.py'
--- lib/lp/code/model/tests/test_gitrepository.py 2019-05-01 15:59:02 +0000
+++ lib/lp/code/model/tests/test_gitrepository.py 2019-05-03 13:26:10 +0000
@@ -3917,8 +3917,7 @@
def setUp(self):
super(TestGitRepositoryMacaroonIssuer, self).setUp()
- self.pushConfig(
- "launchpad", internal_macaroon_secret_key="some-secret")
+ self.pushConfig("codehosting", git_macaroon_secret_key="some-secret")
def test_issueMacaroon_refuses_branch(self):
branch = self.factory.makeAnyBranch()
=== modified file 'lib/lp/services/config/schema-lazr.conf'
--- lib/lp/services/config/schema-lazr.conf 2019-04-27 08:35:51 +0000
+++ lib/lp/services/config/schema-lazr.conf 2019-05-03 13:26:10 +0000
@@ -386,6 +386,9 @@
# Git commit metadata.
related_bugs_from_source_limit: 1000
+# Secret key for Git access tokens issued to Launchpad users.
+git_macaroon_secret_key: none
+
[codeimport]
# Where the Bazaar imports are stored.
Follow ups