שילוב JIRA REST API

1. הקדמה

במאמר זה נבחן במהירות כיצד להשתלב עם ה- JIRA באמצעות ה- REST API שלו.

2. תלות של Maven

את החפצים הנדרשים ניתן למצוא במאגר Maven הציבורי של אטלסיאן:

 atlassian-public //packages.atlassian.com/maven/repository/public 

ברגע שהמאגר מתווסף ל- pom.xml, עלינו להוסיף את התלות שלהלן:

 com.atlassian.jira jira-rest-java-client-core 4.0.0 com.atlassian.fugue fuga 2.6.1 

תוכל לעיין ב- Maven Central לקבלת הגרסאות העדכניות ביותר של הליבה ו פוּגָה תלות.

3. יצירת לקוח Jira

ראשית, בואו נסתכל על מידע בסיסי שעלינו להיות מסוגלים להתחבר למופע של ג'ירה:

  • שם משתמש - הוא שם המשתמש של כל משתמש Jira תקף
  • סיסמה - היא הסיסמה של אותו משתמש
  • jiraUrl - היא כתובת האתר בה מתארח מופע ג'ירה

ברגע שיש לנו את הפרטים האלה, נוכל ליצור מיידיות את לקוח Jira שלנו:

MyJiraClient myJiraClient = MyJiraClient חדש ("user.name", "סיסמה", "//jira.company.com");

הקונסטרוקטור של הכיתה הזו:

MyJiraClient ציבורי (שם משתמש מחרוזת, סיסמת מחרוזת, מחרוזת jiraUrl) {this.username = שם משתמש; this.password = סיסמה; this.jiraUrl = jiraUrl; this.restClient = getJiraRestClient (); }

ה getJiraRestClient () משתמש בכל המידע שנמסר ומחזיר מופע של JiraRestClient. זהו הממשק הראשי דרכו נתקשר עם ממשק ה- API של Jira REST:

פרטי JiraRestClient getJiraRestClient () {החזר AsynchronousJiraRestClientFactory חדש () .createWithBasicHttpAuthentication (getJiraUri (), this.username, this.password); }

כאן אנו משתמשים באימות בסיסי כדי לתקשר עם ה- API. עם זאת, תומכים גם במנגנוני אימות מתוחכמים יותר כמו OAuth.

ה getUri () פשוט ממיר את jiraUrl למופע של java.net.URI:

פרטי URI getJiraUri () {החזר URI.create (this.jiraUrl); }

זה מסכם את התשתית שלנו ליצירת לקוח Jira בהתאמה אישית. כעת נוכל לבדוק דרכים שונות לאינטראקציה עם ה- API.

3.1. צור גליון חדש

נתחיל ביצירת גיליון חדש. נשתמש בגיליון החדש שנוצר עבור כל הדוגמאות האחרות במאמר זה:

public String createIssue (String projectKey, Long issueType, String issueSummary) {IssueRestClient issueClient = restClient.getIssueClient (); IssueInput newIssue = IssueInputBuilder חדש (projectKey, issueType, issueSummary) .build (); return issueClient.createIssue (newIssue) .claim (). getKey (); }

ה projectKey הוא הייחודי המגדיר את הפרויקט שלך. אין זה מלבד הקידומת המצורפת לכל הנושאים שלנו. הוויכוח הבא, issueType תלוי גם בפרויקט שמזהה את סוג הבעיות שלך כמו "משימה" או "סיפור". ה סיכום הבעיה הוא כותרת הגיליון שלנו.

הנושא הולך כמופע של IssueInput ל- API של שאר. מלבד התשומות שתיארנו, דברים כמו מועמד, כתב, גרסאות מושפעות ומטא נתונים אחרים יכולים ללכת כ IssueInput.

3.2. עדכון תיאור הבעיה

כל גיליון בג'ירה מזוהה על ידי ייחודי חוּט כמו "MYKEY-123". אנו זקוקים למפתח נושא זה כדי לקיים אינטראקציה עם ממשק ה- API ולעדכן את תיאור הבעיה:

public void updateIssueDescription (String issueKey, String newDescription) {IssueInput input = IssueInputBuilder new () .setDescription (newDescription) .build (); restClient.getIssueClient () .updateIssue (issueKey, קלט) .claim (); }

לאחר עדכון התיאור, אל לנו לקרוא בחזרה את התיאור המעודכן:

נושא ציבורי getIssue (String issueKey) {return restClient.getIssueClient () .getIssue (issueKey) .claim (); }

ה נושא מופע מייצג נושא שזוהה על ידי נושא מפתח. אנו יכולים להשתמש במופע זה כדי לקרוא את התיאור של בעיה זו:

סוגיית הבעיה = myJiraClient.getIssue (issueKey); System.out.println (issue.getDescription ());

פעולה זו תדפיס את תיאור הבעיה למסוף.

3.3. הצביעו לגיליון

ברגע שקיבלנו מופע של בעיה, נוכל להשתמש בה גם לביצוע פעולות עדכון / עריכה. בואו להצביע לנושא:

vote void voteForAnIssue (סוגיית גיליון) {restClient.getIssueClient () .vote (issue.getVotesUri ()) .claim (); }

זה יוסיף את ההצבעה ל נושא בשם המשתמש שבאמצעותו נעשה שימוש בתעודות. ניתן לאמת זאת על ידי בדיקת ספירת הקולות:

public int getTotalVotesCount (נושא מפתח מחרוזת) {BasicVotes votes = getIssue (issueKey) .getVotes (); להחזיר קולות == null? 0: votes.getVotes (); }

דבר אחד שיש לציין כאן הוא שאנחנו שוב מביאים מופע חדש של נושא כאן כשאנחנו רוצים לשקף את ספירת הקולות המעודכנת.

3.4. הוספת תגובה

אנחנו יכולים להשתמש בו נושא למשל להוסיף הערה בשם המשתמש. כמו להוסיף הצבעה, גם הוספת תגובה היא די פשוטה:

בטל ציבורי addComment (סוגיית הבעיה, מחרוזת commentBody) {restClient.getIssueClient () .addComment (issue.getCommentsUri (), Comment.valueOf (commentBody)); }

השתמשנו בשיטת המפעל ערך של() המסופק על ידי תגובה בכיתה ליצירת מופע של תגובה. ישנן שיטות מפעל שונות אחרות למקרי שימוש מתקדמים, כגון שליטה בנראות של a תגובה.

בוא נביא מופע חדש של ה- נושא ולקרוא את כל תגובהs:

רשימה ציבורית getAllComments (String issueKey) {return StreamSupport.stream (getIssue (issueKey) .getComments (). spliterator (), false) .collect (Collectors.toList ()); }

3.5. מחק בעיה

מחיקת בעיה היא גם די פשוטה. אנו זקוקים רק למפתח הבעיה שמזהה את הבעיה:

בטל ציבורי deleteIssue (מחרוזת issueKey, deleteSubtasks בוליאני) {restClient.getIssueClient () .deleteIssue (issueKey, deleteSubtasks) .claim (); }

4. מסקנה

במאמר מהיר זה, יצרנו לקוח Java פשוט המשתלב עם ה- Jira REST API ומבצע חלק מהפעולות הבסיסיות.

המקור המלא של מאמר זה ניתן למצוא באתר GitHub.


$config[zx-auto] not found$config[zx-overlay] not found