首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Python在Azure Devops中创建Wiki子页面?

如何通过Python在Azure Devops中创建Wiki子页面?
EN

Stack Overflow用户
提问于 2021-04-12 16:28:28
回答 2查看 353关注 0票数 0

我的Azure devops页面将如下所示:

我有4个熊猫数据帧。我需要从每个数据帧在Azure devops wiki中创建4个子页面。例如,来自第一个数据帧的Sub1,来自第二个数据帧的Sub2,以此类推。

我的结果应该在选项卡中。结果应该如下所示:

可以通过API创建子页面吗?我已经参考了以下文档。但我无法理解。任何输入都会很有帮助。谢谢。

https://github.com/microsoft/azure-devops-python-samples/blob/main/API%20Samples.ipynb https://docs.microsoft.com/en-us/rest/api/azure/devops/wiki/pages/create%20or%20update?view=azure-devops-rest-6.0

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-13 18:12:59

能够通过rest api实现

代码语言:javascript
复制
import requests
import base64
import pandas as pd

pat = 'TO BE FILLED BY YOU'  #CONFIDENTIAL
authorization = str(base64.b64encode(bytes(':'+pat, 'ascii')), 'ascii')

headers = {
    'Accept': 'application/json',
    'Authorization': 'Basic '+authorization
}

df = pd.read_csv('sf_metadata.csv')  #METADATA OF 3 TABLES 
df.set_index('TABLE_NAME', inplace=True,drop=True)
df_test1 = df.loc['CURRENCY'] 


x1 = df_test1.to_html()  # CONVERTING TO HTML TO PRESERVE THE TABULAR STRUCTURE

#JSON FOR PUT REQUEST
SamplePage1 = {
  "content": x1
}

#API CALLS TO AZURE DEVOPS WIKI 
response = requests.put(
    url="https://dev.azure.com/xxx/yyy/_apis/wiki/wikis/yyy.wiki/pages?path=SamplePag2&api-version=6.0", headers=headers,json=SamplePage1)
print(response.text)
票数 0
EN

Stack Overflow用户

发布于 2021-04-13 14:45:38

要创建维基子页,请使用Pages - Create Or Update接口,并指定pagename/subpagenamepath。关于如何在Python中使用接口,您可以使用Azure DevOps Python API,参考下面的示例:

代码语言:javascript
复制
def create_or_update_page(self, parameters, project, wiki_identifier, path, version, comment=None, version_descriptor=None):
        """CreateOrUpdatePage.
        [Preview API] Creates or edits a wiki page.
        :param :class:`<WikiPageCreateOrUpdateParameters> <azure.devops.v6_0.wiki.models.WikiPageCreateOrUpdateParameters>` parameters: Wiki create or update operation parameters.
        :param str project: Project ID or project name
        :param str wiki_identifier: Wiki ID or wiki name.
        :param str path: Wiki page path.
        :param String version: Version of the page on which the change is to be made. Mandatory for `Edit` scenario. To be populated in the If-Match header of the request.
        :param str comment: Comment to be associated with the page operation.
        :param :class:`<GitVersionDescriptor> <azure.devops.v6_0.wiki.models.GitVersionDescriptor>` version_descriptor: GitVersionDescriptor for the page. (Optional in case of ProjectWiki).
        :rtype: :class:`<WikiPageResponse> <azure.devops.v6_0.wiki.models.WikiPageResponse>`
        """
        route_values = {}
        if project is not None:
            route_values['project'] = self._serialize.url('project', project, 'str')
        if wiki_identifier is not None:
            route_values['wikiIdentifier'] = self._serialize.url('wiki_identifier', wiki_identifier, 'str')
        query_parameters = {}
        if path is not None:
            query_parameters['path'] = self._serialize.query('path', path, 'str')
        if comment is not None:
            query_parameters['comment'] = self._serialize.query('comment', comment, 'str')
        if version_descriptor is not None:
            if version_descriptor.version_type is not None:
                query_parameters['versionDescriptor.versionType'] = version_descriptor.version_type
            if version_descriptor.version is not None:
                query_parameters['versionDescriptor.version'] = version_descriptor.version
            if version_descriptor.version_options is not None:
                query_parameters['versionDescriptor.versionOptions'] = version_descriptor.version_options
        additional_headers = {}
        if version is not None:
            additional_headers['If-Match'] = version
        content = self._serialize.body(parameters, 'WikiPageCreateOrUpdateParameters')
        response = self._send(http_method='PUT',
                              location_id='25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b',
                              version='6.0-preview.1',
                              route_values=route_values,
                              query_parameters=query_parameters,
                              additional_headers=additional_headers,
                              content=content)
        response_object = models.WikiPageResponse()
        response_object.page = self._deserialize('WikiPage', response)
        response_object.eTag = response.headers.get('ETag')
        return response_object

有关更多详细信息,请参阅以下链接:

https://github.com/microsoft/azure-devops-python-api/blob/451cade4c475482792cbe9e522c1fee32393139e/azure-devops/azure/devops/v6_0/wiki/wiki_client.py#L107

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67055004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档