itential-mcp 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- itential_mcp-0.1.0/.github/workflows/premerge.yaml +30 -0
- itential_mcp-0.1.0/.github/workflows/release.yaml +45 -0
- itential_mcp-0.1.0/.gitignore +19 -0
- itential_mcp-0.1.0/.python-version +1 -0
- itential_mcp-0.1.0/CODEOWNERS +2 -0
- itential_mcp-0.1.0/CODE_OF_CONDUCT.md +56 -0
- itential_mcp-0.1.0/Containerfile +40 -0
- itential_mcp-0.1.0/LICENSE +674 -0
- itential_mcp-0.1.0/Makefile +62 -0
- itential_mcp-0.1.0/PKG-INFO +215 -0
- itential_mcp-0.1.0/README.md +192 -0
- itential_mcp-0.1.0/pyproject.toml +74 -0
- itential_mcp-0.1.0/src/itential_mcp/__init__.py +10 -0
- itential_mcp-0.1.0/src/itential_mcp/__main__.py +9 -0
- itential_mcp-0.1.0/src/itential_mcp/cli.py +162 -0
- itential_mcp-0.1.0/src/itential_mcp/client.py +182 -0
- itential_mcp-0.1.0/src/itential_mcp/config.py +37 -0
- itential_mcp-0.1.0/src/itential_mcp/env.py +39 -0
- itential_mcp-0.1.0/src/itential_mcp/response.py +54 -0
- itential_mcp-0.1.0/src/itential_mcp/server.py +166 -0
- itential_mcp-0.1.0/src/itential_mcp/stringutils.py +73 -0
- itential_mcp-0.1.0/src/itential_mcp/tools/compliance_reports.py +32 -0
- itential_mcp-0.1.0/src/itential_mcp/tools/devices.py +60 -0
- itential_mcp-0.1.0/src/itential_mcp/tools/jobs.py +31 -0
- itential_mcp-0.1.0/src/itential_mcp/tools/system.py +55 -0
- itential_mcp-0.1.0/src/itential_mcp/tools/triggers.py +57 -0
- itential_mcp-0.1.0/src/itential_mcp/tools/wfe.py +100 -0
- itential_mcp-0.1.0/src/itential_mcp/tools/workflows.py +213 -0
- itential_mcp-0.1.0/tests/test_cli.py +72 -0
- itential_mcp-0.1.0/tests/test_client.py +76 -0
- itential_mcp-0.1.0/tests/test_config.py +59 -0
- itential_mcp-0.1.0/tests/test_env.py +63 -0
- itential_mcp-0.1.0/tests/test_response.py +37 -0
- itential_mcp-0.1.0/tests/test_server.py +60 -0
- itential_mcp-0.1.0/tests/test_stringutils.py +63 -0
- itential_mcp-0.1.0/uv.lock +804 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# .github/workflows/premerge.yml
|
|
2
|
+
---
|
|
3
|
+
name: Run pre merge pipeline
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
pull_request:
|
|
7
|
+
branches:
|
|
8
|
+
- devel
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
test:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout repository
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: '3.x' # You can specify an exact version like '3.11'
|
|
22
|
+
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v5
|
|
25
|
+
|
|
26
|
+
- name: Install the project
|
|
27
|
+
run: uv sync --all-extras --dev
|
|
28
|
+
|
|
29
|
+
- name: Run the permerge target
|
|
30
|
+
run: make premerge
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# .github/workflows/release.yml
|
|
2
|
+
# This workflow will create a new release and upload it to PyPI. It will run
|
|
3
|
+
# whenever a new tag is merged into the repository. It builds the application
|
|
4
|
+
# and pushes it to PyPI.
|
|
5
|
+
---
|
|
6
|
+
name: Deploy package to PyPI
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
push:
|
|
10
|
+
tags:
|
|
11
|
+
- 'v*'
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: write
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- name: Set up Python
|
|
23
|
+
uses: actions/setup-python@v5
|
|
24
|
+
with:
|
|
25
|
+
python-version: '3.11'
|
|
26
|
+
|
|
27
|
+
- name: Install uv
|
|
28
|
+
uses: astral-sh/setup-uv@v5
|
|
29
|
+
|
|
30
|
+
- name: Install the project
|
|
31
|
+
run: uv sync --all-extras --dev
|
|
32
|
+
|
|
33
|
+
- name: Install tools
|
|
34
|
+
run: uv run pip install build twine
|
|
35
|
+
|
|
36
|
+
- name: Build package
|
|
37
|
+
run: uv run python -m build
|
|
38
|
+
|
|
39
|
+
- name: Publish to PyPI or TestPyPI
|
|
40
|
+
env:
|
|
41
|
+
TWINE_USERNAME: __token__
|
|
42
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
43
|
+
run: |
|
|
44
|
+
echo "Publishing to PyPI..."
|
|
45
|
+
twine upload dist/*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.10
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Open Source Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This Code of Conduct sets expectations for behavior in our open source community. It ensures a respectful, safe, and inclusive environment for contributors, maintainers, users, and newcomers—regardless of background, skill level, or personal identity.
|
|
6
|
+
|
|
7
|
+
Open source thrives when everyone can contribute without harassment, discrimination, or toxicity. If you're here to collaborate, you're expected to follow this.
|
|
8
|
+
|
|
9
|
+
## Expected Behavior
|
|
10
|
+
|
|
11
|
+
We expect all contributors to:
|
|
12
|
+
|
|
13
|
+
- **Be respectful**: Value different perspectives. Disagree without personal attacks.
|
|
14
|
+
- **Be constructive**: Critique code and ideas, not people. If something’s broken, propose a fix.
|
|
15
|
+
- **Be inclusive**: Welcome beginners, mentor others, and use inclusive language.
|
|
16
|
+
- **Take responsibility**: Own your mistakes, learn from feedback, and help improve the project.
|
|
17
|
+
- **Communicate clearly**: Write good issues, PRs, and commit messages. Default to transparency.
|
|
18
|
+
|
|
19
|
+
## Unacceptable Behavior
|
|
20
|
+
|
|
21
|
+
These are **not tolerated**:
|
|
22
|
+
|
|
23
|
+
- Hate speech, slurs, or discriminatory jokes.
|
|
24
|
+
- Harassment, intimidation, or sustained disruption.
|
|
25
|
+
- Doxxing or sharing private information without consent.
|
|
26
|
+
- Trolling, flame wars, or intentionally derailing conversations.
|
|
27
|
+
- “Gatekeeping” or belittling others based on experience, tools, or tech stack.
|
|
28
|
+
|
|
29
|
+
## Enforcement
|
|
30
|
+
|
|
31
|
+
Violations will be handled promptly and decisively:
|
|
32
|
+
|
|
33
|
+
- Minor incidents may result in a warning.
|
|
34
|
+
- Repeated or severe behavior can lead to bans from the project (GitHub issues, PRs, Slack/Discord, etc.).
|
|
35
|
+
- Reports will be reviewed by the maintainers or a designated moderation team.
|
|
36
|
+
|
|
37
|
+
## Reporting
|
|
38
|
+
|
|
39
|
+
If you experience or witness a violation, **speak up**:
|
|
40
|
+
|
|
41
|
+
- Email: opensource@itential.com
|
|
42
|
+
- Or DM a maintainer in private on our official chat
|
|
43
|
+
|
|
44
|
+
All reports are confidential. Retaliation against reporters **will not be tolerated**.
|
|
45
|
+
|
|
46
|
+
## Scope
|
|
47
|
+
|
|
48
|
+
This Code of Conduct applies in all project spaces, including:
|
|
49
|
+
|
|
50
|
+
- GitHub issues and PRs
|
|
51
|
+
- Community forums, chats, and meetings
|
|
52
|
+
- Social media when representing the project
|
|
53
|
+
|
|
54
|
+
## Attribution
|
|
55
|
+
|
|
56
|
+
This code is based on the [Contributor Covenant](https://www.contributor-covenant.org), with pragmatic additions tailored for modern open source development.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Copyright (c) 2025 Itential, Inc
|
|
2
|
+
# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
3
|
+
|
|
4
|
+
# Create the builder container
|
|
5
|
+
FROM ghcr.io/astral-sh/uv:python3.10-bookworm-slim AS builder
|
|
6
|
+
|
|
7
|
+
# Install the project into `/app`
|
|
8
|
+
WORKDIR /app
|
|
9
|
+
|
|
10
|
+
# Enable bytecode compilation
|
|
11
|
+
ENV UV_COMPILE_BYTECODE=1
|
|
12
|
+
|
|
13
|
+
# Copy from the cache instead of linking since it's a mounted volume
|
|
14
|
+
ENV UV_LINK_MODE=copy
|
|
15
|
+
|
|
16
|
+
COPY pyproject.toml .
|
|
17
|
+
COPY README.md .
|
|
18
|
+
|
|
19
|
+
# Generate uv lock file
|
|
20
|
+
RUN uv lock
|
|
21
|
+
|
|
22
|
+
# Install the project's dependencies using the lockfile
|
|
23
|
+
RUN uv sync --frozen --no-install-project --no-dev --no-editable
|
|
24
|
+
|
|
25
|
+
# Then, add the rest of the project source code and install it
|
|
26
|
+
ADD . /app
|
|
27
|
+
RUN uv sync --frozen --no-dev --no-editable
|
|
28
|
+
|
|
29
|
+
# Create the final container with the application installed
|
|
30
|
+
FROM python:3.10-slim
|
|
31
|
+
|
|
32
|
+
WORKDIR /app
|
|
33
|
+
|
|
34
|
+
#COPY --from=builder --chown=app:app /app/.venv /app/.venv
|
|
35
|
+
COPY --from=builder /app/.venv /app/.venv
|
|
36
|
+
|
|
37
|
+
# Place executables in the environment at the front of the path
|
|
38
|
+
ENV PATH="/app/.venv/bin:$PATH"
|
|
39
|
+
|
|
40
|
+
ENTRYPOINT ["itential-mcp"]
|