Skip to content

Commit

Permalink
Add modified and git metadata to register.json
Browse files Browse the repository at this point in the history
  • Loading branch information
avillar committed Jan 29, 2024
1 parent e58076a commit d0c2761
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 15 deletions.
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ RUN apk update && \
/venv/bin/python -m pip install --upgrade pip && \
git config --global --add safe.directory '*' && \
npm install jsonld && \
echo "$BBP_GIT_INFO" > /GIT_INFO
echo "$BBP_GIT_INFO" > /GIT_INFO && \
git config --system --add safe.directory '*'

RUN /venv/bin/python -m pip install -r /requirements.txt

Expand Down
44 changes: 30 additions & 14 deletions ogc/bblocks/entrypoint.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
import datetime
import os
import shutil
import subprocess
Expand Down Expand Up @@ -154,6 +155,12 @@
print(f"Deleting {old_dir} recursively", file=sys.stderr)
shutil.rmtree(old_dir, ignore_errors=True)

# Fix git config
try:
subprocess.run(['git', 'config', '--global', '--add', 'safe.directory', '*'])
except Exception as e:
print(f"Error configuring git safe.directory: {e}", file=sys.stderr)

# Read local bblocks-config.yaml, if present
id_prefix = 'ogc.'
annotated_path = Path(args.annotated_path)
Expand Down Expand Up @@ -181,6 +188,8 @@
if sparql_conf and sparql_conf.get('query'):
register_additional_metadata['sparqlEndpoint'] = sparql_conf['query']

register_additional_metadata['modified'] = datetime.datetime.now().isoformat()

if os.environ.get('BBP_GIT_INFO_FILE'):
with open(os.environ['BBP_GIT_INFO_FILE']) as f:
git_info = f.readline().strip()
Expand All @@ -196,22 +205,29 @@
base_url = args.base_url
github_base_url = args.github_base_url
git_repo_path = None
if not base_url or not github_base_url:
try:
import git
repo = git.Repo()
git_repo_path = Path(repo.working_dir)
remote_branch = repo.active_branch.tracking_branch()
remote = repo.remote(remote_branch.remote_name)
remote_url = next(remote.urls)
gh_repo = get_github_repo(remote_url)
if gh_repo:
try:
import git
repo = git.Repo()
git_repo_path = Path(repo.working_dir)
remote_branch = repo.active_branch.tracking_branch()
remote = repo.remote(remote_branch.remote_name)
remote_url = next(remote.urls)
if remote_url:
register_additional_metadata['gitRepository'] = remote_url

gh_repo = get_github_repo(remote_url)
if gh_repo:
if not base_url:
base_url = f"https://{gh_repo[0]}.github.io/{gh_repo[1]}/"
if not github_base_url:
github_base_url = f"https://github.com/{gh_repo[0]}/{gh_repo[1]}/"
print(f"Autodetected GitHub repo {gh_repo[0]}/{gh_repo[1]}")
except:
print('[WARN] Could not autodetect base_url / github_base_url', file=sys.stderr)
pass
print(f"Autodetected GitHub repo {gh_repo[0]}/{gh_repo[1]}")

if github_base_url:
register_additional_metadata['gitHubRepository'] = github_base_url
except Exception as e:
print(f"[WARN] Could not autodetect base_url / github_base_url ({e})", file=sys.stderr)
pass

steps = args.steps.split(',') if args.steps else None

Expand Down

0 comments on commit d0c2761

Please sign in to comment.