1package access
2
3// AccessLevel is the level of access allowed to a repo.
4type AccessLevel int
5
6const (
7 // NoAccess does not allow access to the repo.
8 NoAccess AccessLevel = iota
9
10 // ReadOnlyAccess allows read-only access to the repo.
11 ReadOnlyAccess
12
13 // ReadWriteAccess allows read and write access to the repo.
14 ReadWriteAccess
15
16 // AdminAccess allows read, write, and admin access to the repo.
17 AdminAccess
18)
19
20// String returns the string representation of the access level.
21func (a AccessLevel) String() string {
22 switch a {
23 case NoAccess:
24 return "no-access"
25 case ReadOnlyAccess:
26 return "read-only"
27 case ReadWriteAccess:
28 return "read-write"
29 case AdminAccess:
30 return "admin-access"
31 default:
32 return "unknown"
33 }
34}
35
36// ParseAccessLevel parses an access level string.
37func ParseAccessLevel(s string) AccessLevel {
38 switch s {
39 case "no-access":
40 return NoAccess
41 case "read-only":
42 return ReadOnlyAccess
43 case "read-write":
44 return ReadWriteAccess
45 case "admin-access":
46 return AdminAccess
47 default:
48 return AccessLevel(-1)
49 }
50}