FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python-gitlab/gitlab/v4/objects/snippets.py at master · debby-one/python-gitlab · GitHub
debby-one
python-gitlab
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
python-gitlab
/
gitlab
/
v4
/
objects
/
snippets.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
118 lines (95 loc) · 4.2 KB
Breadcrumbs
python-gitlab
/
gitlab
/
v4
/
objects
/
snippets.py
Copy path
File metadata and controls
118 lines (95 loc) · 4.2 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
from
gitlab
import
cli
,
utils
from
gitlab
import
exceptions
as
exc
from
gitlab
.
base
import
RESTManager
,
RESTObject
from
gitlab
.
mixins
import
CRUDMixin
,
ObjectDeleteMixin
,
SaveMixin
,
UserAgentDetailMixin
from
.
award_emojis
import
ProjectSnippetAwardEmojiManager
from
.
discussions
import
ProjectSnippetDiscussionManager
from
.
notes
import
ProjectSnippetNoteManager
,
ProjectSnippetDiscussionNoteManager
__all__
=
[
"Snippet"
,
"SnippetManager"
,
"ProjectSnippet"
,
"ProjectSnippetManager"
,
]
class
Snippet
(
UserAgentDetailMixin
,
SaveMixin
,
ObjectDeleteMixin
,
RESTObject
):
_short_print_attr
=
"title"
@
cli
.
register_custom_action
(
"Snippet"
)
@
exc
.
on_http_error
(
exc
.
GitlabGetError
)
def
content
(
self
,
streamed
=
False
,
action
=
None
,
chunk_size
=
1024
,
**
kwargs
):
"""Return the content of a snippet.
Args:
streamed (bool): If True the data will be processed by chunks of
`chunk_size` and each chunk is passed to `action` for
treatment.
action (callable): Callable responsible of dealing with chunk of
data
chunk_size (int): Size of each chunk
**kwargs: Extra options to send to the server (e.g. sudo)
Raises:
GitlabAuthenticationError: If authentication is not correct
GitlabGetError: If the content could not be retrieved
Returns:
str: The snippet content
"""
path
=
"/snippets/%s/raw"
%
self
.
get_id
()
result
=
self
.
manager
.
gitlab
.
http_get
(
path
,
streamed
=
streamed
,
raw
=
True
,
**
kwargs
)
return
utils
.
response_content
(
result
,
streamed
,
action
,
chunk_size
)
class
SnippetManager
(
CRUDMixin
,
RESTManager
):
_path
=
"/snippets"
_obj_cls
=
Snippet
_create_attrs
=
((
"title"
,
"file_name"
,
"content"
), (
"lifetime"
,
"visibility"
))
_update_attrs
=
(
tuple
(), (
"title"
,
"file_name"
,
"content"
,
"visibility"
))
@
cli
.
register_custom_action
(
"SnippetManager"
)
def
public
(
self
,
**
kwargs
):
"""List all the public snippets.
Args:
all (bool): If True the returned object will be a list
**kwargs: Extra options to send to the server (e.g. sudo)
Raises:
GitlabListError: If the list could not be retrieved
Returns:
RESTObjectList: A generator for the snippets list
"""
return
self
.
list
(
path
=
"/snippets/public"
,
**
kwargs
)
class
ProjectSnippet
(
UserAgentDetailMixin
,
SaveMixin
,
ObjectDeleteMixin
,
RESTObject
):
_url
=
"/projects/%(project_id)s/snippets"
_short_print_attr
=
"title"
_managers
=
(
(
"awardemojis"
,
"ProjectSnippetAwardEmojiManager"
),
(
"discussions"
,
"ProjectSnippetDiscussionManager"
),
(
"notes"
,
"ProjectSnippetNoteManager"
),
)
@
cli
.
register_custom_action
(
"ProjectSnippet"
)
@
exc
.
on_http_error
(
exc
.
GitlabGetError
)
def
content
(
self
,
streamed
=
False
,
action
=
None
,
chunk_size
=
1024
,
**
kwargs
):
"""Return the content of a snippet.
Args:
streamed (bool): If True the data will be processed by chunks of
`chunk_size` and each chunk is passed to `action` for
treatment.
action (callable): Callable responsible of dealing with chunk of
data
chunk_size (int): Size of each chunk
**kwargs: Extra options to send to the server (e.g. sudo)
Raises:
GitlabAuthenticationError: If authentication is not correct
GitlabGetError: If the content could not be retrieved
Returns:
str: The snippet content
"""
path
=
"%s/%s/raw"
%
(
self
.
manager
.
path
,
self
.
get_id
())
result
=
self
.
manager
.
gitlab
.
http_get
(
path
,
streamed
=
streamed
,
raw
=
True
,
**
kwargs
)
return
utils
.
response_content
(
result
,
streamed
,
action
,
chunk_size
)
class
ProjectSnippetManager
(
CRUDMixin
,
RESTManager
):
_path
=
"/projects/%(project_id)s/snippets"
_obj_cls
=
ProjectSnippet
_from_parent_attrs
=
{
"project_id"
:
"id"
}
_create_attrs
=
((
"title"
,
"file_name"
,
"content"
,
"visibility"
), (
"description"
,))
_update_attrs
=
(
tuple
(),
(
"title"
,
"file_name"
,
"content"
,
"visibility"
,
"description"
),
)
Back
|
FazBrowse Home
|
New Git URL