Project Documentation for Jira

Automatically generate complete Jira project documentation containing all necessary information

 

General information

How many times have you tried to check or create complete project documentation? How many times have you modified the project and forgotten to update the documentation?. Project documentation allows you to generate comprehensive project documentation containing all information such as schema configuration, components, versions, and custom fields, but also everything related to Jira Service Management such as queues, request types, SLAs, etc.

… and you can do it with just one click in Jira

 

Where can you generate Project documentation

Documentation is available for each project in Project Settings by clicking the Project Documentation link and on the left sidebar of the project

 


Direct link documentation

Open a new browser tab and paste url

{JIRA_URL}/secure/ProjectDocumentation.jspa?projectKey={PROJECT_KEY}where:

{PROJECT_KEY} - Project key

 


Change the documentation view

You can change the documentation view using the configuration in the GUI (just click the icon in the top right corner) where you have an additional option regarding some configuration items.

Additionally, you can save a new view as the default for documentation.

 


Share documentation with project administrators

Before enabling this option, check whether users should see the details of this full configuration

When the Share Project Documentation option in Extensions Configuration

{JIRA_URL}/secure/ProjectDocumentationConfiguration.jspa

is enabled, all users with project administration rights will see a new section in the project settings and will have the ability to view the full project documentation.

 


Export to Confluence

Directly from the project documentation in Jira, you can export documentation to Confluence.

Click the Export button and select the space/page where you want to export the documentation. After this action, all project information will be in Confluence, so you can easily maintain and search the documentation.

 

Automation

Project documentation in Confluence can be automated at your discretion so that it is refreshed periodically. Two dedicated APIs enable this functionality by creating or updating a page:

1) Get Confluence content for the project

This API returns the appropriate documentation format for Confluence

Method type - GET

URL: {JIRA_URL}/rest/project-documentation/1.0/documentation/project/PROJECT_KEY

In addition, you can control which sections will be hidden in the API response regarding project documentation; just add a dedicated parameter:

  • hideIssueTypes=true

  • hidePriorities=true

  • hideWorkflows=true

  • hideAutomation=true

  • hideWorkflowSchemes=true

  • hideIssueTypeScreens=true

  • hideScreenSchemes=true

  • hideScreens=true

  • hideOrganizations=true

  • hideFields=true

  • hideFieldContextConfigurations=true

  • hideFieldConfigurationSchemes=true

  • hideFieldConfigurations=true

  • hidePermissions=true

  • hideIssueSecurity=true

  • hideNotifications=true

  • hideVersions=true

  • hideComponents=true

  • hideRoles=true

  • hideRequestTypes=true

  • hideKnowledgeBase=true

  • hideSLAs=true

  • hideCalendars=true

  • hideQueues=true

  • hideLanguageSupport=true

  • hideEmailRequests=true

  • hideCustomerNotifications=true

Example:

Method type - GET

URL: {JIRA_URL}/rest/project-documentation/1.0/documentation/project/PROJECT_KEY?hideEmailRequests=true&hideCustomerNotifications=true

2a) Create a new Confluence page

Method type - POST

URL: {JIRA_URL}/rest/project-documentation/1.0/confluence/createNewPage

{ "applicationId": "APPLICATION_ID" "content": "CONTENT_FROM_STEP_1" "pageTitle": "PAGE_TITLE" "parentPageId": "PARENT_PAGE_ID" "spaceKey": "SPACE_KEY" }

2b) Update an existing Confluence page

Method type - POST

URL: {JIRA_URL}/rest/project-documentation/1.0/confluence/updatePage

{ "applicationId": "APPLICATION_ID" "content": "CONTENT_FROM_STEP_1" "pageTitle": "PAGE_TITLE" "pageId": "PAGE_ID" }

JavaScript example

Update an existing Confluence page

//Get project content $.ajax({ "url": "http://my.jira.pl/rest/project-documentation/1.0/documentation/project/ITSM", "headers": { "Authorization": "Basic YWRtaW46YWRtaW4=" } }).done(function (responseContent) { //Update page $.ajax({ "method": "POST", "url": "http://my.jira.pl/rest/project-documentation/1.0/confluence/updatePage", "headers": { "Authorization": "Basic YWRtaW46YWRtaW4=", "Content-Type": "application/json" }, "data": JSON.stringify({ "applicationId": "76888b66-b3e3-3eb2-bbdc-34d51bd6c884", "content": responseContent.content, "pageId": "819203", "pageTitle": "Test doc 2" }) }).done(function (response) { console.log("DONE !!!") }); });

Create a new Confluence page

Bash example

Update an existing Confluence page

This example need two files in the same location

ITSM.json

updatePage.sh

 

Troubleshooting

Problem

Resolution

Problem

Resolution

When making a REST call to Confluence the console gives the error

https://confluence.atlassian.com/confkb/rest-call-gives-request-too-large-requests-for-this-resource-can-be-at-most-5242880-bytes-error-939689514.html

When a Jira instance makes an HTTP request to a remote server, the request fails with a message similar to

https://confluence.atlassian.com/jirakb/java-net-sockettimeoutexception-read-timed-while-making-a-request-to-a-remote-server-788958227.html

 


Example documentation

PDF

Confluence

 

 

 

Jira

 


Support

If you have any questions or suggestions, please don’t hesitate to contact me.

Please feel free to contact us by email support@itlab.net.pl or Jira Service Desk if you require any further information.

 


About plugin

This app includes the following libraries:

  • html2canvas - MIT License - Copyright (c) 2021 Niklas von Hertzen

  • html2canvas-pro - MIT License - Copyright (c) 2024 yorickshan