Compare commits

..

1 Commits

Author SHA1 Message Date
David O Neill
bfb0d15e6f Github action to show monthly issue metrics 2024-02-21 15:02:44 +00:00
14 changed files with 83 additions and 58 deletions

View File

@@ -0,0 +1,40 @@
name: Monthly issue metrics
on:
workflow_dispatch:
schedule:
- cron: '3 2 1 * *'
permissions:
issues: write
pull-requests: read
jobs:
build:
name: issue metrics
runs-on: ubuntu-latest
steps:
- name: Get dates for last month
shell: bash
run: |
# Calculate the first day of the previous month
first_day=$(date -d "last month" +%Y-%m-01)
# Calculate the last day of the previous month
last_day=$(date -d "$first_day +1 month -1 day" +%Y-%m-%d)
#Set an environment variable with the date range
echo "$first_day..$last_day"
echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"
- name: Run issue-metrics tool
uses: github/issue-metrics@v2
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SEARCH_QUERY: 'repo:ansible/awx is:issue created:${{ env.last_month }} -reason:"not planned"'
- name: Create issue
uses: peter-evans/create-issue-from-file@v4
with:
title: Monthly issue metrics report
token: ${{ secrets.GITHUB_TOKEN }}
content-filepath: ./issue_metrics.md

View File

@@ -83,15 +83,11 @@ jobs:
- name: Re-tag and promote awx image - name: Re-tag and promote awx image
run: | run: |
docker buildx imagetools create \ docker pull ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }}
ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }} \ docker tag ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }} quay.io/${{ github.repository }}:${{ github.event.release.tag_name }}
--tag quay.io/${{ github.repository }}:${{ github.event.release.tag_name }} docker tag ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }} quay.io/${{ github.repository }}:latest
docker buildx imagetools create \ docker push quay.io/${{ github.repository }}:${{ github.event.release.tag_name }}
ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }} \ docker push quay.io/${{ github.repository }}:latest
--tag quay.io/${{ github.repository }}:latest docker pull ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }}
docker tag ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }} quay.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }}
- name: Re-tag and promote awx-ee image docker push quay.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }}
run: |
docker buildx imagetools create \
ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }} \
--tag quay.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }}

View File

@@ -102,9 +102,9 @@ jobs:
- name: tag awx-ee:latest with version input - name: tag awx-ee:latest with version input
run: | run: |
docker buildx imagetools create \ docker pull quay.io/ansible/awx-ee:latest
quay.io/ansible/awx-ee:latest \ docker tag quay.io/ansible/awx-ee:latest ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.inputs.version }}
--tag ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.inputs.version }} docker push ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.inputs.version }}
- name: Stage awx-operator image - name: Stage awx-operator image
working-directory: awx-operator working-directory: awx-operator

View File

@@ -259,12 +259,6 @@ class AWXConsumerPG(AWXConsumerBase):
current_downtime = time.time() - self.pg_down_time current_downtime = time.time() - self.pg_down_time
if current_downtime > self.pg_max_wait: if current_downtime > self.pg_max_wait:
logger.exception(f"Postgres event consumer has not recovered in {current_downtime} s, exiting") logger.exception(f"Postgres event consumer has not recovered in {current_downtime} s, exiting")
# Sending QUIT to multiprocess queue to signal workers to exit
for worker in self.pool.workers:
try:
worker.quit()
except Exception:
logger.exception(f"Error sending QUIT to worker {worker}")
raise raise
# Wait for a second before next attempt, but still listen for any shutdown signals # Wait for a second before next attempt, but still listen for any shutdown signals
for i in range(10): for i in range(10):
@@ -276,12 +270,6 @@ class AWXConsumerPG(AWXConsumerBase):
except Exception: except Exception:
# Log unanticipated exception in addition to writing to stderr to get timestamps and other metadata # Log unanticipated exception in addition to writing to stderr to get timestamps and other metadata
logger.exception('Encountered unhandled error in dispatcher main loop') logger.exception('Encountered unhandled error in dispatcher main loop')
# Sending QUIT to multiprocess queue to signal workers to exit
for worker in self.pool.workers:
try:
worker.quit()
except Exception:
logger.exception(f"Error sending QUIT to worker {worker}")
raise raise

View File

@@ -80,7 +80,7 @@ function Dashboard() {
<Trans> <Trans>
<p> <p>
<InfoCircleIcon /> A tech preview of the new {brandName} user <InfoCircleIcon /> A tech preview of the new {brandName} user
interface can be found <a href="/ui_next">here</a>. interface can be found <a href="/ui_next/dashboard">here</a>.
</p> </p>
</Trans> </Trans>
</Banner> </Banner>

View File

@@ -30,7 +30,7 @@ function SubscriptionUsage() {
<Trans> <Trans>
<p> <p>
<InfoCircleIcon /> A tech preview of the new {brandName} user <InfoCircleIcon /> A tech preview of the new {brandName} user
interface can be found <a href="/ui_next">here</a>. interface can be found <a href="/ui_next/dashboard">here</a>.
</p> </p>
</Trans> </Trans>
</Banner> </Banner>

View File

@@ -26,7 +26,7 @@
name: "{{ project_name }}" name: "{{ project_name }}"
organization: "{{ org_name }}" organization: "{{ org_name }}"
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: true wait: true
- name: Create a git project with same name, different org - name: Create a git project with same name, different org

View File

@@ -31,7 +31,7 @@
name: "{{ project_name1 }}" name: "{{ project_name1 }}"
organization: Default organization: Default
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: true wait: true
register: result register: result
@@ -44,7 +44,7 @@
name: "{{ project_name1 }}" name: "{{ project_name1 }}"
organization: Default organization: Default
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: true wait: true
state: exists state: exists
register: result register: result
@@ -58,7 +58,7 @@
name: "{{ project_name1 }}" name: "{{ project_name1 }}"
organization: Default organization: Default
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: true wait: true
state: exists state: exists
request_timeout: .001 request_timeout: .001
@@ -75,7 +75,7 @@
name: "{{ project_name1 }}" name: "{{ project_name1 }}"
organization: Default organization: Default
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: true wait: true
state: absent state: absent
register: result register: result
@@ -89,7 +89,7 @@
name: "{{ project_name1 }}" name: "{{ project_name1 }}"
organization: Default organization: Default
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: true wait: true
state: exists state: exists
register: result register: result
@@ -103,7 +103,7 @@
name: "{{ project_name1 }}" name: "{{ project_name1 }}"
organization: Default organization: Default
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: false wait: false
register: result register: result
ignore_errors: true ignore_errors: true
@@ -137,7 +137,7 @@
name: "{{ project_name2 }}" name: "{{ project_name2 }}"
organization: "{{ org_name }}" organization: "{{ org_name }}"
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
scm_credential: "{{ cred_name }}" scm_credential: "{{ cred_name }}"
check_mode: true check_mode: true
@@ -162,7 +162,7 @@
name: "{{ project_name2 }}" name: "{{ project_name2 }}"
organization: Non_Existing_Org organization: Non_Existing_Org
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
scm_credential: "{{ cred_name }}" scm_credential: "{{ cred_name }}"
register: result register: result
ignore_errors: true ignore_errors: true
@@ -179,7 +179,7 @@
name: "{{ project_name2 }}" name: "{{ project_name2 }}"
organization: "{{ org_name }}" organization: "{{ org_name }}"
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
scm_credential: Non_Existing_Credential scm_credential: Non_Existing_Credential
register: result register: result
ignore_errors: true ignore_errors: true
@@ -191,7 +191,7 @@
- "'Non_Existing_Credential' in result.msg" - "'Non_Existing_Credential' in result.msg"
- "result.total_results == 0" - "result.total_results == 0"
- name: Create a git project using a branch and allowing branch override - name: Create a git project without credentials without waiting
project: project:
name: "{{ project_name3 }}" name: "{{ project_name3 }}"
organization: Default organization: Default

View File

@@ -13,7 +13,7 @@
name: "{{ project_name1 }}" name: "{{ project_name1 }}"
organization: Default organization: Default
scm_type: git scm_type: git
scm_url: https://github.com/ansible/ansible-tower-samples scm_url: https://github.com/ansible/test-playbooks
wait: false wait: false
register: project_create_result register: project_create_result

View File

@@ -7,7 +7,6 @@ Setting up LDAP Authentication
single: LDAP single: LDAP
pair: authentication; LDAP pair: authentication; LDAP
This chapter describes how to integrate LDAP authentication with AWX.
.. note:: .. note::

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,4 +1,4 @@
aiohttp>=3.8.6 # CVE-2023-47627 aiohttp
ansiconv==1.0.0 # UPGRADE BLOCKER: from 2013, consider replacing instead of upgrading ansiconv==1.0.0 # UPGRADE BLOCKER: from 2013, consider replacing instead of upgrading
asciichartpy asciichartpy
asn1 asn1
@@ -8,7 +8,7 @@ boto3
botocore botocore
channels channels
channels-redis==3.4.1 # see UPGRADE BLOCKERs channels-redis==3.4.1 # see UPGRADE BLOCKERs
cryptography>=41.0.6 # CVE-2023-49083 cryptography>=41.0.2 # CVE-2023-38325
Cython<3 # this is needed as a build dependency, one day we may have separated build deps Cython<3 # this is needed as a build dependency, one day we may have separated build deps
daphne daphne
distro distro
@@ -26,15 +26,15 @@ django-split-settings==1.0.0 # We hit a strange issue where the release proce
djangorestframework djangorestframework
djangorestframework-yaml djangorestframework-yaml
filelock filelock
GitPython>=3.1.37 # CVE-2023-41040 GitPython>=3.1.32 # CVE-2023-40267
hiredis==2.0.0 # see UPGRADE BLOCKERs hiredis==2.0.0 # see UPGRADE BLOCKERs
irc irc
jinja2>=3.1.3 # CVE-2024-22195 jinja2
JSON-log-formatter JSON-log-formatter
jsonschema jsonschema
Markdown # used for formatting API help Markdown # used for formatting API help
openshift openshift
pexpect==4.7.0 # see library notes pexpect==4.7.0 # see library notes
prometheus_client prometheus_client
psycopg psycopg
psutil psutil
@@ -49,20 +49,20 @@ pyyaml>=6.0.1
receptorctl receptorctl
social-auth-core[openidconnect]==4.4.2 # see UPGRADE BLOCKERs social-auth-core[openidconnect]==4.4.2 # see UPGRADE BLOCKERs
social-auth-app-django==5.4.0 # see UPGRADE BLOCKERs social-auth-app-django==5.4.0 # see UPGRADE BLOCKERs
sqlparse>=0.4.4 # Required by django https://github.com/ansible/awx/security/dependabot/96 sqlparse >= 0.4.4 # Required by django https://github.com/ansible/awx/security/dependabot/96
redis redis
requests requests
slack-sdk slack-sdk
tacacs_plus==1.0 # UPGRADE BLOCKER: auth does not work with later versions tacacs_plus==1.0 # UPGRADE BLOCKER: auth does not work with later versions
twilio twilio
twisted[tls]>=23.10.0 # CVE-2023-46137 twisted[tls]
uWSGI uWSGI
uwsgitop uwsgitop
wheel>=0.38.1 # CVE-2022-40898 wheel>=0.38.1 # CVE-2022-40898
pip==21.2.4 # see UPGRADE BLOCKERs pip==21.2.4 # see UPGRADE BLOCKERs
setuptools # see UPGRADE BLOCKERs setuptools # see UPGRADE BLOCKERs
setuptools_scm[toml] # see UPGRADE BLOCKERs, xmlsec build dep setuptools_scm[toml] # see UPGRADE BLOCKERs, xmlsec build dep
setuptools-rust>=0.11.4 # cryptography build dep setuptools-rust >= 0.11.4 # cryptography build dep
pkgconfig>=1.5.1 # xmlsec build dep - needed for offline build pkgconfig>=1.5.1 # xmlsec build dep - needed for offline build
# Temporarily added to use ansible-runner from git branch, to be removed # Temporarily added to use ansible-runner from git branch, to be removed

View File

@@ -1,6 +1,6 @@
adal==1.2.7 adal==1.2.7
# via msrestazure # via msrestazure
aiohttp==3.9.3 aiohttp==3.8.3
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
aioredis==1.3.1 aioredis==1.3.1
# via channels-redis # via channels-redis
@@ -70,12 +70,14 @@ channels==3.0.5
channels-redis==3.4.1 channels-redis==3.4.1
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
charset-normalizer==2.1.1 charset-normalizer==2.1.1
# via requests # via
# aiohttp
# requests
click==8.1.3 click==8.1.3
# via receptorctl # via receptorctl
constantly==15.1.0 constantly==15.1.0
# via twisted # via twisted
cryptography==41.0.7 cryptography==41.0.3
# via # via
# -r /awx_devel/requirements/requirements.in # -r /awx_devel/requirements/requirements.in
# adal # adal
@@ -161,7 +163,7 @@ frozenlist==1.3.3
# aiosignal # aiosignal
gitdb==4.0.10 gitdb==4.0.10
# via gitpython # via gitpython
gitpython==3.1.42 gitpython==3.1.32
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
google-auth==2.14.1 google-auth==2.14.1
# via kubernetes # via kubernetes
@@ -214,7 +216,7 @@ jaraco-text==3.11.0
# via # via
# irc # irc
# jaraco-collections # jaraco-collections
jinja2==3.1.3 jinja2==3.1.2
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
jmespath==1.0.1 jmespath==1.0.1
# via # via
@@ -360,7 +362,7 @@ pyyaml==6.0.1
# djangorestframework-yaml # djangorestframework-yaml
# kubernetes # kubernetes
# receptorctl # receptorctl
receptorctl==1.4.4 receptorctl==1.4.2
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
redis==4.3.5 redis==4.3.5
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
@@ -438,7 +440,7 @@ tomli==2.0.1
# via setuptools-scm # via setuptools-scm
twilio==7.15.3 twilio==7.15.3
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
twisted[tls]==23.10.0 twisted[tls]==22.10.0
# via # via
# -r /awx_devel/requirements/requirements.in # -r /awx_devel/requirements/requirements.in
# daphne # daphne