meteorlxy / vssue

:mailbox: A Vue-powered Issue-based Comment Plugin
https://vssue.js.org
MIT License
769 stars 105 forks source link

[Question] 重复创建评论 #109

Closed DynamicLoader closed 2 years ago

DynamicLoader commented 3 years ago

Environment

What's your question?

我之前按照文档配置了vssue,前一段时间是正常的,这几天升级博客的时候发现,vssue每次评论都要新建一个issue,以前的issue也获取不到。

复现地址(这里没有使用OAuth APP,而是用了Github APP,前段时间测试正常): https://lucy2003.github.io/blog/articles/Arduino/Arduino_0/ 仓库地址:(请转到master分支) https://github.com/lucy2003/lucy2003.github.io

配置js(网页的已被混淆):

new Vue({
      el: '#vssue',

      render: h => h('Vssue', {
        props: {
          // 在这里设置当前页面对应的 Issue 标题
          title: document.title,

          // 在这里设置你使用的平台的 OAuth App 配置
          options: {
            issueContent: ({ url }) => `这个 Issue 用来存储该页面的评论:${url}`,
            autoCreateIssue: true,
            labels: ['blog'],
            prefix: ['[Comments]'],
            owner: 'Lucy2003',
            repo: 'lucy2003.github.io',
            clientId: 'xxxxxxxxx',
            clientSecret: 'xxxxxxxx', // 只有在使用某些平台时需要
          },
        }
      })
    })

谢谢。

meteorlxy commented 3 years ago

确实很奇怪,github 的 graphql 搜不到东西了,感觉像出 BUG 了

meteorlxy commented 3 years ago

GraphQL explorer 是 OK 的:

image

https://api.github.com/graphql 发请求就不行了:

image


Query:

query getIssueByTitle($query: String!) {
  search(
    query: $query
    type: ISSUE
    first: 20
  ) {
    nodes {
      ... on Issue {
        id
        number
        title
        body
        url
      }
    }
  }
}

Variables:

{
  "query": "\"[Vssue]Vssue\" in:title repo:meteorlxy/vssue is:public"
}
DynamicLoader commented 3 years ago

神奇的是 https://api.github.com/repos/Lucy2003/lucy2003.github.io/issues 返回了很多issue,但是vssue貌似没有处理他们,而是又创建了一个issue.

我的博客现在已经回退到原来的1.4.2版本,还是没有解决。

DynamicLoader commented 3 years ago

我刚刚读了下文档,发现这样一段可以达到上述 Query 目的的代码(返回的结构不同,但是内容是有的) 但是这段代码没有筛选功能。

query {
  repository(owner:"用户", name:"仓库") {
    issues(first:100, states:OPEN) {
      edges {
        node {
          id
          number
          title
          body
          url
        }
      }
    }
  }
}

GraphQL Explorer 和 Post 都是可以的。

另外,我不是很懂为什么API v4版本的vssue要用API v3来创建评论: 捕获

DynamicLoader commented 3 years ago

如果使用 OAuth APP 或者 个人访问令牌 来访问API,您的那个Query会起作用;如果用 Github APP ,那段Query不起作用。 难道是权限问题?Search Issue除了用 Issue 和 meta 权限以外,还要什么权限?

meteorlxy commented 3 years ago

我刚刚读了下文档,发现这样一段可以达到上述 Query 目的的代码(返回的结构不同,但是内容是有的) 但是这段代码没有筛选功能。 GraphQL Explorer 和 Post 都是可以的。

是的,这个 query 没办法筛选,而且单次请求获取的 issue 条数有限制,所以后面改用 search 方法来实现了。

另外,我不是很懂为什么API v4版本的vssue要用API v3来创建评论:

应该是说创建 issue 而不是创建评论吧。

这个稍微有点绕,具体原因我在源码的注释里有写,不过是用英文写的,有兴趣可以看看。

DynamicLoader commented 3 years ago

找到用 api v3 创建issue的原因了。谢谢!

meteorlxy commented 3 years ago

可能和 github app 的 token 有关,用 oauth token 应该是正常的。我找时间看下

DynamicLoader commented 3 years ago

GraphQL Explorer 似乎并不是把语句发到API提到的固定端点,而是走了代理(用 Chorme 查请求就能看到 ),不知这是否有影响?

CHN-KingMumu commented 2 years ago

test2