Challenges
GitHub robots.txt
Problem:
Early in my interactions with Nova, I struggled to get them to correctly identify, then retrieve, a file from my repository to perform some analysis on it. Nova would insist they didn't have the capacity to view public files, and prompt me to just copy/paste the code into the chat window, which is exactly the sort of context-switching I wanted to avoid.
Solution
Eventually I discovered that GitHub employs a
robots.txt file to prevent crawlers from accessing
sites. I further discovered that the same does not apply to the 'raw'
versions of files available on the raw.githubusercontent.com
domain.
Now Nova knows to check the relevant raw.githubusercontent.com
URL.
GitHub file paths
Problem
With the above problem solved, Nova was able to retrieve files if given the absolute path, but giving her the filename either didn't get the result I wanted, or else required an additional API call to perform a search so that the correct path could be inferred.
Solution
A GitHub Action executes on every branch creation within the repository to
create a map of the repository (using command-line utility tree). Maps
are stored in a special-purpose [metadata
branch][] of the
repository which does not share commit history with the rest of the
repository. Nova knows to find them there, and can now correctly infer file
locations given a file name.
Jira Auth
Problem 1
Jira allows authentication via Basic Auth or OAuth.
I could not get the OAuth configuration to work. The authentication went as expected, but then the redirect came back to the wrong URL, and I'd have to authenticate again.
Problem 2
I was able to partially work around the above problem by using Basic
auth. All of the calls I wanted to make were sent successfully from my
REST Client file. But when I had Nova perform the same
actions, using the same credentials, they were rejected for failing to return
the XSRF
token.
Solution
In the end it turns out OAuth was working just fine. The difficulty was a usability issue in the ChatGPT UI. When you edit a GPT, or its actions, you work in a temporary preview space that lets you trial changes before committing them. When Jira's OAuth implementation was redirecting, it was returning to the wrong URL. Committing the changes and then testing them solved the problem.
Thanks to [this article] for helping finally identify the issue.