Githawk: Posting review comments fails

Created on 30 Apr 2018  ·  7Comments  ·  Source: GitHawkApp/GitHawk

Trying to comment on the review in https://github.com/MessageKit/MessageKit/issues/666 shows a “Something went wrong”.


Bug Report Dump (Auto-generated)

Version 1.19.0 (1524439576)
Device: iPad7,3 (iOS 11.3)
TestFlight: false

🐛 bug

All 7 comments

It throws here.

The JSON that we fail to parse:

▿ 2 elements
  ▿ 0 : 2 elements
    - key : "documentation_url"
    - value : https://developer.github.com/v3/pulls/comments/#create-a-comment
  ▿ 1 : 2 elements
    - key : "message"
    - value : Not Found

This is the request:

▿ V3SendPullRequestCommentRequest
  - owner : "MessageKit"
  - repo : "MessageKit"
  - number : 666
  - body : "Test"
  - inReplyTo : 184918061

So posting to this comment returns a 404, but replying to other PR threads works.

(lldb) po response
▿ [Request]: POST https://api.github.com/repos/MessageKit/MessageKit/pulls/666/comments
[Response]: <NSHTTPURLResponse: 0x60800043c900> { URL: https://api.github.com/repos/MessageKit/MessageKit/pulls/666/comments } { Status Code: 404, Headers {
    "Access-Control-Allow-Origin" =     (
        "*"
    );
    "Access-Control-Expose-Headers" =     (
        "ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"
    );
    "Content-Encoding" =     (
        gzip
    );
    "Content-Security-Policy" =     (
        "default-src 'none'"
    );
    "Content-Type" =     (
        "application/json; charset=utf-8"
    );
    Date =     (
        "Sun, 06 May 2018 00:17:44 GMT"
    );
    "Referrer-Policy" =     (
        "origin-when-cross-origin, strict-origin-when-cross-origin"
    );
    Server =     (
        "GitHub.com"
    );
    Status =     (
        "404 Not Found"
    );
    "Strict-Transport-Security" =     (
        "max-age=31536000; includeSubdomains; preload"
    );
    "Transfer-Encoding" =     (
        Identity
    );
    "X-Accepted-OAuth-Scopes" =     (
        ""
    );
    "X-Content-Type-Options" =     (
        nosniff
    );
    "X-Frame-Options" =     (
        deny
    );
    "X-GitHub-Media-Type" =     (
        "github.v3; format=json"
    );
    "X-GitHub-Request-Id" =     (
        "9CB8:75DB:2096332:4D00B96:5AEE49A8"
    );
    "X-OAuth-Client-Id" =     (
        a8488ca1ed943b610815
    );
    "X-OAuth-Scopes" =     (
        "notifications, repo, user"
    );
    "X-RateLimit-Limit" =     (
        5000
    );
    "X-RateLimit-Remaining" =     (
        4994
    );
    "X-RateLimit-Reset" =     (
        1525569087
    );
    "X-Runtime-rack" =     (
        "0.035767"
    );
    "X-XSS-Protection" =     (
        "1; mode=block"
    );
} }
[Data]: 110 bytes
[Result]: SUCCESS: 110 bytes
[Timeline]: Timeline: { "Request Start Time": 547258664.175, "Initial Response Time": 547258664.729, "Request Completed Time": 547258664.729, "Serialization Completed Time": 547258664.729, "Latency": 0.554 secs, "Request Duration": 0.554 secs, "Serialization Duration": 0.000 secs, "Total Duration": 0.554 secs }
  ▿ request : Optional<URLRequest>
    ▿ some : https://api.github.com/repos/MessageKit/MessageKit/pulls/666/comments
      ▿ url : Optional<URL>
        ▿ some : https://api.github.com/repos/MessageKit/MessageKit/pulls/666/comments
      - cachePolicy : 0
      - timeoutInterval : 60.0
      - mainDocumentURL : nil
      - networkServiceType : __ObjC.NSURLRequest.NetworkServiceType
      - allowsCellularAccess : true
      ▿ httpMethod : Optional<String>
        - some : "POST"
      ▿ allHTTPHeaderFields : Optional<Dictionary<String, String>>
        ▿ some : 1 element
          ▿ 0 : 2 elements
            - key : "Content-Type"
            - value : "application/json"
      ▿ httpBody : Optional<Data>
        ▿ some : 97 bytes
          - count : 97
          ▿ pointer : 0x00006080002ed990
            - pointerValue : 106102875150736
      - httpBodyStream : nil
      - httpShouldHandleCookies : true
      - httpShouldUsePipelining : false
  ▿ response : Optional<NSHTTPURLResponse>
  ▿ data : Optional<Data>
    ▿ some : 110 bytes
      - count : 110
      ▿ pointer : 0x0000608000157290
        - pointerValue : 106102873485968
  ▿ result : SUCCESS: 110 bytes
    ▿ success : 110 bytes
      - count : 110
      ▿ pointer : 0x0000608000157290
        - pointerValue : 106102873485968
  ▿ timeline : Timeline: { "Request Start Time": 547258664.175, "Initial Response Time": 547258664.729, "Request Completed Time": 547258664.729, "Serialization Completed Time": 547258664.729, "Latency": 0.554 secs, "Request Duration": 0.554 secs, "Serialization Duration": 0.000 secs, "Total Duration": 0.554 secs }
    - requestStartTime : 547258664.17475605
    - initialResponseTime : 547258664.72867501
    - requestCompletedTime : 547258664.72909296
    - serializationCompletedTime : 547258664.72922397
    - latency : 0.55391895771026611
    - requestDuration : 0.55433690547943115
    - serializationDuration : 0.00013101100921630859
    - totalDuration : 0.55446791648864746
  ▿ _metrics : Optional<AnyObject>

Really not sure what's going on w/ this. It's something to do w/ the scopes we're requesting. If I use a PAT, it works. If I actually login, it doesn't work...

The craziest thing is that my PAT has _less_ scopes (repo, user).

I have also experienced this bug when trying add a reply to an issue that I had opened, here
https://github.com/nodejs/abi-stable-node-addon-examples/issues/12

I cannot reproduce this issue on the prod branch. I suspect it's a bug in the GitHub API V3.

Requests that require authentication will return 404 Not Found, instead of 403 Forbidden, in some places. This is to prevent the accidental leakage of private repositories to unauthorized users.

Maybe this mechanism is broken on GitHub side?

This is still happening... and annoyingly the apps does not keep the message when it fails to send it.

Oh noes. Would you like to open a ticket to at least persist the message when it fails to send, @ikifof?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rnystrom picture rnystrom  ·  3Comments

rnystrom picture rnystrom  ·  3Comments

viktorgardart picture viktorgardart  ·  3Comments

BasThomas picture BasThomas  ·  3Comments

Iron-Ham picture Iron-Ham  ·  3Comments