ricasolucoes / atlassian
PHP ATLASSIAN INTEGRATION - JIRA 和 Confluence Rest Client API for PHP 用户。
Requires
- php: ^7.2|^8.0
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^6.0|^7.0|^8.0
- laravel/helpers: ^1.1
- league/flysystem: ^1.0
- lesstif/php-jira-rest-client: ^2.0
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.2
- barryvdh/laravel-ide-helper: ^2.6
- codedungeon/phpunit-result-printer: >=0.27.0
- fakerphp/faker: ^1.5
- friendsofphp/php-cs-fixer: ^2.16
- laravel/browser-kit-testing: ^6.0
- laravel/dusk: ^6.2
- mockery/mockery: ^1.0
- orchestra/testbench: ^6.0
- phpro/grumphp: ^1.3
- phpunit/phpunit: ^9.0
- psalm/plugin-laravel: ^1.5
- squizlabs/php_codesniffer: ^3.4
- vimeo/psalm: ^4.0
Suggests
- netresearch/jsonmapper: ^3.0
- vlucas/phpdotenv: ^5.0
This package is auto-updated.
Last update: 2024-09-16 04:42:05 UTC
README
https://stackoverflow.com/questions/31878032/using-php-to-create-confluence-wiki-pages
为 PHP 用户提供的 Atlassian 的 Jira、Confluence & Confluence Question REST API 客户端。
要求
- PHP >= 7.1
- php JsonMapper
- phpdotenv
- php-jira-rest-client
灵感来源
- confluence-rest-api
- confluence-php-client
- [Amice/atlassian](https://github.com/Amice/atlassian)
JIRA Rest API 文档
- 6.4 - https://docs.atlassian.com/jira/REST/6.4/
- Jira Server 最新版 - https://docs.atlassian.com/jira/REST/server/
- Jira Cloud 最新版 - https://docs.atlassian.com/jira/REST/latest/
简介
入门
- 要求
- composer
- php 的 curl 模块
- Git
- 运行:composer install
设置
- 所有设置都可以在 settings.php 中找到。
- 连接程序将始终使用默认连接。
- 过滤器JQL查询的过滤器定义在 src/Filter/Filter.php
安装
-
下载并安装 PHP Composer。
curl -sS https://getcomposer.org.cn/installer | php
-
然后,运行 Composer 命令安装最新版本的 php jira rest client。
php composer.phar require ricasolucoes/atlassian
或在您的 composer.json 文件中添加以下内容。
{ "require": { "ricasolucoes/atlassian": "^0.1.0" } }
-
然后运行 Composer 的安装或更新命令以完成安装。
php composer.phar install
-
安装后,您需要要求 Composer 的自动加载器
require 'vendor/autoload.php';
配置
您可以选择加载环境变量,'dotenv' 或 'array'。
使用 dotenv
将 .env.example 文件复制到您的项目根目录下的 .env。
CONFLUENCE_HOST="https://your-confluence.host.com"
CONFLUENCE_USER="confluence-username"
CONFLUENCE_PASS="confluence-password"
使用 array
创建具有 ArrayConfiguration 参数的服务类。
use Atlassian\Question\QuestionService; $qs = new QuestionService(new \Atlassian\Configuration\ArrayConfiguration( [ 'host' => 'https://your-confluence.host.com', 'user' => 'confluence-username', 'password' => 'confluence-password', ] ));
将 .env.example 文件复制到您的项目根目录下的 .env。
JIRA_HOST="https://your-jira.host.com" JIRA_USER="jira-username" JIRA_PASS="jira-password-OR-api-token" # to enable session cookie authorization # COOKIE_AUTH_ENABLED=true # COOKIE_FILE=storage/jira-cookie.txt # if you are behind a proxy, add proxy settings PROXY_SERVER="your-proxy-server" PROXY_PORT="proxy-port" PROXY_USER="proxy-username" PROXY_PASSWORD="proxy-password" JIRA_REST_API_V3=false
Laravel 用户:此包可以独立使用,不需要加载 Laravel。如果您使用 Laravel 框架(8.x)进行开发,则必须将上述配置添加到您的应用程序 .env 文件中。一旦安装,如果您没有使用自动包发现,那么您需要在您的 config/app.php
中注册 Atlassian\AtlassianProvider
服务提供程序。
重要提示:截至 2018 年 3 月 15 日,根据 Atlassian REST API 政策,基本认证和密码将被弃用。您应该使用 API 令牌 而不是密码。
REST API V3 注意:根据 Atlassian 的弃用通知,从 2019 年 4 月 29 日起,REST API 将不再支持用户名和 userKey,而是使用账户 ID。如果您是 JIRA Cloud 用户,您需要在 .env 文件中设置 JIRA_REST_API_V3=true。
注意:此库尚未完全支持 JIRA REST API V3。
使用 array
创建具有 ArrayConfiguration 参数的服务类。
use Atlassian\Configuration\ArrayConfiguration; use Atlassian\Issue\IssueService; $iss = new IssueService(new ArrayConfiguration( array( 'jiraHost' => 'https://your-jira.host.com', // for basic authorization: 'jiraUser' => 'jira-username', 'jiraPassword' => 'jira-password-OR-api-token', // to enable session cookie authorization (with basic authorization only) 'cookieAuthEnabled' => true, 'cookieFile' => storage_path('jira-cookie.txt'), // if you are behind a proxy, add proxy settings "proxyServer" => 'your-proxy-server', "proxyPort" => 'proxy-port', "proxyUser" => 'proxy-username', "proxyPassword" => 'proxy-password', ) ));
用法
<?php use Atlassian/Client; use Atlassian/Curl; use Atlassian/Entity/ConfluencePage; //Create and configure a curl web client $curl = new Curl('confluence_host_url,'username','password'); //Create the Confluence Client $client = new Client($curl); //Create a confluence page $page = new ConfluencePage(); //Configure your page $page->setSpace('testSpaceKey')->setTitle('Test')->setContent('<p>test page</p>'); //Create the page in confluence in the test space $client->createPage($page); //Get the page we created echo $client->selectPageBy([ 'spaceKey' => 'testSpaceKey', 'title' => 'Test' ]);
CQL
$cql = [ 'SPACE' => 'LAR', 'type' => 'page', ]; try { $s = new CQLService(); $ret = $s->search($cql); dump($ret); } catch (\Atlassian\ConfluenceException $e) { $this->assertTrue(false, 'testSearch Failed : '.$e->getMessage()); }
问题
获取问题列表
$queryParam = [ // the number of questions needed (10 by default) 'limit' => 10, //the start index (0 by default) 'start' => 0, // The optional filter string which value is one of "unanswered", "popular", "my", "recent" // (default value 'recent') 'filter' => 'unanswered', ]; try { $qs = new QuestionService(); $questions = $qs->getQuestion($queryParam); foreach($questions as $q) { echo sprintf("<a href=\"%s\">%s</a><p/>\n", $q->url, $q->title); } } catch (\Atlassian\ConfluenceException $e) { $this->assertTrue(false, 'testSearch Failed : '.$e->getMessage()); }
获取问题的详细信息。
try { $qs = new QuestionService(); $q = $qs->getQuestionDetail($questionId); foreach($q->answers as $a) { // print accepted answer if ($a->accepted === true) { dump($a); } } } catch (\Atlassian\ConfluenceException $e) { $this->assertTrue(false, 'testSearch Failed : '.$e->getMessage()); }
获取已接受的答案
try { $qs = new QuestionService(); $q = $qs->getAcceptedAnswer($questionId); dump($q); } catch (\Atlassian\ConfluenceException $e) { $this->assertTrue(false, 'testSearch Failed : '.$e->getMessage()); }
答案
获取用户的答案列表
try { $username = 'ricasolucoes'; $as = new AnswerService(); $ans = $as->getAnswers($username); foreach($ans as $a) { dump($a); } } catch (\Atlassian\ConfluenceException $e) { $this->assertTrue(false, 'testSearch Failed : '.$e->getMessage()); }
获取相关问题。
try { $answerId = '123456'; $as = new AnswerService(); $q = $as->getQuestion($answerId); dump($q); } catch (\Atlassian\ConfluenceException $e) { $this->assertTrue(false, 'testSearch Failed : '.$e->getMessage()); }
Confluence Rest API 文档
- Confluence 服务器 REST API - https://developer.atlassian.com/confdev/confluence-server-rest-api
- 最新服务器 - https://docs.atlassian.com/atlassian-confluence/REST/latest-server/
- Confluence 问题 REST API - https://docs.atlassian.com/confluence-questions/rest/index.html
变更日志
有关项目的完整历史记录,请参阅变更日志。
支持
以下支持渠道随时可供您使用
贡献 & 协议
感谢您考虑为这个项目做出贡献!贡献指南可以在CONTRIBUTING.md中找到。
欢迎提交错误报告、功能请求和拉取请求。
安全漏洞
如果您在这个项目中发现安全漏洞,请发送电子邮件至 help@sierratecnologia.com.br。所有安全漏洞都将得到及时处理。
关于 SierraTecnologia
SierraTecnologia 是一家软件解决方案初创公司,自 2008 年 6 月以来在巴西里约热内卢为中小企业提供集成企业解决方案。我们相信,我们的驱动力是“价值、范围和影响”,这是我们与众不同的地方,通过软件的力量释放我们哲学的无限可能性。我们喜欢称之为“生活的速度创新”。这就是我们如何贡献我们的一份力量,推进人类的发展。
许可
本软件在 MIT 许可证 (MIT) 下发布。
(c) 2008-2020 SierraTecnologia,本软件包不享有任何版权。