Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
c3b08cb
fix: resolve UniqueViolation error in GitHub releases collection
mohsinm-dev Jul 27, 2025
8539825
add date filter to contributer resolution logic queries
IsaacMilarky Aug 27, 2025
fe85b3f
dont use start date
IsaacMilarky Aug 27, 2025
0df6bdd
Merge branch 'main' into partial-recollection-facade
IsaacMilarky Sep 2, 2025
6a6c760
remove unused method
IsaacMilarky Sep 9, 2025
b8e1c79
bump rabbit image to 4.1
MoralCode Sep 16, 2025
267f95e
Merge branch 'main' into partial-recollection-facade
IsaacMilarky Oct 1, 2025
9ede8af
revert
IsaacMilarky Oct 1, 2025
f41e8f8
add toggle to toggle full collection of contributor resolution
IsaacMilarky Oct 2, 2025
c2e87ff
amend method of getting collection status record
IsaacMilarky Oct 2, 2025
8ae5002
add config option in proper place
IsaacMilarky Oct 3, 2025
4bb6554
Fix examples of repos CSV files
giordano Oct 6, 2025
49fe206
docker compose: Make it crystal clear that all the GitHub/GitLab user…
giordano Oct 6, 2025
e780526
Merge pull request #3300 from giordano/mg/do-not-remove-env-variables
sgoggins Oct 9, 2025
a87c6a0
Change facade_contributor_full_recollect to 0
sgoggins Oct 9, 2025
473673c
Merge pull request #3253 from chaoss/partial-recollection-facade
sgoggins Oct 9, 2025
fdc0005
update schema
sgoggins Oct 9, 2025
512ff81
fixing description
sgoggins Oct 9, 2025
7f58fbc
Update date-released format in CITATION.cff
sgoggins Oct 13, 2025
e4a618f
Log facade messages based on the type requested
MoralCode Oct 14, 2025
3fb2bae
Merge pull request #3299 from giordano/mg/repos-schema
MoralCode Oct 14, 2025
16fb4a0
Fix `git reset` command to include remote default branch
giordano Oct 15, 2025
9ebc4eb
refactor send_messages to remove a almost entirely duplicate code path
MoralCode Sep 15, 2025
60138d0
Merge pull request #3312 from giordano/patch-1
MoralCode Oct 15, 2025
b1c04dc
remove from template
MoralCode Sep 30, 2025
9a92e17
remove from main route
MoralCode Sep 30, 2025
f07aa92
remove the report routes
MoralCode Sep 30, 2025
2e60ffb
remove reports definition
MoralCode Sep 30, 2025
a28c7b4
additional reports related things
MoralCode Sep 30, 2025
148680b
basic implementation
MoralCode Oct 7, 2025
d13aca8
introduce a config datadir item and use that so that config can be in…
MoralCode Oct 15, 2025
4887e3e
Centralize versioning
skools-here Oct 11, 2025
3f2768d
docs: update release process to reflect centralized version management
skools-here Oct 14, 2025
fb88a92
removed unused import and script
skools-here Oct 15, 2025
75974bd
Merge pull request #3276 from MoralCode/deps/update-rabbitmq
sgoggins Oct 16, 2025
9aa72ee
Merge pull request #3297 from chaoss/collection_util-duplicate-code
sgoggins Oct 16, 2025
eb913b4
Merge pull request #3298 from chaoss/remove-reports
sgoggins Oct 16, 2025
8487825
Merge pull request #3303 from chaoss/config-data-patch-33
sgoggins Oct 16, 2025
c3d8c4c
Merge pull request #3305 from skools-here/centralize-version-management
sgoggins Oct 16, 2025
1fc79ae
Merge pull request #3309 from chaoss/log-by-type
sgoggins Oct 16, 2025
05189aa
Merge pull request #3245 from mohsinm-dev/fix-releases-uniqueviolatio…
sgoggins Oct 16, 2025
cd87f5c
Add Clones metric API (#2604)
saksham23467 Jul 31, 2025
0d53302
Merge pull request #3314 from chaoss/default-config-json
sgoggins Oct 16, 2025
c5eeb07
Merge pull request #3247 from saksham23467/fix/clones-metric-api
sgoggins Oct 16, 2025
c088b81
Format formatting of wait until time
giordano Oct 17, 2025
d5bb539
Remove extraneous log statement
Ulincsys Oct 21, 2025
7e40e6c
Merge pull request #3324 from chaoss/fix-facade-timezone-error-but-ac…
sgoggins Oct 22, 2025
a632b04
Merge pull request #3318 from giordano/patch-1
MoralCode Oct 22, 2025
058120b
copy podman test cleanup step to docker build as well
MoralCode Oct 22, 2025
ca257b6
fix typo
razekmh Oct 21, 2025
548f429
Fixing the API Visibility issue in debug mode w/signoff
PredictiveManish Oct 22, 2025
17ec742
Fixing the warnings in #3183 w/signoff
PredictiveManish Oct 22, 2025
6d45241
Fixing warnings in #3183 w/signoff
PredictiveManish Oct 23, 2025
0b86eff
Reverting changes
PredictiveManish Oct 24, 2025
27049bb
allow materialized view refresh to be disabled
MoralCode Oct 24, 2025
15c9b52
Merge pull request #3322 from razekmh/fix-typo-pr_assignee_ojb
sgoggins Oct 24, 2025
578dc14
Merge pull request #3325 from chaoss/save-space
sgoggins Oct 24, 2025
b192e4c
Merge pull request #3340 from chaoss/disable_mat_views
sgoggins Oct 24, 2025
8ad15bd
Reverting the unnecessary changes
PredictiveManish Oct 25, 2025
6700088
Moving mask_key() to augur.util
PredictiveManish Oct 25, 2025
bc9bd96
Removed key_fingerprint for easy interpretation
PredictiveManish Oct 25, 2025
f3f4065
Fix: python3.9 compatibility message in docs #3266
PredictiveManish Oct 26, 2025
524d25d
Merge branch 'chaoss:main' into docs-update
PredictiveManish Oct 26, 2025
c615eb0
install mypy
MoralCode Oct 15, 2025
718034a
add mypy config to toml file
MoralCode Oct 16, 2025
2fbffd1
add missing types packages as suggested by mypy
MoralCode Oct 16, 2025
7f5056e
broaden checking to other application db files too
MoralCode Oct 15, 2025
85e317c
type fixes for Application DB files
MoralCode Oct 15, 2025
c2e3fe1
Merge pull request #3330 from PredictiveManish/fix-api-visible-format
sgoggins Oct 27, 2025
b902e0d
Update docs/source/getting-started/installation.rst
PredictiveManish Oct 28, 2025
15f1f27
testing
sgoggins Oct 28, 2025
16d8b60
Merge pull request #3351 from chaoss/docker-patch-spg-1
sgoggins Oct 28, 2025
ce9fb34
Merge pull request #3341 from PredictiveManish/docs-update
sgoggins Oct 29, 2025
0c57454
Merge pull request #3315 from chaoss/mypy
sgoggins Oct 29, 2025
5acb58b
remove empty db image build
MoralCode Oct 29, 2025
a10228a
fetch facade worker options from the correct config
MoralCode Oct 29, 2025
410f025
refactor the getting of enabled phase names to accept explicit parame…
MoralCode Oct 29, 2025
c1a0bf6
remove legacy FacadeConfig comments
MoralCode Oct 29, 2025
03ff849
remove unused lib.get_section
MoralCode Oct 29, 2025
2008e7f
refactor again to add a function that can get enabled phase names fro…
MoralCode Oct 29, 2025
462ed6a
apply coalesce to values being bulk-added so that null values get ski…
MoralCode Oct 29, 2025
f5acdf5
apply fix to allow this solution to work when `table` arg is an ORM o…
MoralCode Oct 29, 2025
56b4ee0
Merge pull request #3332 from PredictiveManish/fix-variables-issue
sgoggins Oct 30, 2025
4221cba
Merge pull request #3355 from chaoss/remove-empty-db
sgoggins Oct 30, 2025
6e47e06
fix missing imports
MoralCode Oct 29, 2025
e29a1d8
Fix hardcoded collection intervals by reading from config at call time
mohsinm-dev Oct 30, 2025
9ad93b6
Move config injection to call site and use days_until_collect_again p…
mohsinm-dev Oct 31, 2025
28045ef
add unit values to the new variables
MoralCode Oct 31, 2025
b99a182
add note to the docs about the new config items
MoralCode Oct 29, 2025
6e179cc
Merge pull request #3357 from chaoss/deduplicate/lib-get_section
sgoggins Oct 31, 2025
6ec1e46
Add guidance for joining CHAOSS Slack to CONTRIBUTING.md
TudorGR Nov 1, 2025
e445b86
Fix: ensure redirect to user group view includes required group path …
Oct 30, 2025
e2f41c9
Add prominent Slack community section near the top of CONTRIBUTING.md
TudorGR Nov 2, 2025
a1a1339
Merge pull request #3354 from chaoss/null_cntrb_email
MoralCode Nov 3, 2025
6496aad
Move 'Join the Community' section below docs introduction line
TudorGR Nov 4, 2025
3200ad3
Merge pull request #3366 from TudorGR/main
sgoggins Nov 4, 2025
94c714d
Merge pull request #3359 from kabir2123/fix/user_remove_repo-redirect
sgoggins Nov 4, 2025
7a8569f
rearrange dev deps (and unlock some) so the toml is valid
MoralCode Oct 23, 2025
23adc08
only test on current python
MoralCode Nov 5, 2025
bde4013
embed tox ini in pyproject.toml
MoralCode Nov 5, 2025
11d2332
use tox4
MoralCode Nov 5, 2025
e614b74
use tox4 with uv plugin
MoralCode Oct 23, 2025
f43aa1c
Fix: Added Direct and hyperlinked image
PredictiveManish Nov 6, 2025
4a1faf4
Merge pull request #3380 from PredictiveManish/welcome-page-fix
MoralCode Nov 6, 2025
7e07c1d
Merge pull request #3346 from mohsinm-dev/fix-hardcoded-collection-in…
MoralCode Nov 8, 2025
28137e3
add pagination offset to config dict per TODO comment
MoralCode Nov 3, 2025
77a8012
create a ConfigStore class to act as an interface for many possible c…
MoralCode Nov 3, 2025
ab23de4
implement the config store for json data
MoralCode Nov 3, 2025
3d98bfa
add test case for some jsonconfig stuff
MoralCode Nov 5, 2025
74d917d
Merge branch 'unit-testing' into config/hierarchy
MoralCode Nov 10, 2025
8118447
set up tox to run the new tests
MoralCode Nov 5, 2025
8e0c979
set up loggers in the ConfigStore classes
MoralCode Nov 5, 2025
755642a
Add DatabaseConfig implementation of ConfigStore to handle config sto…
MoralCode Nov 5, 2025
829cda4
set up config hierarchy
MoralCode Nov 5, 2025
5d57910
determine emptiness based on all sources
MoralCode Nov 5, 2025
4f04826
get dict form of config based on all sources
MoralCode Nov 5, 2025
ea01040
determine if section is present in AugurConfig based on all sources
MoralCode Nov 5, 2025
c60fcab
handle simpler cases where the writeable source needs to be updated
MoralCode Nov 5, 2025
ac479c0
update value redaction for API key values
MoralCode Nov 5, 2025
e2056e2
testing fixes
MoralCode Nov 6, 2025
7754077
implement add_section_from_json using new config classes
MoralCode Nov 6, 2025
10b38d5
factor out a helper for filtering the config sources
MoralCode Nov 6, 2025
23a25df
add a base-config property to return the config as assembled by all r…
MoralCode Nov 6, 2025
16ea9fa
adjust config init process to use the new base_config
MoralCode Nov 6, 2025
3960551
unused function
MoralCode Nov 6, 2025
bb7ae02
pass in a mock logger as part of the JsonConfig tests
MoralCode Nov 6, 2025
220aa0f
don't use an in-place reverse - its going to cause all sorts of issues
MoralCode Nov 6, 2025
3884fa8
use a function that exists
MoralCode Nov 6, 2025
30e8e82
add a test case for fetching real values
MoralCode Nov 6, 2025
389788b
refactor start_celery_worker_processes to accept raw worker counts fo…
MoralCode Oct 23, 2025
1bd2cba
apply same to start_celery_collection_processes
MoralCode Oct 23, 2025
267b903
fetch new values from config
MoralCode Oct 23, 2025
05812c2
fix unhashable type
MoralCode Nov 6, 2025
53a2ae3
refactor redaction into a helper
MoralCode Nov 6, 2025
2d4fa30
add_or_update_settings is used externally, replace it with a call to …
MoralCode Nov 6, 2025
9c1f422
replace external calls to add_or_update_settings
MoralCode Nov 6, 2025
aa6ce9d
make use of redaction function
MoralCode Nov 6, 2025
de98f25
fix: extract intended dict value from the returned list
MoralCode Nov 6, 2025
9d19d48
more fixes
MoralCode Nov 6, 2025
934560d
Merge pull request #3337 from chaoss/remove-worker-vmem
sgoggins Nov 10, 2025
a9f087e
Merge pull request #3378 from chaoss/config/hierarchy
sgoggins Nov 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion .github/workflows/build_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,21 @@ jobs:
name: End-to-end test (Docker)
runs-on: ubuntu-latest
steps:
- name: Remove unnecessary files from the base image
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"

- name: Checkout repository
uses: actions/checkout@v4

- name: Extract project version
id: version
run: |
VERSION=$(python -c "exec(open('metadata.py').read()); print(__version__)")
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Using version: $VERSION"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
id: setup-buildx
Expand All @@ -67,6 +79,7 @@ jobs:
with:
context: .
file: ./docker/database/Dockerfile
build-args: VERSION=${{ steps.version.outputs.version }}
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_database:test
cache-from: type=gha,scope=container-database
Expand All @@ -78,6 +91,7 @@ jobs:
with:
context: .
file: ./docker/keyman/Dockerfile
build-args: VERSION=${{ steps.version.outputs.version }}
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_keyman:test
cache-from: type=gha,scope=container-keyman
Expand All @@ -89,6 +103,7 @@ jobs:
with:
context: .
file: ./docker/rabbitmq/Dockerfile
build-args: VERSION=${{ steps.version.outputs.version }}
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_rabbitmq:test
cache-from: type=gha,scope=container-rabbitmq
Expand All @@ -100,6 +115,7 @@ jobs:
with:
context: .
file: ./docker/backend/Dockerfile
build-args: VERSION=${{ steps.version.outputs.version }}
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_backend:test
cache-from: type=gha,scope=container-backend
Expand Down Expand Up @@ -300,7 +316,6 @@ jobs:
- database
- keyman
- rabbitmq
- empty_database
runs-on: ubuntu-latest
steps:
- name: Checkout repository
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ authors:
given-names: Matt
title: "Open Source Community Health: Analytical Metrics and Their Corresponding Narratives"
doi: 10.1109/SoHeal52568.2021.00010
date-released: 2021
date-released: 2021-01-01
url: https://www.seangoggins.net/wp-content/plugins/zotpress/lib/request/request.dl.php?api_user_id=655145&dlkey=HNG22ZSU&content_type=application/pdf
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ If you are new to open source, we recommend GitHub's excellent guide on "[How to

Before getting started, please make sure you've read the [README](README.md) to get a primer on our project. Augur's documentation can be found [here](https://oss-augur.readthedocs.io/en/main/).

## Join the Community

We encourage all contributors to join the [CHAOSS Slack workspace](https://chaoss.community/kb-getting-started/) and participate in the `#wg-augur-8knot` channel. This is a great place to ask questions, get help with issues, participate in discussions, and stay updated on community meetings and planning. Don't hesitate to introduce yourself and ask for help if you get stuck!

## Opening an issue
If you're experiencing an issue with Augur or have a question you'd like help answering, please feel free to open an [issue](https://github.com/chaoss/augur/issues). To help us prevent duplicates, we kindly ask that you briefly search for your problem or question in our [issues](https://github.com/chaoss/augur/issues) before opening a new one.

Expand Down Expand Up @@ -97,6 +101,7 @@ git push origin master
### CHAOSS
- [Website](https://chaoss.community/)
- [Get Involved](https://chaoss.community/participate)
- [Join the CHAOSS Slack](https://chaoss.community/kb-getting-started/) - Join the `#wg-augur-8knot` channel to participate in discussions, meetings, and planning
- [Metrics](https://github.com/chaoss/metrics)
- [Evolution Metrics Working Group](https://github.com/chaoss/wg-evolution)
- [Common Metrics Working Group](https://github.com/chaoss/wg-common)
Expand Down
56 changes: 56 additions & 0 deletions augur/api/metrics/repo_meta.py
Original file line number Diff line number Diff line change
Expand Up @@ -1240,3 +1240,59 @@ def aggregate_summary(repo_group_id, repo_id=None, begin_date=None, end_date=Non
results = pd.read_sql(summarySQL, conn, params={'repo_id': repo_id,
'begin_date': begin_date, 'end_date': end_date})
return results

@register_metric()
def clones(repo_group_id, repo_id=None, begin_date=None, end_date=None):
"""
Returns the number of repository clones (total and unique) for a given repo or repo group.
:param repo_group_id: The repository's repo_group_id
:param repo_id: The repository's repo_id, defaults to None
:param begin_date: Start date for filtering clone data (optional)
:param end_date: End date for filtering clone data (optional)
:return: DataFrame of clone counts (total and unique) per day
"""
if not begin_date:
begin_date = '1970-1-1 00:00:00'
if not end_date:
end_date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

if repo_id:
clones_sql = s.sql.text("""
SELECT
repo_id,
clone_data_timestamp AS date,
count_clones AS total_clones,
unique_clones
FROM augur_data.repo_clones_data
WHERE repo_id = :repo_id
AND clone_data_timestamp BETWEEN :begin_date AND :end_date
ORDER BY clone_data_timestamp
""")
with current_app.engine.connect() as conn:
results = pd.read_sql(clones_sql, conn, params={
'repo_id': repo_id,
'begin_date': begin_date,
'end_date': end_date
})
return results
else:
clones_sql = s.sql.text("""
SELECT
repo_id,
clone_data_timestamp AS date,
count_clones AS total_clones,
unique_clones
FROM augur_data.repo_clones_data
WHERE repo_id IN (
SELECT repo_id FROM augur_data.repo WHERE repo_group_id = :repo_group_id
)
AND clone_data_timestamp BETWEEN :begin_date AND :end_date
ORDER BY repo_id, clone_data_timestamp
""")
with current_app.engine.connect() as conn:
results = pd.read_sql(clones_sql, conn, params={
'repo_group_id': repo_group_id,
'begin_date': begin_date,
'end_date': end_date
})
return results
2 changes: 0 additions & 2 deletions augur/api/routes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@
from .batch import *
from .collection_status import *
from .config import *
from .contributor_reports import *
from .manager import *
from .nonstandard_metrics import *
from .pull_request_reports import *
from .user import *
from .dei import *
from .util import *
Expand Down
Loading
Loading