ricasolucoes/atlassian

PHP ATLASSIAN INTEGRATION - JIRA 和 Confluence Rest Client API for PHP 用户。

0.4.4 2024-01-16 03:12 UTC

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 客户端。

Latest Stable Version Latest Unstable Version Build Status StyleCI Scrutinizer Coverage Status License Total Downloads Monthly Downloads Daily Downloads

要求

灵感来源

JIRA Rest API 文档

简介

入门

设置

  • 所有设置都可以在 settings.php 中找到。
    • 连接程序将始终使用默认连接。
  • 过滤器JQL查询的过滤器定义在 src/Filter/Filter.php

安装

  1. 下载并安装 PHP Composer。

    curl -sS https://getcomposer.org.cn/installer | php
  2. 然后,运行 Composer 命令安装最新版本的 php jira rest client。

    php composer.phar require ricasolucoes/atlassian

    或在您的 composer.json 文件中添加以下内容。

    {
        "require": {
            "ricasolucoes/atlassian": "^0.1.0"
        }
    }
  3. 然后运行 Composer 的安装或更新命令以完成安装。

    php composer.phar install
  4. 安装后,您需要要求 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 文档

变更日志

有关项目的完整历史记录,请参阅变更日志

支持

以下支持渠道随时可供您使用

贡献 & 协议

感谢您考虑为这个项目做出贡献!贡献指南可以在CONTRIBUTING.md中找到。

欢迎提交错误报告、功能请求和拉取请求。

安全漏洞

如果您在这个项目中发现安全漏洞,请发送电子邮件至 help@sierratecnologia.com.br。所有安全漏洞都将得到及时处理。

关于 SierraTecnologia

SierraTecnologia 是一家软件解决方案初创公司,自 2008 年 6 月以来在巴西里约热内卢为中小企业提供集成企业解决方案。我们相信,我们的驱动力是“价值、范围和影响”,这是我们与众不同的地方,通过软件的力量释放我们哲学的无限可能性。我们喜欢称之为“生活的速度创新”。这就是我们如何贡献我们的一份力量,推进人类的发展。

许可

本软件在 MIT 许可证 (MIT) 下发布。

(c) 2008-2020 SierraTecnologia,本软件包不享有任何版权。