| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | const fetch = require('node-fetch');const REPO = process.env.ACCESS_REPO;const TOKEN = process.env.ACCESS_TOKEN;const PR = process.env.SYSTEM_PULLREQUEST_PULLREQUESTNUMBER;const argv = process.argv;const tag = argv[argv.length - 2];const comment = argv[argv.length - 1];const REPLACE_MARK = `<!-- AZURE_UPDATE_COMMENT_${tag} -->`;const wrappedComment = `  ${REPLACE_MARK}  ${comment}`.trim();async function withGithub(url, json, method) {  const res = await fetch(url, {    method: method || (json ? 'POST' : 'GET'),    headers: {      Accept: 'application/json',      'Content-Type': 'application/json',      Authorization: `Basic ${Buffer.from(TOKEN).toString('base64')}`,    },    body: json ? JSON.stringify(json) : undefined,  });  return res.json();}(async function run() {  if (PR == null) {    console.log('未获取到PR,忽略处理')    return;  }  const comments = await withGithub(`https://api.github.com/repos/${REPO}/issues/${PR}/comments`);  // Find my comment  const updateComment = comments.find(({ body }) => body.includes(REPLACE_MARK));  // eslint-disable-next-line no-console  console.log('Origin comment:', updateComment);  // Update  let res;  if (!updateComment) {    res = await withGithub(`https://api.github.com/repos/${REPO}/issues/${PR}/comments`, {      body: wrappedComment,    });  } else {    res = await withGithub(      `https://api.github.com/repos/${REPO}/issues/comments/${updateComment.id}`,      {        body: wrappedComment,      },      'PATCH',    );  }  // eslint-disable-next-line no-console  console.log(res);})();
 |