рдХреНрд▓реАрди рд╕рд┐рд▓ рдХреЛрдб

рдПрдЯрд▓рд╕ рдЬрд╛рдЗрд░рд╛ рдФрд░ рдХрдВрдлреНрд▓реБрдПрдВрд╕ рдореЗрдВ рдХрд╛рдо рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдЖрдИрдПрд▓ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдВ рдПрд╕рдЖрдИрдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред

рдореИрдВ рдЕрдХреНрд╕рд░ рдПрд╕рдЖрдИрдПрд▓ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдПрд╕рдЖрдИрдПрд▓ рдХреЛрдб "рдХреНрд▓реАрди" рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрди рдирд┐рдпрдореЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рд╕рд┐рд▓ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрди рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдирд┐рдпрдо


  1. рдирд╛рдо рд╕рдВрд░рдЪрдирд╛рдПрдВ рдПрдХ рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред
  2. AddElement рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ ред
  3. рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдФрд░ рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред
  4. рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ ( рд╕рдорд╛рд╡реЗрд╢рди ) рдХреЗ рд▓рд┐рдП рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХреЛрдб рд▓рд╛рдУ ред
  5. рдмрд╛рдХреА рдЪрд░ рдШреЛрд╖рдгрд╛ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВред
  6. рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрдердХ рдирд╛рдо рджреЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  7. Google Java рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд╛рдо рдЪрд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди ред

рдЕрдм рд╣рдо рд╕рд┐рд▓ рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВред

string USER = currentUser();
// Response
struct returnData {
    string status;
}
// Project
struct space {
    string key;
}
// Inner part with content
struct storage {
    string value;
    string representation;
}
// Part for storage
struct body {
    storage storage;
}
// Main entity for sending to Confluence
struct reqData {
    string type;
    string title;
    space space;
    body body;
}
reqData data;
data.type = "page";
data.title = "Page for issue " + key + "  " + summary + ".";
data.space.key = project;
data.body.storage.value = "<p> Author:"+userFullName(USER) + " description: "  + description + "</p>";
data.body.storage.representation = "storage";
// Create request
HttpRequest request;
HttpHeader header = httpCreateHeader("Content-Type", "application/json");
HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
request.headers += header;
request.headers += authHeader;
logPrint("WARN", request);
//POST
string JSONData = toJson(data);
logPrint("WARN", JSONData);
returnData result = httpPost("http://192.168.54.203:8090/rest/api/content/", request, JSONData);
string errMsg = httpGetErrorMessage();
logPrint("ERROR", "Last error message: " + errMsg);
logPrint("WARN", result);
string COMMENT = "Page created in Confluence " + updated + " by " + userFullName(USER) + " Status : " +result.status + "."; 
addComment(key, USER, COMMENT);
//Return Status
return result.status;

рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреЛрдб рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред рдЪрд▓реЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджреЗрдЦреЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

struct body {
    storage storage;
}

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ "рднрдВрдбрд╛рд░рдг рднрдВрдбрд╛рд░рдг" рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:

struct body {
    Storage storage;
}

рдЕрдм рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЯрд╛рдЗрдк рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рдирд╛рдо рдХреЗ рддрд╣рдд рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ рдХреЛ рдмрдбрд╝рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

// Response
struct ReturnData {
    string status;
}
// Project
struct Space {
    string key;
}
// Inner part with content
struct Storage {
    string value;
    string representation;
}
// Part for storage
struct Body {
    Storage storage;
}
// Main entity for sending to Confluence
struct ReqData {
    string type;
    string title;
    Space space;
    Body body;
}

рдЕрдм рд╣рдо рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд╛рдо рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдП рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛:

struct Space {
    string key;
}
struct Storage {
    string value;
    string representation;
}
struct Body {
    Storage storage;
}
struct CreateConfluencePageRequest {
    string type;
    string title;
    Space space;
    Body body;
}
struct CreateConfluencePageResponse {
    string status;
}

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдРрд╕реЗ рдирд╛рдореЛрдВ рдХреЛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреЛрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рднреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗред

рд╣рдордиреЗ рдирд┐рдпрдо 1, 5, 6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред

рдЕрдм рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рдж рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ:

string USER = currentUser();
CreateConfluencePageRequest data;
data.type = "page";
data.title = "Page for issue " + key + "  " + summary + ".";
data.space.key = project;
data.body.storage.value = "<p> Author:"+userFullName(USER) + " description: "  + description + "</p>";
data.body.storage.representation = "storage";
// Create request
HttpRequest request;
HttpHeader header = httpCreateHeader("Content-Type", "application/json");
HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
request.headers += header;
request.headers += authHeader;
logPrint("WARN", request);
//POST
string JSONData = toJson(data);
logPrint("WARN", JSONData);
CreateConfluencePageResponse result = httpPost("http://192.168.54.203:8090/rest/api/content/", request, JSONData);
string errMsg = httpGetErrorMessage();
logPrint("ERROR", "Last error message: " + errMsg);
logPrint("WARN", result);
string COMMENT = "Page created in Confluence " + updated + " by " + userFullName(USER) + " Status : " +result.status + "."; 
addComment(key, USER, COMMENT);
//Return Status
return result.status;

рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЖрдЗрдП рдкрд╣рд▓реЗ рдХреЛрдб рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

getNewConfluencePageContent();
createHttpRequest();
createConfluencePage();
addCommentToJiraIssue();

рдпрд╣реА рд╣реИ, рдкрд╣рд▓реЗ рд╣рдореЗрдВ Confluence рдореЗрдВ рдирдП рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдорд┐рд▓рддреА рд╣реИ, рдлрд┐рд░ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдБ, Confluence рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рдмрдирд╛рдПрдВ рдФрд░ Jira рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦреЗрдВ рдХрд┐ Confluence рдореЗрдВ рдкреГрд╖реНрда рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

function getNewConfluencePageContent() {
    CreateConfluencePageRequest data;
    data.type = "page";
    data.title = "Page for issue " + key + "  " + summary + ".";
    data.space.key = project;
    data.body.storage.value = "<p> Author:"+userFullName(currentUser()) + " description: "  + description + "</p>";
    data.body.storage.representation = "storage";
    return toJson(data);
}

function createHttpRequest() {
    HttpRequest request;
    HttpHeader header = httpCreateHeader("Content-Type", "application/json");
    HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
    request.headers = addElement(request.headers, header);
    request.headers += addElement(request.headers, authHeader);
    logPrint("WARN", request);
    return request;
}

function createConfluencePage(string pageJson) {
    HttpRequest request = createHttpRequest();
    CreateConfluencePageResponse result = httpPost("http://192.168.54.203:8090/rest/api/content/", request, pageJson);
    logPrint("ERROR", "Last error message: " + httpGetErrorMessage());
    logPrint("WARN", result);
    return result;
}

function addCommentToJiraIssue(string resultStatus) {
    string COMMENT = "Page created in Confluence " + updated + " by " + userFullName(currentUser()) + " Status : " +resultStatus + "."; 
    addComment(key, currentUser(), COMMENT);
}

string pageJson = getNewConfluencePageContent();
CreateConfluencePageResponse result = createConfluencePage(pageJson);
addCommentToJiraIssue(result.status);
return result.status;

рд╣рдордиреЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ (рдирд┐рдпрдо 2)ред рдЕрдм рд╣рдо рдмрд╕ рдЗрд╕ рддрд░рд╣ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

string pageJson = getNewConfluencePageContent();
CreateConfluencePageResponse result = createConfluencePage(pageJson);
addCommentToJiraIssue(result.status);
return result.status;

рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдЪрд╛рд░ рд▓реЙрдЬрд┐рдХрд▓ рдмреНрд▓реЙрдХ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдирдП рдкреЗрдЬ рдХрд╛ json рдорд┐рд▓рддрд╛ рд╣реИ, рдлрд┐рд░ Confluence рдореЗрдВ рдкреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ Confluence рдХреЛ рдкреЗрдЬ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдпреЗ рдЪрд╛рд░ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рд╣рдореЗрдВ рдПрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рджреГрд╢реНрдп рджреЗрддреА рд╣реИрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИред рдпрджрд┐ рд╣рдо Confluence рдореЗрдВ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ getNewConfluencePageContent рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рд╛рдордЧреНрд░реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ Confluence рдореЗрдВ рдкреГрд╖реНрда рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдХрдиреНрдлрд╝реНрдпреВрдЬрд╝рди_рд╣реЗрд▓реНрдкрд░.рдХреНрд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ Confluence рдореЗрдВ рдПрдХ рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдХрд░реЗрдВ:

struct Space {
    string key;
}
struct Storage {
    string value;
    string representation;
}
struct Body {
    Storage storage;
}
struct CreateConfluencePageRequest {
    string type;
    string title;
    Space space;
    Body body;
}
struct CreateConfluencePageResponse {
    string status;
}

function createHttpRequest() {
    HttpRequest request;
    HttpHeader header = httpCreateHeader("Content-Type", "application/json");
    HttpHeader authHeader = httpBasicAuthHeader("admin", "admin");
    request.headers = addElement(request.headers, header);
    request.headers += addElement(request.headers, authHeader);
    logPrint("INFO", request);
    return request;
}

function createConfluencePage(string confluenceUrl, string pageJson) {
    HttpRequest request = createHttpRequest();
    CreateConfluencePageResponse result = httpPost(confluenceUrl, request, pageJson);
    logPrint("ERROR", "Last error message: " + httpGetErrorMessage());
    logPrint("INFO", result);
    return result;
}

рдореИрдВрдиреЗ CreateConfluencePage рдлрдВрдХреНрд╢рди рдХреЛ рдПрдХ рдФрд░ рдХрдиреНрдлреНрд▓реБрдПрдВрд╕реБрдПрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛ рджрд┐рдпрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдирд┐рдпрдо 4 рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ред

рдЕрдм рд╣рдорд╛рд░реА рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

include "confluence_helper.incl";

function getNewConfluencePageContent() {
    CreateConfluencePageRequest data;
    data.type = "page";
    data.title = "Page for issue " + key + "  " + summary + ".";
    data.space.key = project;
    data.body.storage.value = "<p> Author:"+userFullName(currentUser()) + " description: "  + description + "</p>";
    data.body.storage.representation = "storage";
    return toJson(data);
}

function addCommentToJiraIssue(string resultStatus) {
    string comment = "Page created in Confluence " + updated + " by " + userFullName(currentUser()) + " Status : " +resultStatus + "."; 
    addComment(key, currentUser(), comment);
}


const string CONFLUENCE_URL = "http://192.168.54.203:8090/rest/api/content/";

string pageJson = getNewConfluencePageContent();
CreateConfluencePageResponse result = createConfluencePage(CONFLUENCE_URL, pageJson);
addCommentToJiraIssue(result.status);
return result.status;

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдореИрдВрдиреЗ рдХрдиреНрдлреНрдпреВрдЬрди рдореЗрдВ рдкреЗрдЬ рдХреНрд░рд┐рдПрд╢рди рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП confluence_helper.incl рдлрд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдПрдХ рдирд┐рд░рдВрддрд░ рдЪрд░ рдореЗрдВ Confluence рдкрддреЗ рдХреЛ рд╕рд╣реЗрдЬрд╛ рдФрд░ Google Java рд╕рдВрдХреЗрддрди рд╢реИрд▓реА (рдирд┐рдпрдо 7) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрд░ рдирд╛рдореЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред

рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдХреЙрдирдлреНрд▓реБрдПрдВрд╕ рдореЗрдВ рдПрдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдкреГрд╖реНрда рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдорд┐рд▓рд╛, рдФрд░ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдкрдардиреАрдп рдФрд░ рд╕рдорд░реНрдерд┐рдд рд╣реЛ рдЧрдпрд╛ред

All Articles