Repository navigation
v1.3.0 #90
v1.3.0
#90
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Changed
Dennis-Otto/issue-assistantas before. The README opens with what the assistant does, why an issue can't make its AI write, and three commands that install the latest release; the action, the repository and the website describe it as AI issue triage, and the repository has the topics that people browse, such astriage,claude-codeandprompt-injection.installagain. Repositories of the repository blueprint get them with its next update. The Findings workflow also starts after the scans of Workflow security and OSV-Scanner on main, so their new findings are accepted or reported at once, not the next morning. The jobs without the AI run onubuntu-24.04instead ofubuntu-latest, the version of the AI's firewall runner, so a new image of Ubuntu never reaches your repository untested. actionlint 1.7.12 doesn't know thequeueof a concurrency group yet: if your repository runs it, let it ignore that message forissue-assistant.yml, as step 9 of the set-up shows.Security
[engine]inconfig.toml: 20 analyses of new issues, follow-ups and replies after a release in the 24 hours before (max_per_day), 3 analyses of the new issues of one reporter (max_per_author_per_day), and 2 comments of the reporter after each release (release_replies). Every new issue counts, also while the first analyses still run, so a flood at once starts no more; a follow-up or a reply after a release counts as it starts, and deleting comments gives a reporter no more of them. Over a limit, an issue keeps its labels andneeds-triagefor the maintainer, and the run notes which limit it reached; maintainers and runs by hand are never limited. Without the settings, the defaults apply, so no repository needs to change anything;checkrefuses a limit that isn't a whole number of 0 or more.event,apply,sweep,sync-labelsandfindings, reach only GitHub: Harden-Runner blocks every host butapi.github.comandgithub.com, and no step can use sudo or containers to lift the block. A compromised action or tool in a job with a write token can no longer send it anywhere else. The block holds in public repositories, and in private ones with a subscription or trial of StepSecurity, the maker of Harden-Runner; without one, the jobs run as before. StepSecurity receives the repository, run and job of each of these jobs and the hosts that its steps connect to. The action turns off the telemetry of the GitHub CLI, which would only knock at a blocked host.###followed by many blanks, or many<!--or<awithout an end, kept the reading busy for hours, so every later analysis ran until its job timed out. The answers of issue forms, HTML comments and tags are now read in time that grows only with the length of a text, at most GitHub's 65,536 characters. The AI reads at most 20,000 characters of each text of its issue, marked "(shortened)" after that, and a line that starts with a<!--without its end hides the rest of a text from it, as GitHub hides it from people. A new fuzz target,fuzz/fuzz_issue_text.py, fails when reading a crafted text takes longer than half a second.::add-mask::or a forged::warning::, into the log of the run, end the code block of a dry run's preview in the job summary, and mention people or link elsewhere in the reasons for labels and duplicates that GitHub shows on the timeline. Now every error and notice of the assistant is escaped, the summary turns workflow commands off while it prints the AI's words, a preview's code block is longer than any run of backticks in the comment, and every reason is put on one line, cleaned like a comment and kept to 280 characters. A possible security report gets the fixed reason "Possible security report; see the security policy." on the timeline, and the AI is asked to keep its summary, analysis and reason to one neutral sentence without details, because the log of the run can be public.area: user's guide, no longer breaks the command line of the engine, which stopped every analysis of the repository.checkand the engine step refuse amodelinconfig.tomlthat isn't a model name, so that it can't add arguments either.@dataclassmentions nobody, also in a list. A removal can no longer join the text next to it into a reference such asfoo/bar#12or an image. E-mail addresses,mailto:andxmpp:addresses and commits of other repositories or forks, such asoctocat/Hello-World@7fd1a60, become code, and so doHTTPS://,_https://and_www.addresses to other sites. An allowed address stays a link only where GitHub links all of it and nothing more, since its link runs on to the next space, even into code. A link that leaves the repository through..or%2e, or that names a user, a password or a port, is no longer allowed. A code block counts only when its fence starts a line, so one that the AI indents under a step of a list now shows as plain text; the AI is asked not to indent them.## Comment 4 by @owner (maintainer). Now each text stands in a code fence that nothing in it can close, only the assistant writes the headings, and the AI is told that a fence holds only that person's text, whatever it looks like.needs-triage, gets the notice that closes the duplicate; any other becomes a suggestion for the maintainer, as a less sure duplicate does. A thumbs down on the notice keeps the issue open when it comes from the reporter or from anyone who may push to the repository, also the maintainers of an organization's repository; before, only the owner of the repository counted besides the reporter, which for an organization is nobody.Fixed
fixed-in-next-releaseonly after that release, as when the run of the merge failed; before, it waited for the release after and named that one. An issue whose fix a release ships already when the sweep first sees the merge closes at once. A pull request of another repository that names the issue, such asFixes owner/project#12, no longer keeps it open or appears in the comment of the release, and in a busy repository the sweep reads every pull request merged in the last 14 days instead of the latest 30.checkandinstallname the files of a repository with slashes on Windows too, such as.github/labels.tomlinstead of.github\labels.toml.checkandengineno longer needGH_REPO, so the check runs on your computer as well. A command that calls GitHub and finds no repository, or one that isn't written asowner/name, stops with one clear error instead of a Python traceback.labelsof an issue form written as one text separated by commas, such aslabels: bug, needs-triage, no longer failcheckwith an error for every letter. A label with a slash, such askind/bug, is removed and updated instead of stopping the run. A label that the repository has in another case, such asBugforbug, is renamed instead of failing to be created, since GitHub ignores the case of label names. An area dropdown withmultiple: trueadds the label of every option that the reporter chose; before, it added none.labels.tomlorconfig.tomlthat isn't TOML, a section written as a key, such asengine = "claude", or a value of the wrong type, such asmax_per_day = "5", stops with an error that names the file and the key, andchecklists every such problem at once. A key that the assistant doesn't know, such asclose_with_releasesor a section[release], kept its default unnoticed; nowcheckfails on it and names the key that was probably meant, and every other run warns of it.checkalso fails on labels that differ only in case or have more than 50 characters, and on aproject.mdthat still holds the starter's first line, which the AI read before every task. Socheckmay fail after the update where it passed before: fix what it names.pathtestsno longer dismisses the alerts intestsuite/too: a path covers its file, or the files of its folder. A key offindings.tomlthat the assistant doesn't know, such aspaths, stops the findings command instead of accepting the findings of the rule in every file.docs/user guide (old).md, now leads to the file.installwrites now live intemplates/, apart from this repository's own copies, which the repository blueprint brings; before, a pull request that changed a template failed the required check of the set-up.installwrites exactly what it wrote before, so no repository needs to install again.src/main/java/com/example/OAuth2ClientConfiguration.java, is posted again; before, the whole answer was refused as if it held a token, and the run failed. A long run of letters and digits now counts as a key only when it has the+or=of Base64 or its letters read like noise, and never when it is the owner, repository or commit of a link to GitHub or a part of the path of a file that git tracks. Words such astask-runner-…no longer pass for a key that starts withsk-. Known kinds of tokens still refuse an answer wherever they are, and so do the addresses of Slack and Microsoft Teams webhooks now. The security page of the website shows what counts as a secret.needs-inforight after it, so that an issue never waits for an answer to a question that wasn't posted; before, a failure after the comment lostneeds-info,possible-duplicateand the area labels for good, because a run again found the comment and did nothing, so the reporter was never reminded and a duplicate that the comment announced never closed. A run again now adds the labels that such a comment is missing, without a second comment, and leaves the labels that someone changed since then as they are.fixed-in-next-releaselabel and stops waiting for an answer, even when its notice fails.Every pull request of this release
Features
Bug fixes
Performance
Compare with the previous release
This discussion was created from the release v1.3.0.
All reactions