Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b9a80c056 | ||
|
|
ef9b19a328 | ||
|
|
a48612b8e6 | ||
|
|
08eafd1486 | ||
|
|
a0bee1bbc1 | ||
|
|
287719287e | ||
|
|
444ccd369f | ||
|
|
aca792b823 | ||
|
|
940963a874 | ||
|
|
0b249a1b5f | ||
|
|
5cc156554e | ||
|
|
d2ae8d7d33 | ||
|
|
a701644270 | ||
|
|
09f33ced69 | ||
|
|
bbac382238 | ||
|
|
432a30c9e0 |
@@ -14,5 +14,10 @@
|
||||
"plugins": ["@typescript-eslint"],
|
||||
"rules": {
|
||||
"@typescript-eslint/camelcase": "off"
|
||||
},
|
||||
"settings": {
|
||||
"import/resolver": {
|
||||
"typescript": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
16
.github/workflows/ci.yml
vendored
16
.github/workflows/ci.yml
vendored
@@ -19,10 +19,10 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 20.x
|
||||
node-version-file: package.json
|
||||
cache: npm
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
@@ -46,14 +46,14 @@ jobs:
|
||||
matrix:
|
||||
target: [built, committed]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- if: matrix.target == 'built' || github.event_name == 'pull_request'
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: dist
|
||||
path: dist
|
||||
- if: matrix.target == 'built' || github.event_name == 'pull_request'
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: action.yml
|
||||
path: .
|
||||
@@ -86,8 +86,8 @@ jobs:
|
||||
needs: [test]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/download-artifact@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: dist
|
||||
path: dist
|
||||
|
||||
2
.github/workflows/dockerhub-description.yml
vendored
2
.github/workflows/dockerhub-description.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
dockerHubDescription:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Modify readme for DockerHub
|
||||
run: |
|
||||
|
||||
2
.github/workflows/publish-docker.yml
vendored
2
.github/workflows/publish-docker.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Docker Hub login
|
||||
run: echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
|
||||
|
||||
4
.github/workflows/update-major-version.yml
vendored
4
.github/workflows/update-major-version.yml
vendored
@@ -11,13 +11,13 @@ on:
|
||||
type: choice
|
||||
description: The major version tag to update
|
||||
options:
|
||||
- v4
|
||||
- v5
|
||||
|
||||
jobs:
|
||||
tag:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
token: ${{ secrets.ACTIONS_BOT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
10
README.md
10
README.md
@@ -11,7 +11,7 @@ This is useful if you `docker push` your images to Docker Hub. It provides an ea
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
@@ -44,7 +44,7 @@ If this is not the case the path can be specified with the `readme-filepath` inp
|
||||
|
||||
```yml
|
||||
- name: Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
@@ -58,7 +58,7 @@ The GitHub repository description can be used for the Docker Hub `short-descript
|
||||
|
||||
```yml
|
||||
- name: Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
@@ -86,7 +86,7 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
@@ -107,7 +107,7 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
uses: peter-evans/dockerhub-description@v5
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
import {getInputs} from '../src/input-helper'
|
||||
|
||||
describe('input-helper tests', () => {
|
||||
const ORIGINAL_ENV = process.env
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetModules()
|
||||
process.env = {...ORIGINAL_ENV}
|
||||
})
|
||||
|
||||
afterAll(() => {
|
||||
process.env = ORIGINAL_ENV
|
||||
})
|
||||
|
||||
test('enableUrlCompletion should be false when "false" is passed', () => {
|
||||
process.env['INPUT_ENABLE-URL-COMPLETION'] = 'false'
|
||||
|
||||
const inputs = getInputs()
|
||||
expect(inputs.enableUrlCompletion).toBe(false)
|
||||
})
|
||||
|
||||
test('enableUrlCompletion should be true when "true" is passed', () => {
|
||||
process.env['INPUT_ENABLE-URL-COMPLETION'] = 'true'
|
||||
|
||||
const inputs = getInputs()
|
||||
expect(inputs.enableUrlCompletion).toBe(true)
|
||||
})
|
||||
})
|
||||
@@ -22,13 +22,12 @@ inputs:
|
||||
description: >
|
||||
Enables completion of relative URLs to absolute ones
|
||||
Default: `false`
|
||||
default: "false"
|
||||
image-extensions:
|
||||
description: >
|
||||
File extensions that will be treated as images
|
||||
Default: `bmp,gif,jpg,jpeg,png,svg,webp`
|
||||
runs:
|
||||
using: 'node20'
|
||||
using: 'node24'
|
||||
main: 'dist/index.js'
|
||||
branding:
|
||||
icon: 'upload'
|
||||
|
||||
4205
dist/index.js
vendored
4205
dist/index.js
vendored
File diff suppressed because one or more lines are too long
4348
package-lock.json
generated
4348
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
26
package.json
26
package.json
@@ -1,9 +1,12 @@
|
||||
{
|
||||
"name": "dockerhub-description",
|
||||
"version": "4.0.0",
|
||||
"version": "5.0.0",
|
||||
"private": true,
|
||||
"description": "An action to update a Docker Hub repository description from README.md",
|
||||
"main": "lib/main.js",
|
||||
"engines": {
|
||||
"node": ">=24.4.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc && ncc build",
|
||||
"format": "prettier --write '**/*.ts'",
|
||||
@@ -28,23 +31,24 @@
|
||||
"homepage": "https://github.com/peter-evans/dockerhub-description#readme",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.11.1",
|
||||
"node-fetch": "^2.7.0",
|
||||
"unicode-substring": "^0.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^27.0.3",
|
||||
"@types/jest": "^29.0.0",
|
||||
"@types/node": "^16.18.126",
|
||||
"@typescript-eslint/parser": "^5.62.0",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
||||
"@typescript-eslint/parser": "^7.18.0",
|
||||
"@vercel/ncc": "^0.38.4",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-import-resolver-typescript": "^3.10.1",
|
||||
"eslint-plugin-github": "^4.10.2",
|
||||
"eslint-plugin-jest": "^25.7.0",
|
||||
"eslint-plugin-prettier": "^5.2.5",
|
||||
"jest": "^27.5.1",
|
||||
"jest-circus": "^27.5.1",
|
||||
"eslint-plugin-jest": "^28.0.0",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"jest": "^29.0.0",
|
||||
"jest-circus": "^29.0.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"prettier": "^3.5.3",
|
||||
"ts-jest": "^27.1.5",
|
||||
"prettier": "^3.6.2",
|
||||
"ts-jest": "^29.0.0",
|
||||
"typescript": "^4.9.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import * as core from '@actions/core'
|
||||
import * as fetch from 'node-fetch'
|
||||
|
||||
export async function getToken(
|
||||
username: string,
|
||||
password: string
|
||||
): Promise<string> {
|
||||
const body = {
|
||||
username: username,
|
||||
password: password
|
||||
identifier: username,
|
||||
secret: password
|
||||
}
|
||||
const response = await fetch('https://hub.docker.com/v2/users/login', {
|
||||
method: 'post',
|
||||
const response = await fetch('https://hub.docker.com/v2/auth/token', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(body),
|
||||
headers: {'Content-Type': 'application/json'}
|
||||
})
|
||||
@@ -20,8 +19,8 @@ export async function getToken(
|
||||
)
|
||||
}
|
||||
const json = await response.json()
|
||||
core.setSecret(json['token'])
|
||||
return json['token']
|
||||
core.setSecret(json['access_token'])
|
||||
return json['access_token']
|
||||
}
|
||||
|
||||
export async function updateRepositoryDescription(
|
||||
@@ -37,11 +36,11 @@ export async function updateRepositoryDescription(
|
||||
body['description'] = description
|
||||
}
|
||||
await fetch(`https://hub.docker.com/v2/repositories/${repository}`, {
|
||||
method: 'patch',
|
||||
method: 'PATCH',
|
||||
body: JSON.stringify(body),
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `JWT ${token}`
|
||||
Authorization: `Bearer ${token}`
|
||||
}
|
||||
}).then(res => {
|
||||
if (!res.ok) {
|
||||
|
||||
@@ -18,7 +18,7 @@ export function getInputs(): Inputs {
|
||||
repository: core.getInput('repository'),
|
||||
shortDescription: core.getInput('short-description'),
|
||||
readmeFilepath: core.getInput('readme-filepath'),
|
||||
enableUrlCompletion: core.getBooleanInput('enable-url-completion'),
|
||||
enableUrlCompletion: Boolean(core.getInput('enable-url-completion')),
|
||||
imageExtensions: core.getInput('image-extensions')
|
||||
}
|
||||
|
||||
@@ -54,8 +54,7 @@ export function getInputs(): Inputs {
|
||||
}
|
||||
|
||||
if (!inputs.enableUrlCompletion && process.env['ENABLE_URL_COMPLETION']) {
|
||||
inputs.enableUrlCompletion =
|
||||
process.env['ENABLE_URL_COMPLETION'].toLowerCase() === 'true'
|
||||
inputs.enableUrlCompletion = Boolean(process.env['ENABLE_URL_COMPLETION'])
|
||||
}
|
||||
|
||||
if (!inputs.imageExtensions && process.env['IMAGE_EXTENSIONS']) {
|
||||
@@ -66,6 +65,9 @@ export function getInputs(): Inputs {
|
||||
if (!inputs.readmeFilepath) {
|
||||
inputs.readmeFilepath = readmeHelper.README_FILEPATH_DEFAULT
|
||||
}
|
||||
if (!inputs.enableUrlCompletion) {
|
||||
inputs.enableUrlCompletion = readmeHelper.ENABLE_URL_COMPLETION_DEFAULT
|
||||
}
|
||||
if (!inputs.imageExtensions) {
|
||||
inputs.imageExtensions = readmeHelper.IMAGE_EXTENSIONS_DEFAULT
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import * as utils from './utils'
|
||||
|
||||
export const README_FILEPATH_DEFAULT = './README.md'
|
||||
export const IMAGE_EXTENSIONS_DEFAULT = 'bmp,gif,jpg,jpeg,png,svg,webp'
|
||||
export const ENABLE_URL_COMPLETION_DEFAULT = false
|
||||
|
||||
const TITLE_REGEX = `(?: +"[^"]+")?`
|
||||
const REPOSITORY_URL = `${process.env['GITHUB_SERVER_URL']}/${process.env['GITHUB_REPOSITORY']}`
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"target": "es6",
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"outDir": "./lib",
|
||||
"rootDir": "./src",
|
||||
|
||||
Reference in New Issue
Block a user