Service/git

From Sugar Labs
Jump to navigation Jump to search

Hostnames

Hardware

Machine/jita

Administrative contact

git AT sugarlabs DOT org

Sysadmins

For non-emergency calls, preferably send email to the administrative contact.

  • Aleksey Lim
  • puppet related stuff is still in progress of settling down

Notes

Gitorious hosting.

Home /srv/gitorious
Main service gitorious-all

Gitorious environments

We do not have root on git.sugarlabs.org. Put the following aliases in your ~/.bashrc to quickly switch to the Gitorious production, test and development environments:

alias gitorious='sudo su - gitorious'
alias gittest='sudo su - gittest'
alias gitdev='sudo su - gitdev'
alias db='mysql -h db1.osuosl.org -u sugarlabs_git -p  sugarlabs_git_dev'

Get a MySQL prompt

type "db" at the prompt, then give the db password from ~gitorious/config/database.yml

Change project owner

UPDATE projects SET user_id=(SELECT id FROM users WHERE login='jasg') WHERE slug='labyrinth';

Change repo owner

UPDATE repositories SET user_id=(SELECT id FROM users WHERE login='jasg') WHERE name='mainline' AND project_id=(SELECT id FROM projects WHERE title='poll');

Add committer

INSERT INTO committerships SET
       user_id=(select id from users where login='bernie'),
       repository_id=(SELECT id FROM repositories where
               project_id=(SELECT id FROM projects WHERE title='sugar') AND name='mainline'),
       kind=2, created_at=NOW(), updated_at=NOW();

Hijack account to reset password

update users set email='YOUREMAIL' where login='USER';

Then make Gitorious send you a password reset email.

update users set email='OLDEMAIL' where login='USER';

Zapping a user account

WARNING: to kill a user account, make sure you also remove *ALL* its associated records from all tables, or Gitorious will break in non-obvious ways.

SELECT id FROM users WHERE login='demian';
DELETE FROM committers WHERE user_id=666;
DELETE FROM events WHERE user_id=666;
DELETE FROM comments WHERE user_id=666;
DELETE FROM merge_requests WHERE user_id=666;
DELETE FROM repositories WHERE user_id=666;
DELETE FROM projects WHERE user_id=666;

NOTE: tch pointed out that Rails applications often provide a higher-level method in class User which deletes the record and its associated entries. However, our deployed version of Gitorious does not seem to provide it.

Restart gitorious after code/config changes

touch tmp/restart.txt

Upgrade notes

Upgrade will be triggered on every puppet session, vcs repository will be rebased to the HEAD commit with all related changes like database migration.