summaryrefslogtreecommitdiff
path: root/git.liw.fi.yarn
diff options
context:
space:
mode:
Diffstat (limited to 'git.liw.fi.yarn')
-rw-r--r--git.liw.fi.yarn17
1 files changed, 11 insertions, 6 deletions
diff --git a/git.liw.fi.yarn b/git.liw.fi.yarn
index 69758a3..cfa1c74 100644
--- a/git.liw.fi.yarn
+++ b/git.liw.fi.yarn
@@ -119,7 +119,8 @@ repo.
FINALLY remove repository tstrepo on server
-Non-admin, however, shouldn't be able to push to master.
+Non-admin, however, shouldn't be able to push to master, but should be
+able to push to a branch prefixed by their username.
SCENARIO non-admin cannot push to master
ASSUMING no tstusr user exists on server
@@ -129,10 +130,14 @@ Non-admin, however, shouldn't be able to push to master.
AND admin creates repository tstrepo
AND tstusr clones tstrepo over ssh
AND tstusr makes change to master in tstrepo
- WHEN tstusr attempts to push master in tstrepo
- THEN attempt failed with error matching "FIXME"
+ AND tstusr attempts to push master in tstrepo
+ THEN attempt failed with error matching "Rules refused update"
+
+ WHEN tstusr makes change to tstusr/foo in tstrepo
+ THEN tstusr can push tstusr/foo in tstrepo
FINALLY remove repository tstrepo on server
+ AND remove user tstusr on server
Implementation sections
=======================
@@ -383,21 +388,21 @@ A named user pushes a branch to a repository.
IMPLEMENTS THEN (\S+) can push (\S+) in (\S+)
cd "$DATADIR/$MATCH_1/$MATCH_3"
git checkout "$MATCH_2"
- git push origin HEAD
+ push_with_ssh "$MATCH_1" origin HEAD
Push with tags.
IMPLEMENTS THEN (\S+) can push (\S+) with tags in (\S+)
cd "$DATADIR/$MATCH_1/$MATCH_3"
git checkout "$MATCH_2"
- git push --tags origin HEAD
+ push_with_ssh "$MATCH_1" --tags origin HEAD
Attempt to push, when the outcome may be uncertain.
IMPLEMENTS WHEN (\S+) attempts to push (\S+) in (\S+)
cd "$DATADIR/$MATCH_1/$MATCH_3"
git checkout "$MATCH_2"
- attempt git push origin HEAD
+ attempt push_with_ssh "$MATCH_1" origin HEAD
Cgit access
-----------