Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5b08d2a

Browse files
author
Gauvain Pocentek
committed
Add support for project environments
1 parentea089e0 commit5b08d2a

File tree

5 files changed

+92
-0
lines changed

5 files changed

+92
-0
lines changed

‎docs/api-objects.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ API objects manipulation
33
########################
44

55
..toctree::
6+
:maxdepth:1
67

78
gl_objects/branches
89
gl_objects/builds
910
gl_objects/commits
1011
gl_objects/deploy_keys
12+
gl_objects/environments
1113
gl_objects/groups
1214
gl_objects/issues
1315
gl_objects/namespaces

‎docs/gl_objects/environments.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# list
2+
environments=gl.project_environments.list(project_id=1)
3+
# or
4+
environments=project.environments.list()
5+
# end list
6+
7+
# get
8+
environment=gl.project_environments.get(environment_id,project_id=1)
9+
# or
10+
environment=project.environments.get(environment_id)
11+
# end get
12+
13+
# create
14+
environment=gl.project_environments.create({'name':'production'},
15+
project_id=1)
16+
# or
17+
environment=project.environments.create({'name':'production'})
18+
# end create
19+
20+
# update
21+
environment.external_url='http://foo.bar.com'
22+
environment.save()
23+
# end update
24+
25+
# delete
26+
environment=gl.project_environments.delete(environment_id,project_id=1)
27+
# or
28+
environment=project.environments.list(environment_id)
29+
# or
30+
environment.delete()
31+
# end delete

‎docs/gl_objects/environments.rst

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
############
2+
Environments
3+
############
4+
5+
Use:class:`~gitlab.objects.ProjectEnvironment` objects to manipulate
6+
environments for projects. The:attr:`gitlab.Gitlab.project_environments` and
7+
:attr:`Project.environments <gitlab.objects.Project.environments>` manager
8+
objects provide helper functions.
9+
10+
Examples
11+
--------
12+
13+
List environments for a project:
14+
15+
..literalinclude::environments.py
16+
:start-after: # list
17+
:end-before: # end list
18+
19+
Get a single environment:
20+
21+
..literalinclude::environments.py
22+
:start-after: # get
23+
:end-before: # end get
24+
25+
Create an environment for a project:
26+
27+
..literalinclude::environments.py
28+
:start-after: # create
29+
:end-before: # end create
30+
31+
Update an environment for a project:
32+
33+
..literalinclude::environments.py
34+
:start-after: # update
35+
:end-before: # end update
36+
37+
Delete an environment for a project:
38+
39+
..literalinclude::environments.py
40+
:start-after: # delete
41+
:end-before: # end delete

‎gitlab/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ class Gitlab(object):
8888
project_commit_statuses (ProjectCommitStatusManager): Manager for
8989
GitLab projects commits statuses
9090
project_keys (ProjectKeyManager): Manager for GitLab projects keys
91+
project_environments (ProjectEnvironmentManager): Manager for GitLab
92+
projects environments
9193
project_events (ProjectEventManager): Manager for GitLab projects
9294
events
9395
project_forks (ProjectForkManager): Manager for GitLab projects forks
@@ -165,6 +167,7 @@ def __init__(self, url, private_token=None, email=None, password=None,
165167
self.project_commit_comments=ProjectCommitCommentManager(self)
166168
self.project_commit_statuses=ProjectCommitStatusManager(self)
167169
self.project_keys=ProjectKeyManager(self)
170+
self.project_environments=ProjectEnvironmentManager(self)
168171
self.project_events=ProjectEventManager(self)
169172
self.project_forks=ProjectForkManager(self)
170173
self.project_hooks=ProjectHookManager(self)
@@ -417,6 +420,7 @@ def list(self, obj_class, **kwargs):
417420
", ".join(missing))
418421

419422
url=self._construct_url(id_=None,obj=obj_class,parameters=kwargs)
423+
print(url)
420424
headers=self._create_headers()
421425

422426
# Remove attributes that are used in url so that there is only

‎gitlab/objects.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,6 +1075,19 @@ class ProjectCommitManager(BaseManager):
10751075
obj_cls=ProjectCommit
10761076

10771077

1078+
classProjectEnvironment(GitlabObject):
1079+
_url='/projects/%(project_id)s/environments'
1080+
canGet='from_list'
1081+
requiredUrlAttrs= ['project_id']
1082+
requiredCreateAttrs= ['name']
1083+
optionalCreateAttrs= ['external_url']
1084+
optionalUpdateAttrs= ['name','external_url']
1085+
1086+
1087+
classProjectEnvironmentManager(BaseManager):
1088+
obj_cls=ProjectEnvironment
1089+
1090+
10781091
classProjectKey(GitlabObject):
10791092
_url='/projects/%(project_id)s/keys'
10801093
canUpdate=False
@@ -1659,6 +1672,7 @@ class Project(GitlabObject):
16591672
[('project_id','id')]),
16601673
('commit_statuses',ProjectCommitStatusManager,
16611674
[('project_id','id')]),
1675+
('environments',ProjectEnvironmentManager, [('project_id','id')]),
16621676
('events',ProjectEventManager, [('project_id','id')]),
16631677
('files',ProjectFileManager, [('project_id','id')]),
16641678
('forks',ProjectForkManager, [('project_id','id')]),

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp