Compare commits

..

6 Commits

Author SHA1 Message Date
Sean Goedecke e5b826567d rebuild 2025-04-08 05:18:48 +00:00
Sean Goedecke 4738a2d212 use org-owned endpoint 2025-04-08 04:55:27 +00:00
Sean Goedecke afaedf6677 use models dot github as the base endpoint 2025-04-08 04:30:16 +00:00
Sean Goedecke 78d6b91d0b Lint README.md 2025-04-08 02:10:27 +00:00
Sean Goedecke 1a66a5968c Update README.md 2025-04-08 12:00:25 +10:00
Sean Goedecke efbbaa2667 Use correct Azure inference endpoint 2025-04-07 23:52:33 +00:00
7 changed files with 42 additions and 16 deletions
+1 -2
View File
@@ -9,8 +9,7 @@ ACTIONS_STEP_DEBUG=true
# GitHub Actions inputs should follow `INPUT_<name>` format (case-sensitive).
# Hyphens should not be converted to underscores!
INPUT_prompt=hello
INPUT_token=
INPUT_PROMPT=hello
# GitHub Actions default environment variables. These are set for every run of a
# workflow and can be used in your actions. Setting the value here will override
+17 -9
View File
@@ -14,16 +14,24 @@ your actions.
Create a workflow to use the AI inference action:
```yaml
steps:
- name: Test Local Action
id: inference
uses: actions/ai-inference@v1
with:
prompt: 'Hello!'
name: 'AI inference'
on: workflow_dispatch
- name: Print Output
id: output
run: echo "${{ steps.test-action.outputs.response }}"
jobs:
inference:
permissions:
models: read
runs-on: ubuntu-latest
steps:
- name: Test Local Action
id: inference
uses: actions/ai-inference@v1
with:
prompt: 'Hello!'
- name: Print Output
id: output
run: echo "${{ steps.inference.outputs.response }}"
```
## Inputs
+1 -1
View File
@@ -4,7 +4,7 @@ author: 'GitHub'
# Add your action's branding here. This will appear on the GitHub Marketplace.
branding:
icon: 'play-circle'
icon: 'message-square'
color: red
# Define your inputs here.
+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="116" height="20" role="img" aria-label="Coverage: 77.27%"><title>Coverage: 77.27%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="116" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="63" height="20" fill="#555"/><rect x="63" width="53" height="20" fill="#e05d44"/><rect width="116" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="325" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="530">Coverage</text><text x="325" y="140" transform="scale(.1)" fill="#fff" textLength="530">Coverage</text><text aria-hidden="true" x="885" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">77.27%</text><text x="885" y="140" transform="scale(.1)" fill="#fff" textLength="430">77.27%</text></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="116" height="20" role="img" aria-label="Coverage: 76.92%"><title>Coverage: 76.92%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="116" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="63" height="20" fill="#555"/><rect x="63" width="53" height="20" fill="#e05d44"/><rect width="116" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="325" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="530">Coverage</text><text x="325" y="140" transform="scale(.1)" fill="#fff" textLength="530">Coverage</text><text aria-hidden="true" x="885" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">76.92%</text><text x="885" y="140" transform="scale(.1)" fill="#fff" textLength="430">76.92%</text></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Generated Vendored
+8 -1
View File
@@ -33566,7 +33566,14 @@ async function run() {
if (token === undefined) {
throw new Error('GITHUB_TOKEN is not set');
}
const endpoint = coreExports.getInput('endpoint');
let endpoint = coreExports.getInput('endpoint');
// If we're in an org-owned repository, we should use the org-owned endpoint
const repoOwner = process.env.GITHUB_REPOSITORY_OWNER;
const ownerType = process.env.GITHUB_REPOSITORY_OWNER_TYPE;
if (endpoint == 'https://models.github.ai/inference' &&
ownerType == 'Organization') {
endpoint = `https://models.github.ai/${repoOwner}/inference`;
}
const client = createClient(endpoint, new AzureKeyCredential(token));
const response = await client.path('/chat/completions').post({
body: {
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long
+13 -1
View File
@@ -22,7 +22,18 @@ export async function run(): Promise<void> {
if (token === undefined) {
throw new Error('GITHUB_TOKEN is not set')
}
const endpoint = core.getInput('endpoint')
let endpoint = core.getInput('endpoint')
// If we're in an org-owned repository, we should use the org-owned endpoint
const repoOwner = process.env.GITHUB_REPOSITORY_OWNER
const ownerType = process.env.GITHUB_REPOSITORY_OWNER_TYPE
if (
endpoint == 'https://models.github.ai/inference' &&
ownerType == 'Organization'
) {
endpoint = `https://models.github.ai/${repoOwner}/inference`
}
const client = ModelClient(endpoint, new AzureKeyCredential(token))
@@ -53,6 +64,7 @@ export async function run(): Promise<void> {
response.body
)
}
const modelResponse: string | null =
response.body.choices[0].message.content