Disallow any branch name in checks_vcs_permalinks
This commit is contained in:
parent
4195f4d271
commit
4729918bc9
|
@ -8,7 +8,10 @@ from typing import Sequence
|
|||
|
||||
|
||||
def _get_pattern(domain: str) -> Pattern[bytes]:
|
||||
regex = rf'https://{domain}/[^/ ]+/[^/ ]+/blob/master/[^# ]+#L\d+'
|
||||
regex = (
|
||||
rf'https://{domain}/[^/ ]+/[^/ ]+/blob/'
|
||||
r'(?![a-fA-F0-9]{4,64}/)([^/. ]+)/[^# ]+#L\d+'
|
||||
)
|
||||
return re.compile(regex.encode())
|
||||
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@ def test_passing(tmpdir):
|
|||
f.write_binary(
|
||||
# permalinks are ok
|
||||
b'https://github.com/asottile/test/blob/649e6/foo%20bar#L1\n'
|
||||
# tags are ok
|
||||
b'https://github.com/asottile/test/blob/1.0.0/foo%20bar#L1\n'
|
||||
# links to files but not line numbers are ok
|
||||
b'https://github.com/asottile/test/blob/master/foo%20bar\n'
|
||||
# regression test for overly-greedy regex
|
||||
|
@ -23,7 +25,8 @@ def test_failing(tmpdir, capsys):
|
|||
with tmpdir.as_cwd():
|
||||
tmpdir.join('f.txt').write_binary(
|
||||
b'https://github.com/asottile/test/blob/master/foo#L1\n'
|
||||
b'https://example.com/asottile/test/blob/master/foo#L1\n',
|
||||
b'https://example.com/asottile/test/blob/master/foo#L1\n'
|
||||
b'https://example.com/asottile/test/blob/main/foo#L1\n',
|
||||
)
|
||||
|
||||
assert main(('f.txt', '--additional-github-domain', 'example.com'))
|
||||
|
@ -31,6 +34,7 @@ def test_failing(tmpdir, capsys):
|
|||
assert out == (
|
||||
'f.txt:1:https://github.com/asottile/test/blob/master/foo#L1\n'
|
||||
'f.txt:2:https://example.com/asottile/test/blob/master/foo#L1\n'
|
||||
'f.txt:3:https://example.com/asottile/test/blob/main/foo#L1\n'
|
||||
'\n'
|
||||
'Non-permanent github link detected.\n'
|
||||
'On any page on github press [y] to load a permalink.\n'
|
||||
|
|
Loading…
Reference in New Issue