powershell之从 Confluence 页面获取限制
我对 Web API 调用不是很精通,但我一直在使用以下 powershell 代码(本示例中的这个站点是我发现有一些公共(public)数据的站点...我的站点是内部的,需要我通过凭证,它一直在为我工作而没有问题):
If(-not (Get-InstalledModule -Name 'ConfluencePS')){Install-Module ConfluencePS}
Import-Module ConfluencePS
Set-ConfluenceInfo -BaseUri "https://wiki.opnfv.org"
$space = Get-confluencepage -Spacekey ds
ForEach($item in $space)
{
$splatParams = @{
Uri = "https://wiki.opnfv.org/rest/api/content/$($item.ID)/restriction"
ContentType = 'application/json'
method = 'GET'
}
#reference https://developer.atlassian.com/cloud/confluence/rest/#api-api-content-id-restriction-get
Invoke-RestMethod @splatParams
}
documentation ConfluencePS 表明限制仍然是一个开放的功能请求,但我需要让它为一个项目工作。
我在 ConfluencePS.psm1 的第 982 行设置了一个断点,并且能够看到各种调用以及参数的结构,但是当我尝试模仿它时(并根据 confluence documentation 更改 URI)我收到错误“HTTP 错误 405 - MethodNotAllowed”。有人对我如何使这项工作有建议吗?我正在尝试返回应用于特定空间中所有页面的权限。
请您参考如下方法:
通过内容 ID 获取限制
你自己发现,需要加上“byOperation”。
我能够使用以下代码获取特定页面的限制:
# for testing purposes ONLY, I've specified the URL and ID
$wikiUrl = "https://wiki.opnfv.org"
$itemId = "6820746"
$splatParams = @{
Uri = "$wikiUrl/rest/api/content/$itemId/restriction/byOperation"
ContentType = 'application/json'
method = 'GET'
}
$result = Invoke-RestMethod @splatParams
在版本 6.0.4 和 6.15.9 上测试
按用户名过滤
如果您想通过特定用户名过滤结果,您可以使用以下 URI: "$wikiUrl/rest/api/content/$itemId/restriction/byOperation/.../user?userName=".
顺便说一下,这种操作方式存在一个 Unresolved 错误: restriction returns ambiguous responses
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



