TMS_Library

util lib for TMS related scripts

当前为 2024-01-31 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/486123/1320395/TMS_Library.js

  1. // ==UserScript==
  2. // @name TMS_Library
  3. // @namespace http://tampermonkey.net/
  4. // @version 2024-01-31#6
  5. // @description util lib for TMS related scripts
  6. // @author bliushtein
  7. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  8. // @grant GM_xmlhttpRequest
  9. // ==/UserScript==
  10. function getConstants() {
  11. return {
  12. DESIGN_GAP: "DesignGap",
  13. CROSS_STREAM_GAP: "CrossStreamGap",
  14. OVERHEAD_TYPES: ["DesignGap", "CrossStreamGap"],
  15. DEV_STORY: "DevStory",
  16. DESIGN_STORY: "DesignChapter",
  17. BA_COMMUNICATION: "BACommunication",
  18. CROSS_STREAM_COMMUNICATION: "CrossStreamCommunication",
  19. DEV_TEST: "DevTest"
  20. }
  21. }
  22. function delay(milliseconds){
  23. return new Promise(resolve => {
  24. setTimeout(resolve, milliseconds);
  25. });
  26. }
  27. function sendRequest(url, method = 'GET', body = null) {
  28. console.log(url, method, body);
  29. return new Promise((resolve, reject) => {
  30. GM_xmlhttpRequest({
  31. method: method,
  32. timeout: 5000,
  33. onerror: reject,
  34. ontimeout: reject,
  35. onload: resolve,
  36. headers: {
  37. Accept: 'application/json',
  38. 'Content-Type': 'application/json',
  39. // If a user agent is not passed - a POST request fails with 403 error
  40. 'User-Agent': 'Any',
  41. },
  42. data: body,
  43. url: url,
  44. });
  45. }).then(response => {
  46. if ([200, 201].indexOf(response.status) !== -1) {
  47. if (response.responseText == null) {
  48. return {};
  49. }
  50. return JSON.parse(response.responseText);
  51. }
  52. throw new Error(response.status + ' ' + response.statusText + ' ' + response.responseText);
  53. });
  54. }
  55. async function getIssues(keys, fields = ["timetracking", "components", "issuetype", "labels", "priority", "customfield_10200", "customfield_10201", "customfield_10006", "summary", "status", "issuelinks"]) {
  56. if (keys.length == 0) {
  57. return {issues: []};
  58. }
  59. return await sendRequest(`https://tms.netcracker.com/rest/api/latest/search?jql=issuekey IN (${keys.join(",")})&fields=${fields.join(",")}`);
  60. }
  61. async function getSubtasts(keys, fields = ["timetracking", "components", "issuetype", "labels", "status"]) {
  62. if (keys.length == 0) {
  63. return {issues: []};
  64. }
  65. return await sendRequest(`https://tms.netcracker.com/rest/api/latest/search?jql=parent IN (${keys.join(",")})&fields=${fields.join(",")}`);
  66. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址