PHPackages                             lastcall/artifact.sh - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. lastcall/artifact.sh

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

lastcall/artifact.sh
====================

Build an 'artifact' from one git repository and commit it to another.

1.1.0(3y ago)229.7k↓38.9%3[1 issues](https://github.com/LastCallMedia/Artifact.sh/issues)MITShell

Since Nov 28Pushed 1y ago1 watchersCompare

[ Source](https://github.com/LastCallMedia/Artifact.sh)[ Packagist](https://packagist.org/packages/lastcall/artifact.sh)[ RSS](/packages/lastcall-artifactsh/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)DependenciesVersions (11)Used By (0)

Artifact.sh
===========

[](#artifactsh)

Artifact.sh is brought to you by your friends at [Last Call Media](https://www.lastcallmedia.com), its a shell script to create an "artifact" out of a git clone, and commit the result to another git repository. You would use this script if you have one repository (the "Source" repository) that excludes third party dependencies and generated assets, and another (the "Artifact" repository) that you want to commit those dependencies to for deployment purposes.

Installation:
-------------

[](#installation)

cURL:

```
curl -O https://raw.githubusercontent.com/LastCallMedia/Artifact.sh/master/artifactsh && chmod +x artifactsh
```

Composer:

```
composer require lastcall/artifact.sh
```

Ignored Files
-------------

[](#ignored-files)

If you're using this script, you probably want to ignore different files between your source and artifact repositories. To handle this, you can use `.artifact.gitignore` files at anywhere you would normally use a `.gitignore` file. When the artifact is built, the `.artifact.gitignore` file will be respected. `.gitignore` files are also respected, except if they are in the same directory as an `.artifact.gitignore` file.

For example, if you have the following directory structure:

```
README.txt
.artifact.gitignore # Empty file.
.gitignore # Ignores /vendor
src/
vendor/
```

The vendor directory would be excluded from your source repository due to the normal `.gitignore` file, but included in your artifact repository, because of the empty `.artifact.gitignore` file.

Options:
--------

[](#options)

- -h: Show help
- -a: Set artifact git repository URL (required)
- -b: Set downstream branch Defaults to current source repo branch.
- -m: Set commit message. Defaults to last source repo commit message.
- -n: Dry run - display changes instead of committing and pushing.

Usage:
------

[](#usage)

Export the current working directory as an artifact to `git://github.com/example/artifact.git`:

`./artifactsh -d git://github.com/example/artifact.git`

Running Tests:
--------------

[](#running-tests)

From the lastcall-artifact.sh project root directory after installing project dependencies: `node_modules/.bin/bats tests`

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 78.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~184 days

Recently: every ~413 days

Total

10

Last Release

1435d ago

Major Versions

0.2.5 → 1.0.02020-01-08

### Community

Maintainers

![](https://www.gravatar.com/avatar/08764a9d2125547417a4f3efeee159b4fc1ff4a5094326228e413ef38566da23?d=identicon)[lschumann](/maintainers/lschumann)

![](https://www.gravatar.com/avatar/7a4a154961f7167b96103447056ce7319becb50c4eb836e0cecfd26b08cfd0ba?d=identicon)[chrislcm](/maintainers/chrislcm)

---

Top Contributors

[![rbayliss](https://avatars.githubusercontent.com/u/654407?v=4)](https://github.com/rbayliss "rbayliss (25 commits)")[![jlandfried](https://avatars.githubusercontent.com/u/1078156?v=4)](https://github.com/jlandfried "jlandfried (5 commits)")[![sagar-lcm](https://avatars.githubusercontent.com/u/106957476?v=4)](https://github.com/sagar-lcm "sagar-lcm (2 commits)")

### Embed Badge

![Health badge](/badges/lastcall-artifactsh/health.svg)

```
[![Health](https://phpackages.com/badges/lastcall-artifactsh/health.svg)](https://phpackages.com/packages/lastcall-artifactsh)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
