1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<!-- -*- Markdown -*- -->
Force Pushing
=============
The default ruleset of Gitano denies force-pushing to everyone except the
`gitano-admin` group by default; requiring that projects explicitly enable it
if they want it. The theory being that it can be permitted for some branches
but not others, and by deny-by-default, it encourages project owners to think
hard before granting force-push.
SCENARIO alice cannot force-push by default
GIVEN a standard instance
AND a unix user called alice
AND alice has keys called main
WHEN testinstance, using adminkey, adds user alice, using alice main
AND testinstance adminkey runs create testrepo alice
AND alice, using main, clones testrepo as testrepo
THEN alice testrepo has no file called FOO
WHEN alice applies add-a-FOO.patch in testrepo
AND alice, using main, pushes testrepo to testrepo.git
THEN the output contains new branch
WHEN alice amends testrepo with oh well never mind
AND alice, using main, expecting failure, pushes testrepo to testrepo.git
THEN the output contains non-fast-forward
WHEN alice, using main, expecting failure, force-pushes testrepo to testrepo.git
THEN stderr contains denied action
FINALLY the instance is torn down
|