Write triggers are successfully installing on GitHub, noice!

This commit is contained in:
jakedt 2014-02-21 17:09:56 -05:00
parent a6400171b3
commit 86e93a2c0f
7 changed files with 76 additions and 32 deletions

View file

@ -110,19 +110,6 @@ class Repository(BaseModel):
)
class BuildTriggerService(BaseModel):
name = CharField(index=True)
class RepositoryBuildTrigger(BaseModel):
uuid = CharField(default=uuid_generator)
service = ForeignKeyField(BuildTriggerService, index=True)
repository = ForeignKeyField(Repository, index=True)
connected_user = ForeignKeyField(User)
auth_token = CharField()
config = TextField(default='{}')
class Role(BaseModel):
name = CharField(index=True)
@ -176,6 +163,20 @@ class AccessToken(BaseModel):
temporary = BooleanField(default=True)
class BuildTriggerService(BaseModel):
name = CharField(index=True)
class RepositoryBuildTrigger(BaseModel):
uuid = CharField(default=uuid_generator)
service = ForeignKeyField(BuildTriggerService, index=True)
repository = ForeignKeyField(Repository, index=True)
connected_user = ForeignKeyField(User)
auth_token = CharField()
config = TextField(default='{}')
write_token = ForeignKeyField(AccessToken, null=True)
class EmailConfirmation(BaseModel):
code = CharField(default=random_string_generator(), unique=True, index=True)
user = ForeignKeyField(User)

View file

@ -1320,8 +1320,9 @@ def create_access_token(repository, role):
return new_token
def create_delegate_token(namespace_name, repository_name, friendly_name):
read_only = Role.get(name='read')
def create_delegate_token(namespace_name, repository_name, friendly_name,
role='read'):
read_only = Role.get(name=role)
repo = Repository.get(Repository.name == repository_name,
Repository.namespace == namespace_name)
new_token = AccessToken.create(repository=repo, role=read_only,
@ -1509,6 +1510,11 @@ def list_build_triggers(namespace_name, repository_name):
def delete_build_trigger(namespace_name, repository_name, trigger_uuid):
trigger = get_build_trigger(namespace_name, repository_name, trigger_uuid)
# Delete the access token created for this trigger, and the trigger itself
if trigger.write_token and trigger.write_token.code:
trigger.write_token.delete_instance()
trigger.delete_instance()