SlideShare a Scribd company logo
1 of 79
Download to read offline
PATRICK STREULE | ARCHITECT | ATLASSIAN | @PSTREULE
Atlassian Document Format
…is coming to an API near you
Atlassian Editor
In Jira, Confluence,
Bitbucket, OpsGenie, …
Mentions
Mentions
Code
Mentions
Code
Apps
Mentions
Code
Apps
Actions

Decisions
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
*Example Code*
{noformat}
const todo = items
.filter(
item => !item.done
);
{noformat}
WikiMarkup Markdown CXHTML
*Example Code*
{noformat}
const todo = items
.filter(
item => !item.done
);
{noformat}
**Example Code**
```javascript
const todo = items
.filter(
item => !item.done
);
```
WikiMarkup Markdown CXHTML
*Example Code*
{noformat}
const todo = items
.filter(
item => !item.done
);
{noformat}
**Example Code**
```javascript
const todo = items
.filter(
item => !item.done
);
```
<p>
<strong>Example Code</strong>
</p>
<ac:structured-macro
ac:name="code"
ac:schema-version="1"
ac:macro-id="5f5ca260…">
<ac:parameter ac:name="language">
js
</ac:parameter>
<ac:plain-text-body>
<![CDATA[const todo = …]]>
</ac:plain-text-body>
</ac:structured-macro>
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
Consistency
Learn a single format 

for all product APIs
Extensibility
Support for any 

new Editor feature
Why a new Format?
AtlassianDocumentFormat(ADF)
AtlassianDocumentFormat(ADF)
{
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Example Code",
"marks": [{ "type": "strong" }]
}
]
},
{
"type": "codeBlock",
"attrs": {
"language": "JavaScript"
},
"content": [
{
"type": "text",
"text": "const todo = items.filter(item => …);"
}
]
}
]
}
AtlassianDocumentFormat(ADF)
{
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Example Code",
"marks": [{ "type": "strong" }]
}
]
},
{
"type": "codeBlock",
"attrs": {
"language": "JavaScript"
},
"content": [
{
"type": "text",
"text": "const todo = items.filter(item => …);"
}
]
}
]
}
{
"type": "doc",
"version": 1,
"content": [
{
"type": "decisionList",
"attrs": {
"localId": "862034fa..."
},
"content": [
{
"type": "decisionItem",
"attrs": {
"state": "DECIDED",
"localId": "09f1eb1e..."
},
"content": [
{
"text": "We need a new format",
"type": "text"
}
]
}
]
}
]
}
Processable
Easy to construct and parse
by machines
Why JSON?
Maintainable
Schema for documentation,
validation and backward
compatibility checks
Familiar
Lingua franca, 

supported everywhere
Verbose
Even in comparison with
Confluence CXHTML (1.6x)
Not a standard
The JSON schema is
Atlassian-specific
But…
Document Structure
BlockNodes
Paragraphs,Codeblocks,Quotes,…
DOCUMENT STRUCTURE: TERMINOLOGY
BlockNodes
Paragraphs,Codeblocks,Quotes,…
DOCUMENT STRUCTURE: TERMINOLOGY
BlockNodes
Paragraphs,Codeblocks,Quotes,…
InlineNodes
Text,Mentions,….
DOCUMENT STRUCTURE: TERMINOLOGY
BlockNodes
Paragraphs,Codeblocks,Quotes,…
InlineNodes
Text,Mentions,….
Marks
Bold,Italic,Links…
DOCUMENT STRUCTURE: TERMINOLOGY
{
"type": "<type>",
"attrs": {},
"content": []
}
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"content": []
}
Type
Allnodesandmarks
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"content": []
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"content": []
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
Children
(optional)
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"text": "<text>",
"marks": [],
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
DOCUMENT STRUCTURE: INLINE NODES
{
"type": "<type>",
"attrs": {},
"text": "<text>",
"marks": [],
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
Text
DOCUMENT STRUCTURE: INLINE NODES
{
"type": "<type>",
"attrs": {},
"text": "<text>",
"marks": [],
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
Text
Formatting
(optional)
DOCUMENT STRUCTURE: INLINE NODES
{
"type": "<type>",
"attrs": {}
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
DOCUMENT STRUCTURE: MARKS
Document Structure
Examples
{
"version": 1,
"type": "doc",
"content": []
}
DOCUMENT STRUCTURE: EMPTY DOCUMENT
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
Creating Documents
@atlaskit/adf-utils
Maintainedby
theAtlassianEditorteam
LIBRARIES: ATLASKIT ADF-UTILS
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
LIBRARIES: ATLASKIT ADF-UTILS
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
),
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
),
panel({ panelType: 'info' })(
p(
text('A panel')
)
),
LIBRARIES: ATLASKIT ADF-UTILS
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
),
panel({ panelType: 'info' })(
p(
text('A panel')
)
),
p(
emoji({ shortName: ':link:' }),
text(' '),
link({ href: 'https://www.atlassian.com' })(
text('www.atlassian.com')
)
)
);
LIBRARIES: ATLASKIT ADF-UTILS
Processing Documents
EXTRACTING ALL MENTIONED USERS
EXTRACTING ALL MENTIONED USERS
}
]
},
{
"type": "tableCell",
"attrs": {
"colspan": 1,
"rowspan": 1
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:46e75034-9ece-11e8-acd5-420039310d01"
"text": "@user4"
}
},
{
"text": " ",
"type": "text"
}
]
}
]
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:509d96ec-9ece-11e8-bdff-420039310d01",
"text": "@user5"
}
},
{
"text": " to add more tasks",
"type": "text"
}
]
}
],
"version": 1
}
}
]
},
{
"type": "tableCell",
"attrs": {
"colspan": 1,
"rowspan": 1
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:46e75034-9ece-11e8-acd5-420039310d01"
"text": "@user4"
}
},
{
"text": " ",
"type": "text"
}
]
}
]
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:509d96ec-9ece-11e8-bdff-420039310d01",
"text": "@user5"
}
},
{
"text": " to add more tasks",
"type": "text"
}
]
}
],
"version": 1
}
EXTRACTING ALL MENTIONED USERS
FILTER $
const { filter } = require(
'@atlaskit/adf-utils/traverse'
);
const accountIds = filter(
document,
node => node.type === 'mention'
).map(
node => node.attrs.id
);
console.log(accountIds);
FILTER $ node src/filter.js
const { filter } = require(
'@atlaskit/adf-utils/traverse'
);
const accountIds = filter(
document,
node => node.type === 'mention'
).map(
node => node.attrs.id
);
console.log(accountIds);
FILTER $
[ '557057:09f20a2a-9ece-11e8-998a-420039310d01',
'557057:2eee6792-9ece-11e8-9c9a-420039310d01',
'557057:3c603a90-9ece-11e8-9536-420039310d01',
'557057:46e75034-9ece-11e8-acd5-420039310d01',
'557057:509d96ec-9ece-11e8-bdff-420039310d01' ]
node src/filter.js
const { filter } = require(
'@atlaskit/adf-utils/traverse'
);
const accountIds = filter(
document,
node => node.type === 'mention'
).map(
node => node.attrs.id
);
console.log(accountIds);
TRAVERSE
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
$
TRAVERSE
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
$ cat document.json
TRAVERSE
$
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text"
}
]
}
$ cat document.json
TRAVERSE
$ node src/traverse.js
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text"
}
]
}
$ cat document.json
TRAVERSE
$ node src/traverse.js
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text"
}
]
}
$ cat document.json
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text",
"marks": [
{
"type": "link",
"attrs": {
"href": "https://tasks.example.com/task-1"
}
}
]
}
]
}
Rendering Documents
RENDERING
import React, { Component } from 'react';
import { ReactRenderer } from '@atlaskit/renderer';
import { doc, p, text, strong } from '@atlaskit/adf-utils/builders';
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
)
);
export default class MyComponent extends Component {
render() {
return (
<ReactRenderer document={document} />
);
}
}
Tools
TOOLS: REFERENCE DOCUMENTATION
Node Types
All node types that are
supported in a product,
along with their attributes.
Examples
How each node type is used in
practice.
TOOLS: ADF BUILDER
Usage
Create a document using the
editor and see the resulting
ADF.
Limits
Node types like mentions,
actions or images are not
supported.
TOOLS: ADF VIEWER
Usage
Paste an ADF document to
review how it
Limits
Node types like images or
smart links are not supported.
Examples & Links:

https://bit.ly/atlascamp-adf
PATRICK STREULE | ARCHITECT | ATLASSIAN | @PSTREULE
Thank you!

More Related Content

What's hot

AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlassian
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlassian
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Varun Torka
 
RESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web APIRESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web API💻 Spencer Schneidenbach
 
Serverless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step FunctionsServerless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step FunctionsAmazon Web Services
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Ville Seppänen
 
Building Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreBuilding Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreStormpath
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonKunaal Kapoor
 
AtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-onsAtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-onsAtlassian
 
Prairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API ResponsesPrairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API Responsesdarrelmiller71
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Paco de la Cruz
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreStormpath
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...Geoff Varosky
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code維佋 唐
 
Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015Zensations GmbH
 
Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaAtlassian
 
A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an appSarah Maddox
 

What's hot (20)

AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using now
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)
 
RESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web APIRESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web API
 
Serverless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step FunctionsServerless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step Functions
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)
 
Building Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreBuilding Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET Core
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
 
AtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-onsAtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-ons
 
Prairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API ResponsesPrairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API Responses
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET Core
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
Node.js and Parse
Node.js and ParseNode.js and Parse
Node.js and Parse
 
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
 
Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015
 
Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure Java
 
A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an app
 

Similar to Integrate CI/CD Pipelines with Jira Software Cloud

Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015StampedeCon
 
Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010namlook
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentationguest5d87aa6
 
Mongo db勉強会20110730
Mongo db勉強会20110730Mongo db勉強会20110730
Mongo db勉強会20110730Akihiro Okuno
 
Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&Backand Cohen
 
Avro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAvro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAlexandre Victoor
 
Processing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in GoProcessing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in GoRi Xu
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index StrategiesMarco Gralike
 
Modernizes your objective C - Oliviero
Modernizes your objective C - OlivieroModernizes your objective C - Oliviero
Modernizes your objective C - OlivieroCodemotion
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchclintongormley
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardGeorg Sorst
 
An Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java ScriptAn Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java ScriptFahim Abdullah
 
Semantic Web & TYPO3
Semantic Web & TYPO3Semantic Web & TYPO3
Semantic Web & TYPO3André Wuttig
 
Elasticsearch for SQL Users
Elasticsearch for SQL UsersElasticsearch for SQL Users
Elasticsearch for SQL UsersAll Things Open
 
Building DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchBuilding DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchEelco Visser
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro outputTom Chen
 

Similar to Integrate CI/CD Pipelines with Jira Software Cloud (20)

Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015
 
Sencha Touch Intro
Sencha Touch IntroSencha Touch Intro
Sencha Touch Intro
 
Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
 
Mongo db勉強会20110730
Mongo db勉強会20110730Mongo db勉強会20110730
Mongo db勉強会20110730
 
Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&
 
Avro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAvro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSON
 
Processing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in GoProcessing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in Go
 
Coding Ajax
Coding AjaxCoding Ajax
Coding Ajax
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index Strategies
 
Javascript2839
Javascript2839Javascript2839
Javascript2839
 
Json
JsonJson
Json
 
Modernizes your objective C - Oliviero
Modernizes your objective C - OlivieroModernizes your objective C - Oliviero
Modernizes your objective C - Oliviero
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboard
 
An Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java ScriptAn Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java Script
 
Semantic Web & TYPO3
Semantic Web & TYPO3Semantic Web & TYPO3
Semantic Web & TYPO3
 
Elasticsearch for SQL Users
Elasticsearch for SQL UsersElasticsearch for SQL Users
Elasticsearch for SQL Users
 
Building DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchBuilding DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language Workbench
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
 

More from Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelAtlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginAtlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingAtlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterAtlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindAtlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsAtlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 
Shipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsShipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsAtlassian
 
Build With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionBuild With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionAtlassian
 

More from Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 
Shipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsShipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature Flags
 
Build With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionBuild With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work Edition
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Integrate CI/CD Pipelines with Jira Software Cloud