@@ -16,15 +16,26 @@ def run!
16
16
17
17
repository . update_attributes ( active : true )
18
18
19
- if repository . private? || access_control . enterprise?
19
+ if repository . perforce?
20
+ remote_vcs_repository . create_perforce_group (
21
+ repository_id : repository . id ,
22
+ user_id : admin . id
23
+ )
24
+
25
+ remote_vcs_repository . set_perforce_ticket (
26
+ repository_id : repository . id ,
27
+ user_id : admin . id
28
+ )
29
+ elsif repository . private? || access_control . enterprise?
20
30
remote_vcs_repository . upload_key (
21
31
repository_id : repository . id ,
22
32
user_id : admin . id ,
23
- read_only : !Travis ::Features . owner_active? ( :read_write_github_keys , repository . owner )
33
+ read_only : !repository . subversion? && ! Travis ::Features . owner_active? ( :read_write_github_keys , repository . owner )
24
34
)
25
35
end
26
36
27
37
query . sync ( access_control . user || access_control . admin_for ( repository ) )
38
+ save_audit ( repository )
28
39
result repository
29
40
end
30
41
@@ -33,7 +44,21 @@ def check_access(repository)
33
44
end
34
45
35
46
def check_repo_key ( repository )
47
+ if repository . subversion? && repository . key . nil?
48
+ key = Travis ::API ::V3 ::Models ::SslKey . new ( repository : repository )
49
+ key . generate_keys!
50
+ key . save!
51
+
52
+ return
53
+ end
54
+
36
55
raise RepoSshKeyMissing if repository . key . nil?
37
56
end
57
+
58
+ def save_audit ( repository )
59
+ app_id = Travis ::Api ::App ::AccessToken . find_by_token ( access_control . token ) &.app_id
60
+ change_source = ( app_id . nil? || app_id == 2 ) ? 'admin-v2' : 'travis-api'
61
+ Travis ::API ::V3 ::Models ::Audit . create! ( owner : access_control . user , change_source : change_source , source : repository , source_changes : { active : [ false , true ] } )
62
+ end
38
63
end
39
64
end
0 commit comments